查看: 5825|回复: 2

【SOM9331】Openwrt固件编译全过程

[复制链接]
  • TA的每日心情
    奋斗
    2017-7-17 13:49
  • 签到天数: 367 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-9-5 11:35:27 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 荣丰宇 于 2015-9-8 11:13 编辑

    运行的开发环境如下:
    windows7 上安装虚拟机软件VMware10.0,虚拟机内安装Ubuntu12.4系统,最好安装好vmtools,方便里外机器之间拷贝文件。
    网上已经有很多教程,在此不加叙述。
    下面的工作大都是命令行完成的,一定要有基本的linux命令操作基础

    一、准备工作:
    1安装SVN工具,下载Openwrt源码,因为源码是在不断更新的,SVN管理很方便
    apt-get install subversion
    2.安装git工具,如果你知道github的话……
    apt-get install git-core
    3.安装一下必要的依赖库
    apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils ncurses-term zlib1g-dev libncurses5-dev gawk
    一口气安装十来个,注意里面“zlib1g-dev”中是数字“1”不是字母“l”,手打的时候要注意
    有网友说一口气安十来个可能会出现问题,那就只有一个一个地来安装咯

    二、下载Openwrt源码
    Openwrt已经支持现行很多公司的很多类型的路由器芯片了,比如Ralink的RT5350,MTK的MTK762x系列,以及我们用到的Atheros的AR9331……
    09052.png
    就我的了解,12.09版本比较流行……https://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/
    建立一个文件夹,以便保存下载的代码哦
    mkdir openwrt
    cd openwrt/
    svn co svn://svn.openwrt.org/openwrt/trunk  这里我们下载的是trunk版本,也可以下载DREAMBOX或者backfire版本的
    因为要连接国外的服务器下载源码,所以一般会很慢,建议可以下载DREAMBOX的,国内维护的,可能会快一点吧
    svn co svn://svn.openwrt.org.cn/dreambox/backfire openwrt-dreambox
    cd openwrt-dreambox
    ./scripts/feeds update -a
    ./scripts/feeds install -a

    下载结束后,会出现svn版本号表示下载成功了
    下载完openwrt的源码后,为了使openwrt支持更多的软件,需要更新和安装其他源上面的软件:
    cd ./trunk
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    PS:关于SVN
    如果不是刚下载的源码,为保持代码为最新状态,可以运行svn update命令更新源码。
    svn up或者 svn update
    SVN更新的时候:
    U:表示从服务器收到文件更新了
    G:表示本地文件以及服务器文件都已更新,而且成功的合并了
    A:表示有文件或者目录添加到工作目录
    R:表示文件或者目录被替换了.
    C:表示文件的本地修改和服务器修改发生冲突

    SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史:
    svn log 用来展示svn 的版本作者、日期、路径等等
    svn diff 用来显示特定修改的行级详细信息
    svn cat 取得在特定版本的某文件显示在当前屏幕
    svn list 显示一个目录或某一版本存在的文件

    三、配置编译Openwrt源码
    先执行make deconfig进行默认配置,先生成一个默认配置文件,(经摄影师亲自点拨哈
    再执行make menuconfig,稍后自动进入一个图形化配置界面,根据实际芯片进行配置
    09053.png
    因为编译过程也比较漫长,一般第一次需要较长时间,后面编译就比较快了,所以我们一开始不加其他的模块,选择好芯片和模型,编译了再说
    配置好后,保存为配置文件
    09054.png
    执行make V=99开始编译工作
    make V=99  注意V为大写!
    ——听说第一次一般要编译4-5个小时……实测2个小时左右,嘿嘿
    ——V=99可以看代码编译情况,因为一般第一次编译时间比较长,所以看着命令行在动也可以让自己知道它还在努力编着……
    ——编译时间由电脑配置决定,由于编译时需要的软件是从网络上面下载,所以这里机子必须能够上网。
    ——如果你编译过程中断了,也可以重新运行make V=99编译,它会接着编译的哦
    进过漫长的等待,终于编译完成,
    09051.png
    进入bin文件夹可以看到编译出来的固件了,后面就可以自己烧写进去看看效果了,因为这个固件只有基本功能,也没有luci界面,所以后面要加模块进去,比如luci(界面),mjpg-sreamer(视频流服务器,wifi小车),aria2(下载工具),使整体功能提升上去!
    20150908问题更新:
    1.Openwrt源码一般不支持root用户进行编译,所以一般每条命令都要利用sudo前缀,修改一下文件可以使得利用root编译。如果你是root用户名需要在配置上面做点修改。需要修改include/prereq-build.mk,把第十六行的注释掉。对于Ubuntu系统,貌似并不需要修改。
    2.网友提到在执行make defconfig时,出现 checking ‘libssl’… failed,,然后安装缺少的这个组件libssl-dev,请执行sudo apt-get install libssl-dev

    请大家在操作过程中关注每一个遇到的错误,他都可能是编译成功的绊脚石~~~
    3.对于连接国外源码服务器下载速度太慢的问题,可以换成国内的服务器进行下载
    svn://svn.openwrt.org.cn/openwrt/branches/backfire
    svn://svn.openwrt.org.cn/openwrt/trunk

    svn://svn.openwrt.org.cn/dreambox/backfire openwrt-dreambox










    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-15 09:30
  • 签到天数: 162 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-9-6 08:43:39 | 显示全部楼层
    多谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-1-4 12:47
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-10-26 14:45:00 | 显示全部楼层
    好东西~收藏先~~~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-29 18:03 , Processed in 0.146811 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.