固件需要在非root環(huán)境下進行
一蚂踊,源碼構(gòu)建
安裝所需環(huán)境:
sudo apt-get install gcc zlib1g-dev subversion unzip make python flex git libncurses5-dev build-essential libssl-dev gawk gettext
在非root下,用戶的home目錄取LEDE源碼:
git clone https://github.com/openwrt/openwrt.git
源碼下載完成后運行:
cd source
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make prereq
make menuconfig
make tools/install && make toolchain/install
選擇自己需要定制的路由和各種軟件包圣絮,執(zhí)行編譯:
make V=s ## 多核CPU的話戚揭,可以加上參數(shù) "-j 3"柒瓣,3是CPU的核心數(shù)加1儒搭,根據(jù)自己的實際情況而定,如果make過程出現(xiàn)錯誤芙贫,就不要使用這個參數(shù)搂鲫。
接下來就是漫長的等待..............
編譯完的固件保存在當前的bin
目錄下。
清理作業(yè)有三個命令:make clean
磺平,make dirclean
魂仍,make distclean
,第一個會清理掉bin和build_dir文件夾拣挪,第二個會清理掉/bin, /build_dir, /staging_dir 和 /toolchain擦酌,第三個會清理全部,恢復到剛拉取的源碼狀態(tài)菠劝,feeds也要重做赊舶。
二,用image builder 快速構(gòu)建
以tl-wr841-v5路由為例:
wget https://downloads.lede-project.org/releases/17.01.0/targets/ar71xx/generic/lede-imagebuilder-17.01.0-ar71xx-generic.Linux-x86_64.tar.xz
tar -xf lede-imagebuilder-17.01.0-ar71xx-generic.Linux-x86_64.tar.xz
cd lede-imagebuilder-17.01.0-ar71xx-generic.Linux-x86_64
make info #查看默認軟件包和硬件支持列表
make image PROFILE="tl-wr841-v5" PACKAGES="luci luci-i18n-base-zh-cn -ppp -ppp-mod-pppoe" -j2 ## 指定機型+雙線程,PACKAGES變量指定了一個要被包含進去的包文件的列表赶诊。如果一個包文件的名字前面有一個前綴"-"減號,那么這個文件會被從鏡像中排除出去笼平。
這樣很快就能編譯完成,刷入路由舔痪,直接用192.168.1.1登陸就可以設置寓调。
關于路由不能達到300M的設置方法:
SSH 登陸路由
uci set wireless.radio0.hwmode=11bgn
uci set wireless.radio0.noscan=1
uci commit
reboot
構(gòu)建單個包
為OpenWrt開發(fā)或打包軟件時,可以方便地只構(gòu)建需要的包(以cups包為例):
make package/cups/compile V=99
如果是在feeds下安裝的
make package/feeds/packages/cups/compile v=99
高亮構(gòu)建錯誤
如果構(gòu)建不知怎么搞的出錯了辙喂,亮出錯誤的最簡單方式是:
make V=99 2>&1 | tee build.log | grep -i error
以上命令會保存一份詳盡的編譯輸出到/openwrt/trunk/build.log
捶牢,并只在屏幕上輸出錯誤鸠珠。