
本文共 5143 字,大约阅读时间需要 17 分钟。
LINUX������������������sysupgrade���������������
���Linux������������������sysupgrade���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sysupgrade���������������������������������������������������������������������
1. ������������
sysupgrade������������������OpenWrt���������������������������OpenWrt������MIPS������������������������qca9531������������������Openwrt-trunk 4.1.15���������������������������������������������������jffs2���squashFS������������������������������������������
2. ������������
���OpenWrt������������MIPS���������������������������������jffs2���squash���������������������������������������������������������������������sysupgrade���������������������
2.1 squash������������
squashFS���������������Linux������������������������������������������������������������������������������������2^64���������������������������������
- ���������������������GPL���������������GZIP���LZMA���XZ������������������
- ���������������������������2.6.34������������LZMA���2.6.38������XZ���������
- ���������������������������������������������������������������������������
2.2 sysupgrade������
sysupgrade���OpenWrt���������������������������������������shell���������������������������������������������
#!/bin/sh. /lib/functions.sh. /lib/functions/system.sh# ���������������������RAMFS_COPY_BIN=""RAMFS_COPY_DATA=""export MTD_CONFIG_ARGS=export INTERACTIVE=0export VERBOSE=1export SAVE_CONFIG=1export SAVE_OVERLAY=0export DELAY=export CONF_IMAGE=export CONF_BACKUP_LIST=0export CONF_BACKUP=export CONF_RESTORE=export NEED_IMAGE=export HELP=0export FORCE=0export TEST=0# ������������while [ -n "$1" ]; do case "$1" in -i) export INTERACTIVE=1 ;; -d) export DELAY="$2"; shift ;; -v) export VERBOSE=$((VERBOSE + 1)) ;; -q) export VERBOSE=$((VERBOSE - 1)) ;; -n) export SAVE_CONFIG=0 ;; -c) export SAVE_OVERLAY=1 ;; -b|--create-backup) export CONF_BACKUP="$2" NEED_IMAGE=1; shift ;; -r|--restore-backup) export CONF_RESTORE="$2" NEED_IMAGE=1; shift ;; -l|--list-backup) export CONF_BACKUP_LIST=1; break ;; -f) export CONF_IMAGE="$2"; shift ;; -F|--force) export FORCE=1 ;; -T|--test) export TEST=1 ;; -h|--help) export HELP=1; break ;; *) echo "Invalid option: $1" exit 1 ;; esac shiftdone# ������������������export CONFFILES=/tmp/sysupgrade.conffilesexport CONF_TAR=/tmp/sysupgrade.tgzexport ARGV="$*"export ARGC="$#"# ���������������������������if [ -z "$ARGV" -a -z "$NEED_IMAGE" -o $HELP -gt 0 ]; then echo "Usage: $0 [...] " exit 1fi# ������������������������������������if [ -n "$CONF_BACKUP" ]; then do_save_conffiles "$CONF_BACKUP" exit $? fi# ���������������������������if [ -n "$CONF_RESTORE" ]; then if [ "$CONF_RESTORE" != "-" ]; then if [ ! -f "$CONF_RESTORE" ]; then echo "Backup archive '$CONF_RESTORE' not found." exit 1 fi fi tar -C / -xvf "$CONF_RESTORE" exit $? fi# ������������type platform_check_image > /dev/null || { echo "Firmware upgrade is not implemented for this platform." exit 1}# ������������������if [ $TEST -eq 1 ]; then exit 0fi# ���������������������run_hooks "" $sysupgrade_pre_upgrade# ������������������do_upgrade
3. ���������������������
sysupgrade���������������������������������������������������������������������������������������������
/proc/cpuinfo
������machine
������������������������������������MIPS_MACHINE
������������machine
������������������������������������ar71xx_board_detect
������������machine
������������board_name
���model
���4. sysupgrade������������������
���������������������������sysupgrade������������������������������������
���������������������������
- ���
target/linux/ar71xx/base-files/lib/ar71xx.sh
������������ar71xx_board_detect
���������������MIPS_MACHINE
���������machine
���������������������case
���������������board_name
���model
���
���������������������
- ���
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
������������platform_check_image
���������������board_name
���������������case
���������������������������������������������������
5. ������������������������
sysupgrade������������������������������������������������������������
do_save_conffiles
���������������������������������������������������������������������force
������������������������������������������������������������������������������������������������������sysupgrade���������OpenWrt������������������������������������������������������������������������Linux���������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
