Difference between revisions of "OpenWRT: Build Firmware Linksys WRT1900AC"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
Line 24: | Line 24: | ||
Marvell MV78230 256 MiB 128 MiB 1×2.0 1×3.0 Yes | Marvell MV78230 256 MiB 128 MiB 1×2.0 1×3.0 Yes | ||
+ | |||
+ | ==Siapkan Aplikasi Pendukung== | ||
+ | |||
+ | sudo su | ||
+ | apt-get update | ||
+ | apt-get install subversion gawk flex sharutils bison libz-dev zlib1g-dev patch \ | ||
+ | fakeroot lzma git-core build-essential unzip libncurses5-dev curl php-xml-parser \ | ||
+ | libexpat1 libexpat1-dev libssl-dev | ||
+ | |||
+ | cd /usr/local/src | ||
+ | wget http://www.cpan.org/modules/by-module/XML/XML-Parser-2.43.tar.gz | ||
+ | tar zxvf XML-Parser-2.43.tar.gz | ||
+ | cd /usr/local/src/XML-Parser-2.43 | ||
+ | perl Makefile.PL | ||
+ | make install | ||
==Download source code== | ==Download source code== | ||
Line 33: | Line 48: | ||
~/Mamba | ~/Mamba | ||
+ | ./scripts/feeds update | ||
+ | ./scripts/feeds install meshwizard openssh-server openssh-client | ||
+ | ./scripts/feeds install freifunk-common freifunk-gwcheck freifunk-mapupdate | ||
+ | ./scripts/feeds install luci luci-app-meshwizard luci-app-olsr luci-app-olsr-services | ||
+ | ./scripts/feeds install luci-app-olsr-viz luci-app-freifunk-policyrouting luci-mod-freifunk | ||
+ | ./scripts/feeds install luci-theme-freifunk-generic olsrd olsrd-mod-txtinfo olsrd-mod-dyn-gw | ||
+ | ./scripts/feeds install olsrd-mod-dyn-gw-plain olsrd-mod-dot-draw | ||
+ | ./scripts/feeds install olsrd-mod-arprefresh olsrd-mod-watchdog olsrd-mod-tas olsrd-mod-httpinfo | ||
+ | ./scripts/feeds install olsrd-mod-pgraph olsrd-mod-secure olsrd-mod-bmf | ||
+ | ./scripts/feeds install luci-app-upnp minidlna miniupnpc miniupnpd luci-app-minidlna | ||
+ | ./scripts/feeds install libdlna libgupnp libgupnp-dlna rtorrent | ||
+ | ./scripts/feeds install usb-modeswitch usb-modeswitch-data usbutils multiwan | ||
+ | ./scripts/feeds install 6in4 6rd 4th 6to4 6tunnel libdaemon aprx usb-modeswitch | ||
+ | ./scripts/feeds install pptpd ppp-mod-pptp smstools3 picocom | ||
+ | ./scripts/feeds install kamailio4 kamailio asterisk18 asterisk11 | ||
+ | ./scripts/feeds update -a | ||
+ | ./scripts/feeds install -a | ||
+ | |||
+ | |||
+ | 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" | ||
Line 49: | Line 90: | ||
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: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Instalasi aplikasi pendukung | Instalasi aplikasi pendukung | ||
Line 62: | Line 96: | ||
make, find, grep, diff, unzip, gawk, getopt, libz-dev and libc headers. | make, find, grep, diff, unzip, gawk, getopt, libz-dev and libc headers. | ||
− | |||
− | |||
− | |||
− | |||
Use "make menuconfig" to configure your image. | Use "make menuconfig" to configure your image. |
Revision as of 07:55, 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
Siapkan Aplikasi Pendukung
sudo su apt-get update apt-get install subversion gawk flex sharutils bison libz-dev zlib1g-dev patch \ fakeroot lzma git-core build-essential unzip libncurses5-dev curl php-xml-parser \ libexpat1 libexpat1-dev libssl-dev
cd /usr/local/src wget http://www.cpan.org/modules/by-module/XML/XML-Parser-2.43.tar.gz tar zxvf XML-Parser-2.43.tar.gz cd /usr/local/src/XML-Parser-2.43 perl Makefile.PL make install
Download source code
cd ~ git clone https://github.com/jimmychungbelkin/Mamba
Source code akan berada di
~/Mamba ./scripts/feeds update ./scripts/feeds install meshwizard openssh-server openssh-client ./scripts/feeds install freifunk-common freifunk-gwcheck freifunk-mapupdate ./scripts/feeds install luci luci-app-meshwizard luci-app-olsr luci-app-olsr-services ./scripts/feeds install luci-app-olsr-viz luci-app-freifunk-policyrouting luci-mod-freifunk ./scripts/feeds install luci-theme-freifunk-generic olsrd olsrd-mod-txtinfo olsrd-mod-dyn-gw ./scripts/feeds install olsrd-mod-dyn-gw-plain olsrd-mod-dot-draw ./scripts/feeds install olsrd-mod-arprefresh olsrd-mod-watchdog olsrd-mod-tas olsrd-mod-httpinfo ./scripts/feeds install olsrd-mod-pgraph olsrd-mod-secure olsrd-mod-bmf ./scripts/feeds install luci-app-upnp minidlna miniupnpc miniupnpd luci-app-minidlna ./scripts/feeds install libdlna libgupnp libgupnp-dlna rtorrent ./scripts/feeds install usb-modeswitch usb-modeswitch-data usbutils multiwan ./scripts/feeds install 6in4 6rd 4th 6to4 6tunnel libdaemon aprx usb-modeswitch ./scripts/feeds install pptpd ppp-mod-pptp smstools3 picocom ./scripts/feeds install kamailio4 kamailio asterisk18 asterisk11 ./scripts/feeds update -a ./scripts/feeds install -a
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"
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
After applying the patches in this directory to the OpenWrt Build you can generate an image by doing the following:
Instalasi aplikasi pendukung
apt-get install gcc binutils bzip2 flex python perl \ make, find, grep, diff, unzip, gawk, getopt, libz-dev and libc headers.
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
- 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).
- cd mamba-openwrt-vX.Y
- ./scripts/feeds update packages
- ./scripts/feeds update luci
- ./scripts/feeds update routing
- ./scripts/feeds update xwrt
- ./scripts/feeds install -a -p packages
- ./scripts/feeds install -a -p luci
- ./scripts/feeds install -a -p routing
4. Configuration the openwrt:
- cd mamba-openwrt-vX.Y
To enable/disable packages manually:
- make menuconfig
You can also utilize the pre-config file (which enables Web Management):
- cp belkin/mamba_basic_config .config
5. Building the openwrt:
- cd mamba-openwrt-vX.Y
- make dirclean
- make V=s
6. Binary files after finish compile (or extract from release binaries):
- tar xzvf mamba-openwrt-vX.Y.bin.tar.gz
- cd mamba-openwrt-vX.Y.bin
- 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'
- save all environment variables
u-boot> saveenv 3. Burn the Firmwares to NAND
- to burn firmware image to Primary Boot partition
u-boot> run flash_pri_image
- to burn firmware image to Alternative Boot partition
u-boot> run flash_alt_image 4. Boot up firmware
- boot firmware image from Primary Boot partition
u-boot> run nandboot
- 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
- 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
- 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
- https://github.com/wrt1900ac/opensource
- http://wjianz.wordpress.com/2014/09/18/useful-links-on-building-openwrt-for-wrt1900ac/
- https://github.com/jimmychungbelkin/Mamba/blob/master/Mamba_Openwrt_SDK_QS_v4.8.txt
- https://github.com/Chadster766/McWRT/releases
- http://support.linksys.com/en-us/support/routers/WRT1900AC
- https://github.com/wrt1900ac/opensource