嵌入式Linux U盘升级
1. 步骤
- 现在开发板目录/etc/init.d下 放S89_updata.sh。 //这步骤已经在打包的文件系统里面了,以后不需要操作。
- 在U盘中放dockupfile.tar目录,和updata.sh 文件 //文件和目录名字最好不要修改。
- 将U盘插入DOCK重启就能烧录。
upfile文件有 app wav lib config 文件。
//打包升级文件
tar -vcf dockupfile.tar upfile
//升级文件和updata.sh文件放在U盘根目录下。
2. S89_updata.sh
开发板目录/etc/init.d下 放S89_updata.sh
#!/bin/sh
ROOT_DIR=/media
UPDATE=updata.sh
start() {
echo "Starting update: "
ls ${ROOT_DIR} | while read line; do \
cd $ROOT_DIR/$line
if [ -f $UPDATE ]; then
echo "exec $UPDATE..."
./$UPDATE && break
fi
cd -
done
echo "OK"
}
stop() {
echo "nothing to do: "
echo "OK"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
3. updata.sh
#!/bin/sh
#### add your operation in here ####
#### the sample ####
# copy app to /opt/app directory
if [ -f ./dockupfile.tar ]; then
wr mkdir temp
tar -xvf dockupfile.tar -C ./temp
echo "updata --------system--------------------------------"
if [ -d ./temp/upfile/system ]; then
if [ -f ./temp/upfile/system/u-boot.imx ]; then
echo "up u-boot.imx"
mount -t debugfs debugfs /sys/kernel/debug
flash_erase /dev/mtd0 0 0
wr kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 ./temp/upfile/system/u-boot.imx
sync
fi
if [ -f ./temp/upfile/system/imx6y2c-512m-nand.dtb ]; then
echo "up imx6y2c-512m-nand.dtb"
flash_erase /dev/mtd1 0 0
nandwrite -p /dev/mtd1 -p ./temp/upfile/system/imx6y2c-512m-nand.dtb
sync
fi
if [ -f ./temp/upfile/system/zImage ]; then
echo "up zImage"
flash_erase /dev/mtd2 0 0
nandwrite -p /dev/mtd2 -p ./temp/upfile/system/zImage
sync
fi
if [ -f ./temp/upfile/system/logo.bmp ]; then
echo "up logo.bmp"
flash_erase /dev/mtd4 0 0
nandwrite -p /dev/mtd4 -p ./temp/upfile/system/logo.bmp
sync
fi
fi
echo "updata --------app-----------------------------------"
if [ -d ./temp/upfile/app ]; then
if [ -f ./temp/upfile/app/config.json ]; then
echo "cp config.json"
cp ./temp/upfile/app/config.json /opt
fi
if [ -f ./temp/upfile/app/dockTopApp ]; then
echo "cp dockTopApp"
cp ./temp/upfile/app/dockTopApp /opt
fi
fi
echo "updata --------wav-----------------------------------"
if [ -d ./temp/upfile/wav ]; then
if [ -f ./temp/upfile/wav/high.wav ]; then
echo "cp high.wav"
wr cp ./temp/upfile/wav/high.wav /opt
fi
if [ -f ./temp/upfile/wav/Hint.wav ]; then
echo "cp Hint.wav"
wr cp ./temp/upfile/wav/Hint.wav /opt
fi
if [ -f ./temp/upfile/wav/low.wav ]; then
echo "cp low.wav"
wr cp ./temp/upfile/wav/low.wav /opt
fi
if [ -f ./temp/upfile/wav/medium.wav ]; then
echo "cp medium.wav"
wr cp ./temp/upfile/wav/medium.wav /opt
fi
fi
echo "updata --------QtLib---------------------------------"
if [ -d ./temp/upfile/Qt5.12.9 ]; then
wr cp ./temp/upfile/Qt5.12.9 /opt -rf
fi
echo "updata --------end-----------------------------------"
sync
rm ./temp -rf
fi
#if [ -f ./S90start_userapp.sh ]; then
# wr cp ./S90start_userapp.sh /etc/init.d/
#fi