Supported Versions
TP-Link Archer C20 V4 TP-Link Archer C20 v4 is a router with a 5-port FE switch and non-detachable antennas, based on MediaTek MT7628AN + MT7610EN. As compared with the older v1 version, v4 is without any USB ports but has a third central antenna for 5GHz. It also appears to have reduced power consumption. Driver Model in U-Boot Design goals, architecture, benefits, test methodology, limitations, future U-Boot Mini-Summit 13-Oct-14 Simon Glass sjg@chromium.org. Platform is Windows. U-Boot 1.2.0 (May 20 2009 - 01:04:07) I2C: ready. Was trying to download the U-boot binary from the NAND device and instead finding a copy.
Brand | Model | Version | Current Release | OEM Info | Forum Search | Technical Data |
---|---|---|---|---|---|---|
GL.iNet | GL-USB150 | 19.07.6 | http://www.gl-inet.com/usb150/ | View/Edit data |
Hardware Highlights
Model | Version | SoC | CPU MHz | Flash MB | RAM MB | WLAN Hardware | WLAN2.4 | WLAN5.0 | 100M ports | Gbit ports | Modem | USB |
---|---|---|---|---|---|---|---|---|---|---|---|---|
GL-USB150 | Atheros AR9331 | 400 | 16 | 64 | Atheros AR9331 | b/g/n | - | - | - | - | 1x 2.0 Device |
Installation
Model | Version | Current Release | Firmware OpenWrt Install | Firmware OpenWrt Upgrade | Firmware OEM Stock |
---|---|---|---|---|---|
GL-USB150 | 19.07.6 | http://downloads.openwrt.org/releases/19.07.6/targets/ar71xx/generic/openwrt-19.07.6-ar71xx-generic-gl-usb150-squashfs-sysupgrade.bin | http://www.gl-inet.com/firmware/usb150/ |
→ Install OpenWrt (generic explanation)
Please add the installation procedure here.
Flash Layout
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
OEM easy installation
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.
- Upload .bin file to router
- Telnet to 192.168.1.1 and set a root password, or browse to
http://192.168.1.1
if LuCI is installed.
OEM installation using the TFTP method
Specific values needed for tftp
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:
Upgrading OpenWrt
→ generic.sysupgrade
These are generic instructions. Update with your router's specifics.
LuCI Web Upgrade Process
- Browse to
http://192.168.1.1/cgi-bin/luci/mini/system/upgrade/
LuCI Upgrade URL - 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:
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:
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:
Debricking
Failsafe mode
→ 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).
Basic configuration
→ Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.
Specific Configuration
Network interfaces
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 |
Switch Ports (for VLANs)
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 |
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-USB150 has the following buttons:
BUTTON | Event |
---|---|
Reset | reset (3 s) or factory reset (10 s) |
Hardware
Info
—- datatemplatelist dttpllist —-template: meta:template_datatemplatelistcols : Brand, Model, Versions, Device Type, Availability, Supported Since Commit_git, Supported since Rel, Supported current Rel, Unsupported, Instruction Set, Sub Instruction Set, Bootloader, Platform, Target, CPU MHz, Flash MBs, RAM MB, Switch, Ethernet 100M ports_, Ethernet Gbit ports_, Comments network ports_, Modem, VLAN, WLAN 2.4GHz, WLAN 5.0GHz, WLAN Hardwares, WLAN Comments_, Detachable Antennas_, USB ports_, SATA ports_, Comments USB SATA ports_, Serial, JTAG, LED count, Button count, Power supply, Device Techdata_pageid, Forum topic URL_url, wikidevi URL_url, OEM Device Homepage URL_url, Firmware OEM Stock URL_url, Firmware OpenWrt Install URL_url, Firmware OpenWrt Upgrade URL_url, Comments_filter : Brand=GL.iNetfilter : Model=GL-USB150
Photos
Front:
Back:
The white (pixelized) sticker contains the MAC address (AA:BB:CC:DD:EE:FF
) in plain text form and as a bar code.
Opening the case
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:
Serial
→ 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.
Also:
- green: the two LEDs (LED2 and LED1, left to right)
- LED1 shows for active hotspot (in the OEM variant of OpenWrt)
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:
Serial connection parameters for GL.iNet GL-USB150 | 115200, 8N1 e.g. picocom -b 115200 /dev/ttyUSB0 |
---|
Bootloader mods
Hardware mods
None so far.
Bootlogs
OEM bootlog
U-Boot 2009.01 Driver Download For Windows 10
********************************************** U-Boot 1.1.4 (Jul 4 2017) **********************************************AP121 (AR9331) U-Boot for GL-AR150DRAM: 64 MB DDR2 16-bitFLASH: 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 FLASHLED 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: 0x80060000Uncompressing 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 readyPress the [f] key and hit [enter] to enter failsafe modePress 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
U-boot 2009.01 Driver Download For Windows 10 32-bit
OpenWrt bootlog
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:~#
U-boot 2009.01 Driver Download For Windows 10 Pro
Notes
- Reports in Windows 10 as
Realtek USB FE Family Controller
Details about the OEM-provided and 'unmodified' (clean) OpenWrt
U-boot 2009.01 Driver Download For Windows 10 Bit
This information was retrieved with binwalk
(private information stripped).