08 January 2013

(Ubuntu) USB SDカードリーダーのアイコンを変更する

Ubuntu LinuxでUSB SDカードリーダーのマウント時のアイコンデザインを変更する方法

■ 検証環境

・Ubuntu 12.04

■ アイコンの例

20130108-strage-icon.jpg

一番上のものが、特別な設定をしていない場合のUSBストレージ(リムーバブル メディア)のアイコン。

■ 設定方法

lsusbでベンダーIDとプロダクトIDを調べる

$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 003: ID 04f2:0841 Chicony Electronics Co., Ltd Bus 002 Device 003: ID 046d:c52f Logitech, Inc. Wireless Mouse M305 Bus 001 Device 027: ID 14cd:125c Super Top

複数のドライブを持つカードリーダーの場合はLUNを確認する

$ dmesg | grep -i Direct-Access [ 2.648098] scsi 0:0:0:0: Direct-Access ATA ST3500320AS SD1A PQ: 0 ANSI: 5 [ 457.576535] scsi 6:0:0:0: Direct-Access Mass Storage Device 1.00 PQ: 0 ANSI: 0 CCS

これらのデータから必要な情報を読み取った上で、udevの設定ファイルを記述する。

/etc/udev/rules.d/ ディレクトリの中のファイルは、尖塔の2ケタの数字が少ない方から評価される仕組みになっていて、いろいろな人のWebページの情報より、今回の目的のusbストレージ関連は80くらいが適当だと判断。

$ ls -la /etc/udev/rules.d/ drwxr-xr-x 2 root root 4096 1月 8 20:22 . drwxr-xr-x 3 root root 4096 11月 3 08:44 .. -rw-r--r-- 1 root root 855 5月 4 2012 70-persistent-cd.rules -rw-r--r-- 1 root root 484 5月 3 2012 70-persistent-net.rules -rw-r--r-- 1 root root 1157 4月 6 2012 README

重複するファイル名がないかを確認した上で、新しい設定ファイル 80-usbdisk.rules を作る。

/etc/udev/rules.d/80-usbdisk.rules
# SD/MMC/RS-MMC (White without LED, DAISO) SUBSYSTEMS=="usb", ATTRS{idVendor}=="14cd", ATTRS{idProduct}=="125c", ENV{ID_INSTANCE}=="0:0", ENV{ID_DRIVE_FLASH_SD}="1"

アイコンの種類は

種類
ID_DRIVE_FLASH_SDSDカード
ID_DRIVE_FLASH_CFコンパクト フラッシュ
ID_DRIVE_FLASH_MSメモリースティック

■ 参考資料
Writing udev rules
udev - Linux dynamic device management
udev による動的なカーネルデバイス管理
Missing Memory Card Icons on Ubuntu