[SOLVED] udev, обработка правил и ide

Здравствуйте, у меня проблема в udev, и пока я не представляю как её решить.
Есть винт и сидюк, оба IDE-шные. В ядре включено IDE. Система amd64.
В /sys/block это выглядит так:

lrwxrwxrwx  1 root root 0 Ноя 26 12:51 hda -> ../devices/pci0000:00/0000:00:0f.1/ide0/0.0/block/hda
lrwxrwxrwx  1 root root 0 Ноя 26 12:51 hdc -> ../devices/pci0000:00/0000:00:0f.1/ide1/1.0/block/hdc

hda - сидюк, hdc - винт. (/dev/hda, /dev/hdc). Проблема в том, что не работают правила для создание ссылок на hda (cdrom, dvdrw и т.д.), и ясно почему - у них одинаковый ID для udev.
Вот так выглядят 70-persistent-cd.rules

# HL-DT-ST_DVDRAM_GSA-4167B (pci-0000:00:0f.1)
#block
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:0f.1", SYMLINK+="cdrom", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:0f.1", SYMLINK+="cdrw", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:0f.1", SYMLINK+="dvd", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:0f.1", SYMLINK+="dvdrw", ENV{GENERATED}="1"

При попытке /lib64/udev/write_cd_rules получаю Missing $DEVPATH. На что я ответил export DEVPATH="/dev/hda". И после этого получил /dev/hda is not a CD reader.
При использовании growisofs и при монтировании с /dev/hda всё в порядке. HAL'a нету в системе.
Как можно решить данную проблему?
Заранее спасибо.

А зачем hda,hdc?

Пользуюсь IDE-дисководами+libata без особых "траблов".
Из "высказываний" udevadm monitor --env можно извлечь много больше, чем ID_PATH.
Попробуйте, к примеру, ENV{ID_MODEL}=="Ваша_Модель"

libata - это то что ATA в

libata - это то что ATA в ядре, которое вроде как теперь рекомендуют использовать вместо ide? Просто я там не нашёл своего "чипсета" чтоли...
Какие параметры можно использовать либо из этого

KERNEL[1290771533.320053] add      /devices/pci0000:00/0000:00:0f.1/ide0/0.0 (ide)
UDEV_LOG=3
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:0f.1/ide0/0.0
SUBSYSTEM=ide
DRIVER=ide-cdrom
MEDIA=cdrom
DRIVENAME=hda
MODALIAS=ide:m-cdrom
SEQNUM=1241

KERNEL[1290771533.320068] add      /devices/pci0000:00/0000:00:0f.1/ide0/0.0/block/hda (block)
UDEV_LOG=3
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:0f.1/ide0/0.0/block/hda
SUBSYSTEM=block
DEVNAME=hda
DEVTYPE=disk
SEQNUM=1242
MAJOR=3
MINOR=0

------------------------------------------------------------------------------------------------

UDEV  [1290771533.326929] add      /devices/pci0000:00/0000:00:0f.1/ide0/0.0 (ide)
UDEV_LOG=3
STARTUP=1
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:0f.1/ide0/0.0
SUBSYSTEM=ide
DRIVER=ide-cdrom
MEDIA=cdrom
DRIVENAME=hda
MODALIAS=ide:m-cdrom
SEQNUM=1241

UDEV  [1290771533.411659] add      /devices/pci0000:00/0000:00:0f.1/ide0/0.0/block/hda (block)
UDEV_LOG=3
STARTUP=1
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:0f.1/ide0/0.0/block/hda
SUBSYSTEM=block
DEVNAME=/dev/hda
DEVTYPE=disk
SEQNUM=1242
ID_PATH=pci-0000:00:0f.1
MAJOR=3
MINOR=0
DEVLINKS=/dev/block/3:0 /dev/disk/by-path/pci-0000:00:0f.1

Но мне кажется что, что-то попахивает костылём...
Как бы его сделать более прямым способом?

Просто я там не нашёл своего

Просто я там не нашёл своего "чипсета" чтоли

плохо искал

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Хорошо, тогда может кто

Хорошо, тогда может кто подскажет название драйвера для

00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)

? В ATA and PATA есть только VIA SATA (саты у меня вообще нету) и VIA PATA (что ещё за PARALEL ATA?)
Ядро gentoo-sources 2.6.36

грубо говоря PATA = IDE

грубо говоря PATA = IDE

Уберите CONFIG_IDE - он уже

Уберите CONFIG_IDE - он уже давно deprecated.

Физически доступ к машине

