Openwrt Image Builder/SDK 初探


 

 

image builder和SDK既可以從官網上下載,又可以自己進行編譯(make menuconfig)。
官網上下載的是預先幫你編譯好的,這樣可以大量節省自己編譯源碼花的時間,
這兩個東西相當於半成品,最后的東西還是要你自己生成的。
開發流程如下:

 

 


在編譯時將image builder和sdk這兩項勾上之后,它們就可以被編譯出來的。
當然也可以從官網下載,不過官網編譯出來的包只支持X64


最下面兩個就是Image builder和SDK。

 

 

然后將它們分別解壓,名字太長了,改的短一點:

這里的目錄和Openwrt源碼包是差不多的,不過Image builder只有打包功能,所以
不需要toolchain,只需要打包的一些工具和預編譯好的一些二進制文件。

這里的packages目錄和Openwrt源碼不一樣,這里是預先編譯好的ipk,
而openwrt里面的packages目錄是用來存放ipk包的一些Makefile和patch。

開始打包,首先,用make info來查看當前已經有的profile,也就是預定義的型號信息:

 

make info > info.txt

 

這里會輸出很多行,這里選擇一些自己感興趣的行:

Current Target: "ar71xx (Generic)"
Default Packages: base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools kmod-gpio-button-hotplug swconfig kmod-ath9k wpad-mini uboot-envtools dnsmasq iptables ip6tables ppp ppp-mod-pppoe kmod-nf-nathelper firewall odhcpd odhcp6c
Available Profiles:

Default:
    Default Profile (all drivers)
    Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev
Minimal:
    Minimal Profile (no drivers)
    Packages: -kmod-ath9k -wpad-mini
ath5k:
    Atheros 802.11abg WiFi (ath5k)
    Packages: kmod-ath5k -kmod-ath9k
CARAMBOLA2:
    Carambola2 board from 8Devices
    Packages: kmod-usb-core kmod-usb2
ALFAAP96:
    ALFA Network AP96 board
    Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-rtc-pcf2123
HORNETUB:
    ALFA Network Hornet-UB board (8MB flash, 32MB ram)
    Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
HORNETUBx2:
    ALFA Network Hornet-UB-x2 board (16MB flash, 64MB ram)
    Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
ALFANX:
    ALFA Network N2/N5 board
    Packages: 
TLWA901:
    TP-LINK TL-WA901N/ND
    Packages: 
TLWDR4300:
    TP-LINK TL-WDR3500/3600/4300/4310/MW4350R
    Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
TLWDR4900V2:
    TP-LINK TL-WDR4900v2
    Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
TLWR740:
    TP-LINK TL-WR740N/ND
    Packages: 
TLWR741:
    TP-LINK TL-WR741N/ND
    Packages: 
TLWR743:
    TP-LINK TL-WR743N/ND
    Packages: 
TLWR841:
    TP-LINK TL-WR841N/ND
    Packages: 

這些列表應該是從根目錄下面的.targetinfo提取的(文件管理器會把它隱藏)

其中Default Packages是默認會編譯進二進制文件的ipk。然后下面每一個型號對應的
Packages是自己要增加的package


可以看到里面有TLWR740,那么開始編譯:


make image PROFILE="TLWR740"

可以看到生成了一個bin文件夾。

准備開始刷機,刷機之前的系統(水星MW150R):

刷機之后:

 

 

原來是沒有安裝luci。
telnet成功,進一步說明了已經刷好了,但是缺少luci。

 

這里已經為我們准備好了luci:

那么將這些東西編譯進去吧:

 

make image PROFILE="TLWR740" PACKAGES="luci-app-firewall luci-base luci-lib-ip luci-lib-nixio luci-mod-admin-full luci-proto-ppp luci-theme-bootstrap luci"

現在編譯出來的bin從2.87MB漲到3.3MB了:

 

刷完之后luci出現了:

接下來用SDK做一個helloworld:

參考資料:http://jphome.github.io/blog/2014/03/29/openwrt_sdk.html

新建好相應的文件和目錄之后,使用make V=99來生成:
最后得到一個ipk文件

把它編譯進去:

make image PROFILE="TLWR740" PACKAGES="luci-app-firewall luci-base luci-lib-ip luci-lib-nixio luci-mod-admin-full luci-proto-ppp luci-theme-bootstrap luci helloworld"

 

 

刷完固件之后發現它已經在里面了。

然后執行helloword(可能telnet出問題了,h沒有顯示出來)

 

 

參考資料:

https://cokebar.info/archives/90

http://demon.tw/hardware/image-generator-image-builder-openwrt.html

http://blog.berry10086.com/Tech/Openwrt/tips-about-customize-openwrt/

http://www.it165.net/network/html/201303/1004.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM