注意:官方網站下載的 ImageBuilder 在編譯固件時會出錯,提示“權限不夠”,在命令前加 sudo 后提示“Error 126”錯誤! 只能自己編譯 ImageBuilder 來用!自編譯 ImageBuilder 時,先在linux 環境下設置好再編譯,編譯后就會包含個性設置!
一、操作步驟:
1、 下載ImageBuilder 壓縮包
http://downloads.openwrt.org/snapshots/trunk/ar71xx/OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64.tar.bz2
也可自己編譯;
2、 解壓ImageBuilder 壓縮包
tar -xjvf OpenWrt-ImageBuilder- ar71xx_generic-for-Linux-x86_64.tar.bz2
3、 進入解壓后文件夾
cd Openwrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64
4、 查看默認軟件包和硬件支持列表
make info
make info
Current Target: "ar71xx (Generic)" (ar71xx目前支持75種路由型號)
Default Packages: base-files libc libgcc busybox dropbear mtd uci opkg hotplug2 netifd kmod-leds-gpio kmod-gpio-button-hotplug kmod-wdt-ath79 swconfig kmod-ledtrig-default-on kmod-ledtrig-timer kmod-ledtrig-netdev kmod-ath9k wpad-mini uboot-envtools dnsmasq iptables ppp ppp-mod-pppoe kmod-ipt-nathelper firewall (默認有26個軟件包,wr703n有28個包)
TLWR703:
TP-LINK TL-WR703N
kmod-usb-core kmod-usb2
5、 編譯(8M固件增加39個軟件包)
sudo make image PROFILE=TLWR703 PACKAGES="block-mount librt luci luci-i18n-chinese luci-app-ddns luci-proto-3g luci-app-hd-idle luci-app-p910nd luci-app-qos luci-app-samba luci-app-upnp luci-app-wol openvpn openvpn-easy-rsa kmod-scsi-core kmod-scsi-generic kmod-fs-ext4 kmod-fs-ntfs kmod-fs-vfat kmod-nls-utf8 kmod-usb-storage-extras kmod-usb-ohci kmod-usb-storage kmod-usb-uhci kmod-usb-acm kmod-usb-serial kmod-usb-serial-ftdi kmod-usb-serial-pl2303 kmod-video-core kmod-video-uvc mjpg-streamer ser2net badblocks restorefactory coreutils transmission-daemon transmission-remote transmission-web vsftpd"
本固件只適合已改機的8M/32M機器!
集成的軟件有:luci,中文語言包,DDNS,硬盤休眠,openvpn,打印服務器,QOS,samba,upnp,relay,網絡喚醒,USB掛載,硬盤格式支持(ntfs-3g/ext4/ntfs),UTF8編碼,USB擴展支持,USB驅動,復位鍵支持,transmission下載工具,8187.3070等多種網卡驅動..
注意輸入不要有錯! 前面輸錯了3個地方,找了很久!!!
編譯前可以先從官方網站:http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/ 下載ipk文件并放到dl 文件夾里面以節省編譯時間。放置文件出錯一般是文件夾操作權限不夠,除使用sudo 命令外,還需要用chmod 777 /home/submars/SDK 命令讓文件夾獲得最高的 777 權限。通過網絡共享文件的方式復制到ubuntu中的文件(文件夾)只有普通用戶權限,操作時需要 sudo 命令提升權限!
編譯過程中出現的錯誤和makefile 文件中對應。
二、個性化設置方法:
1、在源碼的 menuconfig 菜單里設置好,再編譯生成Imagebuilder,就會默認已經設置好的內容;
2、在Imagebuilder的根目錄創建一個文件夾存放個性化的配置文件,然后在命令后面加上 FILES=文件夾名 就可以了。
rg. FILES = wr703n(常用的配置的文件的目錄)
放在解壓后的 imagebuilder 目錄下就可以。
個性設置文件也可以直接復制Openwrt…/etc/config/*。
三、8M固件支持(新版本需要修改兩個文件)
703n 最新SVN trunk版本更新很大, 原來修改8m flash的結構體消失了!
(1)/tools/firmware-utils/src/mktplinkfw.c 中代碼:
static struct flash_layout layouts[] = {
{
.id = "4M",
.fw_max_len = 0x3c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x140000,
}, {
.id = "4Mlzma",
.fw_max_len = 0x3c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x100000,
}, {
.id = "8M",
.fw_max_len = 0x7c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x140000,
}, {
.id = "8Mlzma",
.fw_max_len = 0x7c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x100000,
}, {
/* terminating entry */
}
};
static struct board_info boards[] = {
}, {
.id = "TL-WR703Nv1",
.hw_id = HWID_TL_WR703N_V1,
.hw_rev = 1,
.layout_id = "4Mlzma", //只需將此處修改為8Mlzma
}, {
}
(2)在imagebuilder下面修改(如果用imagebuilder 來編譯固件,需修改此處!)
/target/linux/ar71xx/image/Makefile
把703n最后的4Mlzma改成8Mlzma!
所有設置完成后用make defconfig檢查,確保得到類似以下結果:
openssl-util........................... Open source SSL toolkit (utility) (PACKAGE_openssl-util) [Y/?] y
owipcalc............................. Simple IPv4/IPv6 address calculator (PACKAGE_owipcalc) [N/m/y/?] n