Community
cancel
Showing results for 
Search instead for 
Did you mean: 
idata
Community Manager
2,538 Views

Ethernet with UGreen USB dongle

Hi,

I got the http://www.amazon.com/Gigabit-Ethernet-Network-Adapter-1000Mbps/dp/B00MYTSN18 UGreen USB dongle off Amazon and was trying to get Ethernet to work in the last hour. To no avail...

My Edison board is being powered up externally through the jack and I have rebooted with the dongle plugged into the big USB port and the switch toggled towards it. Running dmesg shows me the following (extract):

[ 6.084640] usb 1-1: new high-speed USB device number 2 using dwc3-host

[ 6.111273] usb 1-1: New USB device found, idVendor=0b95, idProduct=1790

[ 6.111305] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 6.111326] usb 1-1: Product: AX88179

[ 6.111388] usb 1-1: Manufacturer: ASIX Elec. Corp.

[ 6.111410] usb 1-1: SerialNumber: 00000000000028

So apparently, the device was detected correctly. But I don't see a legal eth0 reported anywhere.

After logging in, a quick check with "connmanctl" shows the following technologies:

/net/connman/technology/bluetooth

/net/connman/technology/wifi

Hmm... no Ethernet found. That would mean, I probably need a driver.

I checked again with "ip a" and "ifconfig". Seems that the dongle is legit:

"ip a" output:

1: lo: mtu 65536 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: sit0: mtu 1480 qdisc noop

link/sit 0.0.0.0 brd 0.0.0.0

3: wlan0: mtu 1500 qdisc pfifo_fast qlen 1000

link/ether fc:c2:de:3f:41:6d brd ff:ff:ff:ff:ff:ff

inet6 fe80::fec2:deff:fe3f:416d/64 scope link

valid_lft forever preferred_lft forever

4: usb0: mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 02:00:86:91:38:d8 brd ff:ff:ff:ff:ff:ff

"ifconfig" output:

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:65536 Metric:1

RX packets:11689 errors:0 dropped:0 overruns:0 frame:0

TX packets:11689 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:852298 (832.3 KiB) TX bytes:852298 (832.3 KiB)

usb0 Link encap:Ethernet HWaddr 02:00:86:91:38:d8

UP BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr fc:c2:de:3f:41:6d

inet6 addr: fe80::fec2:deff:fe3f:416d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:135 errors:0 dropped:0 overruns:0 frame:0

TX packets:71 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:12979 (12.6 KiB) TX bytes:11383 (11.1 KiB)

