分類彙整: 樹莓派之除錯

打開黑箱!!

科學追求真理,為的是打開大自然的黑箱;然而真理明白若昭,就是透明的白箱。我們總在求真的旅途上一知半解,努力灰箱為白箱。如果偵錯就是科學,除錯即求真理,那這一段話用在『偵錯』與『除錯』上來講依然合適。這也說明為什麼人們喜歡用不同的灰度,來表達對『箱內之物』的認識與了解了。

經過了一段辛苦,你終於把Raspbian 安裝好,可以開始使用了。是否自此就像童話故事上所說的『從此過著幸福快樂 ……』;等一下︰戲才剛開鑼、人物都還沒上場呢!!這時假如告訴你『剛安裝好的 Raspbian 上有問題』呢?就在此時偵探柯南立馬登場,好戲也即將展開︰

………柯南想 Linux 核心 kernel 程式,通常一直輸出紀錄著系統運作活動,用 dmesg 命令就能閱讀,嗯!結果太大了,最好用 dmesg | more,啊哈!!我找到了。原來是︰

[ 21.678058] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

如果我們已經知道是這個問題了,那麽用 dmesg | grep fsck 就能更快找到系統是否輸出過這個訊息。現在已經確定是有問題了 ── ㄋㄚㄟㄤㄚㄋㄟ ──,怎麽會這樣 .XX!?最重要的是,如果你是柯南,你會怎麽辦呢?

………柯南想起,在哪裡找資料?一文上提到了樹莓派的論壇,何不到那裡查查,看看是否有人談論過這個問題?該用什麼關鍵字查尋呢?『fsck』 797 則,太廣泛了,『Volume was not properly unmounted』45 則,而且摘要也確實符合,嗯!答案是︰這個ㄆㄛ癹文 Post 啊!『』 ── 好一隻『將草踩平的大腳』,咦!原來還要編譯程式ㄟ。唉!難道只阿笠博士了嗎?又想,難道不能依樣畫葫蘆』造著做?……解決了!!

雖然柯南怎麽做到的?不得而知,然而依樣畫葫蘆之法,卻很可以嘗試

第一行是『# umount /boot』,著打︰
pi@raspberrypi ~ $ umount /boot
umount: only root can unmount /dev/mmcblk0p1 from /boot

嗯!『 # 』和 『 $』不同,又說到 root ,大概是操作權限問題;好。就用 sudo -s 改成 root  使用者,再執行一次,果然 O.K.

第二行是『# git clone http://daniel-baumann.ch/git/software/dosfstools.git』,不知是什麼?依樣畫葫蘆,顯示︰
Cloning into ‘dosfstools’…

第三行是『# cd dosfstools』,知道是改變目錄

第四行是『# make』,不知是什麼?造打不誤;看來在做些 cc  命令之事。也許就是柯南說的編譯程式之事?

第四行是『# ./fsck.fat -V /dev/mmcblk0p1』,不知是什麼?跟著做,按造癹文比對,要輸入 1,輸出的結果相似。很好。

第五行是『./fsck.fat -a /dev/mmcblk0p1』,不知是什麼?造做。輸出了刪除一個叫做「dirty bit」的。啊哈!!抓到它了

第六行是『#mount /boot』,不知是什麼?打不誤。

此時沒有任何訊息顯示,步驟也已經都做完了,問題解決了嗎?也許你可以試試 reboot  ── 重新開機,再次用 dmesg | grep fsck  驗證看看?

如何打開黑箱?讓我們歸結到胡適之先生的兩句名言︰作學問要,

大膽假設,小心求證。而讀書要,

於不疑處有疑,於有疑處不疑