openwrt源码git
‘壹’ 如何修改openwrt系统信息
linux系统,需安装如下依赖包:-c++gettextmakencurses-develpatchunzipwgetzlib-develgit这个不明白,直接安装就可以了。安装完之后要是还有问题就需要根据看出错信息自己下载依赖包了。2、下载OpenWRT源码我的工作目录:/workPorjectCode/openwrtsvncosvn://svn/openwrt/branches/backfire(开发版本,不稳定,不建议下载,但在这个版本中有MW4530R配置项。还是下载个使用)svncosvn://svn/openwrt/branches/backfire(目前稳定版本,建议,但是这个版本配置项中少了好多支持。)3、检查配置环境必须使用非root用户进行操作,添加一个普通用户。(注意:如果使用root进行操作的话,会提示检查失败:Checking'non-root'failed.)修改可在root用户下编译修改include/prereq-build.m文件第15行为:#["$$(shellwhoami)"!="root"]4、下载feedsFeeds是OpenWrt环境所需要的软件包套件。最重要的feeds有:‘packages’一些额外的基础路由器特性软件‘LuCI’OpenWrt默认的GUI‘Xwrt’另一种可选的GUI界面需要能够连接互联网。在下载之前可以通过查看’feeds.conf.default’文件,来检查哪些文件需要包含在环境中。更新所有packages包并安装,只有安装之后,在后面的makemenuconfig时,才可以对相关配置进行勾选。
‘贰’ OpenWRT(一)开发环境搭建
1、安装git工具(现在一般是使用git去下载源码)
2、安装依赖的库文件(一起装比较容易出现漏装,建议逐个装)
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils ncurses-term zlib1g-dev libncurses5-dev gawk libssl-dev subversion
或者逐个安装:
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install texinfo
sudo apt-get install unzip
sudo apt-get install sharutils
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses5-dev
sudo apt-get install gawk
sudo apt-get install libssl-dev
sudo apt-get install subversion
3、下载OpenWRT源码
先创建OpenWRT目录来保存源码
mkdir OpenWRT
cd OpenWRT
git clone https://github.com/openwrt-mirror/openwrt.git (下载源码)
4、更新源码上的软件
为了使 OpenWrt 支持更多的软件,需要更新和安装其它源上面的软件
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
5、进行OpenWRT配置
make menuconfig
1). 选择 CPU 型号
Target System -> Ralink RT288x/RT3xxx
2). 选择 CPU 子型号
Subtarget -> RT3x5x/RT5350 based boards
3). 选择具体路由器型号
Target profile -> HAME-MPR-A2
保存退出
6、编译源码
make V=99
注意:编译过程要联网哦,如果编译出错大部分都是由于网络不好。所以重新编译就OK了
烧录文件在哪? openwrt/bin/ramips/openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin
更多精彩文章,欢迎关注微信公众号"嵌入式软件开发交流"
‘叁’ 在centos中安装openwrt时,需要先安装git,git是什么东西,干嘛用的
从你这句错误语句你怎么知道少了git? 如果你知道缺少git就sudo apt-get install git
然后编译的时候用make V=99然后根据错误信息来看是什么问题。(如果没问题就直接过了)
‘肆’ 如何获取linux下命令源码
首先在linux命令行中新建一个目录 mkdir github(名字可以按你项目名定义),之后敲git命令,确认git工具已经安装好了,我使用的是Ubuntu14.04,git工具默认安装好了。若没有安装,可以尝试自行安装,安装方法比较简单。如下图所示
2
在github查看你所需要使用下载源码项目的URL地址,比如我下载的openwrt,在github中搜索该项目,可以查看到相关的URL地址:https://github.com/openwrt-mirror/openwrt.git 复制下该地址,后面需要使用。如下图所示
3
在linux命令行中使用 git clone https://github.com/openwrt-mirror/openwrt.git 命令,对该项目源码clone到本地,等待clone完成。如下图所示(该项目较大,网络不快,还未clone完成,只做参考)
‘伍’ openwrt git 代码怎么更新
可以用git stash 放到栈中去,然后git pull下来,然后有需要在git stash pop (从栈中提取代码出来),但是这一步要仔细,可能代码会和你pull下来的东西有冲突.还有一种方法是先建立一个新的分支,然后pull那里的代码下来看一下.
‘陆’ 如何编译OpenWrt
准备工作
在开始编译Openwrt之前需要您做些准备工作;与其他编译过程一样,类似的编译工具和编译环境是必不可少的:
一个构建OpenWrt映像的系统平台,简单说就是准备一个操作系统(比如Ubuntu、Debian等);
确保安装了所需的依赖关系库, (在debian系统中就是安装各种需要的软件包)
OpenWrt源代码副本
首先, 开机登陆到支持编译Openwrt的操作系统(废话了)。实体机或者虚拟机(Vmware 或者 Qemu)里的操作系统都行,这里推荐使用Linux系统。 bsd和mac osx系统也可以编,但不推荐,且未验证是否可编译成功。下文假定您使用的是Debian操作系统,使用 apt-get 来管理包. 替代的选择是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安装所需要的各种软件包, 包括编译器,解压工具,特定的库等. 这些工作可以简单的通过键入以下命令 (通常需要root 或者是 sudo 权限),以root权限安装下列软件包(可能并不完整,会有提示,提示缺少即装就可以了):
32位(x86)请执行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev
64位(x86_64)请执行下列命令(多装了哪些库或软件包呢?请您仔细看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386
参考 本列表中 所列的编译环境所需要软件包或库。
某些依赖的为库或软件包也许操作系统中已经安装过,此时apt-get会作出提示(提示您忽略或重新安装的),别紧张,放轻松些,编译Openwrt不会像编译DD-WRT那样难的(至少本人是体会到了编译DD-WRT的难)。
最后下载一份完整的 Openwrt 源码到编译环境中。关于Openwrt的源代码下载,途径有二,一是通过 svn ,一是通过 git,建议使用 svn ,因为Openwrt主要以 svn 来维护Openwrt系统的版本。另外,请注意Openwrt中不同的分支版本,一个是用得较多的开发快照,俗称 trunk,二是稳定版,俗称 backfire。
‘柒’ 在openwrt中怎么编译自定义的内核模块
开发环境为ubuntu.首先搭建编译环境。
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev gawk asciidoc libz-dev git-core build-essential libssl-dev
下面就是下载源码,源码分两种,一种是最新版但不稳定,就是trunk版,一种是相对稳定版,
如果不是最新下载,最好定期更新代码,命令为
./scripts/feeds update –a
./scripts/feeds install –a
接着就是编译了。编译方法如下:
make defconfig
make menuconfig进入定制界面,选择自己的设备类型。
make V=99
下面就是增加内核模块的方法了
进入package目录,创建模块目录
cd backfire/package
mkdir example
进入example目录,创建Makefile文件和代码路径
cd example
touchMakefile
mkdir src
‘捌’ 【路由器】OpenWrt 手动编译 ipk
.ipk 文件是可以通过 OpenWrt 的包管理软件 opkg 直接安装,好比 .deb 文件与 apt 的关系。虽然官方的软件仓库已经很丰富了,但是有时仍然需要从源码编译一些第三方的软件使用,例如锐捷认证等
但是由于路由器平台通常与常用的服务器或者个人 PC 的处理器架构不同,并且路由器的处理器本身性能较弱,几乎不可能直接在路由器上进行编译生成 .ipk 文件,因此需要交叉编译来实现
而官方的 OpenWrt 仓库就提供了一个方便使用的交叉编译环境
以 Debian / Ubuntu 为例,参考 官网给出的要求 ,可以通过下面命令来进行安装依赖包
安装/更新好这些依赖之后,就可以通过 git 拉取 OpenWrt 仓库了
通常由于仓库较大以及网速问题,可能会需要很久,其实可以通过 --depth 来限制拉取的仓库深度,或者通过镜像站来加速拉取,当然也可以两者同时采用
进入 openwrt 仓库后,首先需要更新软件包列表 feeds ,它是在 OpenWrt 中共用位置的包的集合。运行以下命令即可更新内置软件包列表并链接到编译工具中:
通常使用图形化菜单界面来进行配置编译选项,依次配置处理器架构、具体的处理器型号以及设备
以小米 mini 路由器为例,应该将他们配置成如下图所示
这一步就是获取对应设备交叉编译所需的编译链
可以先搜索有没有已经配置好的含有 Makefile 的仓库,有了适配过的 Makefile 文件就可以很方便的来编译源码生成 .ipk 文件了
以 minieap 为例, github 上有已经完成的仓库,依次可以直接拉取来编译
在拉取完成仓库后,就可以再次配置编译选项,将需要编译成 .ipk 的功能配置成模块编译,也就是标记成 M
对于 minieap 来说,在 Network 找到对应选项并配置成 M 即可,如下图
配置完成后就可以进行编译了,编译命令也很简单,以 minieap 为例如下所示
编译完成后, .ipk 文件会生成在 ./bin/packages/<YourArchitecture>/base 目录下,将其拷贝到路由器上就可以通过 opkg 进行安装使用了
‘玖’ 如何编译OpenWrt
搭建编译环境。编译建议在Linux下进行。我的系统是Linux mint 17,执行以下命令,构建编译环境:
sudo apt-get update
sudo apt-get install git-core build-essential
获取openwrt源码。在当前用户主目录下执行
git clone git://git.openwrt.org/openwrt.git
等待代码下载。结束后,目录下会出现openwrt文件夹。
配置软件源。进入openwrt目录,执行
./scripts/feeds update -a
./scripts/feeds install -a
检查编译环境是否完整:
make defconfig
make prereq
根据提示信息安装需要的软件包。如果提示类似
“tmp/.config-package.in:22022:warning: multi-line strings not supported”
的信息,打开 openwrt/tmp/.config-package.in,定位到对应行,添上丢掉的一个引号就可以了。
编译选项:
执行 make menuconfig,根据路由器情况,选择 Target System 和 Subtarget。如意云一代和极壹S的 Target System 均为 Ralink RT288x/RT3xxx 。对于Subtarget ,前者为 MT7620n based boards ,后者为 MT7620a based boards。
其他选项根据个人喜好选择。一般来说要选中LuCI界面,选中中文语言包等等。
开始编译:
执行 make -j2 V=s 进行编译。-j后面的数字是电脑物理CPU数量加一。V=s可以显示出编译的详细信息。首次编译大概需要几个小时的时间。
错误排查:
编译失败,一般有两种情况:
1.代码下载链接失效。首次编译时,编译程序会实时从网上下载一些软件包的代码。如果下载链接失效,编译就会失败。这时需要根据软件包的名称,从网上自行下载,然后放在 openwrt/dl/ 目录下,执行 make -j2 V=s 继续编译即可。
2.软件包自身有问题。这时重新执行 make menuconfig ,取消对应软件包选中即可。这种情况比较少见,目前已知的有 tor 等。
编译成功,但没有生成固件。这种情况一般是因为选中的软件包过多,导致固件大小超过16MB。重新执行 make menuconfig,去掉一些软件包,重新执行编译即可。
得到固件。在排除了所有错误后,现在终于得到了固件。对于如意云RY-1,固件在 openwrt/bin/ramips 目录下,形如
openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin
等等。
‘拾’ 如何在虚拟机安装openwrt
1
在电脑上安装VMware,在VMware上安装Ubuntu14.04。
在Ubuntu上安装svn,用于从官网上拉去openwrt源码,拉取源码时,会用到git工具,所以同时要安装git。用以下命令:
在拉取源码之前,要先安装依赖,用以下命令: