Upgrade OpenWrt One

I decided to upgrade my OpenWrt One WiFi router.

I followed the directions.

  1. I used fdisk on a USB flash drive to create a “W95 FAT32” (type “0b”) partition.
  2. I ran sudo mkfs.fat /dev/sdb1 on that “W95 FAT32” partition
  3. I mounted the FAT32 partition on Linux: mnt /dev/sdb1 /mnt/sdb1
  4. I downloaded and copied openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb into /mnt/sdb1/
  5. After unmounting and “ejecting” /dev/sdb1, I pulled the power from the OpenWrt One, and plugged the USB flash drive in the front of the OpenWrt One enclosure.
  6. I verified that the switch on the back of the enclosure was set to NAND
  7. Pressed and held the little black button (labeled Reset) on the back of the enclosure
  8. Re-inserted the USB-C power cord.
  9. waited for the LED on the front of the enclosure to go green.

I ended up getting tired of holding the little black Reset button so I set down the OpenWrt One to wait for the LED to turn green. The flash drive had an LED on it, and it quit throbbing after a while, but the OpenWrt One’s red LED kept blinking. I waited a long time, tens of minutes, and it never turned green. Maybe I should have stayed connected via the USB-C serial console. I unplugged and re-inserted the power supply again, and held my breath.

Luckily my OpenWrt One successfully rebooted with new firmware. Unfortunately, the entire configuration got wiped. I couldn’t ssh in to reconfigure, I had to use a USB-C to standard USB cable, and minicom -D /dev/ttyACM0 on my Linux laptop to get in.

BusyBox v1.37.0 (2024-12-22 10:40:58 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r28369-33e23e8922
 -----------------------------------------------------

 OpenWrt recently switched to the "apk" package manager!

The SNAPSHOT is different than the One came from the factory with, so the upgrade worked.

I might have been able to use the “1G” ethernet port to ssh in, dropbear SSH server was running, but I didn’t bother.

I turned on the radios with a series of shell commands.

root@OpenWrt:~# uci set wireless.radio0.country='US'
root@OpenWrt:~# uci set wireless.radio1.country='US'
root@OpenWrt:~# uci set wireless.radio0.disabled='0'
root@OpenWrt:~# uci set wireless.radio1.disabled='0'
root@OpenWrt:~# uci commit wireless
root@OpenWrt:~# wifi reload

I followed my own directions to bridge everything together. Another reboot got the radios on, and both ethernet ports bridged with the radios.

After adding a root password, all of the further work and unsolved questions I had with my initial install are answered.

Set WiFi encryption and secret

I used another set of commands to turn on WPA2 encryption, and set a key.

root@OpenWrt:~# uci set wireless.@wifi-iface[0].ssid="Glomar Challenger"
root@OpenWrt:~# uci set wireless.@wifi-iface[0].encryption=psk2
root@OpenWrt:~# uci set wireless.@wifi-iface[0].key="Deny_Confirm"
root@OpenWrt:~# uci set wireless.@wifi-iface[1].ssid="Glomar Challenger"
root@OpenWrt:~# uci set wireless.@wifi-iface[1].encryption=psk2
root@OpenWrt:~# uci set wireless.@wifi-iface[1].key="Deny_Confirm"
root@OpenWrt:~# uci commit wireless
root@OpenWrt:~# wifi reload

Didn’t even have to reboot for that to take effect.

Set NTP server

I edited file /etc/config/system, making a piece of it look like this:


config timeserver 'ntp'
        option enabled '1'
        option enable_server '0'
        list server '10.0.0.1'  <-- added this line
        #list server '0.openwrt.pool.ntp.org' <-- commented out from here
        #list server '1.openwrt.pool.ntp.org'
        #list server '2.openwrt.pool.ntp.org'
        #list server '3.openwrt.pool.ntp.org' <-- to here

Did a reboot, now OpenWrt One uses 10.0.0.1 as it’s NTP server

Using chronyc on 10.0.0.1, which runs an NTP server, I can see 10.0.0.67 as an NTP client.