GL.iNet GL-USB150 (aka Microuter)

Under Construction!
This page is currently under construction. You can edit the article to help completing it.

GL-USB150 case front

Install OpenWrt (generic explanation)

FIXME Please add the installation procedure here.

GL.iNet GL-USB150 Flash Layout
Layer0 raw NOR flash memory chip (W25Q128JVSIQ SPI, SOIC-8 208-mil, top marking 25Q128JVSQ): 16384 KiB
Layer1 mtd0 u-boot 256 KiB mtd1 u-boot-env 64 KiB mtd2 firmware 16000 KiB mtd6 art 64 KiB
Layer2 mtd3 kernel 1536 KiB mtd4 rootfs 14464 KiB
mountpoint /
filesystem OverlayFS
Layer3 mtd5 rootfs_data 6464 KiB
Size in KiB 256 KiB 64 KiB 1536 KiB 8000 KiB 6464 KiB 64 KiB
Name u-boot u-boot-env kernel rootfs_data art
mountpoint none none none /rom /overlay none
filesystem none none SquashFS JFFS2 none

Raw information

Output from dmesg:

m25p80 spi0.0: found w25q128, expected m25p80
m25p80 spi0.0: w25q128 (16384 Kbytes)
4 cmdlinepart partitions found on MTD device spi0.0
Creating 4 MTD partitions on "spi0.0":
0x000000000000-0x000000040000 : "u-boot"
0x000000040000-0x000000050000 : "u-boot-env"
0x000000050000-0x000000ff0000 : "firmware"
2 uimage-fw partitions found on MTD device firmware
0x000000050000-0x0000001d0000 : "kernel"
0x0000001d0000-0x000000ff0000 : "rootfs"
mtd: device 4 (rootfs) set to be root filesystem
1 squashfs-split partitions found on MTD device rootfs
0x0000009a0000-0x000000ff0000 : "rootfs_data"
0x000000ff0000-0x000001000000 : "art"

Output from cat /proc/mtd:

dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00fa0000 00010000 "firmware"
mtd3: 00180000 00010000 "kernel"
mtd4: 00e20000 00010000 "rootfs"
mtd5: 00650000 00010000 "rootfs_data"
mtd6: 00010000 00010000 "art"

FIXME The instructions below are for Broadcom devices and only serve as an example.
Remove / modify them if they do not apply to this particular device!

This section deals with

  • How you install OpenWrt from a device freshly opened
  • The steps required such as reset to factory defaults if the device has already been configured

Note: Reset router to factory defaults if it has been previously configured.

  • Browse to http://192.168.1.1/Upgrade.asp
  • Upload .bin file to router
  • Wait for it to reboot
  • Telnet to 192.168.1.1 and set a root password, or browse to http://192.168.1.1 if LuCI is installed.

Specific values needed for tftp

FIXME Enter values for “FILL-IN” below

Bootloader tftp server IPv4 address FILL-IN
Bootloader MAC address (special) FILL-IN
Firmware tftp image Latest OpenWrt release (NOTE: Name must contain “tftp”)
TFTP transfer window FILL-IN
TFTP window start approximately FILL-IN seconds after power on
TFTP client required IP address FILL-IN

Raw default values:

uboot> printenv
bootargs=console=ttyATH0,115200 board=domino root=31:03 rootfstype=squashfs,jffs2 noinitrd mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1280k(kernel),14656k(rootfs),64k(nvram),64k(art)ro,15936k@0x50000(firmware)
bootcmd=bootm 0x9f050000
bootdelay=1
baudrate=115200
ipaddr=192.168.1.1
serverip=192.168.1.2
bootfile="firmware.bin"
loadaddr=0x80800000
ncport=6666
uboot_addr=0x9F000000
uboot_name=uboot_for_gl-ar150.bin
uboot_size=0x40000
lu=if ping $serverip; then tftp $loadaddr $uboot_name && if itest.l $filesize == $uboot_size; then erase $uboot_addr +$filesize && cp.b $loadaddr $uboot_addr $filesize && echo OK!; else echo ERROR! Wrong file size!; fi; else ERROR! Server not reachable!; fi
firmware_addr=0x9F050000
firmware_name=openwrt-gl-ar150.bin
lf=if ping $serverip; then tftp $loadaddr $firmware_name && erase $firmware_addr +$filesize && cp.b $loadaddr $firmware_addr $filesize && echo OK!; else ERROR! Server not reachable!; fi
lc=tftp 0x81000000 config.bin &&cp.b 0x9fff1000 0x80060000 0xf000 && cp.b 0x81000000 0x80060002 0x06 &&erase 0x9fff0000 +0x10000 && cp.b 0x81000000 0x9fff0000 $filesize && cp.b 0x80060000 0x9fff1000 0xf000
stdin=serial
stdout=serial
stderr=serial
ethact=eth0

