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