Openwrt 学习记录
修订记录
修订时间 | 修订内容 | 修订人 |
---|---|---|
20200720 | 搭建文章基本框架; OpenWrt驱动开发流程; |
JD |
20200828 | 补充Openwrt文件系统部分; overlay手动挂载; |
JD |
简介
OpenWrt is a highly extensible GNU/Linux distribution for embedded devices (typically wireless routers). —Wiki
编译
Make方法
模块的编译以及其他make方法
make package/tcpdump/clean
make package/tcpdump/compile
添加 V=s
可以查看详细的编译过程
其他全局编译命令
make clean
源码目录简介
通过网络上一些博文的学习,初步了解了openwrt的源码目录框架。一般我们位openwrt做一些定制化的修改,只需要修改package
目录和config.in
文件即可。
-config
-include
-package #各种功能的软件包,我们自己的模块/软件可以放于此处
-scripts
-target
-toolchains
-tools
Config.in #通常配置编译模块我们需要在此配置
Makefile
rules.mk
在执行编译后,还会生成几个目录。编好的版本也位于其中的build_der/version
。
参考文档:
启动流程
驱动开发
由前面简单介绍的Openwrt的源码目录可知,如果需要加入我们自己定制的模块,通常我们将模块放置于package/kernel
目录下,具体模块组成框架及内容模仿其他内核模块的写法。
demo
├── Makefile
└── src
├── Kconfig(非必要)
├── demo.c
└── Makefile
为了避免重复造轮子,具体实现可以看如下参考文档。
参考文档:
参考文档
应用程序编译及其make方法
demo
├── Makefile
|── file
| |── demo(启动脚本)
| |── conf(配置文件)
| |__ ***
|
└── src
├── demo.h
├── demo.c
└── Makefile
参考链接
- openwrt中添加自定义应用模块
- OpenWRT 增加内核模块及应用方法
- openwrt编译 – 添加用户自定义app
-
Openwrt 文件系统
overlay
手动挂载overlay
首先通过如下命令cat /proc/mtd
查看rootfs_data分区所执行的flash内存块。 我的系统是/dev/mtdblock11
对应的 rootfs_data
。
mount -n -t jffs2 /dev/mtdblock11 -o rw,noatime,mode=0755 /overlay
mount -n -t overlayfs overlayfs:/overlay -o rw,noatime,lowerdir=/,upperdir=/overlay /mnt
mount -n /proc -o noatime,--move /mnt/proc
pivot_root /mnt /mnt/rom
mount -n /rom/dev -o noatime,--move /dev
mount -n /rom/tmp -o noatime,--move /tmp
mount -n /rom/sys -o noatime,--move /sys
mount -n /rom/overlay -o noatime,--move /overlay