2015-07-21 62 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

相关问题