[yocto] USB Ethernet problems

Hans Beckérus hans.beckerus at gmail.com
Fri Apr 5 06:50:26 PDT 2013


On Fri, Apr 5, 2013 at 3:27 PM, Gary Thomas <gary at mlbassoc.com> wrote:

> On 2013-04-05 07:23, Gary Thomas wrote:
>
>> On 2013-04-05 06:57, Hans Beckérus wrote:
>>
>>>
>>>
>>> On Fri, Apr 5, 2013 at 2:48 PM, Gary Thomas <gary at mlbassoc.com <mailto:
>>> gary at mlbassoc.com>> wrote:
>>>
>>>     On 2013-04-05 06:38, Hans Beckérus wrote:
>>>
>>>
>>>
>>>         On Fri, Apr 5, 2013 at 12:16 PM, Gary Thomas <gary at mlbassoc.com<mailto:
>>> gary at mlbassoc.com> <mailto:gary at mlbassoc.com <mailto:gary at mlbassoc.com>>>
>>> wrote:
>>>
>>>              On 2013-04-05 03:08, Hans Beckérus wrote:
>>>
>>>                  Hi. In our configuration we do not have an on-board
>>> Ethernet device. It connected to the USB-host adapter.
>>>                  It seems that probing of such devices are done very
>>> late in the kernel boot-up which means it gets out of sync with the network
>>> init script(s)
>>>                  and the NIC thus has to be brought up manually after
>>> boot.
>>>
>>>                  ...
>>>                  usb 1-1: new high-speed USB device number 2 using
>>> xusbps-ehci
>>>                  hub 1-1:1.0: USB hub found
>>>                  hub 1-1:1.0: 4 ports detected
>>>                  VFS: Mounted root (ext2 filesystem) on device 1:0.
>>>                  devtmpfs: mounted
>>>                  Freeing init memory: 152K
>>>                  INIT: version 2.88 booting
>>>                  usb 1-1.4: new high-speed USB device number 3 using
>>> xusbps-ehci
>>>                  Starting Bootlog daemon: bootlogd: cannot allocate
>>> pseudo tty: No such file or directory
>>>                  bootlogd.
>>>                  Configuring network interfaces... ifconfig:
>>> SIOCGIFFLAGS: No such device
>>>                  INIT: Entering runlevel: 5
>>>                  Starting Dropbear SSH server: NET: Registered protocol
>>> family 10
>>>                  dropbear.
>>>                  Starting syslogd/klogd: done
>>>                  Stopping Bootlog daemon: bootlogd.
>>>                  asix 1-1.4:1.0: eth0: register 'asix' at
>>> usb-xusbps-ehci.0-1.4, ASIX AX88772 USB 2.0 Ethernet, fc:75:16:cf:6a:86
>>>                  ...
>>>
>>>                  Is there some way to configure a system through Yocto
>>> to handle this scenario?
>>>
>>>
>>>              I run exactly this setup on many different platforms with
>>> no issues
>>>              so it can definitely be done with Poky/Yocto.
>>>
>>>              What system (target) are you using?
>>>              What version of the metadata (Poky/Yocto) are you using?
>>>  master?  danny?  etc
>>>              How is your network device configured?
>>>
>>>         I am on branch master.
>>>         My network device is *not* configured. That is the whole
>>> point/?problem?. The kernel knowns nothing about the NIC at boot.
>>>         It is not detected until it first detects the USB 2.0 host
>>> adapter. Then after a few moments the NIC is probed and eth0 becomes
>>> available through the ASIX driver. But its
>>>         too late,
>>>         the /etc/init.d/networking is already done trying ifup :(
>>>         Is there some configuration on network level I can do to fix
>>> this? Right now I have an ugly patch in /etc/init.d/networking that spins
>>> until eth0 comes up. It solves the
>>> sync
>>>         issue, but also requires some sort of timeout to not get stuck
>>> forever if the device is never inserted :(
>>>
>>>
>>>     Is your ethernet driver compiled in or a kernel module?
>>>
>>>     I'm using a compiled in driver (the same one BTW) and it works fine.
>>>
>>>
>>> It is compiled into the kernel. If you look at boot log I sent in the
>>> initial mail you can see that the actual ASIX device (D-Link DUB-E100) is
>>> detected much later than the host
>>> adapter :( How is it in your case?
>>> Maybe it is the actual device that is not responding quickly enough? Are
>>> you pre-configuring anything in your bootargs prepared from U-Boot for eth?
>>>
>>
>> No, I don't do anything special at all.  My boot log is attached.
>> You can see that the interface (on the USB) is found quite early.
>> That said, the system works fine even if I plug it in later on.
>>
>> You still did not show us your '/etc/network/interfaces' file.
>> Mine contains these lines which make it handle the network device
>> coming and going:
>>    # Wired interface (on optional board)
>>    auto eth0
>>    iface eth0 inet dhcp
>>
>>
>> That is what I have. I use whatever default poky gave me ;)
But looking at your log makes me wonder if your system simply are running a
lot more other stuff causing networking to be delayed enough for the ASIX
device to be probed before /etc/init.d/networking is executed?
Also, this
[    1.999420]  gadget: Ethernet Gadget, version: Memorial Day 2008
[    2.005798]  gadget: g_ether ready
I have not added USB gadget interface support for Ethernet in my kernel. Do
I really need it? I don't think that the ASIX is using that interface, is
it not using the old classic USB device modell?


> Sorry for the extra noise in the log - I didn't realize that it
> was still on while I was checking the /etc/network/interfaces file...
>
> No problem ;)

Hans
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130405/dbf5438a/attachment.html>


More information about the yocto mailing list