Jump to content

Linksys WRT1900ACS/WRT1900ACS V2 (linksys-shelby)

From postmarketOS Wiki
Note pmOS can't run on its internal storage.However, it's possible to boot pmOS from USB Stick.
Linksys WRT1900ACS/
WRT1900ACS V2
A portable monitor connected to WRT1900ACS via USB GPU
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
Features
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
U-Boot
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

Note 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 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 WARNING: The Stock U-Boot doesn't support sata Multipliers
Note 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

See also

  • [1] WRT1900ACS on openwrt
  • [2] Info about the default boot behaviour
  • [3] Info about the wifi driver