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 linksys-shelby
A portable monitor connected to WRT1900ACS via USB GPU
A portable monitor connected to WRT1900ACS via USB GPU
Manufacturer Linksys
Name linksys-shelby
Codename WRT1900ACS/WRT1900ACS V2
Released 2015
Type router
Hardware
Chipset Marvell Armada 385
CPU Dual-core 1.2 GHz Cortex-A9
GPU none
Display none
Storage 128MB
Memory 512MB
Architecture armv7
postmarketOS
Category testing
Pre-built images no
Mainline yes
Features
Flashing
Broken
Internal storage
Partial
Connectivity
WiFi
Broken
Ethernet
Works
Miscellaneous
FDE
USB-A
Works
HDMI/DP
Sensors
Magnetometer
Ambient Light
Proximity
Hall Effect
Haptics
Barometer


Contributors

Users owning this device

Default Boot Behavior

Note nandboot and altnandboot environment variable do not contain any code that is for booting on external drive.

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 setted to ether run nandboot (Run the command that in nandboot environment variable) or run altnandboot (Run the command that in altnandboot environment variable) depend on whoever it booting off the primary firmware (Slot A in android term) of the alternate firmware (Slot B in android term) .

Installation

Installing pmOS to your disk

Icon WARNING: DO NOT PLUG multiple USB stick into the router during boot if you decided to use usb stick to boot pmos.If you do have multiple USB stick pluged in druing boot , please make sure the usb 0 in u-boot is the pm os usb stick.
Icon WARNING: DO NOT PLUG multiple SATA drive into the router during boot if you decided to use SATA drive to boot pmos.If you do have multiple SATA drive pluged in druing boot , please make sure the scsi 0 in u-boot is the pm os usb stick.
Note The usb 3 port dont 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 mention above , pmOS wouldnt boot automatically when it got powered on.Therefore we need manually boot pmos from uboot shell or making it automatically boot from external drive by modify either nandboot environment variable or altnandboot environment variable.

Modify environment variable

In this section, we will modifying the default environment variable for making pmOS automatically boot when the device is powered on and a pmOS drive is plugged in.

After you has those command at below,run those command to reboot

Marvell# reset
altnandboot

In this section, we will modifying 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:

Marvell# setenv altnandboot_stock ${altnandboot}
Marvell# 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"
Marvell# 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:

Marvell# setenv altnandboot_stock ${altnandboot}
Marvell# 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"
Marvell# saveenv
nandboot

In this section, we will modifying 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:

Marvell# setenv nandboot_stock ${altnandboot}
Marvell# 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"
Marvell# 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:

Marvell# setenv nandboot_stock ${altnandboot}
Marvell# 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"
Marvell# saveenv

Manually boot pmos

In this section, we will manually boot pmos

USB Stick

Run these commands to manually boot pmOS from usb stick:

Marvell# usb start
Marvell# ext2load usb 0 ${kernel_addr_r} uImage
Marvell# ext2load usb 0 ${ramdisk_addr_r} uInitrd
Marvell# bootm ${kernel_addr_r} ${ramdisk_addr_r}
SATA Drive

Run these commands to manually boot pmOS from sata drive:

Marvell# scsi init
Marvell# ext2load scsi 0 ${kernel_addr_r} uImage
Marvell# ext2load scsi 0 ${ramdisk_addr_r} uInitrd
Marvell# bootm ${kernel_addr_r} ${ramdisk_addr_r}

See also

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