openwrt编译日志

编译openwrt定制固件有三种方式:

1、 用ImageBuilder编译,用于灵活选择package。毕竟压缩的只读文件系统squashfs比可写的JFFS能省不少地方,可以用来把玩更多的package。

2、 用SDK编译,用于编译package仓库中没有的软件包,另外其中有配套的内核源码及头文件,编译缺失的内核模块也很方便。

3、从源码编译,因为要重新编译cross-compile toolchians,下载最内核和软件包的源码编译,导致这个过程比较耗时,用于上述两种情况搞不定的情况。

现在介绍第一种定制方法。

个人比较喜欢安装各种的软件包,毕竟百元左右的路由器往往只有8M flash,最大的也只有16M,即便RAM够,用opkg install 也装不了多少软件。我的最佳实践就是先装到JFFS的overlay中对软件进行评估,若好用加到软件列表中,不好用就remove, 当系统提示flash告急时,就把软件列表中的package 信息收集,编译一个新的image。当然如果你的路由器有USB接口,也可以修改opkg.conf,增加 dest usb /mnt/usb,安装package时用 “–d usb” 来指定安装目标位置,从而来解决空间问题。

按照下面步骤定制固件。

1. 官网下载ImageBuilder包,比如OpenWrt-ImageBuilder-brcm47xx-for-Linux-i686.tar.bz2,解压。

2. 列出当前系统所有已安装包,用于准备后续make image的 packages参数。
     echo  $(opkg list-installed | awk '{ print $1}')

3. 检查输出结果看这些包是否自己所需,也可以在此新加入package, 务必注意package依赖,将依赖的package都加上。

4. 在根目录直接make image PACKAGES即可,参数填写参考如下格式。
        make image PROFILE="<profilename>" # override the default target profile
        make image PACKAGES="<pkg1> [<pkg2> [<pkg3> ...]]" # 将步骤2生成的package列表填入该参数。
        make image FILES="<path>" # include extra files from <path>  指定个人的配置文件目录,用来固化缺省配置,比如网络配置参数。
        make image BIN_DIR="<path>" # alternative output directory for the images

5. 在bin/target目录中生成一个trx和多个bin格式的image文件。

6. 将trx文件copy到目标设备,最好copy到使用RAM文件系统的tmp目录。

scp bin/brcm47xx/openwrt-brcm47xx-squashfs.trx root@192.168.1.1:/tmp/

7. 在刷新系统之前,最好将/overlay 目录打包压缩,用于后续恢复配置,按照openwrt的设计,只有修改过的文件才会放到/overlay目录,具体原理参考union文件系统。

8. 刷新固件到linux分区,具体分区情况和bootrom有关,bcm的芯片参考 cat /proc/mtd 。

mtd -r write /tmp/openwrt-brcm47xx-squashfs.trx linux

9. 自动重启后,除非通过FILES修改过配置文件,否则ip 地址为192.168.1.1 ,telnet直接登陆后用passwd修改密码,然后用ssh安全登陆。

10. 按照自身需求从步骤7保存的文件中copy 相关文件,恢复配置。

一、UBUNTU12.04LTS安装好
二、准备环境,用root权限安装
apt-get install g++  
apt-get install libncurses5-dev  
apt-get install zlib1g-dev  
apt-get install bison  
apt-get install flex  
apt-get install unzip  
apt-get install autoconf  
apt-get install gawk  
apt-get install make  
apt-get install gettext  
apt-get install gcc  
apt-get install binutils  
apt-get install patch  
apt-get install bzip2  
apt-get install libz-dev  
apt-get install asciidoc  
apt-get install subversion
apt-get install  git git-man liberror-perl libsigsegv2
三、下载OPENWRT源码,退出ROOT权限
mkdir OpenWrt/  
cd OpenWrt/  
svn co svn://svn.openwrt.org/openwrt/trunk/
四、更新源码
cd OpenWrt/trunk/ 
svn up 
./scripts/feeds update -a 
./scripts/feeds install -a
五、开始编译固件
sudo make defconfig
如果:
Prerequisite check failed. Use FORCE=1 to override.
make: *** [tmp/.prereq-build] 错误 1
则:
sudo make menuconfig FORCE=1
进入openwrt configuration,选CPU和LCUI
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值