Наша задача установить Linux на UDMA66 винт, подключенный к UDMA66
контролеру.
На сегодняшний день уже во многих дистрибутивах Linux находятся патчи
к ядру для поддержки UDMA66 контролеров. Если в вашем дистрибутиве их
не оказалось, то нам потребуется: в худшем случае Инет, а в лучшем -
только прямые /dev/hands :) Здесь я собрал основные способы установки.
Способ #1
Попробовать поставить Линукс с помощью передачи ядру дополнительных
параметров при загрузке с CD-ROM'a или загрузочной дискеты (при ядре
2.2.x).
1. Грузимся с CD-ROM'a доходим до того места установки, где доступна
какая-нибудь еще консоль.
2. Переходим на другую консоль (к примеру на 2-ю) и вводим:
# cat /proc/pci
3. Клавишами Shift-PgUp и Shift-PgDn прокручиваем эту инфу и ищем
прерывание и адреса контролера. Будет что-то вроде этого:
Unknown mass storage controller: Promise Technology Unknown device
(rev 1).
Vendor id=105a. Device id=4d38.
Medium devsel. IRQ 5. Master Capable. Latency=64.
I/O at 0x1400 [0x1401].
I/O at 0x10f4 [0x10f5].
I/O at 0x10f8 [0x10f9].
I/O at 0x10f0 [0x10f1].
I/O at 0x1080 [0x1081].
4. Обозначаем первые 4 адреса как a,b,c,d.
5. В строке boot: пишем
linux ide2=a,b+2 ide3=c,d+2
6. Если не заработало, еще можно попробывать так:
linux ide2=a,b+2,irq ide3=c,d+2,irq
З.Ы. 1. Если на компе установлен Windowz, то можно поступить следующим
способом. Пуск => Настройка => Панель управления => Система => Вкладка
устройства => Наш UDMA66 контролер => Свойства => Вкладка Ресурсы.
Смотрим запрос на прерывание и адреса ввода/вывода (первые числа до
минуса, т.е. адреса ввода). Далее переходим к пункту 4 описанного выше
способа.
З.Ы. 2. Установочная программа обычно добавляет в lilo.conf строку
append="ide2=a,b+2 ide3=c,d+2" или
append="ide2=a,b+2,irq ide3=c,d+2,irq"
Но если она этого не сделала, добавьте ее вручную.
З.Ы. 3. Если получилось установить Линукс таким способом, радоваться
рано. Для обеспечения работы винта в режиме UDMA66 необходимо
пропатчить или скомпилить ядро 2.4.x (в ядрах 2.2.X не было и не будет
поддержки UDMA66).
Способ #2
* Подключаем UDMA66 винт 40-ка жильным шлейфом к UDMA33 контролеру;
* Ставим на него Линукс;
* Патчим старое ядро
(http://www.kernel.org/pub/linux/kernel/people/hedrick)
или компилим ядро 2.4.x;
* Переключаем винт обратно к UDMA66 контролеру.
Способ #3
Если у нас дистрибутив RedHat и контролер Promise, то с ftp-сайта
Promise Technology Inc (ftp://ftp.promise.com/Controllers/IDE/Ultra66/RedHat/Driver/Beta)
скачиваем образ специальной загрузочной дискеты, но после установки, патчим ядро
(http://www.kernel.org/pub/linux/kernel/people/hedrick) или компилим ядро
2.4.x. Этот способ подходит в случае неудачи со способом #1 и
невозможности применения способа #2 (нету на материнской плате
контролера UDMA33).
З.Ы. На сайте http://sweb.uky.edu/~mabran3/linux/misc есть образы
загрузочных дискет для RedHat 7.0 и 6.2.
Способ #4
Достаем (сливаем с http://www.gentus.com) Gentus Linux, основанный на
дистрибутиве RedHat. Ставим его, а потом доставляем пакеты из
"любимого" дистрибутива с помощью RPM.
З.Ы. Компакт диск с Gentus Linux идет в комплекте с некоторыми
материнскими платами Abit.
Дополнительная информация
http://www.linux-ide.com
http://www.promise.com
http://www.highpoint-tech.com
Ultra-DMA mini-HOWTO http://www.linuxdoc.org/HOWTO/mini/Ultra-DMA.html
Linux kernel HOWTO http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html