天天看點

OpenWrt系統定制之base-files研究

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/