OpenWrt系统定制之base-files研究

本文介绍如何通过修改OpenWrt的base-files目录中的文件来定制系统配置,包括hostname、时区、启动信息、默认网络配置、用户密码及升级保留文件等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

base-files属于OpenWrt的rootfs框架,位于package/base-files/files,里面有些项目可以定制和修改

.
├── bin
│   ├── ipcalc.sh
│   └── login.sh
├── etc
│   ├── banner
│   ├── config
│   │   ├── network
│   │   └── system
│   ├── device_info
│   ├── diag.sh
│   ├── group
│   ├── hosts
│   ├── hotplug.d
│   │   └── net
│   │       └── 00-sysctl
│   ├── init.d
│   │   ├── boot
│   │   ├── done
│   │   ├── led
│   │   ├── sysctl
│   │   ├── sysfixtime
│   │   ├── system
│   │   └── umount
│   ├── inittab
│   ├── openwrt_release
│   ├── openwrt_version
│   ├── passwd
│   ├── preinit
│   ├── profile
│   ├── protocols
│   ├── rc.button
│   │   ├── failsafe
│   │   ├── power
│   │   ├── reset
│   │   └── rfkill
│   ├── rc.common
│   ├── rc.local
│   ├── services
│   ├── shadow
│   ├── shells
│   ├── sysctl.conf
│   ├── sysupgrade.conf
│   └── uci-defaults
│       ├── 10_migrate-shadow
│       ├── 11_migrate-sysctl
│       └── 12_network-generate-ula
├── lib
│   ├── functions
│   │   ├── leds.sh
│   │   ├── network.sh
│   │   ├── preinit.sh
│   │   ├── service.sh
│   │   ├── system.sh
│   │   └── uci-defaults.sh
│   ├── functions.sh
│   ├── preinit
│   │   ├── 02_default_set_state
│   │   ├── 10_indicate_failsafe
│   │   ├── 10_indicate_preinit
│   │   ├── 30_failsafe_wait
│   │   ├── 40_run_failsafe_hook
│   │   ├── 50_indicate_regular_preinit
│   │   ├── 70_initramfs_test
│   │   ├── 80_mount_root
│   │   ├── 99_10_failsafe_login
│   │   └── 99_10_run_init
│   └── upgrade
│       ├── common.sh
│       └── keep.d
│           └── base-files-essential
├── rom
│   └── note
└── sbin
    ├── firstboot
    ├── hotplug-call
    ├── led.sh
    ├── sysupgrade
    └── wifi


1.etc/config/system修改hostname,timezoneoption

zonename 'Asia/Chongqing'

option timezone 'CST-8'

option hostname 'Manfeel'


2.etc/banner可修改为自己的启动定制信息


3.lib/functions/uci-defaults修改默认的uci配置,如lan的ip地址等

ucidef_set_interface_lan() {
    local ifname=$1
 
    uci batch <<EOF
set network.lan='interface'
set network.lan.ifname='$ifname'
set network.lan.force_link=1
set network.lan.type='bridge'
set network.lan.proto='static'
set network.lan.ipaddr='192.168.8.1'
set network.lan.netmask='255.255.255.0'
set network.lan.ip6assign='60'
EOF
}


4.etc/shadow修改root用户的初始密码


5.etc/profile修改root的相关配置信息

 
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export HOME=$(grep -e "^${USER:-root}:" /etc/passwd | cut -d ":" -f 6)
export HOME=${HOME:-/root}
export PS1='\u@\h:\w\$ '
 
[ -x /bin/more ] || alias more=less
[ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi
 
[ -z "$KSH_VERSION" -o \! -s /etc/mkshrc ] || . /etc/mkshrc
 
[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }
[ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }


6.etc/sysupgrade.conf修改升级固件时需要保留的文件列表

## This file contains files and directories that should
## be preserved during an upgrade.
 
# /etc/example.conf
# /etc/openvpn/
根据上次提问的修改如下 define Package/base-files/install $(CP) ./files/* $(1)/ $(Package/base-files/install-key) $(Package/base-files/nand-support) $(Package/base-files/legacy-sdcard-support) $(Package/base-files/emmc-support) if [ -d $(GENERIC_PLATFORM_DIR)/base-files/. ]; then \ $(CP) $(GENERIC_PLATFORM_DIR)/base-files/* $(1)/; \ fi if [ -d $(PLATFORM_DIR)/base-files/. ]; then \ $(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \ fi $(if $(filter-out $(PLATFORM_DIR),$(PLATFORM_SUBDIR)), \ if [ -d $(PLATFORM_SUBDIR)/base-files/. ]; then \ $(CP) $(PLATFORM_SUBDIR)/base-files/* $(1)/; \ fi; \ ) $(VERSION_SED_SCRIPT) \ $(1)/etc/banner \ $(1)/etc/device_info \ $(1)/etc/openwrt_release \ $(1)/etc/openwrt_version \ $(1)/usr/lib/os-release $(SED) "s#%PATH%#$(TARGET_INIT_PATH)#g" \ $(1)/sbin/hotplug-call \ $(1)/etc/preinit \ $(1)/etc/pr mkdir -p \ $(1)/CONTROL \ $(1)/dev \ $(1)/etc/config \ $(1)/etc/crontabs \ $(1)/etc/rc.d \ $(1)/overlay \ $(1)/lib/firmware \ $(1)/mnt \ $(1)/proc \ $(1)/tmp \ $(1)/usr/lib \ $(1)/usr/bin \ $(1)/sys \ $(1)/www mkdir -p -m 750 \ $(1)/root #new add @starry $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/etc/init.d/set_system_time $(1)/etc/init.d/ echo "2023-11-15 12:00:00" > $(1)/etc/build_timestamp #add end $(LN) /proc/mounts $(1)/etc/mtab $(if $(LIB_SUFFIX),-$(LN) lib $(1)/lib$(LIB_SUFFIX)) $(if $(LIB_SUFFIX),-$(LN) lib $(1)/usr/lib$(LIB_SUFFIX)) 此时编译出现了报错 make[3]: Leaving directory '/home/starry/openwrt/package/base-files' time: package/base-files/compile#5.19#0.51#5.84 ERROR: package/base-files failed to build. make[2]: *** [package/Makefile:129: package/base-files/compile] Error 1 make[2]: Leaving directory '/home/starry/openwrt' make[1]: *** [package/Makefile:123: /home/starry/openwrt/staging_dir/target-mipsel_24kc_musl/stamp/.package_compile] Error 2 分析一下
最新发布
07-18
cho -e "# disable sysrq menu\nkernel.sysrq = 0" >> /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files/etc/sysctl.conf touch /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files/CONTROL/conffiles for conffile in /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files/etc/config/*; do if [ -f "$conffile" ]; then grep "${conffile##/home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files}" /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files/CONTROL/conffiles || echo "${conffile##/home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files}" >> /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files/CONTROL/conffiles; fi done echo "::respawn:/sbin/getty 115200 ttyAMA0" >> /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files/etc/inittab; sed -i 's/date -u -s 2013.01.01-00:00:00/date -u -s "2013.01.01"-00:00:00/g' /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/build_dir/linux-sagemcom_380B-generic/base-files/ipkg-sagemcom/base-files/etc/init.d/boot; /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_2410214/shz_380B-njj/fw-scos/openwrt/scripts/sgc-addgroup.sh /home/g574023/Desktop/code/BP_EXTENDER_SZN_FIBER_24
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值