I have with me (delivered in the original packaging) a CD Rom with the ax88179_178a Linux make files (similar to https://github.com/geoffreytran/AX88179_178A this one online).

I therefore uploaded the four files into a temp folder on my Intel Edison via WinSCP and tried a make with it (as explained in their readme text file). But, I quickly got the following error:

make -C /lib/modules/3.10.17-poky-edison+/build SUBDIRS=/home/root/temp modules

make[1]: *** /lib/modules/3.10.17-poky-edison+/build: No such file or directory. Stop.

Makefile:30: recipe for target 'default' failed

make: *** [default] Error 2

I mkdir the build folder reported above and tried a "make" again. Here's the output:

make -C /lib/modules/3.10.17-poky-edison+/build SUBDIRS=/home/root/temp modules

make[1]: Entering directory '/lib/modules/3.10.17-poky-edison+/build'

make[1]: *** No rule to make target 'modules'. Stop.

make[1]: Leaving directory '/lib/modules/3.10.17-poky-edison+/build'

Makefile:30: recipe for target 'default' failed

make: *** [default] Error 2

I am aware of this thread (http://https//communities.intel.com/thread/76576 http://communities.intel.com/thread/76576), but dread having to follow all the steps in the pdf.

So what do I do now to get Ethernet to work? I don't have ready access to Linux on my laptops at my office. What should I do next?

Thanks.

Tags (1)
9 Replies
idata
Community Manager
140 Views

I have been reading this .

Unfortunately, I can't continue further, because I can't find this file:

linux-headers-3.10.17-poky-edison_3.10.17-poky-edison-1_i386.deb

Anyone have ideas where I can get a copy of this?

PS - Plus, I just installed 20160606 this morning and don't wish to flash my Edison again.

idata
Community Manager
140 Views

Hi gavinkoh70,

The linux-headers-3.10.17-poky-edison_3.10.17-poky-edison-1_i386.deb file has been re uploaded to https://drive.google.com/file/d/0B0wx-h5qgMLzeVhjUHp3X0QzUUU/view here

 

Now, with this file, continue following /thread/62873 https://communities.intel.com/thread/62873 and keep us updated on your progress.

-Sergio

 

idata
Community Manager
140 Views

Thanks... I left a query on that thread. Got stuck on step 7.

idata
Community Manager
140 Views

We'll run the steps on the guide. We'll let you know our results soon.

 

 

-Sergio

 

idata
Community Manager
140 Views

Thanks Sergio.

For your info, I have already dual partitioned and installed Ubuntu Linux 16.04 LTS on a spare PC on Monday, perused the http://http//www.intel.com/content/dam/support/us/en/documents/edison/sb/edisonbsp_ug_331188007.pdf BSP User Guide, and followed the steps in Shawn Hymel's blog over here: http://shawnhymel.com/724/creating-a-custom-linux-kernel-for-the-edison-yocto-2-1/ Creating a Custom Linux Kernel for the Edison (release 2.1) | Shawn Hymel

I decided to perform my very first bitbake with the https://downloadcenter.intel.com/download/25028/Intel-Edison-Board-Software-Package src labelled 25.5-15. After killing all the bugs (and there were at least 5 to contend with - ncurses, binutils, localedef, subversion, etc.), had to wait an agonizing few hours before I could run menuconfig to include the USB driver for the dongle - see tree below. This is the only option I enabled in menuconfig.

MenuConfig->

Device Drivers->

Network devices support->

USB Network Adapters->

Multi-purpose USB Networking Framework->

ASIX AA8179/178A USB 3.0/2.0 to Gigabit Ethernet

After flashing, dmesg showed this:

[ 0.741224] usbcore: registered new interface driver asix

[ 0.741304] usbcore: registered new interface driver ax88179_178a

[ 0.741380] usbcore: registered new interface driver cdc_subset

[ 0.741510] usbcore: registered new interface driver cdc_ncm

as opposed to this previous result:

[ 0.730162] usbcore: registered new interface driver asix

[ 0.730243] usbcore: registered new interface driver cdc_subset

[ 0.730376] usbcore: registered new interface driver cdc_ncm

But for some reason, the xHCI Controller (USB initialization) seems to be not waking up on boot. Plus, I can't get connmanctl to work; the output for connmanctl is shown below:

Error getting services: The name net.connman was not provided by any .service files

Error getting peers: The name net.connman was not provided by any .service files

Error getting technologies: The name net.connman was not provided by any .service files

So, its back to the drawing board to see where I went wrong - I am not too surprised since my bitbaking got tainted after I pressed CTRL+C too many times at one point.

Next, I guess I should try another round of bitbake with the latest source... by getting 3.10.98 based on these steps:

http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/about/ meta-intel-edison - Layer for the Intel Edison Development Platform

I need to make sure I get the same flashall output as what was published on the Intel Download page for 060616, before I start dabbling with menuconfig or modprobe.

FerryT
Valued Contributor I
140 Views

What I learned in the past years is that with linux you need to select hardware for which driver are already supported in the kernel. The reason is twofold:

- when not accepted yet by the kernel devs the quality is probably not good enough

- source files tend to build only for a specific kernel version, and fixing a broken kernel driver is way above my head.

We got ourselves an evaluation board of Microchips LAN9514 http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=EVB9514 http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=EVB9514. This expands the USB port to a 4-port hub + adds a single ethernet port.

The driver smsc95xx is already part of edisons kernel, although you need to build it. We used http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/ http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/and modified the kernel config to build this and other drivers we need. Or actually we build our own layer that adds this.

This my lsmod:

root@edison:~# lsmod

 

Module Size Used by

 

smsc95xx 31910 0

 

usb_f_acm 14335 1

 

u_serial 18582 6 usb_f_acm

 

g_multi 70924 0

 

libcomposite 39245 2 usb_f_acm,g_multi

 

bcm_bt_lpm 13708 0

 

bcm4334x 587105 0

 

 

And ifconfig:

enp0s17u1u1 Link encap:Ethernet HWaddr 00:80:0f:95:1d:4d

 

inet addr:192.168.1.46 Bcast:192.168.1.255 Mask:255.255.255.0

 

UP BROADCAST RUNNING MULTICAST DYNAMIC MTU:1500 Metric:1

 

RX packets:2917782 errors:0 dropped:94 overruns:0 frame:0

 

TX packets:492545 errors:0 dropped:0 overruns:0 carrier:0

 

collisions:0 txqueuelen:1000

 

RX bytes:320604892 (305.7 MiB) TX bytes:158226400 (150.8 MiB)

 

 

lo Link encap:Local Loopback

 

inet addr:127.0.0.1 Mask:255.0.0.0

 

inet6 addr: ::1/128 Scope:Host

 

UP LOOPBACK RUNNING MTU:65536 Metric:1

 

RX packets:27862 errors:0 dropped:0 overruns:0 frame:0

 

TX packets:27862 errors:0 dropped:0 overruns:0 carrier:0

 

collisions:0 txqueuelen:0

 

RX bytes:2017280 (1.9 MiB) TX bytes:2017280 (1.9 MiB)

 

usb0 Link encap:Ethernet HWaddr 02:00:86:21:c5:1e

 

inet addr:192.168.2.15 Bcast:192.168.2.255 Mask:255.255.255.0

 

UP BROADCAST MULTICAST MTU:1500 Metric:1

 

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

 

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

 

collisions:0 txqueuelen:1000

 

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

As you can see we are not using usb0 or wlan (rfkilled).

 

The eval board is not exactly cheap, but comes with a schematic that will allow us to design our own pcb with the edison on it.

I would have been even better for us if the edison came with a base board with this included instead of all the arduino stuff that we are not using.

idata
Community Manager
140 Views

Managed to compile 3.10.98 without any problems at all. But upon comparing my output with that made by Intel (see below), I noticed I was missing a lot of packages (after comparing package-list.txt). Since the actual configuration options used by Intel doesn't seem to be available anywhere, I shall use opkg install/update with AlexT's repo. But first, I shall have to enable the required driver for my USB Ethernet Dongle - taking into consideration what FerryT wrote.

Will post my results here once I am done.

Intel's version

Directory of C:\Users\A\Downloads\iot-devkit-prof-dev-image-edison-20160606

...

07/06/2016 12:22 PM 1,373,149,184 edison-image-edison.ext4

...

07/06/2016 12:22 PM 17,626 package-list.txt

26 File(s) 1,444,843,467 bytes

My compiled output:

Directory of C:\Users\A\Downloads\toFlash

...

16/06/2016 03:57 AM 587,879,424 edison-image-edison.ext4

...

16/06/2016 03:58 AM 13,391 package-list.txt

26 File(s) 659,569,472 bytes

idata
Community Manager
140 Views

Finally, I got the UGreen USB Dongle to work! And it seems I have both Ethernet and Wifi enabled together, although only one can operate at a time. Further testing shall definitely be required.

Took me 4 full days plus 1 OS installation and 3 full bitbakes, but it was definitely worth it in the end.

For sharing, here are the steps I followed (including the references I looked at).

Prepare your Linux platform for compiling the kernel. Follow this:

[Ref: http://intel.com/support/edison/sb/CS-035278.htm http://intel.com/support/edison/sb/CS-035278.htm and http://www.ubuntu.com/download/desktop Download Ubuntu Desktop ]

1) Install Ubuntu Desktop 16.04 LTS via DVD or USB stick.

2) Prepare your OS with the prerequisite packages:

sudo apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib

Want to work with 3.10.98 (or latest verson of Yocto)? Follow this:

[Ref: http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/about/ meta-intel-edison - Layer for the Intel Edison Development Platform and http://shawnhymel.com/724/creating-a-custom-linux-kernel-for-the-edison-yocto-2-1/ Creating a Custom Linux Kernel for the Edison (release 2.1) | Shawn Hymel]

3) Make your workspace folder:

mkdir my_Edison_Workspace

4) Make these temp folders inside your workspace with:

