编译LEDE-Openwrt系统

开发过程中,需要打开lede-openwrt的direct_IO选项,因此需要自己编译系统。记录一下。


1. 安装依赖包


开发环境为Ubuntu。安装编译依赖的包:(参见http://www.sohu.com/a/115102879_424963)

sudo apt-get install build-essential subversiongit-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproclibxml-parser-perl mercurial bzr ecj cvs unzip


2. 下载系统源码


地址https://github.com/lede-project/source/releases

选择合适的版本。


下载并解压,进入解压目录,设为source。进入source目录,更新feeds

cd source
./scripts/feeds update -a
./scripts/feeds install -a


3. 编译配置


执行命令 make menuconfig 进入设置界面

首先选择目标系统的版本等。(树莓派3代B型的系统为BroadcomBCM 2708 BCM2710)。

Openwrt系统会自动将SD卡大小改为20M,这个可以在TargetImages里改,如改为512MB:

选择help可以查看此项配置具体所在的配置文件。

其他的按需进行配置即可。


4. 开始编译


在source目录下执行命令makeV=99开始编译并打印编译信息。

初次编译的过程非常长,四五个小时都是有的,时间主要耗费在依赖文件的下载上。编译过程中可能遇到以下的问题:

(1)   虚拟机存储空间不够大。编译此系统需要内存大概20G以上。可以虚拟机扩容或者重新安装虚拟机。

(2)   依赖文件下载不了。可以根据编译信息中的地址手动下载,然后放到/source/dl目录下

(3)   报与系统分区有关的错误:

Total number ofsectors (1048576) not a multiple of sectors per track (63)!
Addmtools_skip_check=1 to your .mtoolsrc file to skip this test
解决办法可参见 http://litsand.blog.51cto.com/640129/895872

sudo apt-get install mtools
cp /etc/mtools.conf ~/.mtoolsrc
vim ~/.mtoolsrc
加入一行mtools_skip_check=1
保存退出后执行mlabel -v c:
(4)   一次编译不成功,可以终止编译,然后根据错误信息解决问题,执行make clean,再make重新编译,此时已经下载的依赖文件没有被删除,会加快编译速度。


5. 编译成功


若编译成功,镜像文件保存在source/bin/target目录下,然后就可以进行系统的安装了。


参考文献:


 《编译openwrt的最新分支LEDE》http://www.sohu.com/a/115102879_424963

《lede-project》https://github.com/lede-project/source

《linux下修改磁盘卷标》http://litsand.blog.51cto.com/640129/895872





猜你喜欢

转载自blog.csdn.net/u012327058/article/details/78227107