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固件的下载编译流程相关推荐

  1. 求助编译lede的openwrt固件是云编译出错

    在github上编译时报错 tools/v8_gypfiles/v8_base_without_compiler.target.mk:13: warning: overriding recipe fo ...

  2. 基于树莓派运行OpenWrt固件

    OpenWrt是应用广泛的路由器固件,在OpenWrt的官方网站上,提供了众多路由器的固件版本供下载,其中也有支持树莓派的版本,话不多说,直接下载来玩一玩. 1. 固件下载 登录OpenWrt官方网站 ...

  3. 【221214已更新】S905L(P211)盒子读取OpenWRT固件以及写入emmc教程

    2022.12.14更新: 1.升级至78+o: 2.采用flippy编译的固件(更稳定): 这一版本写入emmc的方法较以前不同,请参阅 78+o写入教程.txt 请在这里下载(download)最 ...

  4. OpenWrt源码下载及固件编译

    2018年,OpenWrt和LEDE宣布合并了,从此我们下载OpenWrt源码的方法发生了重大的改变.目前稳定的OpenWrt版本是由LEDE 17.01源代码构建的,并以LEDE项目命名.OpenW ...

  5. 极路由刷个人编译的openwrt固件全过程

    说明 以下是极1s刷机的整个流程,包括openwrt 极路由固件的编译和升级流程,主要是为了方便发烧友或者开发人员. 准备工作 极壹S(型号HC5661)一台 串口板和串口线(如果是高级玩家) 电脑. ...

  6. ESXI下安装OpenWrt/LEDE软路由教程(附超全功能固件镜像下载)

    注意 openwrt官网下载的镜像是个内核版本,等于是个纯净版的几乎没有什么功能,后续如果需要安装插件不稳定极容易出错,所以两条路,要么你在安装前会编译进去自己想要用的插件,要么在网上安装大佬们已经编 ...

  7. linux下下载openwrt源码,OpenWrt下载编译

    不想啰嗦直接肝,依次执行: git clone git://github.com/openwrt/openwrt.git cd openwrt ./scripts/feeds update -a ./ ...

  8. OpenWrt 固件编译教程

    一.编译环境准备 编译平台 阿里云 Ubuntu 20.04.5 LTS 安装编译环境依赖 sudo apt-get -y install build-essential asciidoc binut ...

  9. OpenWrt固件编译

    OpenWrt固件编译 编译OpenWrt需要Linux环境或mac环境,不支持Windows,如果要在Windows上开发,那么肯定是要装虚拟机的.(根据云隐技术7688开发板) 若不想折腾,下载虚 ...

最新文章

  1. VS2017 OpenCV配置
  2. 使用rem适配不同屏幕的移动设备
  3. 根据rtk参数在arcgis中进行可视化
  4. 颠覆与重构——戴尔助力徐工集团等行业客户实现业务转型
  5. 最新遇到的面试题20210319
  6. SQLite学习笔记(十二)虚拟机指令
  7. syntax error: unrecognized tag:
  8. 我的前端笔记之 meta 篇
  9. BZOJ-2257 瓶子和燃料 分解因数+数论方面乱搞(裴蜀定理)
  10. jsonp 使用选择器
  11. 181025词霸有道扇贝每日一句
  12. 2020年美赛C题(题目翻译+参考论文)
  13. [图论]最大流问题(Maximum flow)的定义
  14. 鸿蒙之初彩蛋攻略,鸿蒙圣女 热血精灵派鸿蒙灵帝解析
  15. 安灯(Andon)系统,生产车间的得力助手
  16. Jquery之遍历元素
  17. 灵活部署的数据中心Pod已初见端倪
  18. 绝对中位差( Median Absolute Deviation,MAD)算法
  19. 计算机考研题目汇总【持续更新】
  20. Cifar-10训练记录

热门文章

  1. 开快递代收点挣钱吗?怎么盈利?
  2. 计算机英语情景对话二人组,英语情景对话要求两人的对话 时间5分钟左右 内容是在校园两个好朋友谈论...
  3. 网页转换成电脑exe软件简单办法
  4. 一个高性能服务器需要关注的地方
  5. 使用Cytoscape画PPI网络图
  6. 送给1987年左右的朋友,看完是不是有些泪水
  7. BUUCTF MISC 二维码扫描
  8. EMERSON艾默生AMS巡检仪维修TREX通讯器维修注意事项
  9. idc机房建设费用_数据中心机房收费标准
  10. 力扣(20.232)补9.6