Openwrt:修订间差异

来自资料库(何亚红)
跳转到导航 跳转到搜索
无编辑摘要
(未显示同一用户的3个中间版本)
第19行: 第19行:
* 添加package。参考package目录下的文件,编写自己的应用程序。
* 添加package。参考package目录下的文件,编写自己的应用程序。
* 修改基本rootfs文件系统。这是可选的,一般情况可通过添加package实现,但需要修改某些默认的名称就需要做此修改。
* 修改基本rootfs文件系统。这是可选的,一般情况可通过添加package实现,但需要修改某些默认的名称就需要做此修改。
== 常用操作 ==
若无特殊说明,下列操作均在openwrt-22.03测试,如系统版本不一致,下列操作仅供参考,不保证有效。
若无特殊说明,下列操作均在openwrt-22.03测试,如系统版本不一致,下列操作仅供参考,不保证有效。


第66行: 第68行:


</syntaxhighlight>此patch可直接保存为.patch文件并使用patch命令打补丁。
</syntaxhighlight>此patch可直接保存为.patch文件并使用patch命令打补丁。
== 编译环境 ==
=== docker编译环境镜像 ===
[[openwrt-be]] : https://hub.docker.com/r/heyahong/openwrt-be
=== Go模块代理 ===
当openwrt编译基于go语言的软件包时需要下载大量的Go模块,此时若网络不好就会编译失败。
其它种类的源代码包可通过其他的方式下载并放在dl目录,而Go软件的依赖模块一般模块较多,需要使用代理。
在编译前可执行以下命令启用七牛云代理:<syntaxhighlight lang="bash" line="1">
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
</syntaxhighlight>


== 官方资料 ==
== 官方资料 ==
网址:https://openwrt.org/
网址:https://openwrt.org/

2022年11月19日 (六) 05:08的版本

源代码

主要

https://git.openwrt.org/openwrt/openwrt.git

备用

https://github.com/openwrt/openwrt.git

说明

openwrt是一个嵌入式Linux系统,提供可写的根文件系统。
通常用于无线路由器,也可以做物联网开发。
openwrt可提供完整的嵌入式Linux编译环境,可直接编写应用程序。

个人使用场景

  • 使用采用MT7688芯片作为核心的开发板做物联网开发。

MT7688移植提示

对于简易的openwrt移植,本人主要做以下步骤:

  • 添加Linux内核设备树。根据硬件的实际连接添加设备树(*.dts)文件,通常可以选一个现成的拿来修改,目录为target/linux/ramips/dts。
  • 添加TARGET_DEVICES。在target/linux/ramips/image找到芯片名称对应的*.mk文件。参照里面其它设备的写法添加一个设备,需要注意的是dts文件名称与设备配置相匹配(不同版本略有不同),dts配置中model(设备型号)配置也须与设备配置一致(否则升级时会提示型号不匹配)。
  • 配置交换机。主要配置那些口为Lan口,那些为Wan,如不配置,固件可能不能启动(直接内核崩溃)。在target/linux/ramips/image找到MT7688对应的02_network文件,参照里面其它配置修改。注意:此配置与dts中的配置要相符合。
  • 添加package。参考package目录下的文件,编写自己的应用程序。
  • 修改基本rootfs文件系统。这是可选的,一般情况可通过添加package实现,但需要修改某些默认的名称就需要做此修改。

常用操作

若无特殊说明,下列操作均在openwrt-22.03测试,如系统版本不一致,下列操作仅供参考,不保证有效。

修改banner

为了登入openwrt时显示自己的图形,需要替换banner文件。

包目录: package/base-files/files/

文件:

  • etc/banner
  • etc/banner.failsafe

使用自己制作的banner文件替换原有文件即可。

修改默认主机名、时区

修改默认主机名需要修改生成默认配置的脚本。如使用升级安装且保留配置,系统会使用保留的配置,如需修改生效,需要恢复出厂设置。

包目录:package/base-files/files/

文件:bin/config_generate

下面是一个将主机名修改为HEYAHONG,时区修改为Asia/Shanghai,并添加中国国家授时中心的ntp服务器的patch:

diff '--exclude=.git' -ruN a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
--- a/package/base-files/files/bin/config_generate	2022-05-22 12:08:42.277985634 +0800
+++ b/package/base-files/files/bin/config_generate	2022-05-22 12:55:28.706322868 +0800
@@ -301,8 +301,9 @@
 	uci -q batch <<-EOF
 		delete system.@system[0]
 		add system system
-		set system.@system[-1].hostname='OpenWrt'
-		set system.@system[-1].timezone='UTC'
+		set system.@system[-1].hostname='HEYAHONG'
+		set system.@system[-1].timezone='CST-8'
+                set system.@system[-1].zonename='Asia/Shanghai'
 		set system.@system[-1].ttylogin='0'
 		set system.@system[-1].log_size='64'
 		set system.@system[-1].urandom_seed='0'
@@ -311,6 +312,7 @@
 		set system.ntp='timeserver'
 		set system.ntp.enabled='1'
 		set system.ntp.enable_server='0'
+		add_list system.ntp.server='ntp.ntsc.ac.cn'
 		add_list system.ntp.server='0.openwrt.pool.ntp.org'
 		add_list system.ntp.server='1.openwrt.pool.ntp.org'
 		add_list system.ntp.server='2.openwrt.pool.ntp.org'

此patch可直接保存为.patch文件并使用patch命令打补丁。

编译环境

docker编译环境镜像

openwrt-be : https://hub.docker.com/r/heyahong/openwrt-be

Go模块代理

当openwrt编译基于go语言的软件包时需要下载大量的Go模块,此时若网络不好就会编译失败。

其它种类的源代码包可通过其他的方式下载并放在dl目录,而Go软件的依赖模块一般模块较多,需要使用代理。

在编译前可执行以下命令启用七牛云代理:

export GO111MODULE=on
export GOPROXY=https://goproxy.cn

官方资料

网址:https://openwrt.org/