17-Openwrt banner文件生成

在每次串口或ssh登录后台的时候,一按回车键就会出现openwrt的字段,如果想换成自己自定义的内容如何实现。

banner:语牌和横幅

这个文件存放在如下位置:./package/base-files/files/etc/banner,所以我们只需要修改这个文字的内容就可以。

那我们如何生成上面好看的内容,可以使用如下工具生成:

sudo apt-get install sysvbanner toilet figlet

ubuntu:~/$ banner openwrt

  ####   #####   ######  #    #  #    #  #####    #####
 #    #  #    #  #       ##   #  #    #  #    #     #
 #    #  #    #  #####   # #  #  #    #  #    #     #
 #    #  #####   #       #  # #  # ## #  #####      #
 #    #  #       #       #   ##  ##  ##  #   #      #
  ####   #       ######  #    #  #    #  #    #     #

ubuntu:~/$ banner OPENWRT
####### ######  ####### #     # #     # ######  #######
#     # #     # #       ##    # #  #  # #     #    #
#     # #     # #
在 Lienol 或 OpenWrt 系统中,终端登录时显示的 `banner` 文件(位于 `/etc/banner`)通常包含一些变量: ```text %D %V, %C ``` 这些变量是 **内核或系统信息的占位符**,它们会在运行时被替换成实际值。下面是这些变量的具体含义和作用。 --- ## 📌 变量解释 | 占位符 | 含义 | 示例输出 | |--------|------|-----------| | `%D` | 设备型号(设备名称) | `x86_64`、`MT7621` | | `%V` | 固件版本号(OpenWrt 版本) | `v23.05-SNAPSHOT` | | `%C` | 内核版本 | `Linux 5.15.149` | 这些变量主要用于动态展示当前系统的软硬件信息,便于识别固件版本和平台架构。 --- ## 🔍 实际示例 假设你的 `/etc/banner` 文件内容如下: ``` _______ ________ __ | |.-----.-----.-----| | | |.----.| |_ | - || _ | -__| | | | || _|| _| |_______|| __|_____|__|__|________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- %D %V, %C ----------------------------------------------------- ``` 登录后你可能会看到类似以下内容: ``` _______ ________ __ | |.-----.-----.-----| | | |.----.| |_ | - || _ | -__| | | | || _|| _| |_______|| __|_____|__|__|________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- x86_64 v24.01-custom, Linux 5.15.149 ----------------------------------------------------- ``` --- ## 🛠️ 这些变量是如何工作的? 这些变量是由 **`/etc/banner`** 被 `dropbear` 或 `login` 程序读取时解析并替换的。OpenWrt 中的 banner 显示机制依赖于底层工具(如 `dropbear` 或 `BusyBox` 的 `login` 模块),它们支持这些内建变量。 ### ✅ 变量来源说明 - **`%D`**:来自 `/proc/cpuinfo` 或编译时指定的目标平台(target profile) - **`%V`**:来自 `/etc/openwrt_version` 或 `/etc/openwrt_release` 中定义的版本号 - **`%C`**:来自 `uname -r` 命令输出的 Linux 内核版本 --- ## 🧩 自定义 Banner 显示内容 你可以通过修改 `/etc/banner` 文件来添加自己的描述信息,例如加入构建时间、作者、项目名等。 ### 示例:自定义 banner ```bash vi package/base-files/files/etc/banner ``` 修改为如下内容: ``` #################################################### # Welcome to My Custom Lienol Firmware # Build: $(date +"%Y-%m-%d") # Target: %D # Version: %V # Kernel: %C #################################################### _______ ________ __ | |.-----.-----.-----| | | |.----.| |_ | - || _ | -__| | | | || _|| _| |_______|| __|_____|__|__|________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- %D %V, %C ----------------------------------------------------- ``` > ⚠️ 注意:`$(date ...)` 在文件中不会自动执行,除非你在构建前用脚本动态生成它。 --- ## 💡 如何动态插入构建时间或 Git 提交哈希? 可以使用一个 shell 脚本来在每次构建前自动生成 `/etc/banner` 和 `/etc/openwrt_release`。 ### 示例脚本:`update_banner.sh` ```bash #!/bin/sh BUILD_TIME=$(date +"%Y-%m-%d %H:%M") GIT_COMMIT=$(git rev-parse --short HEAD) cat > package/base-files/files/etc/banner << EOF #################################################### # Welcome to My Custom Lienol Firmware # Build: $BUILD_TIME # Git Commit: $GIT_COMMIT # Target: %D # Version: %V # Kernel: %C #################################################### _______ ________ __ | |.-----.-----.-----| | | |.----.| |_ | - || _ | -__| | | | || _|| _| |_______|| __|_____|__|__|________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- %D %V, %C ----------------------------------------------------- EOF ``` 然后在编译前运行这个脚本: ```bash chmod +x update_banner.sh ./update_banner.sh make -j$(nproc) ``` 这样每次编译出来的固件都会有不同的构建时间和提交记录。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Creator_Ly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值