나는 g_mass_storage 커널 모듈을 사용해 보았습니다. 먼저 /etc/modules에 넣고 옵션을 넣어 보았습니다./etc/modprobe.d/file.conf
이것은 작동하지만 장치를 컴퓨터에 연결하면 대량 파일 저장소가 읽기 전용이므로 내가 원하는 것이 아닙니다.
나는 이것이 모듈이 로드될 때 루트 파일 시스템이 읽기-쓰기가 아닌 읽기 전용으로 마운트되기 때문이라고 이론화합니다.
이는 커널 드라이버가 백업 저장소에 대한 읽기/쓰기 파일 핸들을 얻으려고 시도하고 이 rw 핸들을 협상할 수 없으면 읽기 전용으로 돌아가기 때문에 문제가 됩니다.
내가 생각할 수 있는 유일한 해결책은 부팅 순서에서 커널 모듈 로딩을 나중에 옮기는 것입니다.
나는 modprobe를 사용하여 모듈 초기화를 /etc/rc.local로 옮겼습니다. 이는 읽기와 쓰기 모두에 효과적이었지만 모듈을 로드하는 것은 약간 번거로웠습니다.
파일에 대한 rw 액세스가 필요한 커널 모듈을 로드할 권장 위치가 있습니까?
답변1
이에 대한 [아마도 완벽하지는 않은] 해결책은 파일 시스템을 읽기-쓰기로 다시 마운트하는 "systemd-remount-fs.service" 시스템 서비스를 연결하는 것입니다.
이는 모듈이 가능한 한 빨리 로드되는 동시에 파일 시스템이 읽고 쓸 수 있게 된 후에도 여전히 로드된다는 것을 의미합니다.
내 샘플 systemd 구성 파일은 다음과 같습니다.
[Unit]
Description=Starts kernel modules for USB OTG
After=systemd-remount-fs.service
DefaultDependencies=false
[Service]
Type=simple
ExecStart=/home/pi/programs/startmod.sh
WorkingDirectory=/home/pi/programs/
[Install]
WantedBy=local-fs.target
약간 투박하기는 하지만 작동합니다.