No eth0 after install generic x64 image

Hi guys,

after several attempts I’ve almost succeeded installing Home Assistant Operating System onto my Chuwi Larkbox mini.
I’ve used this guide: Generic x86-64 - Home Assistant
After booting Ubuntu Live I copied the downloaded image to the internal eMMC and rebooted the computer. Initially I thought something had gone wrong, eventually I figured out the system didn’t have an internet connection and that was the reason it wasn’t booting correctly. (The connection was working, and still is working, on the Ubuntu Live OS)
I still haven’t figured out how to get the wired ethernet to work, with this I could use your help.
For now, I got the Wifi connection going (I used this guide: Guide: Connecting Pi with Home Assistant OS to wifi (or other networking changes)) and Home Assistant is reachable and everything else seems to work.

I would like to use the wired connection though. As you can see below, the eth0 (or similar device) is missing and I’ve no clue how to get it in there.

Any help would be appreciated. Thanks in advance!

Some, hopefully helpful, information:

➜  ~ nmcli con show  
NAME                       UUID                                  TYPE      DEVICE 
RenN                       fd685ee3-e49b-484f-9b12-470810134c1a  wifi      wlo2   
Home Assistant OS default  f62bf7c2-e565-49ff-bbfc-a4cf791e6add  ethernet  --    
  ~ nmcli dev status 
DEVICE       TYPE      STATE      CONNECTION 
wlo2         wifi      connected  RenN       
docker0      bridge    unmanaged  --         
hassio       bridge    unmanaged  --         
dummy0       dummy     unmanaged  --         
veth11fe087  ethernet  unmanaged  --         
veth38716fe  ethernet  unmanaged  --         
veth407dbf1  ethernet  unmanaged  --         
veth4d4a3a2  ethernet  unmanaged  --         
veth5b9c9af  ethernet  unmanaged  --         
veth9bf9c7e  ethernet  unmanaged  --         
sit0         iptunnel  unmanaged  --         
lo           loopback  unmanaged  --         
➜  ~ dmesg | grep -i eth0
[    9.408399] eth0: renamed from veth8e1f1c8
[   34.062237] eth0: renamed from vethdbf61e4
[   38.406386] eth0: renamed from veth97c6ec9
[   38.927304] eth0: renamed from vethb18827b
[   39.420048] eth0: renamed from veth65b844a  
➜  ~ ifconfig -a 
docker0   Link encap:Ethernet  HWaddr 02:42:08:2C:17:15  
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:8ff:fe2c:1715/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:807 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:817 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:86718 (84.6 KiB)  TX bytes:307552 (300.3 KiB)

dummy0    Link encap:Ethernet  HWaddr 4A:E4:9B:3E:E4:E6  
          BROADCAST NOARP  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)

hassio    Link encap:Ethernet  HWaddr 02:42:A6:C7:82:8F  
          inet addr:172.30.32.1  Bcast:172.30.33.255  Mask:255.255.254.0
          inet6 addr: fe80::42:a6ff:fec7:828f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18408 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34727 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6774834 (6.4 MiB)  TX bytes:10065756 (9.5 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:472 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:472 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:28188 (27.5 KiB)  TX bytes:28188 (27.5 KiB) 

sit0      Link encap:IPv6-in-IPv4  
          NOARP  MTU:1480  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)

veth11fe087 Link encap:Ethernet  HWaddr 0E:9C:35:94:5E:0A  
          inet6 addr: fe80::c9c:35ff:fe94:5e0a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8359 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25140 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:572117 (558.7 KiB)  TX bytes:7513102 (7.1 MiB)

veth38716fe Link encap:Ethernet  HWaddr 1E:3C:C3:C6:73:96  
          inet6 addr: fe80::1c3c:c3ff:fec6:7396/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11707 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43696 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6598292 (6.2 MiB)  TX bytes:10661781 (10.1 MiB)

veth407dbf1 Link encap:Ethernet  HWaddr CA:0E:65:38:F8:F0  
          inet6 addr: fe80::c80e:65ff:fe38:f8f0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:807 errors:0 dropped:0 overruns:0 frame:0
          TX packets:863 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:98016 (95.7 KiB)  TX bytes:311475 (304.1 KiB)

veth4d4a3a2 Link encap:Ethernet  HWaddr BA:BA:B3:1C:37:F9  
          inet6 addr: fe80::b8ba:b3ff:fe1c:37f9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32694 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:7996198 (7.6 MiB)

veth5b9c9af Link encap:Ethernet  HWaddr 3A:35:5B:F3:38:C3  
          inet6 addr: fe80::3835:5bff:fef3:38c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32704 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3707 (3.6 KiB)  TX bytes:8000317 (7.6 MiB)

veth9bf9c7e Link encap:Ethernet  HWaddr DE:5F:AA:C6:4C:55  
          inet6 addr: fe80::dc5f:aaff:fec6:4c55/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:996 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34036 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:70870 (69.2 KiB)  TX bytes:8099079 (7.7 MiB)

wlo2      Link encap:Ethernet  HWaddr 9C:FC:E8:AE:51:C3  
          inet addr:192.168.1.107  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::c65c:1896:d612:17b2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:134327 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19849 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:47301975 (45.1 MiB)  TX bytes:12181684 (11.6 MiB)

I just looked up the specifications of the Chuwi Larkbox. Are you sure it has an Ethernet port? I don’t see one.

1 Like

Sorry, I forgot to add this part.
No, it doesn’t have one. I’m using an USB 3.0 hub with 3 USB ports and an ethernet port.