mkdir bitbake_download_dir

mkdir bitbake_sstate_dir

5) Clone the meta-intel-edison layer via:

git clone git://git.yoctoproject.org/meta-intel-edison

6) Initialize the build environment with the next three lines:

./meta-intel-edison/setup.sh --dl_dir=bitbake_download_dir --sstate_dir=bitbake_sstate_dir

cd out/linux64/

source poky/oe-init-build-env

7) Create your Intel Edison Yocto image with:

bitbake edison-image

This process will take about 3 - 5 hours, stick around to make sure there are no hiccups.

PS: The solution to the paho error is here:

PPS: The solution to the swig error is to keep trying bitbake (perhaps it's a timeout issue?) or to get the direct link and replace it yourself (refer to prior link regarding the solution to the paho error for an idea of what needs to be done).

Want to add a new device driver? Follow this:

[Ref: http://alextgalileo.altervista.org/blog/reconfiguring-linux-kernel-adding-drivers-galileos-linux-ima... http://alextgalileo.altervista.org/blog/reconfiguring-linux-kernel-adding-drivers-galileos-linux-ima... and http://cateee.net/lkddb/web-lkddb/USB_NET_AX88179_178A.html Linux Kernel Driver DataBase: CONFIG_USB_NET_AX88179_178A: ASIX AX88179/178A USB 3.0/2.0 to Gigabit Ethernet and http://intel.com/support/edison/sb/CS-035278.htm http://intel.com/support/edison/sb/CS-035278.htm ]

8) Invoke menuconfig to add in your new device driver:

bitbake virtual/kernel -c menuconfig

9) Navigate within menuconfig and turn on the following option by setting it to "M" (shared module):

