Difference between revisions of "OpenWRT: Build Firmware Linksys WRT1900AC"

From OnnoWiki
Jump to navigation Jump to search
Line 38: Line 38:
 
jimmychungbelkin/Mamba: https://github.com/jimmychungbelkin/Mamba
 
jimmychungbelkin/Mamba: https://github.com/jimmychungbelkin/Mamba
 
About these ads
 
About these ads
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
  
Line 62: Line 44:
  
 
openwrt
 
openwrt
 
+
=======
 
The main build tree can be found at https://github.com/jimmychungbelkin/Mamba
 
The main build tree can be found at https://github.com/jimmychungbelkin/Mamba
  
 
This repository contains the set of patches, and prebuilt images based on the Linksys WRT1900AC.
 
This repository contains the set of patches, and prebuilt images based on the Linksys WRT1900AC.
 +
 +
 
Barrier Breaker
 
Barrier Breaker
 
+
=======
 
Barrier-Breaker/openwrt-armadaxp--jffs2-128k.img - prebuilt image based on OpenWrt Barrier-Breaker
 
Barrier-Breaker/openwrt-armadaxp--jffs2-128k.img - prebuilt image based on OpenWrt Barrier-Breaker
  
Line 75: Line 59:
  
 
OpenWRT svn base revision: 40006
 
OpenWRT svn base revision: 40006
 +
 +
 
Attitude Adjustment
 
Attitude Adjustment
 +
=======
 +
Attitude-Adjustment/openwrt-armadaxp--jffs2-128k.img - prebuilt image based on OpenWrt Attitude-Adjustment
  
Attitude-Adjustment/openwrt-armadaxp--jffs2-128k.img - prebuilt image based on OpenWrt Attitude-Adjustment
+
=======
  
 
After applying the patches in this directory to the OpenWrt Build you can generate an image by doing the following:
 
After applying the patches in this directory to the OpenWrt Build you can generate an image by doing the following:
  
Use "make menuconfig" to configure your appreciated configuration for the toolchain and firmware.
+
Use "make menuconfig" to configure your appreciated
 
+
configuration for the toolchain and firmware.
For WRT1900AC: The "Target System" in make menuconfig should be set to "Marvell Armada XP/370"
 
  
The "Subtarget" in make menuconfig should be set to "Mamba"
+
For WRT1900AC:
 +
The "Target System" in make menuconfig should be set to "Marvell Armada XP/370"
 +
The "Subtarget" in make menuconfig should be set to "Mamba"
 +
In "Target Images" in make menuconfig you should enable "jffs2"
  
In "Target Images" in make menuconfig you should enable "jffs2"
+
Instalasi aplikasi pendukung
  
You need to have installed gcc, binutils, bzip2, flex, python, perl make, find, grep, diff, unzip, gawk, getopt, libz-dev and libc headers.
+
apt-get install gcc binutils bzip2 flex python perl \
 +
make, find, grep, diff, unzip, gawk, getopt, libz-dev and libc headers.
  
Run "./scripts/feeds update -a" to get all the latest package definitions defined in feeds.conf / feeds.conf.default respectively
+
Run "./scripts/feeds update -a" to get all the latest package definitions
 +
defined in feeds.conf / feeds.conf.default respectively
  
Run "./scripts/feeds install -a" to install symlinks of all of them into package/feeds/.
+
Run "./scripts/feeds install -a" to install symlinks of all of them into
 +
package/feeds/.
  
 
Use "make menuconfig" to configure your image.
 
Use "make menuconfig" to configure your image.
  
Simply running "make" will build your firmware. It will download all sources, build the cross-compile toolchain, the kernel and all choosen applications.
+
Simply running "make" will build your firmware.
 +
It will download all sources, build the cross-compile toolchain,  
 +
the kernel and all choosen applications.
  
After the build completes the firmware image for the WRT1900AC will be located at: ./bin/mvebu/openwrt-mvebu-mamba-jffs2-128k.img
+
After the build completes the firmware image for the WRT1900AC will be  
 +
located at:
 +
./bin/mvebu/openwrt-mvebu-mamba-jffs2-128k.img
  
 
How to update from Belkin/Linksys UI
 
How to update from Belkin/Linksys UI
Line 115: Line 112:
 
