GL.iNet GL-MT300N V2
- Based on the MediaTek MT7628NN
- 128MB DDR1, 16MB Flash
- USB 2.0 port
- Dual Ethernet (WAN/LAN)
- Button: 1 x switch button, 1 x reset button
- LED: 3 x LEDS (system power led is not GPIO controller)
Supported Versions
Hardware Highlights
Installation
Flash Layout
Please read the article flash.layout for a better understanding. It contains a couple of explanations. Then let's have a quick view at flash layout of this particular device:
GL.iNet GL-MT300N V2 Flash Layout | |||||||
---|---|---|---|---|---|---|---|
Layer0 | raw flash, 16386 KiB | ||||||
Layer1 | mtd0 u-boot 192 KiB | mtd1 u-boot-env 64 KiB | mtd2 factory 64 KiB | mtd3 firmware 16064 KiB (= FlashSize-(192+64+64)) | |||
Layer2 | mtd4 kernel about 2 MiB | mtd5 rootfs | |||||
Layer3 | /dev/root around 3.3 MiB | mtd6 rootfs_data around 10 MiB |
Stock Flash MTD parts dumps available to download for GL-MT300N V2 Download
OEM easy installation
Install OpenWrt in GL.Inet devices
Note: It can happen that the browser cache does conflict with the new loaded firmware. This can be avoided by browsing to: http://192.168.1.1/index.html?index
. By adding ?index
it asked the browser not to load from cache.
OEM installation using the TFTP method
Note: TFTP upgrade requires connecting to the Serial port, and pressing spacebar
during boot to access the U-Boot command line.
Upgrading OpenWrt
LuCI Web Upgrade Process
- Browse to
http://192.168.8.1/cgi-bin/luci/admin/system/flashops
- Upload image file for sysupgrade to LuCI
- Wait for reboot
Terminal Upgrade Process
If you don't have a GUI (LuCI) available, you can alternatively upgrade via the command line. There are two command line methods for upgrading:
sysupgrade
mtd
Note: It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.
sysupgrade
- Login as root via SSH on 192.168.8.1, then enter the following commands:
cd /tmp wget http://downloads.openwrt.org/releases/19.07.4/targets/ramips/mt76x8/openwrt-19.07.4-ramips-mt76x8-gl-mt300n-v2-squashfs-sysupgrade.bin sysupgrade /tmp/openwrt-19.07.4-ramips-mt76x8-gl-mt300n-v2-squashfs-sysupgrade.bin
sysupgrade -n can be used to start fresh in /etc/config/. Otherwise some factory config files will be there. Device will work either way.
mtd
If sysupgrade
does not support this router, use mtd
.
- Login as root via SSH on 192.168.8.1, then enter the following commands:
cd /tmp wget http://downloads.openwrt.org/releases/19.07.4/targets/ramips/mt76x8/openwrt-19.07.4-ramips-mt76x8-gl-mt300n-v2-squashfs-sysupgrade.bin mtd -r write /tmp/openwrt-19.07.4-ramips-mt76x8-gl-mt300n-v2-squashfs-sysupgrade.bin firmware
Debricking
The U-Boot bootloader has a web interface to update the firmware. To use the web interface, you need to connect to the LAN port, and your computer's ethernet port set to 192.168.1.2/24. To start the web interface:
- With the router unplugged, press and hold the reset button.
- Plug in the router.
- Hold the reset button for at least 3 seconds.
- Release button, wait a few seconds, and connect to
http://192.168.1.1
Failsafe mode
Basic configuration
→ Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.
Existing wireless config for MT7628 (factory config) may fail with “Interface not supported”. Mac80211 driver can be used (this is the 2nd example given in stock /etc/config/wireless). Configure and activate with # wifi up. Ref: https://forum.openwrt.org/t/how-to-manually-switch-wifi-driver-on-openwrt/56218
Specific Configuration
Network interfaces
The default OEM network configuration is:
Interface Name | Description | Default configuration |
---|---|---|
br-lan | LAN & WiFi | 192.168.8.1/24 |
vlan1 (eth0.1) | LAN port | None |
vlan2 (eth0.2) | WAN port | DHCP |
wlan0 | WiFi | Disabled |
Switch Ports (for VLANs)
Port number 0 is labeled WAN on the unit, port 1 is labeled LAN. Ports 2-5 are not present. Port 6 (CPU) is the internal connection to the router itself. vlan1 = eth0.1, vlan2 = eth0.2 and so on.
Port | Switch port |
---|---|
Internet (WAN) | 0 |
LAN | 1 |
==== Buttons ====
→ hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.
The GL.iNet GL-MT300N V2 has the following buttons:
BUTTON | Event |
---|---|
Reset | reset |
Switch (left position) | BTN_0 |
Switch (right position, if modded) | BTN_1 |
Hardware
Info
Photos
Opening the case
Use a pry tool in the notch. There are clips all round.
Note the yellow post on the cover that holds the PCB steady. Ensure the cover is replaced with the correct orientation.
PCB front:
Serial
→ One port.serial port (J1) on the MT300N V2 comes with the headers factory fitted.
How to connect to the Serial Port of this specific device:
It can be seen at the left end, farthest from the Ethernet port (grey) and is labelled “GND RX0 TX0”. Headers are missing for further connections “VCC” and “I2C_CLK I2C_SD TX1 RX1”. All PINS besides GND and VCC are also usable via GPIO.
Serial connection parameters for GL.iNet GL-MT300N V2 | 115200, 8N1 |
---|
Bootloader mods
Hardware mods
GPIO
The MT300N V2 has general purpose GPIO pins broken out. Note the headers at the top of the board. These headers are not factory fitted and will need to be fitted manually.
Label | GPIO | Note |
---|---|---|
No label | 0 | Controls power to the USB A port, export GPIO 0 and set its value 0/1 to control |
WPS_PBC | 2 | Shared with WPS button according to docs, however this button appears not to exist |
RST_PBC | 1 | Shared with Reset Button |
3.3VD | - | 3.3V |
LINK4 | 44 | Unused |
LINK3 | 43 | Shared with toggle switch on side of device |
PoE
not available.
Switch Mod
The 3 way toggle switch comes from the factory with the right-hand third of the plastic part filled, GLI claims this is to prevent confusion over the 3 way toggle, but to keep the feature available when required, decided not to remove the 3-way switch.
Switch access (factory firmware)
The MT300N V2 implements a GPIO switch driver, using the scripts below, the switch position can be determined from shell script and acted upon.
/etc/rc.button/BTN_0 /etc/rc.button/BTN_1
GPIO Switch access
The switch uses GPIOs 42 and 43 and can be access by exporting them as inputs. The values correspond to the switch positions as follows.
Position | GPIO 42 | GPIO 43 |
---|---|---|
Left | High/1 | X |
Centre | Low/0 | Low/0 |
Right | X | High/1 |
Where X indicates a “Don't Care” state.
The scripts receive both a button ID in the form “BTN_X” and an action such as “pressed” or “unpressed”.
Note that to access them as GPIOs (and stop receiving button events), you need to unload the gpio_button_hotplug
module, or unbind it by executing:
echo gpio-keys > /sys/bus/platform/drivers/gpio-keys/unbind
Bootlogs
OEM bootlog
OpenWrt bootlog
Notes
Space for additional notes, links to forum threads or other resources.
- GL.iNet uses the original driver “kmod-mt7628” from Mediatek instead of OpenWrt's “mt76”. This has two main implications:
- “beacon_int” wifi-device parameter in “/etc/config/wireless” is named “beacon”. It can range from 40..1000 (*1.024 ms), this is the range the hardware supports. If you try higher values they are ignored and 100 (default) is used.
- The driver (probably) does not support monitor mode.
- as of 2021-11-02 - setting AP txpower to 0, 1 or 2 dBm (/etc/config/wireless) results in a much higher power density (measured) than for 3 dBm. This is independant of the driver used (kmod-mt7628, mt76). Unknown reason.