HA OS is based upon Buildroot (https://buildroot.org/). It’s possible there’s no kernel support with a driver for your device unless the kernel is rebuilt to add it.

Unless someone knows otherwise, the best bet is to look for information on the 'net and see if there’s a way to add it to the operating system after it’s been built.

Perhaps it’s not the best example, but this shows how to modify and rebuild a kernel for a different application:

https://developer.qualcomm.com/qfile/28933/lm80-p0436-21_usb-ethernet-adapter_appnote.pdf

Of course, you’re likely to be blazing a new trail getting it to work with HA. If you’re successful, post your solution.

The HA OS repository links are below:

https://github.com/home-assistant/operating-system

https://github.com/home-assistant/operating-system/blob/720390862a69090911540cd36f5c3ac6917bc708/buildroot-external/configs/generic_x86_64_defconfig

A more direct way of getting a working system is to load Debian (64-bit) and configure a compliant Supervised installation. Be sure to investigate how to add an appropriate driver to the installation. If you connect your hub to the Larkbox during installation, it might find the correct driver automatically.

https://www.home-assistant.io/installation/generic-x86-64

https://community.home-assistant.io/t/installing-home-assistant-supervised-on-debian-10/200253

Look in the thread for references to ‘non-free’ distributions of Debian. There’s the possibility those distributions will have a suitable driver in it.

Good luck.

2 Likes

Hi Rob,

first of all, thanks for your extensive reply and for pointing me in the right direction.
In the past few days I’ve learned some more about HAOS, this is all new to me. So far I’ve only been a user of it.

I understand the concept and understand what’s missing. I’ve been doing some research, but unfortunately I didn’t succeed, yet.
I want to learn how the drivers can be added to the kernel and I hope somebody can point me into the right direction.

I’ve followed this guide:

Up to the “make ova” command.

I’ve edited the file:
buildroot-external/board/pc/generic-x86-64/kernel.config

I added this to the end:

CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
CONFIG_USB_NET_CDC_NCM=m

I’m not entirely sure if these are the lines I need to add and if I’m adding them in the right place.

Afterwards I ran “make generic_x86_64”, several hours later I got some errors.
After re-running “make generic_x86_64”, I get this output:

[email protected]:/build# make generic_x86_64       
config generic_x86_64
make -C /build/buildroot O=/build/output BR2_EXTERNAL=/build/buildroot-external "generic_x86_64_defconfig"
make[1]: Entering directory '/build/buildroot'
  GEN     /build/output/Makefile
#
# configuration written to /build/output/.config
#
make[1]: Leaving directory '/build/buildroot'
build generic_x86_64
make -C /build/buildroot O=/build/output BR2_EXTERNAL=/build/buildroot-external VERSION_DEV="dev20210728"
make[1]: Entering directory '/build/buildroot'
/usr/bin/make -j1 O=/build/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" syncconfig
make[2]: Entering directory '/build/buildroot'
  GEN     /build/output/Makefile
make[2]: Leaving directory '/build/buildroot'
>>> intel-e1000e 3.8.7 Downloading
--2021-07-28 19:58:31--  https://downloads.sourceforge.net/project/e1000/e1000e%20stable/3.8.7/e1000e-3.8.7.tar.gz
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 204.68.111.105
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|204.68.111.105|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-07-28 19:58:31 ERROR 404: Not Found.

--2021-07-28 19:58:31--  http://sources.buildroot.net/intel-e1000e/e1000e-3.8.7.tar.gz
Resolving sources.buildroot.net (sources.buildroot.net)... 104.26.0.37, 172.67.72.56, 104.26.1.37, ...
Connecting to sources.buildroot.net (sources.buildroot.net)|104.26.0.37|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-07-28 19:58:31 ERROR 404: Not Found.

--2021-07-28 19:58:31--  http://sources.buildroot.net/e1000e-3.8.7.tar.gz
Resolving sources.buildroot.net (sources.buildroot.net)... 104.26.1.37, 172.67.72.56, 104.26.0.37, ...
Connecting to sources.buildroot.net (sources.buildroot.net)|104.26.1.37|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-07-28 19:58:32 ERROR 404: Not Found.

make[1]: *** [package/pkg-generic.mk:148: /build/output/build/intel-e1000e-3.8.7/.stamp_downloaded] Error 1
make[1]: Leaving directory '/build/buildroot'
make: *** [Makefile:35: generic_x86_64] Error 2

I cannot really figure out why I’m getting these errors and how to proceed. The machine has an internet connection (I can ping google).
Any help would be much appreciated!
If I won’t succeed with this, I will try your second suggestion, install Home Assistant on Debian. Thanks!

Hi Ron,

I can’t help too much with Buildroot. At one point, I was looking to see how to configure a generic amd64 system, but there was an announcement there would be support for it. I guess I could migrate to HA OS now that it has arrived. You’re now going through the misery I was facing months ago.

Currently I’m using Debian and it works pretty well. If you need help with that, I’ve learned enough to help you though the steps if you need it. That said, I’m more of a hardware guy than software.

I think the issue I see with your output is the link. For some reason, it doesn’t resolve at the Sourceforge site. Is there any way to download it and have the script point to a local USB drive, or perhaps other links to the same data?

This might work, but it’s not 3.8.7. (3.8.4 is shown as the latest):

https://downloadmirror.intel.com/15817/eng/e1000e-3.8.4.tar.gz

Here’s a list of drivers:

https://downloadcenter.intel.com/product/50395/Intel-Gigabit-CT-Desktop-Adapter

Are you sure the external USB/Ethernet interface is based upon an Intel product? Can you plug it into a Windows PC and see what Device Manger thinks it is?

If all else fails, you might try to generate a Pull Request at the HA OS GitHub and see if you get any help.

As an aside, one of these days I’d like to get back to Gornergrat.

This might be close to what I think you need to do. I hope it helps.

http://www.better-bsp.com/blog/2017/03/02/buildrooting-for-apu2/

Hi Rob,

time for an update. I gave Buildroot multiple tries.
Even without making any changes and simply following the instructions from the HA github page, I keep getting errors. Most of them I could resolve, however unfortunately not all of them.
Following some other guides didn’t get me anywhere, as the Buildroot process for HAOS seems to be slightly different (or am I mistaken?).

Hopefully, more drivers will be added to the HAOS in the future and this will work out of the box.
For now, I’ve installed Debian with the supervised HA. This was actually a piece of cake! Didn’t even take me 15 minutes. I should have done this straight away… haha.

Thanks for all your help, I’ve definitely learned some new things :slight_smile:

2 Likes

Hi Ron.

I was hoping you could understand the procedures and get it working. Obviously, it’s arcane enough that it’s out of reach for the both of us. I don’t even know enough to say the process is slightly out of the norm. I’m just glad to hear you got the Supervised installation up and running.