---
# System prepended metadata

title: 小蟻攝影機 12CN版本 黃燈長亮故障
tags: [Repair, Linux]

---

# 小蟻攝影機 12CN版本 黃燈長亮故障
## 緣由
家中一台小蟻攝影機在之前可能因為在韌體更新時斷電，導致出現黃燈長亮、死機的狀態，並且無法以SD卡更新的方式救活，接上Serial Port之後發現機器卡在`Uncompressing Linux... done, booting the kernel.`，研判系統可能有損毀。
## 解決辦法
利用串口重刷Kernel，參考 [4PDA論壇](https://4pda.to/forum/index.php?act=search&source=pst&result=posts&sort=rel&subforums=0&query=mount&topics[]=638230&forums=929&st=20)與其他網站上的方法：
* 由於網上找不到12CN版本的mtdblock資源
* 對正常相同型號的攝影機的Telnet協定下指令，把mtdblock導出至SD卡  - [導出韌體](#一、導出韌體) 
* 藉由Serial port對故障的攝影機下達寫入的指令來抹除和把資料寫入mtdblock分區 - [刷入韌體](#二、刷入韌體)
#### 準備工具
* Serial port to USB 介面裝置
* Serial port 監控軟體 SerialTools(Mac) 或 Putty(Windows)
### 一、導出韌體
1. 需要一台正常的機器
2. 下載[破解版韌體 yi-hack](https://github.com/fritz-smh/yi-hack)
3. 修改Wi-Fi設定檔`yi-hack/sd/test/wpa_supplicant.conf`，把SSID和密碼修改成自己的資料
4. 把SD資料夾的文件放至SD卡中
5. 在正常的機器上刷入破解版韌體
6. 想辦法得到機器的ip位置，可以使用以下方法：
 * ip scanner軟體
 * 修改`yi-hack/sd/test/yi-hack.cfg`這個文件中的DEBUG成YES，透過查看Log資料尋找ip位置
 * 以Serial port進入系統，輸入`ifconfig`查看ip位置
7. 以Telnet方式連接至機器`telnet ip`，導出mtdblock至SD卡 ，
`username: root  `
`password: qwer1234`
	``` cmd
	for i in `cat /proc/mtd |grep -v ^dev | awk '{ print $1 $NF }' |sed 's/\"//g'` ; do
	n="`echo ${i%%:*}|sed 's/mtd//'`"
	f="/home/hd1/mtdblock${n}.${i##*:}.img"
	echo -n -e "$n - '$f' \t "
	cat /dev/mtdblock${n} >${f}
	ls -l ${f} | awk '{ print $5 }'
	done
	```
8. 依個人需求刷回原廠韌體
9. 導出過程： 
    ![IMG_0354](https://hackmd.io/_uploads/r1A2Z-Sqa.jpg =450x250)
10. 把SD卡中的檔案讀出，備份至電腦中，並且把以下三個檔案:os、rootfs、home放至SD卡當中，來準備刷入韌體至故障的攝影機
    ![截圖 2024-01-29 下午8.27.24](https://hackmd.io/_uploads/BJ4SqGH5T.png =600x200)

### 二、刷入韌體
1. 把導出韌體的SD卡放置於故障的攝影機
2. 連接Serial port至電腦 [教學](https://diy.2pmc.net/solved-xiaomi-xiao-yi-ant-home-camera-can-used-china/comment-page-3/)，並打開Serial Port監控軟體選至對應的Serial Port
![大截圖 2024-01-29 下午6.58.36](https://hackmd.io/_uploads/HJuESbH9a.jpg)
3. 在攝影機上電時輸入Ctrl+C 以進入uboot 
4. 檢查kernel，失敗的話會卡在booting the kernel
    ``` cmd
	setenv bootargs mem=40M console=ttyAMA0,115200 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(conf),3072k(os),3584k(rootfs),9088k(home),128k(vd) init=/bin/sh
	sf probe 0
	sf read 0x82000000 0x80000 0x380000
	bootm 0x82000000
	
	mmc start
	mmc reset
	fatload mmc 0:1 0x82000000 mtdblock3.os.img
	bootm 0x82000000
    ```
5. 刷入剛剛導出的韌體
    OS
    ``` cmd
    mmc start
    mmc reset
    fatload mmc 0:1 0x82000000 mtdblock3.os.img
    sf probe 0
    sf erase 0x80000 0x300000
    sf write 0x82000000 0x80000 0x300000
    ```
    ROOTFS
    ``` cmd
    mmc start
    mmc reset
    fatload mmc 0:1 0x82000000 mtdblock4.rootfs.img
    sf probe 0
    sf erase 0x380000 0x380000
    sf write 0x82000000 0x380000 0x380000
    ```
    HOME
    ``` cmd
    mmc start
    mmc reset
    fatload mmc 0:1 0x82000000 mtdblock5.home.img
    sf probe 0
    sf erase 0x700000 0x8E0000
    sf write 0x82000000 0x700000 0x8E0000
    ```
6. 完成後輸入`reset`，機器會重啟
7. 會聽到啟動中的語音，代表機器回復正常
## 參考資料
> [mtdblock 導出方法](https://4pda.to/forum/index.php?showtopic=638230&view=findpost&p=53292564)
> [mtdblock 寫入方法](https://4pda.to/forum/index.php?showtopic=638230&view=findpost&p=58416592)
> [Xiaomi Xiao Yi Ant HOME CN12 – This camera can only be used in China (1.8.6.1 – 1.8.7.0)](https://diy.2pmc.net/solved-xiaomi-xiao-yi-ant-home-camera-can-used-china/comment-page-3/)