Linuxノート(起動時に自動的にkerne logをSDカードに保存)

1950 ワード

时には机械の安定性をテストするために、何日か机械をテストする必要があります.この时、机械はすでにパッケージされていて、シリアルラインを接続することができません.
問題を遡るためには,log情報を保存する必要がある.
そこで、システムが起動すると、自動的にkernelのロゴをSDカードに保存し、ハングアップしても情報を表示できる機能が必要です.
 
具体的な方法は以下の通りです.
一、devices/...ディレクトリの下にlogを自動的に保存するスクリプトを書きます
私が今使っているrockchipのプラットフォームは、device/rockchip/rk 30 sdk/下にあるからです
device/rockchip/rk30sdk/autosavelog.sh
#!/system/bin/sh

timestamp=`date +'%Y-%m-%d_%H-%M-%S'`
path=/mnt/external_sd
filename=$path/$timestamp.txt

cat /proc/kmsg > $filename

test=1
while [$test]
do 
    sleep 1
done

上のtimestamp=`date+'%Y-%m-%d_%H-%M-%S'`現在のシステム時間を取得し、起動するたびにlogのファイル名を命名すると、混同は発生しません.
 
二、devices.mkでスクリプトをシステムのパスにコピー
device/rockchip/rk30sdk/device.mk
PRODUCT_COPY_FILES += \   
  device/rockchip/$(TARGET_PRODUCT)/autosavelog.sh:system/bin/autosavelog.sh

 
三、init.rcでの起動スクリプト
device/rockchip/rk30sdk/init.rc
service autosavelog /system/bin/autosavelog.sh
    class main
    user root