Debian 9 64bit下编译Openwrt
2018-04-27 本文已影响0人
龜山島
固件需要在非root环境下进行
一,源码构建
安装所需环境:
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
选择自己需要定制的路由和各种软件包,执行编译:
make V=s ## 多核CPU的话,可以加上参数 "-j 3",3是CPU的核心数加1,根据自己的实际情况而定,如果make过程出现错误,就不要使用这个参数。
接下来就是漫长的等待..............
编译完的固件保存在当前的bin
目录下。
清理作业有三个命令:make clean
,make dirclean
,make distclean
,第一个会清理掉bin和build_dir文件夹,第二个会清理掉/bin, /build_dir, /staging_dir 和 /toolchain,第三个会清理全部,恢复到刚拉取的源码状态,feeds也要重做。
二,用image builder 快速构建
以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
构建单个包
为OpenWrt开发或打包软件时,可以方便地只构建需要的包(以cups包为例):
make package/cups/compile V=99
如果是在feeds下安装的
make package/feeds/packages/cups/compile v=99
高亮构建错误
如果构建不知怎么搞的出错了,亮出错误的最简单方式是:
make V=99 2>&1 | tee build.log | grep -i error
以上命令会保存一份详尽的编译输出到/openwrt/trunk/build.log
,并只在屏幕上输出错误。