[SOLVED] udev, обработка правил и ide
Ka4_0k 26 ноября, 2010 - 14:15
Здравствуйте, у меня проблема в 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? Просто я там не нашёл своего "чипсета" чтоли...
Какие параметры можно использовать либо из этого
Но мне кажется что, что-то попахивает костылём...
Как бы его сделать более прямым способом?
Просто я там не нашёл своего
плохо искал
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 ;)
Хорошо, тогда может кто
Хорошо, тогда может кто подскажет название драйвера для
? В 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. А после перекомпиляции ядра
и переинсталляцию ГРУБа делаете?
Нет, ничего не
Нет, ничего не переустанавливаю, только правлю /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 вовсе?