RPi用の最小カーネルとビジボックスをinitとShellとして含むカスタムビルドルートビルドがあります。起動プロセスが完了したら、独自のサービスを開始してUSBドライブにアクセスしようとします。しかし現在、USBドライバはUSBドライブを含むUSBデバイスを初期化しています。カーネルの起動には約4秒かかり、USBデバイス認識にはさらに4〜5秒かかります。だから実際に起動中にUSBドライブを自動的にマウントし、この場合サービスのみを開始する方法を知りたいです。サービスを開始する前にディスクをマウントすることもできますが、ここではUSBディスクが認識され、/ dev / sda1が作成されていることがわかります。
答え1
ビルドしているカーネルがinotify
それをサポートしている場合は、inotifyを使用してデバイスが作成されるのを待つことをお勧めします。そうでない場合は、システムがサービスを開始する前にこのコードをbusybox initに入れることができます。
# Waiting for device creation
while true
do
test -e /dev/yournode
if [ $? -eq 0 ]; then
echo "Device created";
break;
else
echo "Waiting for device";
sleep 1;
fi
done