Ubiquiti USW-Industrial
Status
It runs ubiquiti's linux distro but they don't publish the sources for the GPL components anywhere. I sent them an email on 2026-02-13 asking for all the sources and will update when I have a response. If you're looking into this device as well or want to get in touch send me an email - my name is knoflook and my email provider is disroot org (try scraping that, spambots). If you are interested in playing around or developing for this device I can lend one out, I'm located in western europe - or I can set one up for you in my homenetwork and give you ssh access. I would really like to see openwrt ported to this.
You can get full ssh root access with username ubnt ant password ubnt.
Insides
It's running a VCore-III CPU system with integrated 500MHz MIPS24KEc compatible CPU (datasheet, page 2)
The flash chip is a macronix MX25L (datasheet)
CPU - Vitesse VSC7514XKS (datasheet)
RAM - Winbond W632GU6KB-12 (datasheet)
PHY chip - Vitesse VSC8514XMK-11 (datasheet)
poe controller - PD69208M (datasheet)
Photos
Pictures of the case:
To disassemble, you only need to remove the six bolts on the bottom (visible in the first picture and pop the bottom plate off. There might be some silicone around it keeping it in place so you might need to pry on it a little bit.
Pictures of the pcb (from the bottom side) - to take it off you only need to remove the four visible bolts.
here's a top view of the board
more pictures (including closeups of ICs) here
Flash 10port poe unsupported}}
Logs
dmesg on original firmware
[ 0.000000] Linux version 4.9.65 (builder@link-bionic-builder2) (gcc version 6.3.0 (LEDE GCC 6.3.0 r3979-2252731af4) ) #0 Thu Aug 30 12:10:54 2018 [ 0.000000] CPU0 revision is: 02019654 (MIPS 24KEc) [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 00384000 @ 00100000 (usable) [ 0.000000] memory: 0062c000 @ 00484000 (usable after init) [ 0.000000] User-defined physical RAM map: [ 0.000000] memory: 0ff00000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Primary instruction cache 32kB, 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-0x000000000fefffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000000fefffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fefffff] [ 0.000000] On node 0 totalpages: 65280 [ 0.000000] free_area_init_node: node 0, pgdat 80480e94, node_mem_map 81000020 [ 0.000000] Normal zone: 510 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 65280 pages, LIFO batch:15 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64770 [ 0.000000] Kernel command line: console=ttyS0,115200 init=/init mem=255M mtdparts=spi_flash:512k(u-boot),64k(u-boot-env),7552k(kernel0),7616k(kernel1),512k(cfg),64k(cdata),64k(EEPROM) ubootver=usw-v1.0.8.86-gb70b1311 ubntbootid=0 [ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Writing ErrCtl register=8007453c [ 0.000000] Readback ErrCtl register=8007453c [ 0.000000] Cache parity protection enabled [ 0.000000] Memory: 247628K/261120K available (2980K kernel code, 120K rwdata, 492K rodata, 6320K init, 238K bss, 13492K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:64 [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041786 ns [ 0.000012] sched_clock: 32 bits at 250MHz, resolution 4ns, wraps every 8589934590ns [ 0.000734] Ocelot registered 32 GPIOs [ 0.000818] Ocelot registered 64 SGPIOs [ 0.000835] Calibrating delay loop... 332.54 BogoMIPS (lpj=665088) [ 0.032071] pid_max: default: 32768 minimum: 301 [ 0.032380] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.032401] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.039297] devtmpfs: initialized [ 0.041134] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.041200] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.043297] NET: Registered protocol family 16 [ 0.067741] clocksource: Switched to clocksource MIPS [ 0.072761] NET: Registered protocol family 2 [ 0.074630] TCP established hash table entries: 2048 (order: 1, 8192 bytes) [ 0.074761] TCP bind hash table entries: 2048 (order: 1, 8192 bytes) [ 0.074875] TCP: Hash tables configured (established 2048 bind 2048) [ 0.075175] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.075239] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.076178] NET: Registered protocol family 1 [ 1.023754] random: fast init done [ 10.419265] i2c_vcoreiii i2c_vcoreiii: i2c bus driver on IRQ 16 [ 10.420860] Crashlog allocated RAM at address 0x3f00000 [ 10.422017] workingset: timestamp_bits=30 max_order=16 bucket_order=0 [ 10.431020] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 10.431070] jffs2: version 2.2 (NAND) (ZLIB) (RTIME) (c) 2001-2006 Red Hat, Inc. [ 10.436284] io scheduler noop registered [ 10.436333] io scheduler deadline registered (default) [ 10.443925] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 10.446110] console [ttyS0] disabled [ 10.466540] serial8250.0: ttyS0 at MMIO 0x70100000 (irq = 14, base_baud = 15625000) is a 16550A [ 10.823566] console [ttyS0] enabled [ 10.848858] serial8250.0: ttyS1 at MMIO 0x70100800 (irq = 15, base_baud = 15625000) is a 16550A [ 10.920066] brd: module loaded [ 10.946803] loop: module loaded [ 10.953392] m25p80 spi0.0: mx25l12805d (16384 Kbytes) [ 10.958776] 7 cmdlinepart partitions found on MTD device spi_flash [ 10.965076] Creating 7 MTD partitions on "spi_flash": [ 10.970241] 0x000000000000-0x000000080000 : "u-boot" [ 10.978829] 0x000000080000-0x000000090000 : "u-boot-env" [ 10.988087] 0x000000090000-0x0000007f0000 : "kernel0" [ 10.996884] 0x0000007f0000-0x000000f60000 : "kernel1" [ 11.005736] 0x000000f60000-0x000000fe0000 : "cfg" [ 11.014468] 0x000000fe0000-0x000000ff0000 : "cdata" [ 11.023110] 0x000000ff0000-0x000001000000 : "EEPROM" [ 11.033290] tun: Universal TUN/TAP device driver, 1.6 [ 11.038606] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> [ 11.048300] vtss.ifh: vc3fdma-01.24 2017/9/22 [ 11.053066] Loading module vtss-if-mux [ 11.057180] creating /proc/vtss_if/ [ 11.057246] /proc/vtss_if/debug [ 11.057258] /proc/vtss_if/mgmt_vlan [ 11.058725] i2c /dev entries driver [ 11.064836] i2c i2c-0: Added multiplexed i2c bus 100 [ 11.070883] i2c i2c-0: Added multiplexed i2c bus 101 [ 11.077086] i2c i2c-0: Added multiplexed i2c bus 108 [ 11.083193] i2c i2c-0: Added multiplexed i2c bus 109 [ 11.089219] i2c i2c-0: Added multiplexed i2c bus 104 [ 11.095353] i2c i2c-0: Added multiplexed i2c bus 105 [ 11.101440] i2c i2c-0: Added multiplexed i2c bus 106 [ 11.107566] i2c i2c-0: Added multiplexed i2c bus 107 [ 11.112795] pca954x 0-0070: registered 8 multiplexed busses for I2C switch pca9548 [ 11.122271] NET: Registered protocol family 10 [ 11.131167] NET: Registered protocol family 17 [ 11.136018] 8021q: 802.1Q VLAN Support v1.8 [ 11.266446] Freeing unused kernel memory: 6320K [ 11.271152] This architecture does not have kernel memory protection. [ 11.474142] ubnt_common: module license 'Proprietary' taints kernel. [ 11.480811] Disabling lock debugging due to kernel taint [ 11.565606] random: crng init done [ 11.619186] creating procfs for ubnthal [ 11.619290] creating proc entry for system.info [ 11.619303] creating proc entry for board [ 11.619371] Registering char device sflash (200) succeeds [ 11.625045] creating procfs for status [ 11.625077] creating proc entry for IsDefault [ 11.625089] creating proc entry for IsLocated [ 11.625098] creating proc entry for IsIsolated [ 11.625109] creating proc entry for IsLte [ 11.625120] creating proc entry for ControllerPort [ 11.625129] creating proc entry for ControllerHost [ 11.625139] creating proc entry for AnonNetAppId [ 11.625149] creating proc entry for MeshStatus [ 11.679514] gpiodev: reset_timeout=3 [ 11.684385] creating /proc/gpio/ [ 11.684416] /proc/gpio/ledbar_control [ 11.684430] /proc/gpio/led_pattern [ 11.684440] /proc/gpio/led_tempo [ 11.684459] /proc/gpio/poe_passthrough [ 11.684470] /proc/gpio/resetbtn [ 11.684519] /proc/gpio/resetbtn_age [ 15.421994] init (1): drop_caches: 1 [ 28.903140] net vtss.ifh: Opening device [ 41.086412] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 65.070822] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: vtss.ifh: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 10400 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether a6:1d:56:[redacted] brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1
link/ether 74:ac:b9:[redacted] brd ff:ff:ff:ff:ff:ff
uname -a
Linux USW-Industrial 4.9.65 #0 Thu Aug 30 12:10:54 2018 mips GNU/Linux
cat /proc/mtd
dev: size erasesize name mtd0: 00080000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00760000 00010000 "kernel0" mtd3: 00770000 00010000 "kernel1" mtd4: 00080000 00010000 "cfg" mtd5: 00010000 00010000 "cdata" mtd6: 00010000 00010000 "EEPROM"
lsmod
Module Size Used by Tainted: P sha256_generic 10201 0 seqiv 1744 0 jitterentropy_rng 7288 0 drbg 14000 0 hmac 2384 0 ghash_generic 1680 0 gf128mul 6564 1 ghash_generic gcm 9312 0 ctr 3152 0 aead 3553 2 seqiv,gcm mac_filter 11845 0 mac_snooping 15385 1 mac_filter mscc_board 2592 0 gpiodev 10157 0 ubnthal 86161 3 mac_snooping,mscc_board,gpiodev ubnt_common 4665 1 ubnthal
Tags
Add some basic tags, e.g. SoC, RAM, Flash. → How to add tags {{tag>MIPS32 256RAM 32