История изменений
Исправление intelfx, (текущая версия) :
Ну посмотри, как работают правила udev (/usr/lib/udev/rules.d
).
TL;DR: При подключении блочного устройства запускается специальный бинарник (на самом деле он builtin, но это не суть важно), который опрашивает диск и выводит информацию о нём в виде типа «переменных окружения», которые можно импортировать в память udevd командой IMPORT
. Потом на основе этих переменных отдельными правилами создаются нужные ссылки в /dev/disk/by-*
. Разделение механизма и политики, всё как надо.
Тебе нужно просто написать враппер вокруг hdparm, который опрашивает диск через hdparm, парсит его вывод и выводит информацию в нужном формате (т. е. в виде массива KEY=value с теми же именами, которые используются в остальных правилах udev) и запатчить файл с правилами, чтобы для интересующих тебя устройств вызывался не builtin, а твой враппер (а лучше оба, в таком порядке, чтобы данные из твоего враппера брали приоритет).
Исправление intelfx, :
Ну посмотри, как работают правила udev (/usr/lib/udev/rules.d
).
TL;DR: При подключении блочного устройства запускается специальный бинарник (на самом деле он builtin, но это не суть важно), который опрашивает диск и выводит информацию о нём в виде типа «переменных окружения», которые можно импортировать в память udevd командой IMPORT
. Потом на основе этих переменных отдельными правилами создаются нужные ссылки в /dev/disk/by-*
. Разделение механизма и политики, всё как надо.
Тебе нужно просто написать враппер вокруг hdparm, который опрашивает диск через hdparm и выводит информацию в нужном формате (т. е. в виде массива KEY=value с теми же именами) и запатчить это правило, чтобы оно для интересующих тебя устройств вызывало не builtin, а твой враппер (а лучше оба, в таком порядке, чтобы данные из твоего враппера брали приоритет).
Исправление intelfx, :
Ну посмотри, как работают правила udev (/usr/lib/udev/rules.d
).
TL;DR: При подключении блочного устройства запускается специальный бинарник (на самом деле он builtin, но это не суть важно), который опрашивает диск и выводит информацию о нём в виде типа «переменных окружения», которые можно импортировать в память udevd командой IMPORT
. Потом на основе этих переменных создаются нужные ссылки в /dev/disk/by-*
.
Тебе нужно просто написать враппер вокруг hdparm, который опрашивает диск через hdparm и выводит информацию в нужном формате (т. е. в виде массива KEY=value с теми же именами) и запатчить это правило, чтобы оно для интересующих тебя устройств вызывало не builtin, а твой враппер (а лучше оба, в таком порядке, чтобы данные из твоего враппера брали приоритет).
Исходная версия intelfx, :
Ну посмотри, как работают правила udev.
При подключении блочного устройства запускается специальный бинарник (на самом деле он builtin, но это не суть важно), который опрашивает диск и выводит информацию о нём в виде типа «переменных окружения», которые можно импортировать в память udevd командой IMPORT
. Потом на основе этих переменных создаются нужные ссылки в /dev/disk/by-*
.
Тебе нужно просто написать враппер вокруг hdparm, который опрашивает диск через hdparm и выводит информацию в нужном формате (т. е. в виде массива KEY=value с теми же именами) и запатчить это правило, чтобы оно для интересующих тебя устройств вызывало не builtin, а твой враппер (а лучше оба, в таком порядке, чтобы данные из твоего враппера брали приоритет).