Environment size: 1203/32764 bytes

uboot> tftpboot
Link down: eth1
Ethernet mode (duplex/speed): 1/100 Mbps

TFTP from IP: 192.168.1.2
      Our IP: 192.168.1.1
    Filename: 'firmware.bin'
Load address: 0x80800000
       Using: eth0

generic.sysupgrade

FIXME These are generic instructions. Update with your router's specifics.

  • Browse to http://192.168.1.1/cgi-bin/luci/mini/system/upgrade/ LuCI Upgrade URL
  • Upload image file for sysupgrade to LuCI
  • Wait for reboot

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.1.1, then enter the following commands:
cd /tmp
wget http://downloads.openwrt.org/snapshots/trunk/XXX/xxx.abc
sysupgrade /tmp/xxx.abc

mtd

If sysupgrade does not support this router, use mtd.

  • Login as root via SSH on 192.168.1.1, then enter the following commands:
cd /tmp
wget http://downloads.openwrt.org/snapshots/trunk/XXX/xxx.abc
mtd write /tmp/xxx.abc linux && reboot

failsafe_and_factory_reset

Press the reset button for 10 seconds using a paperclip or pin (it is underneath the hole on the seam between the two halves of the case).

The location of the reset button

Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.

The default network configuration is:

Interface Name Description Default configuration
br-lan LAN (eth0) & WiFi (wlan0) 192.168.8.1/24
eth0 Realtek RT8152B via USB None
wlan0 WiFi None

FIXME Please fill in real values for this device, then remove the EXAMPLEs

Numbers 0-3 are Ports 1-4 as labeled on the unit, number 4 is the Internet (WAN) on the unit, 5 is the internal connection to the router itself. Don't be fooled: Port 1 on the unit is number 3 when configuring VLANs. vlan0 = eth0.0, vlan1 = eth0.1 and so on.

Port Switch port
Internet (WAN) EXAMPLE 4
LAN 1 EXAMPLE 3
LAN 2 EXAMPLE 2
LAN 3 EXAMPLE 1
LAN 4 EXAMPLE 0

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-USB150 has the following buttons:

BUTTON Event
Reset reset (3 s) or factory reset (10 s)

Front:

Front of casing

Back:

Back of casing

The white (pixelized) sticker contains the MAC address (AA:BB:CC:DD:EE:FF) in plain text form and as a bar code.

Note: This will void your warranty!

There's a small hole which allows to press the reset button. It can be reached with a paperclip or similar. Use that hole and wedge open the case. Be aware, though that it appears to be impossible to open the case without breaking a sort of (plastic) pin that seems to hold the two halves of the case together and at the same time hold the PCB in place.

Main PCB:

Front side of PCB

Front side of PCB

port.serial general information about the serial port, serial port cable, etc.

How to connect to the Serial Port of this specific device:

Three soldering pads/holes can be seen inside the red rectangle, marked TX, RX and GND.

pcb_frontside_annotated_1024px.jpg

Also:

  • blue: the reset (and factory reset) button
  • green: the two LEDs (LED2 and LED1, left to right)
    • LED1 shows for active hotspot (in the OEM variant of OpenWrt)
    • LED2 is the power LED

I tried connecting using a DSD TECH SH-U09C configured at 3,3 V and it worked like a charm. I did this after soldering three pins of a PCB pin strip (pin header) onto the PCB. It looks like this:

Soldered PCB pin strips, i.e. my UART "terminal" UART "terminal", while connected

Serial connection parameters
for GL.iNet GL-USB150
115200, 8N1
e.g. picocom -b 115200 /dev/ttyUSB0

None so far.

