Chicken/Egg problem with Raspberry Pi and USB-ethernet

I'm attempting to bring up my first OpenWRT install, a Raspberry PI 3B+.

Because this hardware has only one native Ethernet port, I needed to add a USB pigtail to give me a second port for the WAN side. But OpenWRT doesn't acknowledge the second port as present. Seems it needs a driver. (Damn the idiots who standardized USB for not specifying a universal Ethernet device the way they specified a universal mouse and keyboard....)

It looks like I need to use "opkg" to add the driver "kmod-usb-net-rtl8152". I was able to get ssh working no problem, but "opkg" needs real internet access to do anything, as the extra packages are themselves "in the cloud". Real internet access requires a working WAN port, creating a chicken/egg problem.

And even if I'm talking to the the control panel over Wi-Fi, the Wi-Fi stops working if I try to shift the Pi's native Ethernet port from LAN ("static IP") to WAN ("DHCP client").

So I'm looking for a way to get said package as a file I can copy into OpenWRT over scp, and to tell opkg to use it instead of the cloud.

1 Like
grep kmod /etc/opkg/*.conf

(or luci > system > software > opkg > configure-opkg)

go to the kmod url and download;

kmod-mii
kmod-usb-core
kmod-usb-net
kmod-usb-net-rtl8152

ipk files...

upload them to your router and install them or use luci to upload/install...

2 Likes

Another option is to configure you Pi4 with a static IP address in your home subnet and to configure a gateway and DNS for your existing router/modem which you use for internet.

For example on a vanilla Pi4 install if you look at /etc/config/network and we assuming your existing router is at 192.168.1.1

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdff:ac50:10da::/48'

config interface 'lan'
	option ifname 'eth1'
	option proto 'static'
	option ipaddr '192.168.1.200' <-- Update this entry not to clash with your existing router
	option netmask '255.255.255.0'
	option gateway `192.168.1.1` <-- Add this entry to point to your existing router
	option ip6assign '60'

config interface 'wan'
	option proto 'dhcp'
	option ifname 'eth0'

...and then DNS in /etc/resolv.conf

search lan
nameserver 127.0.0.1 <---- set to "192.168.1.1"
nameserver ::1

Then plug the Pi into the your existing router using a network cable and you should be able to download anything you need.

Remember to "undo" the changes above if you intend to use the Pi as a router once you have both ethernet interfaces enabled.

4 Likes

I changed the raspberry pi needing a 2nd wan interface driver to using vlan35 for the wan on eth0.35. On the modem, I leave the dsl tagged at vlan35. This works for the Banana pi M1 as well. I found that vlan35 was leaking throughout the lan via the unmanaged switches, so I bought a managed switch to isolate vlan35.