2015-07-21 41 views
0

我使用phram和ramoops將最新的系統日誌存儲在保留的內存中,以便一旦我的機器崩潰,我可以在重新啓動後轉儲恐慌日誌。 MTD驅動phram和模塊ramoops用於將系統日誌自動記錄到內存:爲什麼我的MTD驅動程序變成普通文件?

/# insmod /lib/modules/phram.ko phram=phram-oops,<addr>,<len>  
/# ls -l /dev/mtdchar/param-oops 
crw-r--r-- 1 root  root  90, 24 Jul 20 16:34 phram-oops 

它運作良好,直到最近我再次使用此驅動程序也備份引導裝載程序日誌 - 在啓動過程中,phram接力備份u-boot登錄到一個保留存儲區;並在Linux shell啓動後,轉儲u-boot日誌,清除phoenix-oops dd if=/dev/zero bs=65536 count=1 of=/dev/mtdchar/param-oops,rmmod phram和insmod phram以及一個新的內存區域用於panic日誌。然後轉儲上次啓動的系統日誌。直到這一步,/dev/mtdchar/phram-oops仍然正常工作:

/# ls -l /dev/mtdchar/phram-oops 
crw-r--r-- 1 root  root  90, 24 Jul 20 16:34 /dev/mtdchar/phram-oops 

但是,運行dd if=/dev/zero bs=65536 count=1 of=/dev/mtdchar/phram-oops」 again to clear the memory, driver的/ dev/mtdchar/phram-oops`成爲一個文件後!

/# ls -l /dev/mtdchar/phram-oops 
-rw-r--r-- 1 root  root   65536 Jul 20 16:34 /dev/mtdchar/phram-oops 

因此,以前的日誌保留在內存中,無法清除。有關駕駛​​員如何轉向文件的任何想法?以及如何解決它?

回答

1

看來這個問題是由hotplug造成的 - 它需要在rmmod phram之後和insmod phram之前用一個新地址延遲一段時間。否則,設備驅動程序很可能未正確加載,因此dd命令可能會將其創建爲普通文件。

+0

如果我沒有看到/ dev/mtdchar/phram-oops,該怎麼辦? – floatingice

相關問題