After the firmware is updated, the unit will reboot, and the default ip address will be 192.168.200.1
 
After the firmware is updated, the unit will reboot, and the default ip address will be 192.168.200.1
  
The OpenWrt system is documented in docs/. You will need a LaTeX distribution and the tex4ht package to build the documentation. Type "make -C docs/" to build it.
+
The OpenWrt system is documented in docs/. You will need a LaTeX distribution
 +
and the tex4ht package to build the documentation. Type "make -C docs/" to build it.
  
To build your own firmware you need to have access to a Linux, BSD or MacOSX system (case-sensitive filesystem required). Cygwin will not be supported because of the lack of case sensitiveness in the file system.
+
To build your own firmware you need to have access to a Linux, BSD or MacOSX system
 +
(case-sensitive filesystem required). Cygwin will not be supported because of
 +
the lack of case sensitiveness in the file system.
 +
 
 +
 
 +
Sunshine!
 +
Your OpenWrt Project
 +
http://openwrt.org
  
Sunshine! Your OpenWrt Project http://openwrt.org
 
  
  
Line 239: Line 243:
 
# boot firmware image from Alternative Boot partition
 
# boot firmware image from Alternative Boot partition
 
u-boot> run altnandboot
 
u-boot> run altnandboot
 +
 
5. If you want to reset the OpenWRT configuration to default, there are several ways to do that
 
5. If you want to reset the OpenWRT configuration to default, there are several ways to do that
 
5.1 Erase the whole syscfg partition in U-boot
 
5.1 Erase the whole syscfg partition in U-boot
Line 265: Line 270:
 
Reboot the system
 
Reboot the system
 
reboot
 
reboot
 +
 
5.4 Factory reset via WebUI
 
5.4 Factory reset via WebUI
 
Login OpenWRT WebUI, go to System > Backup/Flash Firmware > Reset to defaults, press the "Perform Reset" button and choose "Yes" when the confirmation prompt appears
 
Login OpenWRT WebUI, go to System > Backup/Flash Firmware > Reset to defaults, press the "Perform Reset" button and choose "Yes" when the confirmation prompt appears

Revision as of 07:24, 8 January 2015

WRT1900AC was announced on 6th of January 2014 as a router developed to be used with OpenWrt.

Specifications:

Model: 	Linksys WRT1900AC
Technology: 	Wireless-AC
Standards: 	802.11a, 802.11b, 802.11g, 802.11n. 802.11ac
Frequency: 	Dual
Bands: 	Simultaneous: 2.4 GHz (Wireless-N), 5.0 GHz (Wireless-AC)
Security: 	WEP 64/128-bit, WPA2-Personal & Enterpise (AES/TKIP), WPS
Antennas: 	4x External Detachable Antennas
Antenna Gain (peak): 	2.4GHz: 2.5dBi
5GHz: 3.8dBi
Antenna Type: 	Dipole
Output Power: 	2.4GHz: 19dBm
5GHz: 21dBm
Warranty: 	2 year hardware limited warranty
OS Compatibility: 	Windows, Mac
Minimum System Requirements: 	PC with CD or DVD drive, running Windows XP SP3 (32-bit), Vista SP1/SP2 (32 & 64-bit), Win7 (32-bit & 64-bit) and Win8 (32-bit & 64-bit)

Mac: Wi-Fi enabled with CD or DVD drive, Mac OS® X Leopard v10.5.8 or later, Snow Leopard v10.6.1 or later, Lion v10.7, or Mountain Lion v10.8 Available USB 2.0 port

Package Contents: 	Linksys Dual Band Gigabit Wi-Fi Router AC1900, WRT1900AC, Quick Start Guide, CD-ROM with Documentation, 4 Antennas, Ethernet Cable, Power Adapter, Power Cord

Hardware Highlights:

SoC 	Ram 	Flash 	Network 	USB 	Serial 	JTag 	eSata
Marvell MV78230 	256 MiB 	128 MiB 		1×2.0 1×3.0 	Yes 	

Serial Port:

1 	2 	3 	4 	5 	6
GND 	? 	RX 	? 	TX 	?

Useful Links:

OpenWrt forum thread for official statement: Update on Linksys WRT1900AC support

McWRT: https://github.com/Chadster766/McWRT

Prebuilt images: https://github.com/wrt1900ac/opensource

