LINUX.ORG.RU

ещё раз о ide hotplug


0

0

наконец-то получилось!!!
скомпилил ядро с модульной поддержкой ide
сделал свой initrd со всеми модулями , башем и ...

но сталкнулся со следующей проблемой :
гружусь в init=/bin/bash (root=/dev/hda2 initrd=/boot/initrd.gz)
всё зашибись хард определился - я в баше
потом 
#rmmod ide-probe-mod 
вставляю винчестер 
#modprobe ide-probe-mod
    ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
hdd: QUANTUM FIREBALLP LM20.5, ATA DISK drive

всё зашибись !
#rmmod ide-probe-mod 
вынимаю винчестер , вставляю другой
#modprobe ide-probe-mod
    ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
hdd: QUANTUM FIREBALLP LS20.5, ATA DISK drive
работает!

но при загрузке в либой другой инит (S , 3 , 5) происходит следующее :
#rmmod ide-probe-mod
вставляю винчестер 
#modprobe ide-probe-mod (ничего не сообщается  (странно - фича или баг ? но хард определяется , проверял : fdisk /dev/hdd)
#rmmod ide-probe-mod
вынимаю винчестер , вставляю другой
#modprobe ide-probe-mod (ничего не сообщается 
но при попытке вызвать fdisk /dev/hdd сыпятся регистры
и всё виснит просто на #@% )

как бороться с такой фичей
(может где хранится информация об устройствах
ведь когда переразбиваешь fdisk'ом он говорит
что , что-то изменяет в текущих настройках, но где ?)


★★★★★

забыл сказать :
ядро 2.4.18 + via-patch + xfs-patch
Duron 1Ghz/256Mb SDRAM/Geforce2 MX400

дистрибутив - gentoo-1.2  

borisych ★★★★★
() автор топика

Посмотри ченджлог в 2.4.19-pre* ядрах,
может чего увидишь интересное...

pol
()

да хрен его знает где копать
под голым башем-то всё пашет
а вот в третьем ините modprobe ide-probe-mod
ничего не говорит , но посмотрел в /proc/ide 
там хард новый появляется 
но блин при замене харда , при потытке 
обращения к нему (fdisk , hdparm)
всё валится просто на "#$
стопудово надо какой-то вызов сделать 
но какой ? (это гребаное ядро где-то
держит параметры системы ,  на @#$ они
ему сдались ?)

PS 
никто не знает где исходники fdisk'ка 
можно взять , я думаю это мне поможет 

borisych ★★★★★
() автор топика

Ни разу не пользовался hot-plug но... В man hdparm есть какой-то ключ по -поводу зарегистрировать IDE и наоборот. Может в этом дело?
geekkoo

anonymous
()

пробовал не проходит
и не знаю почему 

точнее hdparm -R /dev/hdd мне 
почему-то ничего не говорит
а вот при hdparm -d /dev/hdd
сыпятся регистры
и говорит по-моему (сейчас не помню):
Aiee,attempting to kill handlers (или что-то в
этом роде (sorry for my English))

borisych ★★★★★
() автор топика

Ну я так полагаю что вначале (перед тем как новый винчестер вставить) нужно сделать hdparm -U (unregister) а затем (после того как новый вставил) hdparm -R (register). Прочти все же man hdparm на тему -U - там что-то про hot-swap говорится
-d -немного не в тему - ты ему DMA таким образом меняешь

geekkoo

anonymous
()

лана вечером попробую

ЗЫ
а почему напротив опций -U -R 
стоит DANGEROUS ?

borisych ★★★★★
() автор топика

Говорю же - ни разу не пробовал. Думаю, что как минимум нужно загрузочной дискеткой запастись, в исходникам hdparm порыться (что в мане и советуют) - может быть там какая-нибудь информация есть.

geekkoo

anonymous
()

с hdparm'ом косяк вышел
ему нужно ручками указывать всё
так что , думаю без модульной поддержки
ide не обойтись (думал если hdparm - продвинутый
то можно ide и в ядро вкомпилить - гемора меньше)

либо действительно исходники копать
(есть варианты : fdisk , hdparm , cdrecord .... kernel)

borisych ★★★★★
() автор топика

А еше мысль - lsmod что говорит насчет ide-probe-mod между insmod rmmod?
geekkoo

anonymous
()

lsmod говорит что всё намана 
драйвер подгружается (ide-disk , ide-probe-mod & ide-mod <- все
подгружены)
даже хард стопудово обнаруживается

проверял так : 
#ls /proc/ide/ | grep hd

показывает и hda и hdd

borisych ★★★★★
() автор топика

Я имел ввиду - выгужаются ли после rmmod?

ты уж извини что пристаю - все хотел с этим сам повозится, а тут такой случай на чужих ошибках поучиться ;)

geekkoo

anonymous
()

сегодня окончательно протестил
дела обстоят так :
гружу ядро (по-моему можно без молулей)
1-й способ

ядро с поддержкой ide модулями
в lilo.conf следующее :
image=/boot/vmlinuz
root=/dev/hda2
initrd=/initrd.gz (в initrd.gz все модули ядра)
append="init=/bin/bash"
загружается ядро
определяется хард (hda) , его разделы - все зашибись

#rmmod ide-probe-mod
вставляю хард 
#modprobe ide-probe-mod
определился hdd всё зашибись!

#rmmod ide-probe-mod
#modprobe ide-probe-mod
вставляю хард (тот же , что вынимал)
#modprobe ide-probe-mod
определился hdd всё зашибись!
но при попытке обратиться к харду
kernel panic - всё уходит в глубокий down

2-й способ
в тарболе hdparm есть такой скриптик idectl (!)
гружусь в баш , вставляю хард
#idectl 1 rescan (типа пересканирует шину
путем её выключения а потом включения)
всё опять зашибись!
но когда вставляю другой хард
(либо переставляю прежний , дважды
пересканируя шину)
kernel panic - всё уходит в глубокий down


когда грузился а потом монтировал /proc
и следил за тем , что там происходит

при подгрузке модуля появляется
/proc/ide/ide1 (/proc/ide/ide0 есть изначально)
а также появляется /proc/ide/hdd (после пересканирования
шины , либо перезагрузке модуля /proc/ide/hdd
исчезает а /proc/ide/ide1 остается (!))

вот еще один баг || фича
когда в первый раз перезагружаю модуль \ пересканирую шину
показывается , что обнаружен хард (hdd) , но блин
hda у меня тоже есть !!!!!

вот думаю как быть
первый вариант копать ядро (самое 
здравое раздать каждому харду свой драйвер)

либо глядеть в сторону 2.5 ...

PS
с перестановкой харда у меня всё цивильно
Mobile Rack и всё такое ...

если сам что-нибудь просечёшь 
mailto : borisych@dgap.mipt.ru

borisych ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.