OpenWRT 编译过程

匿名 (未验证) 提交于 2019-12-02 23:26:52

一、使用Ubuntu编译OpenWRT源码

第一步:安装基础软件

sudo apt-get install subversion g++ zlib1g-dev build-essential git python rsync man-db sudo apt-get install libncurses5-dev gawk gettext unzip file libssl-dev wget zip time

第二步:克隆代码

git clone https://git.openwrt.org/openwrt/openwrt.git/或者分支  https://github.com/lede-project/source.git cd openwrt  ./scripts/feeds update -a    // 更新最新的包 ./scripts/feeds install -a   // 下载所有安装所有包  目录 package/feeds/# 使用feeds.conf.default 默认配置进行软件包的更新与安装 make defconfig               // 检查编译工具是否全,生成.config文件 make menuconfig              // 打开编译菜单

参考文档: https://openwrt.org/docs/guide-developer/feeds

在Openwrt系统中,“feed”是一系列的软件包,这些软件包需要通过一个统一的接口地址进行访问。

“feed”软件包中的软件包可能分布在远程服务器上、在svn上、在本地文件系统中或者其他的地方,

用户可以通过一种支持feed机制的协议,通过同一个地址进行访问。

第三步:配置

第四步:编译

make V=99    // V = verbose 全部都显示

对于特定组件进行clean

make target/linux/clean V=s

make package/luci/clean

makefile来定义需要下载哪些文件与打上补丁。

代码结构如下

scripts - Perl脚本管理OpenWRT包的安装与卸载

dl - 编译工具,目标,package所需要的软件包将从网上下载放到dl目录中
build_dir - 一个临时目录,用来将所有需要编译的软件源码放到这个目录中进行编译。它包括一下三个目录:
staging_dir - 用于存放构建目标系统镜像的工具软件,包括:
bin目录 - make之后的新增目录,用来存放make的结果。
Makefile文件:make命令的总入口
rules.mk文件:定义了一系列在make时使用的规则
.config.old隐藏文件:老的.config文件

简言之,编译过程如下:

手动编译过程如下

1. make tools/install

2. make toolchain/install

3. make target/compile

4. make package/cleanup

7. make package/preconfig

8. make target/install

9. make package/index

单独编译软件包

make menuconfig

Subtarget - Little Endian

Target Profile - Default

ubuntu:~/openwrt/bin/targets/malta/le$ ls -l total 272708 -rw-r--r-- 1 ubuntu ubuntu       329 Sep 10 13:39 config.seed -rw-r--r-- 1 ubuntu ubuntu      1959 Sep 10 13:59 openwrt-malta-le-default.manifest -rw-r--r-- 1 ubuntu ubuntu 268435456 Sep 10 13:59 openwrt-malta-le-root.ext4 -rw-r--r-- 1 ubuntu ubuntu   2727322 Sep 10 13:59 openwrt-malta-le-uImage-gzip -rw-r--r-- 1 ubuntu ubuntu   1940771 Sep 10 13:59 openwrt-malta-le-uImage-lzma -rwxr-xr-x 1 ubuntu ubuntu   6125260 Sep 10 13:59 openwrt-malta-le-vmlinux.elf drwxr-xr-x 2 ubuntu ubuntu      4096 Sep 10 13:59 packages -rw-r--r-- 1 ubuntu ubuntu       556 Sep 10 14:00 sha256sums ubuntu:~/openwrt/bin/targets/malta/le$ 

sudo apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin

sudo qemu-system-mipsel -M malta -hda openwrt-malta-le-root.ext4 -kernel openwrt-malta-le-vmlinux.elf -nographic -append "root=/dev/sda console=tty50"

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!