jimmychungbelkin/Mamba: https://github.com/jimmychungbelkin/Mamba About these ads



openwrt

=

The main build tree can be found at https://github.com/jimmychungbelkin/Mamba

This repository contains the set of patches, and prebuilt images based on the Linksys WRT1900AC.


Barrier Breaker

=

Barrier-Breaker/openwrt-armadaxp--jffs2-128k.img - prebuilt image based on OpenWrt Barrier-Breaker

Barrier-Breaker/patch_submission_1.6.tar.gz - patch files for standard OpenWrt Package

OpenWRT git base revision: e97be7a104e5c809ae4638cf169823249a505698

OpenWRT svn base revision: 40006


Attitude Adjustment

=

Attitude-Adjustment/openwrt-armadaxp--jffs2-128k.img - prebuilt image based on OpenWrt Attitude-Adjustment

=

After applying the patches in this directory to the OpenWrt Build you can generate an image by doing the following:

Use "make menuconfig" to configure your appreciated configuration for the toolchain and firmware.

For WRT1900AC:

The "Target System" in make menuconfig should be set to "Marvell Armada XP/370"
The "Subtarget" in make menuconfig should be set to "Mamba"
In "Target Images" in make menuconfig you should enable "jffs2"

Instalasi aplikasi pendukung

apt-get install gcc binutils bzip2 flex python perl \
make, find, grep, diff, unzip, gawk, getopt, libz-dev and libc headers.

Run "./scripts/feeds update -a" to get all the latest package definitions defined in feeds.conf / feeds.conf.default respectively

Run "./scripts/feeds install -a" to install symlinks of all of them into package/feeds/.

Use "make menuconfig" to configure your image.

Simply running "make" will build your firmware. It will download all sources, build the cross-compile toolchain, the kernel and all choosen applications.

After the build completes the firmware image for the WRT1900AC will be located at: ./bin/mvebu/openwrt-mvebu-mamba-jffs2-128k.img

How to update from Belkin/Linksys UI

Login into WRT1900AC local UI

Navigate to the Connectivity tab

Select Manual firmware update

Select image to load (e.g., openwrt-armadaxp--jffs2-128k.img)

Select Update firmware

After the firmware is updated, the unit will reboot, and the default ip address will be 192.168.200.1

The OpenWrt system is documented in docs/. You will need a LaTeX distribution and the tex4ht package to build the documentation. Type "make -C docs/" to build it.

To build your own firmware you need to have access to a Linux, BSD or MacOSX system (case-sensitive filesystem required). Cygwin will not be supported because of the lack of case sensitiveness in the file system.


Sunshine! Your OpenWrt Project http://openwrt.org











03/05/2014

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

CONTENTS Topic -------- Section


-------

o OVERVIEW....................................................... 1.0 o BUILDING OPENWRT............................................... 2.0 o HOW TO BOOT UP TO LINUX........................................ 3.0

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

1.0 OVERVIEW This document provides a quickstart guide on Mamba OpenWRT SDK V4.0

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

2.0 BUILDING OPENWRT How to build the openwrt: 1. Setup the Linux server and install all packages for openwrt: Refer: http://wiki.openwrt.org/doc/howto/buildroot.exigence 2. Make sure the server is connected to the Internet. 3. Preparation: Extract the release source from tarball

  1. tar xzfv mamba-openwrt-v4.0.tar.gz

Extract the opensource (dl_v4.0.tar.gz) the dl folder Update packages and luci for some advanced features ( such as Web Management).

  1. cd mamba-openwrt-vX.Y
  2. ./scripts/feeds update packages
  3. ./scripts/feeds update luci
  4. ./scripts/feeds update routing
  5. ./scripts/feeds update xwrt
  6. ./scripts/feeds install -a -p packages
  7. ./scripts/feeds install -a -p luci
  8. ./scripts/feeds install -a -p routing

4. Configuration the openwrt:

  1. cd mamba-openwrt-vX.Y

To enable/disable packages manually:

  1. make menuconfig

You can also utilize the pre-config file (which enables Web Management):

  1. cp belkin/mamba_basic_config .config

5. Building the openwrt:

  1. cd mamba-openwrt-vX.Y
  2. make dirclean
  3. make V=s