********************************************* * U-Boot 1.1.4 (Jul 4 2017) * ********************************************* AP121 (AR9331) U-Boot for GL-AR150 DRAM: 64 MB DDR2 16-bit FLASH: Winbond W25Q128 (16 MB) CLOCKS: 400/400/200/33 MHz (CPU/RAM/AHB/SPI) ** Warning: bad env CRC, using default, use 'saveenv' to save it in FLASH LED on during eth initialization... Hit any key to stop autobooting: 1 0 Found ART, checking calibration status... Device calibrated. Checking MAC address... Found MAC. Starting firmware... Booting image at: 0x9F050000 Image name: MIPS OpenWrt Linux-4.9.120 Created: 2018-08-16 7:51:15 UTC Image type: MIPS Linux Kernel Image (lzma compressed) Data size: 1549730 Bytes = 1.5 MB Load address: 0x80060000 Entry point: 0x80060000 Uncompressing kernel image... OK! Starting kernel... [ 0.000000] Linux version 4.9.120 (lancer@gl-inet) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7258-5eb055306f) ) #0 Thu Aug 16 07:51:15 2018 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc) [ 0.000000] SoC: Atheros AR9330 rev 1 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 04000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 [ 0.000000] Kernel command line: board=GL-USB150 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro console=ttyATH0,115200 rootfstype=squashfs noinitrd [ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes) [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Writing ErrCtl register=00000000 [ 0.000000] Readback ErrCtl register=00000000 [ 0.000000] Memory: 59376K/65536K available (3533K kernel code, 182K rwdata, 884K rodata, 320K init, 220K bss, 6160K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:51 [ 0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns [ 0.000013] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns [ 0.007589] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104) [ 0.088757] pid_max: default: 32768 minimum: 301 [ 0.093350] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.099515] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.110423] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.118465] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.126202] NET: Registered protocol family 16 [ 0.131269] MIPS: machine is GL.iNet GL-USB150 [ 0.411943] usbcore: registered new interface driver usbfs [ 0.416019] usbcore: registered new interface driver hub [ 0.420987] usbcore: registered new device driver usb [ 0.431110] clocksource: Switched to clocksource MIPS [ 0.436186] NET: Registered protocol family 2 [ 0.440324] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.445702] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.451760] TCP: Hash tables configured (established 1024 bind 1024) [ 0.457940] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.463424] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.469686] NET: Registered protocol family 1 [ 0.477703] Crashlog allocated RAM at address 0x3f00000 [ 0.482983] workingset: timestamp_bits=30 max_order=14 bucket_order=0 [ 0.498660] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.502912] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.526008] io scheduler noop registered [ 0.528378] io scheduler deadline registered (default) [ 0.533973] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled [ 0.543288] ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a AR933X UART [ 0.551070] console [ttyATH0] enabled [ 0.551070] console [ttyATH0] enabled [ 0.557977] bootconsole [early0] disabled [ 0.557977] bootconsole [early0] disabled [ 0.574289] m25p80 spi0.0: found w25q128, expected m25p80 [ 0.588018] m25p80 spi0.0: w25q128 (16384 Kbytes) [ 0.591337] 4 cmdlinepart partitions found on MTD device spi0.0 [ 0.597173] Creating 4 MTD partitions on "spi0.0": [ 0.601990] 0x000000000000-0x000000040000 : "u-boot" [ 0.609721] 0x000000040000-0x000000050000 : "u-boot-env" [ 0.616624] 0x000000050000-0x000000ff0000 : "firmware" [ 0.638578] 2 uimage-fw partitions found on MTD device firmware [ 0.643126] 0x000000050000-0x0000001d0000 : "kernel" [ 0.650112] 0x0000001d0000-0x000000ff0000 : "rootfs" [ 0.656154] mtd: device 4 (rootfs) set to be root filesystem [ 0.660408] 1 squashfs-split partitions found on MTD device rootfs [ 0.666634] 0x0000009a0000-0x000000ff0000 : "rootfs_data" [ 0.675066] 0x000000ff0000-0x000001000000 : "art" [ 0.682857] libphy: Fixed MDIO Bus: probed [ 0.705948] libphy: ag71xx_mdio: probed [ 1.332826] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY] [ 1.341597] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII [ 1.346775] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.352994] ehci-pci: EHCI PCI platform driver [ 1.357617] usbcore: registered new interface driver usbtest [ 1.363140] usbcore: registered new interface driver usb_ehset_test [ 1.369328] usbcore: registered new interface driver lvs [ 1.376712] NET: Registered protocol family 10 [ 1.385855] NET: Registered protocol family 17 [ 1.388921] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. [ 1.402009] 8021q: 802.1Q VLAN Support v1.8 [ 1.408607] hctosys: unable to open rtc device (rtc0) [ 1.418780] VFS: Mounted root (squashfs filesystem) readonly on device 31:4. [ 1.426941] Freeing unused kernel memory: 320K [ 1.429926] This architecture does not have kernel memory protection. [ 2.378998] init: Console is alive [ 2.381372] init: - watchdog - [ 2.541128] random: fast init done [ 4.129348] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 4.234617] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 4.246641] init: - preinit - [ 5.778484] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 7.852597] eth0: link up (100Mbps/Full duplex) [ 7.855720] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 9.237697] jffs2: notice: (404) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 9.253735] mount_root: switching to jffs2 overlay [ 9.344129] urandom-seed: Seeding with /etc/urandom.seed [ 9.604894] eth0: link down [ 9.623600] procd: - early - [ 9.625169] procd: - watchdog - [ 10.407471] procd: - watchdog - [ 10.409542] procd: - ubus - [ 10.599227] random: ubusd: uninitialized urandom read (4 bytes read) [ 10.758373] random: ubusd: uninitialized urandom read (4 bytes read) [ 10.920224] random: ubusd: uninitialized urandom read (4 bytes read) [ 10.933074] procd: - init - Please press Enter to activate this console. [ 13.191632] kmodloader: loading kernel modules from /etc/modules.d/* [ 13.218912] tun: Universal TUN/TAP device driver, 1.6 [ 13.222620] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> [ 13.271617] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 13.313583] Netfilter messages via NETLINK v0.30. [ 13.320810] ip_set: protocol 6 [ 13.473014] u32 classifier [ 13.474272] input device check on [ 13.477915] Actions configured [ 13.494751] Mirror/redirect action on [ 13.514249] nf_conntrack version 0.5.0 (1024 buckets, 4096 max) [ 13.630392] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180 [ 13.637031] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d [ 13.665195] ip_tables: (C) 2000-2006 Netfilter Core Team [ 13.877660] ctnetlink v0.93: registering with nfnetlink. [ 14.174755] wireguard: WireGuard 0.0.20181119 loaded. See www.wireguard.com for information. [ 14.181829] wireguard: Copyright (C) 2015-2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. [ 14.355193] xt_time: kernel timezone is -0000 [ 14.599384] PPP generic driver version 2.4.2 [ 14.617487] NET: Registered protocol family 24 [ 14.778415] ieee80211 phy0: Atheros AR9330 Rev:1 mem=0xb8100000, irq=2 [ 14.825736] kmodloader: done loading kernel modules from /etc/modules.d/* [ 17.177512] urandom_read: 6 callbacks suppressed [ 17.177524] random: jshn: uninitialized urandom read (4 bytes read) [ 41.923150] br-lan: port 1(eth0) entered blocking state [ 41.926934] br-lan: port 1(eth0) entered disabled state [ 41.932806] device eth0 entered promiscuous mode [ 42.011451] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready [ 44.012653] eth0: link up (100Mbps/Full duplex) [ 44.015798] br-lan: port 1(eth0) entered blocking state [ 44.020952] br-lan: port 1(eth0) entered forwarding state [ 44.081223] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready [ 48.224996] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 48.366983] br-lan: port 2(wlan0) entered blocking state [ 48.370848] br-lan: port 2(wlan0) entered disabled state [ 48.376830] device wlan0 entered promiscuous mode [ 59.399770] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 59.405037] br-lan: port 2(wlan0) entered blocking state [ 59.409983] br-lan: port 2(wlan0) entered forwarding state


