backup-spi เป็นโปรแกรมใช้สำรองข้อมูล spi flash rom หลังรันโปรแกรมได้ไฟล์บันทึกที่ /data/backup-spi ไฟล์บันทึกแยกเป็น  mtd1ถึง mtd8 และ อีกไฟล์รวมเป็น 1 ไฟล์ แต่ละ cmu มีข้อมูลเฉพาะเครื่อง เช่น บลูทูธ , WLAN mac address หรือ ID ของเครื่อง จึงใช้แทนกันไม่ได้  

img_20180615_232242_hdr653574955348688219.jpg

ติดตั้ง

opkg update
opkg install backup-spi

ใช้งาน
ลำดับ # ที่ 7 เป็นไฟล์ขนาดใหญ่ 7Mbytes ทำให้ใช้เวลานานกว่าส่วนอื่น

/tmp/root # backup-spi
#########
backup completed : /data/backup-spi/20180727-170739-backup-spi.bin

ถอนติดตั้ง

opkg remove backup-spi

ชาวเดฟ

SPI Flash ROM ใน CMU เป็นชิปขนาด 8Mbytes เก็บใน /dev/mtdX ตั้งแต่ 0 – 8 ตามรายการนี้

/tmp/root # cat /proc/mtd
dev: size erasesize name
mtd0: 00010000 00010000 "bootstrap"
mtd1: 00010000 00010000 "boot-select"
mtd2: 00020000 00010000 "ibc1"
mtd3: 00020000 00010000 "ibc2"
mtd4: 00010000 00010000 "nv-config"
mtd5: 00060000 00010000 "config"
mtd6: 00010000 00010000 "jci-boot-diag"
mtd7: 00700000 00010000 "fail-safe"
mtd8: 00020000 00010000 "update"
/tmp/root #

คำนวณขนาดไฟล์แต่ละ partition ได้จาก size ที่พบในคำสั่ง cat /proc/mtd ตัวอย่างเช่น mtd2 มีขนาด 00020000 หรือ 0x20000 แปลงเป็นฐาน10 ได้ 131072 ไบต์

สำรอง flash memory เป็นประโยชน์ต่อการแก้ปัญหาในอนาคต เพราะเป็นเก็บข้อมูลสำคัญของ CMU แต่ละเครื่อง เช่น MAC Address WLAN, MAC Address BT, หมายเลข CMU

เครื่องนักพัฒนาเสี่ยงเกิดปัญหาบ่อย โดยเฉพาะเฟิร์มแวร์V59+ ความยากอยู่ที่หากเกิดปัญหากับระบบปฏิบัติการ เฟิร์มแวร์ไม่เปิดช่องให้แก้ไขได้เหมือน V55-56  ไฟล์สำรองนี้จะช่วยให้แก้ง่ายขึ้น เรารู้จักวิธีแก้ปัญหากับเฟิร์มแวร์ V55-56 ดีกว่า V59+

วิธีแก้จึงแฟลชเฟิร์มแวร์กลับมาที่ V55-56 เพื่อให้เครื่องบูทติด แล้วแก้ไข หลังจากนั้นแฟลชกลับเป็น  V59+ อีกครั้ง เพื่อกลับเป็นระบบเดิม

เป็นเหตุผลให้ควรมีโปรแกรมช่วยสำรอง SPI Flash ROM V59 และ V55-56

 คำสั่งสำรองไฟล์

#!/bin/sh

nmtd=`cat /proc/mtd |grep mtd|wc -l|awk '{print $1}'`
LIST=`seq 0 1 $(($nmtd-1))`
DIR='/data/backup-spi'
DATE=`date '+%Y%m%d-%H%m%S'`

if ! [ -e ${DIR} ]; then
mkdir ${DIR}
fi

rm -f ${DIR}/*-backup-spi.bin

for n in $LIST; do
cat /dev/mtd${n} > ${DIR}/mtd${n}.bin
cat ${DIR}/mtd${n}.bin >> ${DIR}/${DATE}-backup-spi.bin
echo -ne '#'
done
echo -ne '\n'
echo 'backup completed : ${DIR}/${DATE}-backup-spi.bin'

บทความต่อไปมีเขียนถึงการใช้ประโยชน์ backup-spi รอติดตามกันนะครับ