OpenWrt システム開発ノート

  openWrt 英語公式サイト:https://openwrt.org/中国語公式サイト:http://www.openwrt.org.cn/

1. 開発環境とコンパイル

  github にはよく使われる 2 つのソース コードがあり、
  1 つは lede、アドレスはhttps://github.com/coolsnowwolf/lede
  、もう 1 つは OpenWrt の公式ソース コード: https://github.com/lede -project
  ダウンロード ダウンロード ソース コードの方法は次のとおりです。

git clone https://github.com/coolsnowwolf/lede

  OpenWrt をダウンロードするための公式のソース コード方法は次のとおりです。

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

2. モジュールをコンパイルする

  myapp_test を例として、モジュールを個別にコンパイルします。

make package/myapp_test/clean          // 清除编译生成的文件  
make package/myapp_test/prepare        // 编译准备,下载、解压缩、打补丁  
make package/myapp_test/configure      // 根据设置选项配置生成Makefile  
make package/myapp_test/compile        // 根据Makefile进行编译  
make package/myapp_test/install        // 生成安装包  

3. ソースディレクトリ

  OpenWrt のトップレベル ディレクトリの意味:

config/         // 编译选项配置文件  
docs/           // 文档目录  
include/        // 包含准备环境脚本、下载脚本、编译Makefile以及编译指令  
package/        // 各种功能的安装包  
scripts/        // 包含准备环境脚本、下载脚本、编译Makefile以及编译指令  
target/         // 嵌入式平台  
toolchain/      // 编译器和C库等  
tools/          // 通用命令,用来生成固件的辅助工具  

  openWrt ファームウェアでは、ほとんどすべてがパッケージであり、.ipk で終わるインストール パッケージにコンパイルできるため、簡単にインストール、アップグレード、アンインストールできます。
  openWrt コンパイルによって生成されるディレクトリの意味:

dl/             // 编译时下载软件代码包临时目录  
feeds/          // 扩展软件包目录  
bin/            // 编译完成后的最终成果目录  
build_dir/      // 编译中间文件目录  
staging_dir/    // 编译安装目录  
log/            // 如果打开了log选项,则编译log保存在该目录下  

4、openWrt システムパッケージ管理

  openWrt システムをインストールして開始した後の openWrt パッケージ管理方法は次のとおりです。

4.1. ソフトウェアパッケージの管理

opkg update		// 更新可以安装的软件包列表
opkg install	// 安装软件包,需要第三个参数传递一个软件包的名称。如 opkg install file
opkg remove		// 卸载安装包,需要第三个参数传递一个软件包的名称。autoremove可以将不需要的安装包也删除。如 opkg remove file --autoremove
opkg upgrade	// 升级软件包,需要第三个参数传递一个软件包的名称。一般只用来升级应用(非内核软件)。

4.2. クエリ情報:

opkg list					// 列出所有可使用的软件包
opkg list-installed			// 列出系统中已经安装的软件包
opkg list-changed-conffiles	// 列出用户修改过的配置文件
opkg files <pkg>			// 列出属于这个软件包中的所有文件
opkg search <file>			// 列出提供file的软件包,需要传递文件的绝对路径
opkg find <regexp>			// 列出软件包名称和regexp匹配的软件包
opkg info [pkg]				// 显示已安装pkg软件包的信息
opkg download <pkg>			// 将软件包pkg下载到当前目录
opkg print-architecture		// 列出安装包的架构
opkg whardepends [-A] [pkg]	// 针对已安装的软件包,输出依赖这个软件包的软件包

  opkg コマンド オプション:
  -A すべてのソフトウェア パッケージをクエリします
  -d <dest_name> dest_name をパッケージ インストールのルート ディレクトリとして使用します
  -f <conf_file> conf_file を opkg 構成ファイルとして使用します
  --nodeps 依存関係に従ってインストールせず、パッケージ自体のみをインストールします
  --autoremove パッケージをアンインストールするときに、未使用のパッケージを自動的にアンインストールします
  --force-reinstall パッケージを強制的に再インストールします

五、openWrtシステム構成(UCIインターフェース)

  MVC (Model-View-Control) パターンは、古典的な Web 開発プログラミング パターンです。openWrtもこの設計パターンを採用しており、モデル層には統一設定インターフェースUCI(Unified Configuration Interface)を採用しています。
  openWrt システムのコア構成ファイルは、/etc/config/ ディレクトリにあります。
  たとえば、ネットワーク IP を変更します。

uci set network.lan.ipaddr=192.168.6.1
uci commit network

  変更は、次のコマンドを実行することで有効になります。

/etc/init.d/network restart

  図に示すように、
ここに画像の説明を挿入
ここに画像の説明を挿入
  共通機能設定ファイルの意味は次のとおりです。

/etc/config/dhcp        // dnsmasq软件包配置,包含dhcp和dns设置  
/etc/config/dropbear    // SSH服务器选项  
/etc/config/firewall    // 防火墙设置,包含网络地址转换、包过滤、端口转发等  
/etc/config/network     // 网络配置,包含桥接、接口、路由配置  
/etc/config/system      // 系统配置,包含主机名称、网络时间同步等  
/etc/config/timeserver  // rdate的时间服务列表  
/etc/config/luci        // 基本的LuCI配置  
/etc/config/wireless    // 无限设置和wifi网络定义  
/etc/config/uhttpd      // web服务器选项配置  
/etc/config/upnpd       // miniupnpd UPnP服务设置  
/etc/config/qos         // 网络服务质量的配置文件定义  

6、openWrt カーネル構成

6.1、sysctl

  sysctl.conf は、システムによってプリロードされるカーネル構成ファイルです。sysctl.conf のファイルの場所は、openwrt ソース コード ファイルのディレクトリ (package/base-files/files/etc/sysctl.conf) にあります。コンパイル後、openwrt システムに /etc/sysctl.d/* を生成します。
  openwrt システムでは、sysctl コマンドを通じて読み取りおよび設定できます。例えば:

/sbin/sysctl -a								# 显示所有的内核配置
/sbin/sysctl -n kernel.hostname				# 查询kernel.hostname的值
/sbin/sysctl -w kernel.hostname="zhangsan"	# 修改系统主机名称为zhangsan
/sbin/sysctl -p /etc/sysctl.conf			# 加载配置

ここに画像の説明を挿入

6.2、/proc/sys/ディレクトリ

  使用可能なカーネル パラメータのほとんどは /proc/sys/ ディレクトリにあります。例:
  ルート転送を有効にするかどうかをクエリします。

cat /proc/sys/net/ipv4/ip_forward

  ルーティング転送設定を開きます。

echo "1" > /proc/sys/net/ipv4/ip_forward

6.3. システム設定ファイル

  システム構成ファイルの紹介:

/etc/rc.local       // 想要在开机后就执行的命令可以写入该文件  
/etc/profile        // 为系统的每个登陆用户设置环境变量  
/etc/shells         // openWrt采用的shell是 /bin/ash  
/etc/fstab          // 各种文件系统的描述信息  
/etc/services       // 互联网网络服务类型列表  
/etc/protocols      // 协议定义描述文件 

おすすめ

転載: blog.csdn.net/xxxx123041/article/details/132684562