OpenWrt (18.06.1, r7258-5eb055306f) came preinstalled on the device.

BusyBox v1.28.3 () built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 18.06.1, r7258-5eb055306f ----------------------------------------------------- root@GL-USB150:~#


This information was retrieved with binwalk (private information stripped).

Target File:   GL.iNet_USB150/gl-usb150-3.0-1011_clean.bin
MD5 Checksum:  b754fc3b47078023ea64b2a51e777548
Signatures:    344

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             uImage header, header size: 64 bytes, header CRC: 0x9F6B5467, created: 2018-08-16 07:51:15, image size: 1475711 bytes, Data Address: 0x80060000, Entry Point: 0x80060000, data CRC: 0x6CD303CF, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "MIPS OpenWrt Linux-4.9.120"
64            0x40            LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 4774812 bytes
1507328       0x170000        Squashfs filesystem, little endian, version 4.0, compression:xz, size: 2315746 bytes, 1150 inodes, blocksize: 262144 bytes, created: 2018-10-11 02:08:08


Target File:   GL.iNet_USB150/openwrt-usb150-clean-2.264-1.bin
MD5 Checksum:  6ef95e89733145e05125bb9fbce3506f
Signatures:    344

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             uImage header, header size: 64 bytes, header CRC: 0x5CBD94E6, created: 2017-11-16 08:44:23, image size: 1270480 bytes, Data Address: 0x80060000, Entry Point: 0x80060000, data CRC: 0x37FE6815, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "MIPS OpenWrt Linux-3.18.27"
64            0x40            LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 3837484 bytes
1310720       0x140000        Squashfs filesystem, little endian, version 4.0, compression:xz, size: 2311114 bytes, 1140 inodes, blocksize: 262144 bytes, created: 2017-11-20 04:19:02
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/02/12 11:13
  • by 127.0.0.1