NetBSD Advent Calendar 2025 10日目の記事です。今日はNetBSDでCDリッピングを試した話をしようと思います。
CDは部屋の隅に片付けておきたい
部屋を整理していると、昔よく聴いていたCDが何枚か出てきました。CDプレーヤーは今は持っておらず、再生することができません。そのため、CDリッピングしてmp3に変換し、CDはダンボール等に入れて部屋の隅で保管することにしました。
CDリッピング(FreeBSDの場合)
近くにFreeBSDマシンがあったので、こちらで試してみました(理由は後述)。
FreeBSD環境(aarch64)でのCDリッピング
Raspberry Pi 4とFreeBSD-13.0-aarch64でのCDリッピングです。USB接続のCD-ROMを接続してみたのですが、Raspberry Pi 4ではCD-ROM自体が認識されないようです…。
$ dmesg
...
ugen0.6: <I-O DATA DEVICE, INC. Optical Storage Device> at usbus0
umass0 on uhub1
umass0: <I-O DATA DEVICE, INC. Optical Storage Device, class 0/0, rev 2.00/2.01, addr 5> on usbus0
umass0: 8070i (ATAPI) over Bulk-Only; quirks = 0x0100
umass0:0:0: Attached to scbus0
ugen0.6: <I-O DATA DEVICE, INC. Optical Storage Device> at usbus0 (disconnected)
umass0: at uhub1, port 1, addr 5 (disconnected)
g_dev_taste: g_dev_taste(cd0) failed to g_attach, error=6
umass0: detached
ugen0.6: <I-O DATA DEVICE, INC. Optical Storage Device> at usbus0
umass0 on uhub1
umass0: <I-O DATA DEVICE, INC. Optical Storage Device, class 0/0, rev 2.00/2.01, addr 5> on usbus0
umass0: 8070i (ATAPI) over Bulk-Only; quirks = 0x0100
umass0:0:0: Attached to scbus0
ugen0.6: <I-O DATA DEVICE, INC. Optical Storage Device> at usbus0 (disconnected)
umass0: at uhub1, port 1, addr 5 (disconnected)
(cd0:umass-sim0:0:0:0): got CAM status 0x44
(cd0:umass-sim0:0:0:0): fatal error, failed to attach to device
g_dev_taste: g_dev_taste(cd0) failed to g_attach, error=6
umass0: detached
FreeBSD環境(amd64)でのCDリッピング
次にamd64なFreeBSD環境で試してみます。今度はCD-ROMが認識されました。abcdeというCDリッピングツールがあるので、こちらをインストールします。
$ pkg search abcde
abcde-2.9.3 Front-end shell script to encode CDs in flac/mp3/ogg/speex format
$
$ sudo pkg install abcde
以下の手順でCDリッピングを行い、mp3データとして取り出します。私の環境では20分ほど時間がかかりました。
$ time sudo abcde -d /dev/cd0 -o mp3
Grabbing entire CD - tracks: 1 2 3 4 5 6 7 8
MusicBrainz lookup returned an error "Not Found"
Selected: # (template) (Unknown Artist / Unknown Album) [168/1925]
---- Unknown Artist / Unknown Album ----
1: Track 1
2: Track 2
3: Track 3
4: Track 4
5: Track 5
6: Track 6
7: Track 7
8: Track 8
Edit selected CDDB data [Y/n]? n
Is the CD multi-artist [y/N]? n
Grabbing track 1: Track 1...
...
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III (11x) 128 kbps qval=3
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
20761/20761 (100%)| 0:22/ 0:22| 0:22/ 0:22| 24.145x| 0:00
---------------------------------------------------------------------------------------------------------------------------------
kbps LR MS % long switch short %
128.0 65.0 35.0 97.9 1.2 0.9
Writing LAME Tag...done
ReplayGain: -6.7dB
Tagging track 8 of 8: Track 8...
/usr/home/fbsd/abcde.7c0c4208/track8.mp3 [ 8.28 MB ]
----------------------------------------------------------------------------------------------------------------------------------
Setting artist: Unknown Artist
Setting album: Unknown Album
Setting title: Track 8
Setting genre: 255
Unknown genre ID: 255
Finished.
real 20m58.633s
user 2m20.260s
sys 0m4.399s
NetBSDでCDリッピング
NetBSD-9.2-i386環境でCDリッピングを試してみます。OS的にはUSB CD-ROMは問題なく認識された状態で以下のCDリッピングツールを試してみました。
Asunder
$ # asunderをインストールする。
$ pkgin search asunder
asunder-2.9.6nb1 Graphical CD ripper
$
$ sudo -i pkg_add -v asunder
一般ユーザでも /dev/cd* を読めるようにするため、ユーザを operator グループに追加します。
$ id
uid=1000(nbsd) gid=100(users) groups=100(users),0(wheel),5(operator)
$
$ ls -l /dev/cd*
brw-r----- 1 root operator 6, 3 Jul 20 14:02 /dev/cd0
brw-r----- 1 root operator 6, 0 Jul 20 14:02 /dev/cd0a
brw-r----- 1 root operator 6, 3 Jul 20 14:02 /dev/cd0d
brw-r----- 1 root operator 6, 11 Jul 20 14:02 /dev/cd1
brw-r----- 1 root operator 6, 8 Jul 20 14:02 /dev/cd1a
brw-r----- 1 root operator 6, 11 Jul 20 14:02 /dev/cd1d
$
これで準備は整ったのですが、いざasunderでCDリッピングを実行すると、「ファイルを作成中にエラー」というメッセージが表示されてしまいました。dmesg には以下のエラーが記録されており、asunderではCDリッピングできないようです。
[ 227927.111705] cd0(umass0:0:0): Check Condition on CDB: 0x28 00 00 00 00 00 00 00 01 00
[ 227927.111705] SENSE KEY: Illegal Request
[ 227927.111705] Incorrect Length Indicator Set
[ 227927.111705] ASC/ASCQ: Illegal Mode For This Track
[ 227927.111705] cd0d: error reading fsbn 0 of 0-3 (cd0 bn 0; cn 0 tn 0 sn 0)
Rhythmbox
次にRhythmboxで試してみました。パッケージをインストールしてRhythmboxを起動し、CDリッピングを…となるハズが、アプリからはUSB CD-ROMが見えない状態でした。というワケでRhythmboxでもリッピングできず…。
$ pkgin search rhythmbox
rhythmbox-3.4.4nb5 Music management application for GNOME
$
$ sudo -i pkg_add -v rhythmbox
abcde
最後はFreeBSDでの実績(?)がある、abcdeに期待を賭けてみます。さっそくパッケージからabcdeをインストールします。
$ pkgin search abcde
abcde-2.9.3nb3 Command-line utility to rip and encode an audio CD
$
$ sudo -i pkg_add -v abcde
...
You need to install at least one encoder to use with abcde. It has support
for the following encoders in pkgsrc:
audio/bladeenc
audio/fdk-aac
audio/flac
audio/lame
audio/musepack
audio/speex
audio/vorbis-tools
これでCDリッピングできる…!と思ったのですが、残念ながらRhythmboxと同じく、USB CD-ROMが見えない状態でした…。
$ abcde -d /dev/cd0a
[WARNING] something went wrong while querying the CD... Maybe a DATA CD or the CD is not loaded?
[WARNING] Error trying to calculate disc ids without lead-out information.
$
$ sudo abcde -d /dev/cd0a
[WARNING] something went wrong while querying the CD... Maybe a DATA CD or the CD is not loaded?
[WARNING] Error trying to calculate disc ids without lead-out information.
ということで、NetBSD-9系ではCDリッピングが行えないという結果が得られたのでした…🥺
まとめ
NetBSDでCDリッピングを試してみた話をしました。結果としては残念ですが、実際に試してみて知見を公開することで、誰かが対応されたり、自分で動かせるよう調べてみるきっかけにもなると思うので、このような試してみました的情報を増やしてゆきたいところです。