MenuConfig->

Device Drivers->

Network devices support->

USB Network Adapters->

Multi-purpose USB Networking Framework->

ASIX AA8179/178A USB 3.0/2.0 to Gigabit Ethernet

10) Don't forget to turn off the ASIX AX88xxx Based USB 2.0 Ethernet Adapters. Change it from "X" to " " (empty).

11) Tab and then 'Save' the config as my.config. Open my.config. You should be able to find it at this folder:

my_Edison_Workspace/out/linux64/build/tmp/work/edison-poky-linux/linux-externalsrc/1.0-r2/

package/usr/src/kernel

Search for the following lines in my.config:

<pre __default_attr="plain" __jive_macro_name="c...
FerryT
Valued Contributor I
140 Views

Great description.

BTW: Instead of manually modifying the kernel config, we have bitbake patch it. For this we created a file ending with cfg, smsc95xx.cfg, with:

CONFIG_USB_NET_SMSC95XX=m

meta-intel-edison,'s linux-externalsrc.bb copies a fresh config from the kernel source cache so you will loose your changes each time you run setup.

However, bitbake knows how to patch the config file, so we add the following to our recipies linux-externalsrc.bbappend:

SRC_URI += "file://ftdi_sio.cfg"

This way we can add other config patches easily (CONFIG_USB_SERIAL_FTDI_SIO=m), and keep them together with kernel patches (rt-prempt patch, dma bugf size)

Reply