Raspbian を実行している Raspberry Pi 4 に USB DVD/RW 光学ドライブを接続しようとしています。
$uname -a
Linux ras4 4.19.93-v7l+ #1290 SMP Fri Jan 10 16:45:11 GMT 2020 armv7l GNU/Linux
ドライブは完全に動作しています。Windows でテストし、数年前に Bananian で実行しました (ドライブ /dev/sr0 として)。
これを Raspberry に接続すると、次のエントリが syslog に追加されます。
Apr 13 00:11:34 ras4 kernel: [6312011.699514] usb 1-1.2.4.2: new high-speed USB device number 79 using xhci_hcd
Apr 13 00:11:36 ras4 vhusbdarm[669]: Found High speed device [152e:1640] "HLDS Inc, SuperMulti RW " at address 11242
Apr 13 00:11:36 ras4 kernel: [6312014.270562] usb 1-1.2.4.2: New USB device found, idVendor=152e, idProduct=1640, bcdDevice= 1.59
Apr 13 00:11:36 ras4 kernel: [6312014.270581] usb 1-1.2.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 13 00:11:36 ras4 kernel: [6312014.270596] usb 1-1.2.4.2: Product: SuperMulti RW
Apr 13 00:11:36 ras4 kernel: [6312014.270608] usb 1-1.2.4.2: Manufacturer: HLDS Inc
Apr 13 00:11:36 ras4 kernel: [6312014.270621] usb 1-1.2.4.2: SerialNumber: 00101016400014AB5
Apr 13 00:11:36 ras4 kernel: [6312014.272784] usb-storage 1-1.2.4.2:1.0: USB Mass Storage device detected
Apr 13 00:11:36 ras4 kernel: [6312014.273308] scsi host1: usb-storage 1-1.2.4.2:1.0
Apr 13 00:11:36 ras4 mtp-probe: checking bus 1, device 79: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.2"
Apr 13 00:11:36 ras4 mtp-probe: bus: 1, device: 79 was not an MTP device
Apr 13 00:11:36 ras4 mtp-probe: checking bus 1, device 79: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.2"
Apr 13 00:11:36 ras4 mtp-probe: bus: 1, device: 79 was not an MTP device
Apr 13 00:11:37 ras4 kernel: [6312015.301669] scsi 1:0:0:0: CD-ROM HL-DT-ST DVDRAM GE20NU10 EE06 PQ: 0 ANSI: 0
Apr 13 00:11:37 ras4 kernel: [6312015.302557] scsi 1:0:0:0: Attached scsi generic sg1 type 5
利用可能なデバイス /dev/sr* または /dev/cdrom がありません。syslog に「Attached scsi CD-ROM sr0」という行が含まれていません。
/dev/sg1 をマウントしようとすると、「ブロック デバイスではありません」というメッセージが表示されて失敗し、lsblk ではリストされません。
$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk
├─sda1 8:1 0 256M 0 part
└─sda2 8:2 0 465,5G 0 part /
mmcblk0 179:0 0 29,7G 0 disk
└─mmcblk0p1 179:1 0 29,7G 0 part /boot
どうすればいいでしょうか? カーネルがこのデバイスをサポートしていない可能性はありますか?
答え1
問題を見つけました。
何らかの理由で、カーネル モジュール「sr_mod」をロードできませんでした。おそらくカーネルに何か問題があったのでしょう。
$ modprobe sr_mod.ko
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.19.93-v7l+/modules.dep .bin'
modprobe: FATAL: Module sr_mod not found in directory /lib/modules/4.19.93-v7l+
奇妙なことに、sr_mod.so は実際に存在します。
$ ls /lib/modules/4.19.97*/kernel/drivers/scsi/sr_mod.ko
-rw-r--r-- 1 root root 28K Feb 3 13:50 /lib/modules/4.19.97+/kernel/drivers/scsi/sr_mod.ko
-rw-r--r-- 1 root root 30K Feb 3 13:50 /lib/modules/4.19.97-v7+/kernel/drivers/scsi/sr_mod.ko
-rw-r--r-- 1 root root 30K Feb 3 13:50 /lib/modules/4.19.97-v7l+/kernel/drivers/scsi/sr_mod.ko
-rw-r--r-- 1 root root 37K Feb 3 13:50 /lib/modules/4.19.97-v8+/kernel/drivers/scsi/sr_mod.ko
$ uname -a
Linux ras4 4.19.93-v7l+ #1290 SMP Fri Jan 10 16:45:11 GMT 2020 armv7l GNU/Linux
解決策は、カーネルを再インストールしてシステムを再起動することでした。
$ apt install --reinstall raspberrypi-bootloader raspberrypi-kernel
$ reboot
再起動後、モジュール sr_mod が自動的にロードされ、/dev/sr0 が使用可能になります。