6. Binary files after finish compile (or extract from release binaries):

  1. tar xzvf mamba-openwrt-vX.Y.bin.tar.gz
  2. cd mamba-openwrt-vX.Y.bin
  3. ls

md5sums openwrt-mvebu-jffs2-128k.img openwrt-mvebu-Mamba-rootfs.tar.gz openwrt-mvebu-root.jffs2-128k openwrt-mvebu-uImage-armada-xp-mamba openwrt-mvebu-uImage-initramfs-armada-xp-mamba packages/ Then put all the openwrt-armadaxp-*** to tftp server (/tftpboot folder)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

3.0 HOW TO BOOT UP TO LINUX 1. Configure the ethernet: Make sure the ethernet of board working, then we can get the files from tftp server for boot up Linux. 2. Set up environment variables required for Dual Boot (Primary Boot + Alternative Boot) Mamba support Dual Boot with the following features: + Linksys and OpenWRT firmware use the same flash layout (mtdparts U-boot variable) + Linksys and OpenWRT firmware use the same kernel boot arguments (bootargs is the same and independent of the firmware) + Linksys and OpenWRT share the syscfg partition for storing configuration files. + Linksys and OpenWRT firmware can be flashed to Primary Boot partition or Alternative Boot partition (the ping-pong effect: when we upgrade firmware from Primary partition the new firmware is written to the Alternative partition, next bootcmd is set to Alternative partition. When we upgrade firmware from Alternative partition the new firmware is written to the Primary partition, next bootcmd is set to Primary partition) The defaul U-boot environment variables are listed below u-boot> setenv alt_kern_addr '0x3200000' u-boot> setenv alt_kern_size '0x400000' u-boot> setenv pri_kern_addr '0xa00000' u-boot> setenv pri_kern_size '0x400000' u-boot> setenv openwrt_fw_size '0x2800000' u-boot> setenv default_load_addr '0x2000000' u-boot> setenv console 'console=ttyS0,115200' u-boot> setenv firmware_name 'openwrt-mvebu-jffs2-128k.img' u-boot> setenv serverip '192.168.200.2' u-boot> setenv auto_recovery 'yes' u-boot> setenv boot_part '1' u-boot> setenv default_mtdparts 'mtdparts=armada-nand:1024K(uboot)ro,256K(u_env),256K(s_env),1m@9m(devinfo),40m@10m(kernel),37m@13m(rootfs),40m@50m(alt_kernel),37m@53m(alt_rootfs),80m@10m(ubifs),-@90m(syscfg)' u-boot> setenv jffs2_mtdparts 'mtdparts=armada-nand:1024K(uboot)ro,256K(u_env),256K(s_env),1m@9m(devinfo),40m@10m(kernel),37m@13m(rootfs),40m@50m(alt_kernel),37m@53m(alt_rootfs),80m@10m(ubifs),-@90m(syscfg)' u-boot> setenv openwrt_mtdparts 'mtdparts=armada-nand:1024K(uboot)ro,256K(u_env),256K(s_env),1m@9m(devinfo),40m@10m(kernel),37m@13m(rootfs),40m@50m(alt_kernel),37m@53m(alt_rootfs),80m@10m(ubifs),-@90m(syscfg)' u-boot> setenv linksys_altnandboot 'nand read $default_load_addr $alt_kern_addr $alt_kern_size; setenv bootargs $console $default_mtdparts root=/dev/mtdblock7 ro rootfstype=jffs2 init=/sbin/init; bootm $default_load_addr;' u-boot> setenv linksys_nandboot 'nand read $default_load_addr $pri_kern_addr $pri_kern_size; setenv bootargs $console $default_mtdparts root=/dev/mtdblock5 ro rootfstype=jffs2 init=/sbin/init; bootm $default_load_addr;' u-boot> setenv openwrt_altnandboot 'nand read $default_load_addr $alt_kern_addr $openwrt_fw_size; setenv bootargs $console $default_mtdparts root=/dev/mtdblock7 ro rootfstype=jffs2 init=/sbin/init; bootm $default_load_addr;' u-boot> setenv openwrt_nandboot 'nand read $default_load_addr $pri_kern_addr $openwrt_fw_size; setenv bootargs $console $default_mtdparts root=/dev/mtdblock5 ro rootfstype=jffs2 init=/sbin/init; bootm $default_load_addr;' u-boot> setenv flash_alt_image 'tftp $default_load_addr $firmware_name; nand erase $alt_kern_addr 0x2800000;nand write $default_load_addr $alt_kern_addr ${filesize};' u-boot> setenv flash_pri_image 'tftp $default_load_addr $firmware_name; nand erase $pri_kern_addr 0x2800000;nand write $default_load_addr $pri_kern_addr ${filesize};' u-boot> setenv update_both_images 'run flash_pri_image;run flash_alt_image' u-boot> setenv altnandboot 'run linksys_altnandboot' u-boot> setenv nandboot 'run linksys_nandboot' u-boot> setenv bootcmd 'run nandboot'

  1. save all environment variables

