Linuxノート(起動時に自動的にkerne logをSDカードに保存)
1950 ワード
时には机械の安定性をテストするために、何日か机械をテストする必要があります.この时、机械はすでにパッケージされていて、シリアルラインを接続することができません.
問題を遡るためには,log情報を保存する必要がある.
そこで、システムが起動すると、自動的にkernelのロゴをSDカードに保存し、ハングアップしても情報を表示できる機能が必要です.
具体的な方法は以下の通りです.
一、devices/...ディレクトリの下にlogを自動的に保存するスクリプトを書きます
私が今使っているrockchipのプラットフォームは、device/rockchip/rk 30 sdk/下にあるからです
device/rockchip/rk30sdk/autosavelog.sh
上のtimestamp=`date+'%Y-%m-%d_%H-%M-%S'`現在のシステム時間を取得し、起動するたびにlogのファイル名を命名すると、混同は発生しません.
二、devices.mkでスクリプトをシステムのパスにコピー
device/rockchip/rk30sdk/device.mk
三、init.rcでの起動スクリプト
device/rockchip/rk30sdk/init.rc
問題を遡るためには,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