Could You Please Tell Me Again How to Configure My OpenWrt?¶
Everytime a new OpenWrt release is out, I’ve the same
question: How do I upgrade and reconfigure my wireless access point the
exact same way it was before? Yeah, it sucks not being able to simply do a
sysupgrade or a
apt-get dist-upgrade and be done with it. But that’s
how it works with OpenWrt: when you upgrade to a major release version, the
configuration is gone.
Anyway, I do need a very simple configuration. It’s just that I never remember how to set it up. Hence, I’m dumping it in the blog so that next time it’ll be easy. Hopefully.
I want my access point configured as a Dumb Access Point. This means it will
not do any routing, or provide any services such as
Instead, it’ll rely on those services being provided by a main router, to which
it is connected to.
I have a small little box running OpenBSD that acts as a router, firewall,
DHCP server, and a few other things. My wireless access point
will simply connect to it through ethernet and transparently provide all these
services through wireless (and through its other ethernet ports). This means
that all devices connected to it will see any other devices connected to the
main router (the OpenBSD box) as they will be in the same network.
So, upgrading the access point firmware is really easy. I’ve used the web
LuCI) just because it’s handy. I explicitly disabled keeping the
configurations as the OpenWrt documentation states that this should be used only
on minor updates. Which wasn’t the case.
Before rebooting into the new firmware, I disconnected the access point from the
network (i.e. from the OpenBSD router) and connected my laptop to one of the
ethernet slots (not the
WAN one!). Then, I was able to
ssh into the
access point to start the configuration:
orpheu:~$ ssh firstname.lastname@example.org BusyBox v1.35.0 (2022-09-03 02:55:34 UTC) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 22.03.0, r19685-512e76967f ----------------------------------------------------- === WARNING! ===================================== There is no root password defined on this device! Use the "passwd" command to set up a new password in order to prevent unauthorized SSH logins. -------------------------------------------------- root@OpenWrt:~#
I followed the wise advice and changed the password for the root user.
Then, the configuration. Which is actually quite simple, although it took me
some time to figure out. The only files I need to touch are
config interface 'loopback' option device 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config globals 'globals' option ula_prefix 'fd7f:6a7a:db77::/48' config interface 'lan' option type 'bridge' option ifname 'eth0.1 eth0.2' option proto 'dhcp' config device option name 'eth0.2' option macaddr 'a4:2b:b0:b2:89:bf' config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '1' option ports '0 1 2 3 4 6t'
wireless file is much easier to understand:
config wifi-device 'radio0' option type 'mac80211' option path 'pci0000:00/0000:00:00.0/0000:01:00.0' option channel '36' option band '5g' option htmode 'VHT80' option cell_density '0' config wifi-iface 'default_radio0' option device 'radio0' option network 'lan' option mode 'ap' option ssid '<my-ssid>' option encryption 'psk2' option key '<my-key>' config wifi-device 'radio1' option type 'mac80211' option path 'platform/10180000.wmac' option channel '1' option band '2g' option htmode 'HT20' option disabled '1' config wifi-iface 'default_radio1' option device 'radio1' option network 'lan' option mode 'ap' option ssid 'OpenWrt' option encryption 'none'
That’s right, the AP has two radios, but I’m using a single one. Why should I use both? Actually, I should be using the second radio, with the 2G band as it probably saves a bit more energy.
Finally, I want to disable the
DHCP servers (both v4 and v6) and the
root@OpenWrt:~# /etc/init.d/odhcpd disable root@OpenWrt:~# /etc/init.d/odhcpd stop root@OpenWrt:~# uci set dhcp.lan.ignore=1 root@OpenWrt:~# uci commit dhcp root@OpenWrt:~# /etc/init.d/dnsmasq disable root@OpenWrt:~# /etc/init.d/dnsmasq stop
And done! Rebooting at this point made everything working as expected. And hopefully next time it won’t take me hours again to figure this out again.
Feel free to comment by sending me an email or pinging me at Mastodon.