-
라즈베리파이 usb메모리 능동적 인식 프로그램 만들기RaspberryPi 2022. 9. 20. 11:30
부팅부터 USB메모리를 항상 장착하고 해제하지 않는다면 인터넷에 방법은 얼마든지 있다.
다만, 때에 따라 USB메모리를 꼈다 뺐다 하면 어떻게 될 것인가.
1. 포맷을 먼저 살펴봐야 한다. NTFS는 현재로서는 도중에 인식하기 어렵다
부팅시에 연동하라는 메시지가 나온다.
2. FAT32는 제일 쉬움
FAT32는 최대 32G까지 인식이 잘 돼며, 4G이상의 파일을 한번에 처리할 수는 없다.
apt-get install usbmout를 통해 설치하므로써,(패키지 업데이트는 중지되었다고 한다.)
/media/usb0에 인식된다. 해제할때도 깔끔하게 빠진다.
3. exFAT는 중간난이도
먼저 패키지를 설치한다. 찾아보면 나온다.
원래 이 포맷도 usbmount를 통해 운영이 가능하다고 나온 곳이 있다
그러나 실패. 하하.
이 부분은 mount와 umount를 통해 수동으로 처리해야 한다.
프로그램을 짠다면 주기적으로 아래 구문을 처리해줘야 하는데
1) /dev/sda1이 있다면 mount를 통해서 인식(그 전에 폴더는 만들어 놓는다)
sudo mount -t exfat /dev/sda1 /mnt/extusb
2) USB를 빼도 mount된 폴더는 살아있다.
따라서 항상 /dev/sda1이 있는지 먼저 보고, 없는데도 해당 폴더가 마운트 되어있다면,
umount를 해줘야 한다(사실 1)번보다 먼저 선행되어야 함)
sudo umount -l /mnt/extusb
3) 그 이후 /dev/sda1 발견때마다 mount를 해주면 됌
주의할 것은 umount를 해주지 않으면 추 후 인식할때 sda1가 아니라 sdb1, sdc1이 될 수 있다.
참고로 QT로 어플리케이션을 짤 때는
QProcess를 적극 활용하고 그 응답에 grep을 통해 처리해야 한다.
QString exe;
QString output;
exe = "sudo ls /dev | grep sd";
prs.start("sh",QStringList()<<"-c" << exe);
prs.waitForFinished();
output = (prs.readAllStandardOutput());
cout << output.toStdString() << endl;
이런식으로.
'RaspberryPi' 카테고리의 다른 글
라즈베리파이 초기세팅 SSH 활성화 방법 (0) 2023.10.24 raspberry pi GPIO control C language (0) 2023.08.28 Ubuntu 시간 관련 명령 사용하기 (0) 2022.10.12 라즈베리파이 부팅 로그 삭제 (0) 2022.10.04 라즈베리파이 usb uac 사운드 (0) 2022.09.22