openwrt固件的下载编译流程
openwrt官方wiki
http://wiki.openwrt.org/doc/howto/start
Ubuntu环境:
Linux wilson-virtual-machine 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1. 环境安装
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
2.openwrt的源代码安装包
下载源码,分两种,一种是最新版但不是最稳定,也就是trunk版,一种是相对稳定版,backfire版。源码下载命令分别是:
最权威的看这儿:【官网WIKI】https://dev.openwrt.org/wiki/GetSource
Trunk版下载命令:
svn co svn://svn.openwrt.org/openwrt/trunk/ #这个svn的地址已经不能用了,openwrt也全面转向git来管理代码了!
#下载主代码仓库
git clone git://git.openwrt.org/openwrt.git
下载packages feeds,结合上一个命令使用!
git clone git://git.openwrt.org/packages.git
15.05 branch (Chaos Calmer)
git clone git://git.openwrt.org/15.05/openwrt.git
14.07 branch (Barrier Breaker)
git clone git://git.openwrt.org/14.07/openwrt.git
12.09 branch (Attitude Adjustment)
git clone git://git.openwrt.org/12.09/openwrt.git
12.09的软件包更新地址
git clone git://git.openwrt.org/12.09/openwrt.git
Backfire下载命令:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/
选择你想要的版本就行了。然后又是等待下载…
OpenWrt源码目录结构:
· tools和toolchain目录:包含了一些通用命令, 用来生成固件, 编译器, 和C库.
· build dir/host目录:是一个临时目录, 用来储存不依赖于目标平台的工具.
· build dir/toolchain-目录:用来储存依赖于指定平台的编译链. 只是编译文件存放目录无需修改.
· build dir/target-目录:用来储存依赖于指定平台的软件包的编译文件, 其中包括linux内核, u-boot, packages, 只是编译文件存放目录无需修改.
· staging_dir目录:是编译目标的最终安装位置, 其中包括rootfs, package, toolchain.
· package目录:软件包的下载编译规则, 在OpenWrt固件中, 几乎所有东西都是.ipk, 这样就可以很方便的安装和卸载.
· target目录:目标系统指嵌入式设备, 针对不同的平台有不同的特性, 针对这些特性, “target/linux”目录下按照平台进行目录划分, 里面包括了针对标准内核的补丁, 特殊配置等.
· bin目录:编译完OpenWrt的二进制文件生成目录, 其中包括sdk, uImage, u-boot, dts, rootfs构建一个嵌入式系统完整的二进制文件.
· config目录:存放着整个系统的的配置文件.
· docs目录:里面不断包含了整个宿主机的文件源码的介绍, 里面还有Makefile为目标系统生成docs.
· include目录:里面包括了整个系统的编译需要的头文件, 但是是以Make进行连接的.
· feeds目录:扩展软件包索引目录.
· scripts目录:组织编译整个OpenWrt的规则.
· tmp目录:编译文件夹, 一般情况为空.
· dl目录:所有软件的下载目录, 包括u-boot, kernel.
· logs目录:如果编译出错, 可以在这里找到编译出错的log.
8、开始准备编译
Cd Trunk或者Cd backfire
如果不是刚下载的代码,为了保持代码为最新状态,应该定期运行Svn up或者git pull origin master 更新代码,什么时候有变你是不知道的
下面要更新下feeds,先介绍下feeds包含什么
OpenWRT的feeds包括:
1. packages – 提供众多库, 工具等基本功能. 也是其他feed所依赖的软件源, 因此在安装其他feed前一定要先安装packages!
2. luci – OpenWrt默认的GUI(WEB管理界面).
3. xwrt – 另一种可替换LuCI的GUI
4. qpe – DreamBox维护的基于Qt的图形界面, 包含Qt2, Qt4, Qtopia, OPIE, SMPlayer等众多图形界面.
5. device – DreamBox维护与硬件密切相关的软件, 如uboot, qemu等.
6. dreambox_packages – DreamBox维护的国内常用网络工具, 如oh3c, njit8021xclient等.
7. desktop – OpenWrt用于桌面的一些软件包.
8. xfce – 基于Xorg的著名轻量级桌面环境. Xfce建基在GTK+2.x之上, 它使用Xfwm作为窗口管理器.
9. efl – 针对enlightenment.
10. phone -针对fso, paroli.
trunk中默认的feeds下载有packages、xwrt、luci、routing、telephony。如要下载其他的软件包,需打开源码根目录下面的feeds.conf.default文件,去掉相应软件包前面的#号,然后更新源:
./scripts/feeds update –a
./scripts/feeds install –a
make menuconfig进入定制界面
1). 选择 CPU 型号
Target System -> Ralink RT288x/RT3xxx
2). 选择 CPU 子型号
Subtarget -> MT7688 based boards
3). 选择具体路由器型号
Target profile -> default
选择LuCI 配置(web网页管理程序):
LuCI ---> 1. Collections ---> luci 启用LuCI
LuCI ---> 2. Modules ---> Translations --->Chinese (zh-cn) 支持中文
LuCI ---> 3. Applications ---> luci-app-commands 网页Shell
LuCI ---> 3. Applications ---> luci-app-firewall 防 火 墙
LuCI ---> 3. Applications ---> luci-app-ntpc 时间同步服务器
LuCI ---> 3. Applications ---> luci-app-qos 上网管理
LuCI ---> 3. Applications ---> luci-app-samba 网络共享
LuCI ---> 3. Applications ---> luci-app-ddns 动态域名
LuCI ---> 4. Themes ---> luci-theme-bootstrap 默认主题 大家可以自行增减插件
Base system ---> block-mount USB挂载
Kernel modules ---> Filesystems ---> kmod-fs-ext4 支持ext4文件系统
Kernel modules ---> Filesystems ---> kmod-fs-nfs 支持NFS文件系统
Kernel modules ---> Filesystems ---> kmod-fs-nfs-common(自动被选中)
Kernel modules ---> Filesystems ---> kmod-fs-ntfs 支持NTFS文件系统
Kernel modules ---> Filesystems ---> kmod-fs-vfat 支持FAT32文件系统
Kernel modules ---> Native Language Support ---> kmod-nls-cp437 支持中文
Kernel modules ---> Native Language Support ---> kmod-nls-iso8859-1 支持中文
Kernel modules ---> Native Language Support ---> kmod-nls-utf8 支持中文
Kernel modules ---> Other modules ---> kmod-mmc 支持SD卡
Kernel modules ---> Other modules ---> kmod-sdhci 支持SD卡
Kernel modules ---> Other modules ---> kmod-sdhci-mt7620 支持SD卡
Kernel modules ---> USB Support ---> kmod-usb-ohci 支持USB 1.0
Kernel modules ---> USB Support ---> kmod-usb-storage 支持USB存储
Kernel modules ---> USB Support ---> kmod-usb-storage-extras 支持USB存储扩展
Kernel modules ---> USB Support ---> kmod-usb-uhci 支持USB 1.1
Kernel modules ---> USB Support ---> kmod-usb2 支持USB 2.0
Network ---> File Transfer ---> aria2 多协议下载器
Network ---> File Transfer ---> vsftpd FTP服务器 (我编译时无法下载此安装包,当时没有细究。直接修改.config注掉编译了)
Network ---> File Transfer ---> wget 下载工具
Network ---> ppp-mod-pppoe PPPOE拨号模式
Network ---> ppp-mod-pptp VPN客户端
Network ---> SSH ---> openssh-client SSH客户端
Network ---> SSH ---> openssh-sftp-server SSH SFTP服务
Utilities ---> bzip2 解压缩工具
Utilities ---> Compression ---> unrar 解压缩工具
Utilities ---> Compression ---> unzip 解压缩工具
Utilities ---> Compression ---> zip 压缩工具
Utilities ---> Filesystem ---> badblocks 支持ext2文件系统
Utilities ---> Filesystem ---> e2fsprogs 支持ext2/ext3/ext4格式化工具
Utilities ---> disc ---> fdisk 分区工具
此时还有另外一个问题,就是编出来的固件串口的符号率是115200的。而我的boot的符号率是57600的。
如果直接烧进行,kernel起来以后是乱码。看boot 看kernel的时候还要来回切符号率。所以找到配置文件,修改之。
路径如下:
trunk\target\linux\ramips\dts\MIWIFI-MINI.dts
chosen {
bootargs = "console=ttyS0,57600";
};
修改标红字段,就可以更改符号率了。
9、最后就执行make正式开始编译,首次编译必然是漫长的等待。如果是双核CPU,使用make -j1 V=s命令可以加快速度,
Make 过程中出现的问题总结:
1.you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
解决方法:
export FORCE_UNSAFE_CONFIGURE=1
欢迎关注并加入物联网行业联盟,积累行业人脉和资源。
openwrt固件的下载编译流程相关推荐
- 求助编译lede的openwrt固件是云编译出错
在github上编译时报错 tools/v8_gypfiles/v8_base_without_compiler.target.mk:13: warning: overriding recipe fo ...
- 基于树莓派运行OpenWrt固件
OpenWrt是应用广泛的路由器固件,在OpenWrt的官方网站上,提供了众多路由器的固件版本供下载,其中也有支持树莓派的版本,话不多说,直接下载来玩一玩. 1. 固件下载 登录OpenWrt官方网站 ...
- 【221214已更新】S905L(P211)盒子读取OpenWRT固件以及写入emmc教程
2022.12.14更新: 1.升级至78+o: 2.采用flippy编译的固件(更稳定): 这一版本写入emmc的方法较以前不同,请参阅 78+o写入教程.txt 请在这里下载(download)最 ...
- OpenWrt源码下载及固件编译
2018年,OpenWrt和LEDE宣布合并了,从此我们下载OpenWrt源码的方法发生了重大的改变.目前稳定的OpenWrt版本是由LEDE 17.01源代码构建的,并以LEDE项目命名.OpenW ...
- 极路由刷个人编译的openwrt固件全过程
说明 以下是极1s刷机的整个流程,包括openwrt 极路由固件的编译和升级流程,主要是为了方便发烧友或者开发人员. 准备工作 极壹S(型号HC5661)一台 串口板和串口线(如果是高级玩家) 电脑. ...
- ESXI下安装OpenWrt/LEDE软路由教程(附超全功能固件镜像下载)
注意 openwrt官网下载的镜像是个内核版本,等于是个纯净版的几乎没有什么功能,后续如果需要安装插件不稳定极容易出错,所以两条路,要么你在安装前会编译进去自己想要用的插件,要么在网上安装大佬们已经编 ...
- linux下下载openwrt源码,OpenWrt下载编译
不想啰嗦直接肝,依次执行: git clone git://github.com/openwrt/openwrt.git cd openwrt ./scripts/feeds update -a ./ ...
- OpenWrt 固件编译教程
一.编译环境准备 编译平台 阿里云 Ubuntu 20.04.5 LTS 安装编译环境依赖 sudo apt-get -y install build-essential asciidoc binut ...
- OpenWrt固件编译
OpenWrt固件编译 编译OpenWrt需要Linux环境或mac环境,不支持Windows,如果要在Windows上开发,那么肯定是要装虚拟机的.(根据云隐技术7688开发板) 若不想折腾,下载虚 ...
最新文章
- VS2017 OpenCV配置
- 使用rem适配不同屏幕的移动设备
- 根据rtk参数在arcgis中进行可视化
- 颠覆与重构——戴尔助力徐工集团等行业客户实现业务转型
- 最新遇到的面试题20210319
- SQLite学习笔记(十二)虚拟机指令
- syntax error: unrecognized tag:
- 我的前端笔记之 meta 篇
- BZOJ-2257 瓶子和燃料 分解因数+数论方面乱搞(裴蜀定理)
- jsonp 使用选择器
- 181025词霸有道扇贝每日一句
- 2020年美赛C题(题目翻译+参考论文)
- [图论]最大流问题(Maximum flow)的定义
- 鸿蒙之初彩蛋攻略,鸿蒙圣女 热血精灵派鸿蒙灵帝解析
- 安灯(Andon)系统,生产车间的得力助手
- Jquery之遍历元素
- 灵活部署的数据中心Pod已初见端倪
- 绝对中位差( Median Absolute Deviation,MAD)算法
- 计算机考研题目汇总【持续更新】
- Cifar-10训练记录