我一直在试验g_mass_storage内核模块。我首先尝试加载它,方法是将它放入/etc/模块和/etc/modprobe.d/file.conf中的选项中。
这是可行的,但当我将设备连接到计算机时,大量的文件存储仅被读取--而不是我想要的。
我的推论是,这是因为当模块加载时,根文件系统被挂载为只读而非读写。
这是一个问题,因为内核驱动程序试图为其备份存储获取读-写文件句柄,如果它不能协商这个rw句柄,则返回到只读。
我能想到的唯一解决方案是在引导序列的后面移动内核模块的加载。
我将模块初始化移动到/etc/rc.local,使用load探测,这对读写都有效,但是加载模块感觉有点麻烦。
是否推荐加载需要rw访问文件的内核模块?
发布于 2016-02-05 04:12:48
解决这个问题的一个可能不完美解决方案是连接到“systemd -re装入-fs.service”systemd服务,这是将文件系统重新装入读-写的过程。
这意味着模块将尽早加载,而在文件系统成为ReadW区之后仍将加载。
我的示例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如果有点烦躁的话,这是可行的。
https://unix.stackexchange.com/questions/255877
复制相似问题