您的位置:首页 > 运维架构

OpenWrt:openwrt的下载安装、建立编译环境

2017-04-11 16:37 344 查看
使用openwrt是因为目前的工作要用到MT7688,本来是直接用MT7688的SDK开发的,后来发现大家好像都是在openwrt下开发,也感觉可能用openwrt会更好点,就学习一下,做个笔记,仅供参考。安装过程是整合了很多资料的,无所谓原创,只能说是自己的学习过程。

OpenWrt 是一个高度模块化、高度自动化的嵌入式的 Linux 发行版,它的的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序,所以具有很强的定制能力,这也让发烧友们更具有挑战激情。同时OpenWRT拥有强大的网络组件和扩展性,常常被用于电话、小型机器人、智能家居、以及路由器设备中。

在linux\ubuntu上安装的openwrt是从git或svn上克隆下载的。相比svn,更了解git一点(现在好像也只能从git上克隆下载了,很多资料说svn不能下载了)。所以我就从git克隆下载安装的。

第一、准备开发环境:

虚拟机vmware10下安装ubuntu14.04。这个就不展开了,学习openwrt应该都是安装好ubuntu或去他linux版本的,有需要去查资料吧,网上很多。

第二、搭建编译环境

特别说一下:安装git和svn

1、git安装: (参考:http://jingyan.baidu.com/article/dca1fa6f43c965f1a540524d.html

apt-get install git


2、svn安装:不是说用不到svn的,为什么还要安装。本来没打算的安装,不过之后下载openwrt之后make menuconfig打不开,提示svn没有安装,虽然不知道为什么,还是装了吧。

要用svn安装openwrt的可以参考这个连接:http://blog.csdn.net/fyh2003/article/details/44564219

apt-get install subversion


3、安装OpenWrt编译用到的支持包

安装之前最好先更新下组件包:

sudo apt-get update


支持包:

sudo apt-get install gcc  g++ binutils patch bzip2 flex bison make autocnf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev subversion git-cor gaw asciido libz-dev


建议还是一个个安装的好,装没装好一目了然,这里也不一定全,如果还有那就在安装吧。

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 makesudo 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 subversionsudo apt-get install libncurses5-dev
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install git-core
sudo apt-get install gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev


第三、安装OpenWrt

OpenWrt源码在SVN里面有分两种,一种是最新但不是最稳定的Trunk开发版,一种是最稳定的Backfire版。git里面暂时不知道怎么分类的,好像是按照版本吧,现在应该是15.05。建议下载官方源码。下载前先在本地创建文件夹:

1、在主文件夹(存放openwrt的目录下)下打开终端,新建一个git文件夹(名字随意)用来存放openwrt。因为是git克隆下载的,所以归类到git下。

非必要命令

mkdir git
cd git
git init


2、建立一个openwrt文件夹

mkdir openwrt


3、初始化(非必要命令)

sudo chmod 777 openwrt


4、克隆下载

cd openwrt
sudo git clone git://git.openwrt.org/15.05/openwrt.git


下面这个网站也有其他版本:git.openwrt.org

下载好估计要一两个小时吧,看网速吧,这里花了1小时左右。可能会卡住,卡住就重新下吧少年。

第四、打开OpenWrt内核编译配置菜单

1、下载好之后:添加软件扩展包

1.1、将feeds.conf.default内容复制到feeds.conf,在feeds.conf添加额外的编译条件,如果没有额外需要编译的就跳过这个命令:

cp feeds.conf.default feeds.conf


1.2、更新扩展,安装扩展(很多扩展软件需要安装,例如界面软件LuCI),更新安装挺费时间的,时间有点久,有的时候会卡住或者不成功,多试几次。网络要好,最好可以翻墙 (-a是全部的意思)

Run “./scripts/feeds update -a” to get all the latest package definitions

defined in feeds.conf / feeds.conf.default respectively

更新

./scripts/feeds update -a


and “./scripts/feeds install -a” to install symlinks of all of them into

package/feeds/.(有需要也可以单独安装一个包)

使下载的软件包可以出现在 make menuconfig 配置菜单中

查看列表

./scripts/feeds list


安装

./scripts/feeds install -a




./scripts/feeds install <PACKAGENAME>


注意:./scripts/feeds 这个脚本只是使软件包可以出现在 make menuconfig 配置菜单中,而并不是真正的安装或者编译软件。

另外如果只是加装 Luci web UI 可以这样做 :

./scripts/feeds update packages luci
./scripts/feeds install -a -p luci


You can use “scripts/flashing/flash.sh” for remotely updating your embeddedsystem via tftp

2、测试编译环境:

make defconfig


3、就可以开始配置自己的固件了。进入定制界面:

make menuconfig




界面出现内核配置菜单说明安装成功,可以根据自己要求定制OpenWrt内核了。

如果一切正常,会出现一个配置菜单,可以选择要编译的固件平台(芯片类型)、型号,还能选择固件中要添加的功能和组件,配置好后保存并退出菜单即可。

4、配置内核选项可以执行

make kernel_menuconfig


5、编译

make




make -j 3 V=s   /   make V=s




make V=99


-j:多进程编译,这样编译快些。-j 指定的参数一般为你的 CPU 核数+1,比如双核 CPU 就指定为 3

V=99 V=s:输出编译的详细信息,这样编译出错时,我们才知道错在哪里

编译成功后,会在 bin 目录下生成固件文件

其中的 openwrt-ramips-mt7688-LinkIt7688-squashfs-sysupgrade.bin 就是用来烧写到设备的固件

6、清理工程

make clean


删除/openwrt/bin 和/openwrt/build_dir 这 2 个目录

make dirclean


删除/openwrt/bin、/openwrt/build_dir、/openwrt/taging_dir、/openwrt/staging_di r/toolchain 和/openwrt/staging_dir

make distclean


删除所有编译的或者配置的和下载的 feeds 内容以及下载的软件包源码,还有.config 配置文件。

如果你想修改源码,应该在此步进行,如支持大容量Flash之类的修改,自己上网查到修改什么文件什么地方后,就在ubuntu图形界面上进去找到文件,双击打开文本编辑器修改保存。

参考:http://www.linuxdiyf.com/linux/21036.html

第五、下面是我出现的问题:



1、提示:Build dependency: Please install the openssl library (with development headers)

缺少依赖项,请安装libssl-dev,命令如下:

sudo apt-get install libssl-dev


2、提示:Build dependency: Please install the Subversion client

提示没有安装svn的客户端,所以就在第二部做了说明,命令:

apt-get install subversion


到此安装结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  openwrt