8 Replies Latest reply on Apr 23, 2015 4:05 PM by Intel_Alvarado

    Wi-Fi, Valid interface combinations

    wojci

      I am using an Edison with the following kernel:

      "Linux first-ubilinux 3.10.17-yocto-standard-r2 #7 SMP PREEMPT Thu Feb 26 09:57:06 UTC 2015 i686 GNU/Linux"

       

      Is it possible to add virtual interfaces using

      "iw phy phy0 interface add <name> type <type>"

      ?

       

      From output of:

      iw list

      "

              Supported interface modes:

                       * IBSS

                       * managed

                       * AP

                       * monitor

                       * P2P-client

                       * P2P-GO

                       * Unknown mode (10)

      ..

              valid interface combinations:

                       * #{ AP } <= 1, #{ managed } <= 2, #{ P2P-client, P2P-GO } <= 2, #{ Unknown mode (10) } <= 1, #{ IBSS } <= 1,

      "

       

      When I try to add a virtual interface, iw outputs:

      "command failed: No such device (-19)"

       

      Is this a driver limitation or a HW limitation?

        • 1. Re: Wi-Fi, Valid interface combinations
          Intel_Alvarado

          Hi,

           

          And what mode specifically are you trying to use, what iw command are you using to add the virtual interface? What is the output of configure_edison –version?

           

          Sergio

          • 2. Re: Wi-Fi, Valid interface combinations
            wojci

            Hi,

             

            I assumed that the following command would work "iw phy phy0 interface add test0 type managed".

             

            I am using the latest version of ubilinux and this is why there is no "configure_edison" command.

            • 3. Re: Wi-Fi, Valid interface combinations
              wojci

              I tried to run the same command on Yucto Linux that I build from source (from edison-src-ww05-15.tgz). I added the iw tool (version 3.15) from a recipe.

              The output was the same the first time that I ran this command before setting up any wifi network.

               

              "configure_edison --version" returns "SATELLITE" on this system.

               

              After replacing wpa_supplicant.conf with wpa_supplicant.conf.original and rebooting, it looks like one can add a single virtual interface.

               

              ~/# iw phy phy0 interface add test0 type managed

              Creates a virtual interface.

               

              ~/# iw phy phy0 interface add test1 type ibss

              [  970.544245] BUG: unable to handle kernel NULL pointer dereference at 00000010

              [  970.544366] IP: [<c18579d3>] nl80211_send_iface+0x13/0x350

              [  970.544454] *pdpt = 000000003545d001 *pde = 0000000000000000

              [  970.544536] Oops: 0000 [#1] PREEMPT SMP

              [  970.544605] Modules linked in: usb_f_acm u_serial g_multi libcomposite bcm_bt_lpm bcm4334x(O)

              [  970.544741] CPU: 0 PID: 485 Comm: iw Tainted: G           O 3.10.17-yocto-standard #1

              [  970.544826] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 466 2014.06.23:19.20.05

              [  970.544920] task: f5df2160 ti: f5f12000 task.ti: f5f12000

              [  970.544985] EIP: 0060:[<c18579d3>] EFLAGS: 00010286 CPU: 0

              [  970.545053] EIP is at nl80211_send_iface+0x13/0x350

              [  970.545112] EAX: 00000000 EBX: f8dae340 ECX: 552527a0 EDX: 000001e5

              [  970.545183] ESI: f5f56c00 EDI: f5fc0000 EBP: f5f13c28 ESP: f5f13bd8

              [  970.545253]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068

              [  970.545316] CR0: 80050033 CR2: 00000010 CR3: 35eea000 CR4: 001007f0

              [  970.545386] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000

              [  970.545454] DR6: ffff0ff0 DR7: 00000400

              [  970.545500] Stack:

              [  970.545532]  f5234000 f5f13c1b 000000d0 f5fc06a4 f5eac000 f5fc0460 f5f56920 00000001

              [  970.545677]  000000d0 00000001 f5234000 f5f13c28 c1701bb7 00000000 00001000 000000ac

              [  970.545819]  00bf39d4 f8dae340 c1bfc720 f5fc0000 f5f13c74 c1858085 00000000 f5fc0000

              [  970.545962] Call Trace:

              [  970.546024]  [<c1701bb7>] ? __alloc_skb+0x77/0x260

              [  970.546099]  [<c1858085>] nl80211_new_interface+0x175/0x430

              [  970.546185]  [<c184d780>] ? __cfg80211_rdev_from_attrs+0x180/0x180

              [  970.546269]  [<c1730fbe>] genl_rcv_msg+0x23e/0x340

              [  970.546349]  [<c1730d80>] ? __genl_register_family_with_ops+0x70/0x70

              [  970.546432]  [<c172f6a6>] netlink_rcv_skb+0x86/0xa0

              [  970.546504]  [<c172fb01>] genl_rcv+0x21/0x30

              [  970.546570]  [<c172f0f8>] netlink_unicast+0x118/0x1a0

              [  970.546645]  [<c172f38a>] netlink_sendmsg+0x20a/0x390

              [  970.546724]  [<c16fa60b>] sock_sendmsg+0x7b/0xb0

              [  970.546795]  [<c145b567>] ? avc_has_perm_flags+0xc7/0x170

              [  970.546875]  [<c189a8f5>] ? sub_preempt_count+0x55/0xe0

              [  970.546961]  [<c16fa8e9>] ___sys_sendmsg+0x269/0x270

              [  970.547039]  [<c12e9106>] ? unlock_page+0x46/0x50

              [  970.547111]  [<c1303478>] ? __do_fault+0x3a8/0x4a0

              [  970.547194]  [<c12ee932>] ? free_pages_prepare+0xe2/0x160

              [  970.547270]  [<c1305f8b>] ? handle_mm_fault+0xbb/0x110

              [  970.547344]  [<c16f95ac>] ? sockfd_lookup_light+0x1c/0x60

              [  970.547420]  [<c16fb6e8>] __sys_sendmsg+0x38/0x70

              [  970.547495]  [<c16fb736>] SyS_sendmsg+0x16/0x20

              [  970.547563]  [<c16fbe2b>] SyS_socketcall+0x29b/0x2f0

              [  970.547637]  [<c189a640>] ? __do_page_fault+0x510/0x510

              [  970.547713]  [<c14b59b4>] ? trace_hardirqs_on_thunk+0xc/0x10

              [  970.547789]  [<c1897808>] syscall_call+0x7/0xb

              [  970.547848] Code: c7 45 ec 00 00 00 00 c7 45 c8 00 00 00 00 e9 c1 fd ff ff 90 8d 74 26 00 55 89 e5 57 56 53 83 ec 44 3e 8d 74 26 00 89 c6 8b 45 10 <8b> 58 10 8b 45 08 c7 44 24 08 07 00 00 00 c7 04 24 00 d0 bf c1

              [  970.548547] EIP: [<c18579d3>] nl80211_send_iface+0x13/0x350 SS:ESP 0068:f5f13bd8

              [  970.548647] CR2: 0000000000000010

              [  970.824863] ---[ end trace 5aa104a3c8487c1a ]---

               

              I would like to know how to configure two virtual interfaces so that I can use both at the same time.

              • 4. Re: Wi-Fi, Valid interface combinations
                Intel_Alvarado

                Hi,

                 

                So when you try to run the command configure_edison –version the output of the system is “SATELLITE”?

                I’ve never seen this error on the Yocto image. What other configurations you made in your system that could have caused this? In case you are using Ubilinux you can also try asking in the ubilinux forum EmutexLabs since they are the ones who support this image.

                 

                Sergio

                • 5. Re: Wi-Fi, Valid interface combinations
                  wojci

                  > So when you try to run the command configure_edison –version the output of the system is “SATELLITE”?

                   

                  Yes. This is an image built from the latest sources.

                   

                  > What other configurations you made in your system that could have caused this?

                   

                  I added the iw utility to the Yocto image.

                   

                  I'm not using Ubilinux now, but it was what I was using initially. I'm using Yocto and the null ptr error from the linux kernel was produced using Yocto.

                  • 6. Re: Wi-Fi, Valid interface combinations
                    Intel_Alvarado

                    Hi,

                     

                    What is the output of running

                    root@edisonR2:~# configure_edison --latest-version
                    

                    The result must always be 120.

                     

                    Run the command

                    configure_edison –upgrade
                    

                    to see if this makes any change. After doing this report back the configure_edison –version output. If you get anything other than 120 post a screenshot.

                     

                    Sergio

                    • 7. Re: Wi-Fi, Valid interface combinations
                      wojci

                      > The result must always be 120.

                       

                      The output is different when you build the software yourself. The configure_edison script contains this:

                      def getCurrentFirmwareInfo():

                          f = open('/etc/version','r')

                          ver_str = f.readline()

                          f.close()

                          return ("edison-" + ver_str.split('-')[0], ver_str.split('-')[1].splitlines()[0])

                       

                      Since I build the image from the sources released by Intel, the function prints "SATELLITE".

                       

                      root@edison:~# cat /etc/version

                      Custom Edison build by wojci@wojci-SATELLITE-L855 2015-04-07 16:44:15 CEST

                       

                      I used the sources contained in "edison-src-ww05-15.tgz" to build this software.

                      • 8. Re: Wi-Fi, Valid interface combinations
                        Intel_Alvarado

                        Hi,

                         

                        If you build your own image and make any recipe changes you have to make sure you enable those changes in the new kernel. For this you can use menuconfig. Run systemctl restart wpa_supplicant and check that systemctl status connman is disabled.  What is the status of systemctl status wpa_supplicant?

                         

                        Sergio