Skip to content

Instantly share code, notes, and snippets.

@davidk
Last active November 22, 2023 21:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidk/bca0ccdb83d8e38b895a33f599e6efaf to your computer and use it in GitHub Desktop.
Save davidk/bca0ccdb83d8e38b895a33f599e6efaf to your computer and use it in GitHub Desktop.
General instructions for flashing uboot on GL-AR300M, using your system as a tftpd server to supply the AR300M with the firmware

Flashing U-Boot on the GL-AR300M

N.B. This was written from memory, so some steps might be missing/incorrect. Corrections appreciated!

The hidden page for flashing via the embedded webserver doesn't work, but flashing via serial triggered tftp works. This requires a serial to USB adapter (only TX/RX/GND are connected). See here for a pinout.

  1. Go here to grab the latest U-Boot: https://us.gl-inet.com/forums/topic/ar-300m-upgrade-uboot-to-newer-verions/

1a. Downloading requires a new user registration. It's fairly painless (e-mail addr req'd).

  1. Install tftp-server (i'm using Fedora, YMMV elsewhere)

2a-Fedora. sudo dnf install tftp-server

2b-Fedora. (keep the .bin's file naming): mv ~/Downloads/uboot_for_gl-ar300m.bin /var/lib/tftpboot

2c-Fedora. (if selinux gives you trouble): sudo restorecon -Rv /var/lib/tftpboot/uboot_for_gl-ar300m.bin

2d-Fedora. sudo systemctl start tftp.service

  1. Connect an Ethernet adapter and cable to the LAN or WAN port of the GL-AR300M

3a. Change your interface's IP address to 192.168.1.2: sudo ifconfig eth0 192.168.1.2 255.255.255.0

3b. Connect the serial cable (N.B. only connect RX, TX, GND).

  1. Start screen at 115200 baud to /dev/ttyUSB0 (look in dmesg to see if this is different): sudo screen /dev/ttyUSB0 115200

  2. Get ready to enter the U-Boot console (start spamming a key).

  3. Restart the GL-AR300M

  4. The console should pop up.

  5. Type run lu to execute GL iNet's uboot script to replace u-boot. If tftp isn't working, tcpdump -i $your_interface might give hints.

  6. More info on working with u-boot here. And more information about working with the GL-AR300M specifically is here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment