Linksys WRT1900ACS/WRT1900ACS V2 (linksys-shelby)
pmOS can't run on its internal storage.However, it's possible to boot pmOS from USB Stick. |
![]() A portable monitor connected to WRT1900ACS via USB GPU | |
Manufacturer | Linksys |
---|---|
Name |
WRT1900ACS/ WRT1900ACS V2 |
Codename | linksys-shelby |
Released | 2015 |
Type | router |
Hardware | |
Chipset | Marvell Armada 385 (88F6820) |
CPU | Dual-core 1.2 GHz Cortex-A9 |
GPU | none |
Display | none |
Storage | 128MB |
Memory | 512MB |
Architecture | armv7 |
postmarketOS | |
Category | testing |
Pre-built images Whether pre-built images are available here. |
no |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
Flashing It is possible to flash the device with pmbootstrap flasher . |
Broken
|
---|---|
Internal storage eMMC, SD cards, UFS, ... |
Partial
|
Connectivity | |
WiFi |
Broken
|
Ethernet |
Works
|
Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
USB-A Full-sized USB-A port works (Usually applicable to SBCs and laptops). |
Works
|
SATA/eSATA |
Works
|
Primary Bootloader It is possible to replace stock bootloader with U-Boot. |
Works
|
---|---|
Secondary Bootloader It is possible to chainload U-Boot from stock bootloader. |
Untested
|
Mainline Latest versions of U-Boot are not broken and it is possible to use them. |
Broken
|
Internal Storage It is possible to boot from internal storage (e.g. eMMC or UFS). |
Works
|
USB Host It is possible to boot from a USB storage or connect a keyboard. |
Partial
|
Contributors
Users owning this device
Default Boot Behavior
nandboot and altnandboot environment variables do not contain any code that is for booting on external drives. |
The device's stock uboot is like any other u-boot,it will run commands that are saved in the bootcmd environment variable.
However unlike other u-boot, the bootcmd is always set to either run nandboot
(Run the command that's in nandboot environment variable) or run altnandboot
(Run the command that's in altnandboot environment variable) depending on whether it's booting off the primary firmware (Slot A in android terms) or the alternate firmware (Slot B in android terms) .
Installation
Installing pmOS to your disk
WARNING: DO NOT PLUG multiple USB sticks into the router during boot if you decided to use usb stick to boot pmos.If you do have multiple USB sticks plugged in during boot , please make sure the usb 0 in u-boot is the pm os usb stick. |
WARNING: The Stock U-Boot doesn't support sata Multipliers |
The usb 3 port doesn't work in stock u-boot so please plug the pmos usb stick into the esata/usb combo plug |
Use pmbootstrap to build your own image, like so:
$ pmbootstrap init
$ pmbootstrap install --sdcard=/dev/sdX # change 'sdX' with the path of your USB drive
After creating your pmOS image, connect to your device via UART.
Booting
Due to the boot behavior mentioned above , pmOS wouldn't boot automatically when it got powered on.Therefore we need to manually boot pmos from uboot shell or make it automatically boot from external drive by modifying either the nandboot
environment variable or the altnandboot
environment variable.
Modify environment variables
In this section, we will modify the default environment variable for making pmOS automatically boot when the device is powered on and a pmOS drive is plugged in.
After you have those command below,run those command to reboot
# reset
altnandboot
In this section, we will modify the altnandboot environment variable for making pmOS automatically boot when the device is powered on and a pmOS drive is plugged in.
USB Stick
Run these commands to modify the default altnandboot environment variable for making pmOS automatically boot when the device is powered on and a pmOS USB stick is plugged in:
# setenv altnandboot_stock ${altnandboot}
# setenv altnandboot "usb start;ext2load usb 0 ${kernel_addr_r} uImage;ext2load usb 0 ${ramdisk_addr_r} uInitrd;bootm ${kernel_addr_r} ${ramdisk_addr_r};run altnandboot_stock"
# saveenv
SATA Drive
Run these commands to modify the default altnandboot environment variable for making pmOS automatically boot when the device is powered on and a pmOS SATA Drive is plugged in:
# setenv altnandboot_stock ${altnandboot}
# setenv altnandboot "scsi init;ext2load scsi 0 ${kernel_addr_r} uImage;ext2load scsi 0 ${ramdisk_addr_r} uInitrd;bootm ${kernel_addr_r} ${ramdisk_addr_r};run altnandboot_stock"
# saveenv
nandboot
In this section, we will modify the nandboot environment variable for making pmOS automatically boot when the device is powered on and a pmOS drive is plugged in.
USB Stick
Run these commands to modify the default altnandboot environment variable for making pmOS automatically boot when the device is powered on and a pmOS USB stick is plugged in:
# setenv nandboot_stock ${altnandboot}
# setenv nandboot "usb start;ext2load usb 0 ${kernel_addr_r} uImage;ext2load usb 0 ${ramdisk_addr_r} uInitrd;bootm ${kernel_addr_r} ${ramdisk_addr_r};run nandboot_stock"
# saveenv
SATA Drive
Run these commands to modify the default altnandboot environment variable for making pmOS automatically boot when the device is powered on and a pmOS SATA Drive is plugged in:
# setenv nandboot_stock ${altnandboot}
# setenv nandboot "scsi init;ext2load scsi 0 ${kernel_addr_r} uImage;ext2load scsi 0 ${ramdisk_addr_r} uInitrd;bootm ${kernel_addr_r} ${ramdisk_addr_r};run nandboot_stock"
# saveenv
Manually boot pmos
In this section, we will manually boot pmos
USB Stick
Run these commands to manually boot pmOS from usb stick:
# usb start
# ext2load usb 0 ${kernel_addr_r} uImage
# ext2load usb 0 ${ramdisk_addr_r} uInitrd
# bootm ${kernel_addr_r} ${ramdisk_addr_r}
SATA Drive
Run these commands to manually boot pmOS from sata drive:
# scsi init
# ext2load scsi 0 ${kernel_addr_r} uImage
# ext2load scsi 0 ${ramdisk_addr_r} uInitrd
# bootm ${kernel_addr_r} ${ramdisk_addr_r}
Wifi
Out of tree kernel module is required for it to work and that module is not packaged under pmos.
Ethernet/Switch
Works
the ethernet ports that are connected into the switch showed up in ip a
just like a normal ethernet device.
Esata/Usb combo port
Esata
Works
(Tested with sata multiplier , sata ssd)
Usb
Works
Usb 3 Port
Works