u-boot> saveenv 3. Burn the Firmwares to NAND

  1. to burn firmware image to Primary Boot partition

u-boot> run flash_pri_image

  1. to burn firmware image to Alternative Boot partition

u-boot> run flash_alt_image 4. Boot up firmware

  1. boot firmware image from Primary Boot partition

u-boot> run nandboot

  1. boot firmware image from Alternative Boot partition

u-boot> run altnandboot

5. If you want to reset the OpenWRT configuration to default, there are several ways to do that 5.1 Erase the whole syscfg partition in U-boot WARNING: this will also erase the configuration data of alternative boot u-boot> setenv mtdparts $default_mtdparts u-boot> nand erase.part syscfg Boot up OpenWrt again. The boot script will first show "ubifs sysfs not ready yet; using ramdisk", the boot script will automatically format and create a new empty syscfg partition to store configuration data. 5.2 Factory reset in OpenWrt Failsafe Mode If the ubifs syscfg partition is already properly formatted, this method is preferred. It only tries to remove the configuration files and leave the alternative boot configuration files intact. Boot up OpenWrt. When you see the failsafe prompt as below "Press the [f] key and hit [enter] to enter failsafe mode " Enter "f" and then "enter" (You can also enter the failsafe mode via the HW button, then telnet to the board to have console command line) When you reach the command line interface. Run one of the two command below: firstboot

  1. or

firstboot jffs2reset NOTE: If the syscfg partition is not formatted yet. The above command will try to reformat and create a new empty syscfg partition. Reboot the system reboot -f 5.3 Factory reset in OpenWrt Normal Mode If the ubifs syscfg partition is already properly formatted, this method is preferred. It only tries to remove the configuration files and leave the alternative boot configuration files intact. Boot up OpenWrt normally. When you reach the command line interface. Run one of the two command below firstboot

  1. or

firstboot jffs2reset Reboot the system reboot

5.4 Factory reset via WebUI Login OpenWRT WebUI, go to System > Backup/Flash Firmware > Reset to defaults, press the "Perform Reset" button and choose "Yes" when the confirmation prompt appears 6. Overlay on syscfg partition sequence If the syscfg partition is not found (it is defined in mtdparts variable at Uboot). OpenWRT will just mount read-only root filesystem. We cannot write to the read-only file system. If the syscfg partition is found and is formatted as ubifs properly (it should have one syscfg volume inside the partition), OpenWRT will mount the syscfg partition and use the directory /openwrt_overlay for storing configuration files. If the syscfg partition is found but it is not formatted properly (ubifs_mount failed), the system will first use ramfs (tmpfs) for overlay the root. Later in the init script (/etc/init.d/S95done), the system will try to recover from the ubifs_mount failed by formatting the syscfg partition. So on the second boot, we should not see this ubifs_mount issue again. 7. OpenWRT sysupgrade behavior Mamba support two partitions for booting Linux. When doing OpenWRT sysupgrade + If current firmware boot is from Primary Boot partition (boot_part=1), the new firmware is written to Alternative Boot partition. Sysupgrade also sets two U-boot environment variables for next boot "bootcmd=run altnandboot" "boot_part=2". The system is rebooted and on next boot the system will boot from Alternative Boot partition. + If current firmware boot is from Alternative Boot partition (boot_part=2), the new firmware is written to Primary Boot partition. Sysupgrade also sets two U-boot environment variables for next boot "bootcmd=run nandboot" "boot_part=1". The system is rebooted and on next boot the system will boot from Primary Boot partition.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Referensi