OpenWRT 编译过程
初衷还是因为想把iot的gateway改成openwrt 来控制,原因是上面集成了较多的功能,使用起来相对比较方便,功能扩展起来也应该很方便。本次编译的平台是RT5350 ,希望后续可以放到S5PC上使用。First Edit: 2015-05-20
编译平台
Ubuntu 12.04 32bits编译前准备
# 编译使用的工具
sudo apt-get install gcc g++ binutils \
patch bzip2 flex bison make autoconf \
textinfo gettext unzip sharutils ncurse-term \
zilib1g-dev libncurses5-dev gawk
#安装svn
sudo apt-get install subversion
#安装git
sudo apt-get install git-core
- 获取OpenWRT
注意,这一操作都要在非root用户下执行,因为openwrt 的编译都是在非root下执行的
# 找一个目录,比如/opt 目录下
mkdir openwrt
#创建一个openwrt 目录,如果非root用户没有权限,
#可以先用sodu mkdir openwrt ,
#然后sudo chmod -R 777 openwrt 把该文件夹权限降下来,
#这样非root用户就可以操作该文件夹
cd openwrt # 进入openwrt
svn co svn://svn.openwrt.org/openwrt/trunk #获取源码
sudo chmod -R 777 trunk #修改权限,降低权限
cd trunk #进入Openwrt目录
./scripts/feeds update -a #更新packages
./scripts/feeds install -a #安装packages
- 编译OpenWRT
#先检测一下
make menuconfig # 打开配置界面
在make menuconfig 时,我弹出一个错误,说是libssl 没有安装,错误如下:
Build dependency: Please install the openssl library (with development headers)
结果上网上一查,发现libssl 的版本有点高,不符合要求 戳这里。解决办法如下
sudo apt-get install apititude #安装apititude
sudo apititude install libssl-dev #安装libssl
#这个时候apititude会提示
libssl-dev : Depends: libssl1.0.0 (= 1.0.1-4ubuntu5) but 1.0.1-4ubuntu5.3 is installed.
Depends: zlib1g-dev but it is not going to be installed.
The following actions will resolve these dependencies:
Keep the following packages at their current version:
1) libssl-dev [Not Installed]
Accept this solution? [Y/n/q/?] n
#记住这个地方要选择n, 也就是不接受当前的版本方案,
#要求降级,接下来它会提出用另一个版本置换:
The following actions will resolve these dependencies:
Install the following packages:
1) zlib1g-dev [1:1.2.3.4.dfsg-3ubuntu4 (precise)]
Downgrade the following packages:
2) libssl1.0.0 [1.0.1-4ubuntu5.3 (now) -> 1.0.1-4ubuntu5 (precise-updates)]
Accept this solution? [Y/n/q/?] y
#这里选择y,即可用选中的这个版本,置换掉老的版
#本,当然因为libssl要用1.0.0版本-Ubuntu3。
#具体选择到时候需要仔细看一下提示才能决定
# 置换完成
libssl的问题解决后,可以继续往下走,配置完成之后,可以开始编译
make V=99
经过漫长的编译后,即可生成