hack のためのネタ帳, etc,,,

経緯

AOTECH AOK-ONESHOT-U3S で ZFS のドライブを繋ぐ際、
永続的なデバイス名が
usb-AOTECH_JMicron_XXXXXXXXXXXXX-0:0
みたいになるのが、凄くストレスなので、
Logitec LHR-4BNHEU3 用に作った udev-logitec-lhr-4bnheu3 応用して、
永続的なデバイス名付けようとしてみたところ、永続的なデバイス名自体難なく付けられたん。

ところが、lsblk で表示した際、
こいつは、もともと VENDOR, MODEL が空白になってて、
udev の rule を書いても VENDOR, MODEL に変化がなく途方に暮れてしまった。
よくよく確かめてみると、
Logitec LHR-4BNHEU3 も VENDOR, MODEL, REV あたりは書き換えられてなくて、
SATA に直付けした場合と
VENDOR="ata"
MODEL="TOSHIBA DT01ACA300"
REV=HDD の Firmware Revision の下4桁
みたいになっているのが、
VENDOR="TOSHIBA"
MODEL="DT01ACA300"
REV=Logitec LHR-4BNHEU3 の Firmware Revision
みたいになってて、実はこっちもおかしかったというオチ。

とりあえず、lsblk のソースに当たってみたところ、どうもカラムによって取ってく場所が違うらしい事が判明。

VENDOR, MODEL, REV 等は /sys/class/block/sdX/device/{vendor,model,rev} から拾って来ており
SERIAL 等 udev_device_get_property_value(3) を用いて、"ID_SERIAL" 等の値を拾って来ていた。

前者は、sysfs の値なので、どうもデバイスドライバ由来の値らしく udev rule を書いても書き換える事ができないっぽい。
後者は、udevadm info で表示される値のようなので、これは udev rule で書き換えができるっぽい。

出来る事なら、前者も正しく直したいんだけど、これは、read olny だし、デバイスドライバ書き換えるのは流石に骨が折れる。

という事で lsblk の実装をどうにかするのが楽そうなので、
代替 lsblk もしくは、patch が欲しいってのが結論となった。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます