USB-Ethernet device for Linux
For our Embedded Linux training sessions, I was looking for a USB to Ethernet device. Since Linux supported devices are often difficult to find, I’m glad to share my investigations here.
When you use an embedded development board, you must connect it to your computer with an Ethernet cable, for example to transfer a new kernel image to U-boot through tftp, or to make your board boot on a directory on your workstation, exported with NFS.
You could connect both the board and computer to your local network, which would still allow your computer to connect to the Internet while you work with the board. However, you may create conflicts on your local network if you don’t use DHCP to assign an IP address to your board (if your DHCP server even accepts this new device on the network). In a training environment, you are also likely to run out of Ethernet outlets in the training room if you have to connect 8 such boards. Hence, a direct connection between the board and your workstation’s Ethernet port is often the most convenient solution.
If you can’t use WIFI to keep your computer connected to the outside world, a good solution is to add an extra Ethernet port to your computer by using an USB-to-Ethernet device.
My colleague Thomas and I started looking for such devices that would be supported by Linux. Here are a few that we found:
- D-Link DUB-E100. Supported by the USB_NET_AX8817X driver. However, this product is bulky and quite heavy (at least 100 grams).
- TRENDnet TU2-E100. Supported by the same driver, but still bulk (August 2015 update: now replaced by a more recent version, now almost as small as the Apple one, and supported out of the box in Linux. See the comment about this device.)
- Linksys USB 200m. Supported by the same Linux driver and has a much more acceptable size, but customer reviews complain that its connector can break easily.
- Apple USB Ethernet Adapter. This should be working out of the box in Linux. At least the MB442Z/A or MC704ZM/A references did, but Apple now sells a new reference that might have a different chipset. It is beautiful, small and light. Support for this device (at least the references I mentioned) was added to Linux 2.6.26 through the same driver. You should be able to use it in recent distros.
So, I recommend the Apple device. I event posted a comment on the Apple Store, titled “Perfect for Linux”! I hope the Apple droids won’t censor it. Don’t hesitate to buy it, so that we can confirm that the latest reference is supported too.
I can’t tell whether this could happen with Apple. This was the first Apple device I ever bought…
Author: Michael Opdenacker
Michael Opdenacker is the founder of Bootlin, and was its CEO until 2021. He is best known for all the free embedded Linux and kernel training materials that he created together with Thomas Petazzoni. He is always looking for ways to increase performance, reduce size and boot time, and to maximize Linux’ world domination. More details. View all posts by Michael Opdenacker
41 thoughts on “USB-Ethernet device for Linux”
Yes, it is really nice.
Apple Store is also really efficient!!
A question: does u-boot support this device?
I own both the linksys and apple one and I must say that the linksys one is extremely flimsy and wider than a standard usb plug, so for ‘horizontal’ hub you loose 3 slots. The apple one is sturdy and only takes one usb slot in ‘horizontal’ hubs.
Good news. Apple accepted my “Perfect for Linux” comment (Webmaster note: page no longer available). Well, Apple may not see Linux as a direct threat as Microsoft does, but I didn’t expect them to accept Linux related comments on their websites.
I absolutely agree that Apple Ethernet adapter works very well under Linux (running on MIPS in our case). We’ve tested others, but none worked as well as Apple’s.
USB rj-45 сетевая карта без «установки драйверов»?
Я сейчас бегло погуглил. На многое даже вендовозы жалуются, что оно дров хочет. И линупсисты тоже не все довольны.
Тема в надежде на то, что кто-то удачно купил и пользуется.
посмотри в исходниках ядра для каких есть
facepalm.png
Почему тогда не UCB?
берёшь ноут, идёшь в магазин, втыкаешь, смотришь dmesg, если определился, значит подходит
Какой dmesg, он вендоузятнег.
вот будет повод линукс поставить
Для Linux, наверное, все. Для шindows — на винфак.
ну или планшет с андроидом, там-то dmesg будет
Чтобы через неделю, не разобравшись в ситуации, стал опять поливать linux грязью?
С D-Link-ами внимательнее, под одним названием модели (хорошо, если с разным номером ревизии) могут продаваться железки на совсем разных чипах.
Про других пусть добавляют те, кто с подобным сталкивался.
Без рута на ведроиде dmesg не работает. По крайней мере у меня.
пусть тогда воткнет и в диспетчере устройств смотрит.
dk- исправил бы и «адаптер», т.к. это полноценная usb-сетевая карта, давай уж правильно писать до конца.
«ходить в магазин»? ты с дубу рухнул? все привозят на место.
Это одна из 10-15 известных мне команд!
тогда заказывай 10-15 разных, какой-нибудь да заведётся
А я думал, наоборот. Один какой-нибудь из 10-15 не заведётся.
надо готовиться к худшему развитию событий! Если внезапно заведутся все, это будет приятным сюрпризом
По теме 2.0 USB-lan? Всё работает на всём, включая одноплатники, детсадовца позови, сделает.
Вендузятник должен страдать.
Брал какой-то кетайский, завелось из корбки. И бесчисленное множенство вай-фаев, в основлном нищебродские tp-link. Или ты про ферму и у тебя линукс?
Оно самое. Сетевка в мамке походу сдохла.
Чо там за чип? В левом нижнем углу, чуть ниже внешних разъемов сеть находится. Привози, благо соседи, махнем. С тебя пиво на майских
Воткнул и работает. В чём проблема-то?
Это те, что из соплей девственниц для лохов? В смысле, для успешных людей 😀
На многое даже вендовозы жалуются, что оно дров хочет.
Так с вендой дрова не распространяются, почти для любого железа качать надо отдельно.
Венда этому сама обучена, и конпелировать ничего не надо.
Брал два разных переходника от 5bites. Один usb 2.0 100mbit, другой — usb 3.0 1gbit с usb хабом. Оба заработали с полпинка, ещё в виртуалку прокидывал. Но насколько стабильно работают — хз, я максимум пару часов за раз использовал.
onlybugs ★★ ( 24.04.18 23:00:40 MSK )
Последнее исправление: onlybugs 24.04.18 23:01:06 MSK (всего исправлений: 1)
Сетевухи с RTL8153B на Debian тоже с одного тычка заводятся и гигабит на USB3 выдают. Возможно usb-modeswitch понадобится, если сетевая как CD-ROM определяется.
чип или сам порт сломался? второе ведь можно перепаять.
How to set up an usb/ethernet interface in Linux?
I have an usb to ethernet adapter connected to my linux system. I edited the connection information, and gave manual ip 192.168.1.21 in the connections menu available at the top right. In the above command lines we can see the available connection information on my system. I am not able to make the interface up for the en0016b68261f . Below are my interfaces present in /etc/network :
interfaces(5) file used by ifup(8) and ifdown(8) #The loopback network interface auto lo iface lo inet loopback # The primary network interface iface eno1 inet dhcp
When I try to ping the port at the other end of the usb to ethernet adapter, whose ip address is 192.168.1.14, I am not able to ping this ip address of my development board. How can my usb to ethernet adapter be set up? Traceroute shows this:
me@me:/$ traceroute 192.168.1.21 traceroute to 192.168.1.21 (192.168.1.21), 30 hops max, 60 byte packets 1 192.168.1.21 (192.168.1.21) 0.231 ms 0.192 ms 0.180 ms me@me:/$ traceroute 192.168.1.14 traceroute to 192.168.1.14 (192.168.1.14), 30 hops max, 60 byte packets 1 * * * 2 * * * (. ) 29 * * * 30 * * *
What makes you think 192.168.1.14 is ping able? Please add your routing table ( ip route show ) to your question.
You should have a close look at the machine 192.168.1.14 . Your network configuration on 192.168.1.21 looks OK. I suspect that the problem lies on the other machine which either block your pings requests, or its ping replies. Or you may have a problem with your network equipments/cables (you didn’t tell us how the two machines were connected; direct cable?).
nope it is accepting the ping when it is on dhcp on another machine. When i login and give the ip as 192.168.1.14 for the ethernetport on the other machine. Then i am able to ping. If i set the above ip address as a static ip address I am not able to ping it from my machine through 192.168.1.21
Yeah i have attached my traceroute in the above question, is traceroute command equivalent to iproute command in linux??
Absolutely not. Despite your beliefs, you should really take a look at the other side. At least spy what comes and go at the other end of the Ethernet cable (on 192.168.1.14 ) with a tool like tcpdump or wireshark.