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