编译OpenWRT过程问题解决
2015-09-10 17:04
483 查看
openwrt 编译
目录[-]
./scripts/feeds
update -a失败
gconvert.c
libiconv
libubox安装错误
fatal:
Unable to find remote helper for 'http'
opkg下载失败
linux-firmware
clone失败
linux-firmware
fatal: reference is not a tree 问题
本人是只菜鸟,没有接触过OpenWrt,只是平时都是在Linux下做开发。习惯了Linux的开发环境。
本人的操作系统是CentOS 6.4(好久都没有换过了)。本人按照网上牛人们的指点也开始下载编译OpenWRT。
如下为网上的资料:
sudo apt-get update (更新)
安装编译需要的组件:
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 subversion
sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev
编译环境搭建完成
mkdir openwrt 创建一个openwrt文件夹
cd openwrt 进入openwrt文件夹
svn co svn://svn.openwrt.org/openwrt/branches/backfire 下载官网的源码
./scripts/feeds update -a 更新软件包
./scripts/feeds install -a 安装软件包
make menuconfig 进入定制界面(里面可以选择芯片的型号,集成的组件等等,根据实际情况选择)
defconfig
make V=99 (开始编译)
剩下的就是等待了,第一次编译需要的时间相对比较长,这个跟你的电脑配置和网速有关。
由于原作者是用的Ubuntu作为开发环境,所以在安装上面的那些依赖工具包时都是用 apt-get 来安排的,在CentOS里采用 yum。其实都一样,只要知道依赖哪些包就行了。
本人checkout 的OpenWRT源码库路径为 : svn://svn.openwrt.org/openwrt/trunk
其它的都按上面的步骤做。
如下是我遇到的几个问题:
./scripts/feeds update -a失败
报:?
用 grep 命令搜
?
再试一下。结果还是老样子,我想了一下,这个 feeds/packages.tmp/location 很可能是临时文。改它不会有效果的。
好像 feeds.conf.default 文件里也找到了。
?
再试一下,OK了。
后记:其实还有更根本的解决方法,详见后期的博文《git 错误:Unable to find remote
helper for 'https'》
gconvert.c libiconv
我在第一次编译OpenWRT时,出现如下错误提示:?
?
后来,经过仔细推敲,发现是在编glib时没通过。
?
那我说直接在该路径下编译 glib
?
再回到 OpenWRT的trunk路径下,继续 make.
libubox安装错误
报错:?
?
于是,我访问了一下:http://git.openwrt.org/project/libubox 果然出现
404页面。看来还真没有?
我再访问了一下:http://git.openwrt.org/ 结果,发现列表里有这个工程:
进入链接 project/libubox.git:
我自己亲自 git clone 一下。
?
于是,我再次 git clone
?
然后,手动完成编译命令过程:
?
fatal: Unable to find remote helper for 'http'
编译报错:?
将第8行的“http:”替换成"git:",然后再回到OpenWRT目录再make.
注:后来我还会反复遇到这个问题。火了!一条命令全部换掉!
?
?
opkg下载失败
??
我尝试打开 opkg 路径下的 Makefile,将
?
?
我手动搜opkg,找到官网: http://git.yoctoproject.org/cgit/cgit.cgi/opkg/ 打开,看到网页最下面有:
于是,我改 trunk/package/system/opkg/Makefile 文件,把 PKG_SOURCE_URL改成:
?
linux-firmware clone失败
?看到最下面的 git 路径说明:
这与 Makefile 里指定的不统一。于是将Makefile里的git路径改过来
再 make
我现在都总结出经验来了。
凡是git clone失败的,如果是http头的问题,将http替换成git再试。
如果还是不行,就要检查一下git的路径是不是对的。简单的方法就是到 git 路径的根节点上去找出源码仓库,并得到其真实有效的git路径。
并将Makefile中的改过来就OK了。
linux-firmware fatal: reference is not a tree 问题
?在trunk/tmp/dl路径下下载的linux-firmware还没有删掉,我们进入该目录。并用git log查看一下提交日志,得到:
?
那,我就将其改成最新的版本号吧 b8ac7c7e27dcd13fa3c843aaf62457e9c57ea4db,但愿没有问题。
同时,将 trunk/tmp/dl/下的原下载目录改名(避免反复下载)、
?
相关文章推荐
- Centos下重要日志文件及查看方式
- tomcat远程调试
- 编译openwrt官方不支持的路由型号固件——以WR720N为例
- Nginx as service on CentOS 6.6
- CentOS系统中常用查看日志和命令
- Centos mysql 存入中文字符乱码
- 为小linux添加功能,自动添加依赖的库到相应位置
- Linux more分页显示内容命令详解
- Use vagrant Ubuntu docker environment
- tomcat linux 远程调试
- linux读写大文件
- [转]apache的源码安装详细过程全纪录
- Centos 防火墙管理
- bash编程实现插入排序
- 转 -- 我使用过的Linux命令之date - 显示、修改系统日期时间
- linux gcc头文件搜索路径
- shell脚本集合
- Dell R810 + Centos5 + MD3200
- linux命令——cat
- nginx php-fpm安装配置