本帖最后由 stone927 于 2015-11-3 23:25 编辑
有了新的
开发板首先要编译一个能运行的最简openwrt系统,本文基于我csdn的编译openwrt的文档,再根据wrtnode2的硬件做了些修改,亲测没有问题,供大家参考,希望大家都能拥有属于自己的openwrt系统.
硬件配置:MT7688 256M DDR 32M FlASH
软件环境:Ubuntu 14.04
一、源码下载
Openwrt源码由svn管理,可用用svn下载trunk(开发版)和稳定版(如:
BarrierBreaker)。这里使用trunk版
1、安装svn工具
#sudo apt-get update
#sudo apt-get install svnversion
2、检出源码
svn由很多命令可以用,list(ls)查看目录、checkout(co)检出目录。
---进入工作目录
#cd …/work
---检出trunk版本
#svn co svn://svn.openwrt.org/openwrt/trunk
由于openwrt一直在维护,代码会随之被改动,所以可以用svn up命令更新当前目录。
#cd ../work/trunk
#svn up
二、更新软件包
Feeds即为包含到你的OpenWrt环境中的额外软件包的索引之类的。最主要的Feeds有以下三个:
'packages' - 路由的基本功能,
'LuCI' - OpenWrt默认的GUI(WEB管理界面), 及
'Xwrt' - 其他的GUI。
一般情况,你至少需要含 'packages' 和 'LuCI'两个Feeds。
下载完feeds之后, (为编译OpenWrt的recipies额外的预定义包) 您可以检查哪些feeds要包括在内。编辑在你的编译环境的根目录下的'feeds.conf.default'文件。
然后使用下列命令开始下载
#cd ../work/trunk
# ./scripts/feeds update –a
在此之后,下载的软件包需要安装。亦即指的下边的命令啦。若路过下边的install命令则后续make menuconfig将无法成功执行!(注:可能你需要先运行cd ../work/trunk 进入trunk目录才能成功执行下列命令):
#cd ../work/trunk
# ./scripts/feeds install -a
(注意:这些软件包会被安装到你的openwrt源码中,但如果没有在make menuconfig中配置是不会被编译的)
三、搭建编译环境
安装 git 工具
$ sudo apt-get install git-core
安装依赖的库文件
$ sudo apt-get install gcc g++ binu
tilspatch bzip2 flex bison make autoconf gettext texinfo unzip sharutils ncurses-termzlib1g-dev libncurses5-dev gawk
四、配置源码
下一步是检查编译环境,若可进行编译则生成默认配置:
# make defconfig
若defconfig回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可。
menuconfig是一个基于文本的工具,它处理选择的目标(需要还是不需要)、编译生成软件包(openwrt下是IPKG格式)以及内核选项(编译成模块还是内核)等等。
# make menuconfig
(这里我们配置为MT7628平台,模仿wrtnode的官方sdk)
TargetSystem --->
(X)RalinkRT288x/RT3xxx
Subtarget--->
(X)MT7628 based boards
保存退出,这样就配制出了MT7628平台的模式。
五、编译
使用make进行编译,-j选项用于设置编译所用的处理器内核数量,后面加所需处理器数量+1,比如我们是双核且两个都用于编译,所以填3(一般第一次编译是不用),后面的V=99表示显示所有编译过程,这个一定要加上。
#make -j 3 V=99
(注意:编译过程中可能会从网上自动下载源码包,有时因为网络不稳定等问题而导致找不到源码包的错误,这是可以根据编译信息在网上下载对应的源码包放在dl/目录下重新编译即可。)
编译结束在目录 bin/ramips/ 下可看到bin文件openwrt-ramips-mt7628-mt7628-squashfs-sysupgrade.bin,这个就是最终的固件了。
0