Физически доступ к машине будет только завтра. Пока только ssh. Ядро собрал уже без ide, с PATA, но пока ребут не делал, ибо незнаю будут ли такие же названия у устройств или изменятся. Править ли fstab?

Править надо все, где

Править надо все, где прописано hd* - меняется на sd*. У меня, например /root - md0, остальное на LVM - ничего менять не надо. ;)
Имейте ввиду нумерация (особенно при большом числе дисков и контроллеров) не всегда предсказуема! :(.
Правильно решили лично присутствовать! :)

Итак с PATA загрузился,

Итак с PATA загрузился, устройства стали sda и sg.
sda - IDE винт с 7 разделами, вроде бы работает, но субъективно медленнее чем с IDE драйверами... И чаще горит лампочка на системнике.
Диск при первой загрузке стал /dev/sg0. Udev его не обработал. Пробовал опять /lib64/udev/write_cd_rules, но опять наткнулся на тоже самое что и в прошлый раз..
При последующих запусках диск стал периодически отваливаться: записал cd-r с cdrdao, вставил другой диск, смонтировал вручную, размонтировал, оставил включенной на ночь и утром оказалось вдруг что /dev/sg0 "не является блочным устройством"... Что можно сделать в такой ситуации?

1. Что-нибудь в ядре еще не

1. Что-нибудь в ядре еще не так...
2. А после перекомпиляции ядра

emerge -1 udev grub

и переинсталляцию ГРУБа делаете?

Нет, ничего не

Нет, ничего не переустанавливаю, только правлю /boot/grub/grub.conf

А надо! :)

А надо! :)

Ну только мне интересно

Ну только мне интересно grub-то зачем? Он записывается в MBR и запускает оттуда ядро. Разве нет?
И да, ниже я написал что udev всё-таки уже обновил - результата нет.

А если не секрет,

А если не секрет, зачем?

Последний раз переустанавливал grub, когда он у меня обновлялся... С тех пор сменилась туева хуча ядер и все нормально работает... Каковы объективные причины необходимости каждый раз переписывать MBR?

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Опережая вопросы ещё скажу

Опережая вопросы ещё скажу что только что обновил udev, и попробовал удалить /etc/udev/70-persistent-cd.rules, которые, кстати, после ребута не восстановились. С /lib64/udev/write_cd_rules всё по прежнему.

sg0 - это SCSI Generic. Сидюк

sg0 - это SCSI Generic. Сидюк должен стать sr0. Значит не вкомпилили поддержку SCSI CDRom Support

Нейтральность - высшее достижение сознания!

винт и сидюк на одном

винт и сидюк на одном проводе/шлейфе?

Нет, на разных.

Нет, на разных.

для меня просто очень

для меня просто очень странной выглядит схема подключения... ide0 - cdrom, ide1 - hdd... обычно наоборот... да и еще мне показалось, что одно из устройств в режиме slave... скорее всего это не имеет отношения к делу, но я бы перепроверил подключения ;)

какая версия udev стоит?

Оба на master стоят и на

Оба на master стоят и на разных шлейфах. Винт на многожильном (80?) и сидюк на 40 жильном. Да и работало всё раньше (сразу после установки генты, месяцев 7 назад, всё было, но потом через какаое-то время отвалилось, но сразу я не предал этому значения, т.к. всё работало с hda). Ядро уже собрано с ata и устройства стали sda и sg, при этом sg(cdrom) ещё и периодически отваливается. Верисия udev - 164, после обновления он выдал что устройства hd* больше не поддерживаются и "please migrate to libata". Что и было сделано, однако 70-persistent-cd.rules не восстановились после старта и /lib64/udev/write_cd_rules ничего дельного не говорят.

Всем большое спасибо за

Всем большое спасибо за ответы. Проблему решил. Оказалось до банального просто :)
В итоге: было собрано ядро с libata, т.к. с IDE udev больше не работает, и была включена поддержка SCSI cdrom'a, который просто был выключен. Хотя почему SCSI? Может ответит кто? И, cdrom теперь стал sr0 О_о.. Как у меня cdrdao записывал тогда при sg0 и без включенной поддержки scsi дисковода?

Вам уже говорили sg - generic

Вам уже говорили sg - generic SCSI, a sr - CDROM под SCSI (опционально, просто учитывает некоторую специфику CDROM).
Софт и SCSI достаточно умны, чтобы договориться между собой, понять кто есть кто и как с этим работать. :)

Хм, почему этот пост не

Хм, почему этот пост не попался вчера или сегодня утром?:)
Спасибо.
И да, почему именно SCSI? Типа все что есть пихать под одну гребёнку, даже если это и не SCSI вовсе?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".