Promise FastTrak TX2000 RH-linux install HOW-TO

В данном документе рассказывается, как установить Red Hat Linux и совместимые дистрибутивы на Promise FastTrak TX2000

[Aleksey Konovalov (alk_te@yahoo.com)]

Установка Red Hat Linux 8/9 на Promise FastTrak TX2000

Опишем последовательность действий, которую необходимо выполнить для установки RedHat Linux 8/9 на Promise FastTrak TX2000:
  1. Скачайте с сайта Promise драйвера под свою систему, а также partial source linux driver. Для систем, которых нет в списке, скачайте только partial source linux driver и выполните рекомендации, приведенные в конце этого документа.
  2. Действуя согласно инструкции в архиве, создайте дискету с драйверами для Вашего ядра.
  3. Создайте массив дисков в контроллере.
  4. Вставьте инсталляционный CD1 Вашего дистрибутива и дискету с драйверами.
  5. Загрузитесь с CD и передайте LILO следующие параметры (подробности можно найти в инструкции):
    #boot: linux ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0 ide5=0 ide6=0 ide7=0 ide8=0 ide9=0 expert
    
    Это необходимо, поскольку, согласно документации, ядро воспринимает контроллер Promise не как RAID, а как еще один IDE-контроллер. Данная строка предотвращает обнаружение и подключение к системе всех IDE-устройств, кроме расположенных на встроенном контроллере (напомним, что аппаратный RAID в Linux воспринимается как SCSI).
  6. Продолжайте загрузку. При этом ядро обнаружит контроллер, попытается его определить и выдаст сообщение об ошибке, однако процесс загрузки не прервется.
  7. После загрузки инсталлятор выдаст окно, в котором спросит, имеется ли у Вас диск с драйверами. Если вы правильно выполнили инструкции пп. 2-3, он у Вас есть и в настоящий момент находится в дисководе, поэтому Вам следует ответить "OK". В процессе инсталляции будет загружен драйвер FastTrack и устройство /dev/hdX заменится на /dev/sdX. Остальные вопросы инсталлятора будут стандартными.
  8. Установите загрузчик (в данном HOWTO речь будет идти о LILO). Я рекомендую установить его в главную загрузочную запись (MBR) на /dev/sdX. Не забудьте внести строку "ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0 ide5=0 ide6=0 ide7=0 ide8=0 ide9=0" в расширенные опции загрузчика.
  9. Продолжайте установку. По ее окончании НЕ НАЖИМАЙТЕ кнопку "Перезагрузка" ("Reboot"), а войдите в другую консоль (используйте комбинацию клавиш Ctrl+Alt+F2, если Вы используете графический инсталлятор и Alt+F2 в противном случае) и последовательно выполните следующие операции:
    # umount /tmp/fd0       
    # chroot /mnt/sysimage  
    # mount /dev/fd0 /mnt   
    # cd /mnt               
    # sh setup-ft           
    
    Это необходимо для того, чтобы с дискеты был установлен модуль контроллера для ядра, подгружаемый в памяти при запуске системы с жесткого диска. Завершите работу с оболочкой, набрав
    #exit
    
  10. Переключитесь в графическую консоль инсталлятора с помощью комбинации Alt+F7 (или Alt+F1, если вы используете текстовый инсталлятор) и нажмите кнопку "Перезагрузка" ("Reboot").
  11. Извлеките инсталляционный CD и дискету и установите в BIOS загрузку с FastTrak (FT Ary). При следующем запуске Linux, ядро должно сообщить об обнаружении SCSI-диска.
  12. Войдите в систему и скопируйте на жесткий диск свежее ядро (любым удобным для Вас способом), а также partial source driver с сайта Promise.
  13. Откомпилируйте ядро. В теории, драйвера, поставляющиеся вместе с ядром, должны работать с контроллером, однако это, к сожалению, не так. Во время настройки не забудьте включить поддержку SCSI и IDE-RAID:
    ATA/IDE/MFM/RLL Support -->
            <*> ATA/IDE/MFM/RLL Support
            IDE/ATA/ATAPI Block Devices --> 
                    <*> Enhanced ATA/IDE/MFM/RLL disk/cdrom/tape/floppy support
                    <*> Include IDE/ATA-2 Disk Support
                    [*] Use multi-mode by default
                    Include IDE/ATAPI CDROM support
                    [*] Generic PCI IDE chipset support
                            [*] Sharing PCI IDE interrupt support
                            [*] Generic PCI Bus master DMA support
                            [*] Use PCI DMA by default when available
                            [*] Intel PIIXn chipset support
                                    [*] PIIXn tuning support
                    [ ] Promise PDC202{46|62|65|67|68} support
                    [*] Promise PDC202{46|62|65|67|68} support (не работают?) 
                            [*] Special FastTrack Feature
                    [*] VIA 82CXXX chipset support
    
  14. После компиляции и установки ядра распакуйте partial source linux driver. Затем, находясь в том же каталоге, что и файлы драйвера, выполните команду:
    #./make 
    
    или
    #./make clean all
    
    В итоге будет построен модуль FastTrak.o для ТЕКУЩЕГО ядра (т.е. ядра, на которое указывает символическая ссылка /usr/src/linux, например /usr/src/linux-2.4.22)
  15. Скопируйте FastTrak.o в директорию /lib/modules/2.4.x/kernel/drivers/scsi/
  16. Создайте ram-диск, и поместите на него собранный вами модуль
    # mkinitrd --preload=scsi_mod --preload=sd_mod --with=FastTrak -f /boot/initrd-2.4.22.img 2.4.22
    
  17. Отредактируйте /etc/lilo.conf. Примерный вариант этого файла показан ниже:
    prompt                                                                          
    timeout=50                                                                      
    default=linux                                                                   
    boot=/dev/sda                                                                   
    map=/boot/map                                                                   
    install=/boot/boot.b                                                            
    message=/boot/message                                                           
    linear                                                                          
                                                                                    
    image=/boot/vmlinuz-2.4.18-14                                                   
            label=linux-old                                                         
            initrd=/boot/initrd-2.4.18-14.img                                       
            read-only                                                               
            append="ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15
                    ide2=0 ide3=0 ide4=0 ide5=0 ide6=0 ide7=0 ide8=0 ide9=0
    root="LABEL=/"                                   
    
    # new section for new kernel with not-precompiled FastTrak driver                                                          
    image=/boot/bzImage
            label=linux                                                             
            initrd=/boot/initrd-2.4.22.img                                          
            read-only                                                               
            root=/dev/sda2                                                          
            append="ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15
                    ide2=0 ide3=0 ide4=0 ide5=0 ide6=0 ide7=0 ide8=0 ide9=0 "
    # end of lilo.conf
    
    В данном случае длинные строки "append" разбиты на части исключительно с целью повышения удобочитаемости.
  18. Установите LILO в boot-сектор командой "/sbin/lilo -v". В случае наличия ошибок в конфигурационном файле, LILO укажет Вам на их источник.
  19. Отредактируйте /etc/fstab: замените строку "LABEL=/" на "/dev/sda2" и т.п. Этот шаг не является обязательным, однако, если в /etc/lilo.conf в строке "root=xxx" отсутствует метка "LABEL=xxx", а в /etc/fstab она присутствует, возможен вариант, при котором ядро после загрузки не сможет смонтировать разделы, указанные посредством LABEL.
  20. Важный момент: двоичные драйвера для собранного ядра из дистрибутива и скомпилированный Вами драйвер оперируют различными файлами устройств. Поэтому Вам придется зайти в каталог /dev и внести следующие изменения:
    • Создать каталог /dev/scsi/host1/bus0/target0/lun0/
    • Создать в этом каталоге символические ссылки disc -> /dev/sda, part1 -> /dev/sda1 и т.д.
  21. Перезагрузите систему
Замечание: подобным образом можно установить и базирующиеся на Red Hat дистрибутивы (ASPLinux, ...)

"Для тех, кого нет в списке"

Пользователи Slackware 9 могут поступить следующим образом:
  1. Скачайте partial source linux driver с сайта Promis и распакуйте его в какой-либо каталог.
  2. Откомпилируйте partial source linux driver под ядро 2.4.20, входящее в дистрибутив. Для этого в каталоге /usr/src необходимо создать символическую сслыку linux->/usr/src/linux-2.4.20. В каталоге с распакованным драйвером выполните одну из команд:
    #./make 
    
    или
    #./make clean all
    
    В итоге будет получен модуль FastTrak.o для нужного нам ядра Linux.

    Замечание: в некоторых случаях в откомпилированную версию модуля вставляется неверная версия ядра. В такой ситуации необходимо открыть FastTrack.o в шестнадцатиричном редакторе и исправить эту ошибку (например, заменить строку 2.4.22 на 2.4.20)

  3. Загрузитесь с инсталляционного CD Slackware 9. В ответ на приглашение инсталлятора укажите, что Вам нужно ядро raid.s со следующими опциями:
    #boot: raid.s ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0 ide5=0 ide6=0 ide7=0 ide8=0 ide9=0
    
    Возможно, изложенные ниже инструкции будут работать и с другим ядром, но я использовал именно такую конфигурацию
  4. Войдите в консоль и подгрузите модуль FastTrack.o для ядра 2.4.20:
    #insmod /mnt/extra/FastTrak.o
    
    Под /mnt/extra понимается каталог, в котором содержится модуль. В данном случае я записал его на CD в директорию /extra, смонтированную в /mnt, однако Вы можете выбрать любое другое имя, или даже сохранить модуль на дискете.
  5. Находясь в каталоге /dev выполните команды:
    #./makedevs.sh /dev/sda
    
  6. Начинайте инсталляцию согласно инструкциям на дистрибутивном CD с учетом замены /dev/hdX на /dev/sdX.

    Замечание: не забудьте установить исходные тексты ядра!

  7. По окончании процесса установки не перезагружайте компьютер, а смените корневой раздел при помощи chroot и внесите в lilo.conf следующую информацию:
    boot = /dev/sda                 
    message = /boot/boot_message.txt
    prompt                          
    timeout = 50                    
    vga = normal                    
    default = linux                 
                                    
    image = /boot/vmlinuz
      label = linux                 
      initrd=/boot/initrd-2.4.20.img                                          
      read-only                                                               
      root=/dev/sda2                                                          
      append="ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0 ide5=0 ide6=0 ide7=0 ide8=0 ide9=0 "
    
  8. Скопируйте FastTrak.o в /lib/modules/2.4.20/kernel/drivers/scsi.
  9. Создайте ram-диск и запишите на него Ваш модуль:
    # mkinitrd --preload=scsi_mod --preload=sd_mod --with=FastTrak -f /boot/initrd-2.4.20.img 2.4.20
    
  10. В каталоге /dev создайте подкаталог /dev/scsi/host1/bus0/target0/lun0/, в который поместите символические ссылки disc->/dev/sda, part1->/dev/sda1 и т.п.
  11. Выполните команды:
    #lilo -v
    #exit
    #reboot
    
  12. После перезагрузки откомпилируйте новое ядро, драйвер для него и создайте ram-диск точно так же, как это делается в Red Hat. Внесите новую секцию в lilo.conf.

Если Вы используете не Slackware, попробуйте скомпилировать partial source linux driver для Вашего ядра, поместить его в initrd, а его, в свою очередь, записать на загрузочную дискету или CD. После этого попробуйте выполнить приведенные выше инструкции. К сожалению, у меня пока не было возможности применить эти рекомендации на практике для дистрибутивов, отличных от Red Hat и Slackware 9.

Инструкция для пользователей Debian 3.0 (ядро bf-24) (автор - Илья Данилов):
Перед тем, как сделать RAM-диск, необходимо убедиться, что он включен в вашем ядре (.config):

CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_DEV_INITRD=y
также должна быть включена опция "Compressed RAM fs", в противном случае RAM-диск не будет подмонтирован:
CONFIG_CRAMFS=y
проверяем, что в /dev у нас есть необходимые устройства:
ls -la /dev/ram0 (или /dev/rd/0, если используется devfs):

brw-rw---- 1 root  disk          1, 0

ls -la /dev/initrd:

brw-rw---- 1 root  disk          1,250
в противном случае можно их создать при помощи mknod с соответствующими minor и major номерами.

Переходим к изготовлению имиджа для mkinitrd. Ключи у него отличаются от red-hat-овских, довольно сильно:

  1. Сначала убеждаемся, что есть в наличие /lib/modules/2.4.18/kernel/drivers/scsi/FastTrak.o
  2. modprobe должен нормально подгружать этот модуль, в противном случае стоит сделать depmod и проследить за появлением срочки из п.1 в /lib/modules/2.4.18/kernel/modles.dep
  3. предполагается, что уже установлены initrd-tools. в этом случае идем в каталог /etc/mkinitrd и добавляем в файл modules сточку FastTrak (только без .o в конце!) создаем файл /etc/mkinitrd/files и пишем туда одну строчку с полным путем к модулю: /lib/modules/2.4.18/kernel/drivers/scsi/FastTrak.o
  4. теперь можно сделать имидж...
    mkinitrd -r /dev/sda1 -o /boot/initrd-2.4.18-raid.img 2.4.18
    
    опция -r указывает, что мы хотим поместить в имидж все, для того, чтобы можно было подмонтировать данное устройство в качестве рута.
  5. исправляем fstab, указывая там именно /dev/sdX, чтобы они подмонтировались корректно при старте системы
  6. еще раз проверяем lilo.conf на предмет секции след. вида:
       image=/vmlinuz
       label=2.4.18-raid
       read-only
       initrd=/boot/initrd-2.4.18-raid.img
       root=/dev/sda1
       append="ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15, ide2=0, ide3=0,..."
    
  7. lilo -v -v
внимательно смотрим, что lilo отработал без ошибок, перезагружаемся.

Возможные ошибки:

  • ядро пишет: "can't mount root 08:00" - не указали опции RAM-диска
  • ядро пишет: "can't mount root 01:00" - не указали опцию CRAMFS
  • ядро пишет: "can't locate module...." и сдается с фразой "попытка убить init).
Первые два случая решаются компиляцией ядра, последний чуть сложнее. это означает, что initrd-tools достаточно древний (1.0.32, например, как у меня) и он кое-что забыл положить в имидж... поступаем так:
  mkinitrd -k -r /dev/sda1 -o /boot/initrd-2.4.18-raid.img 2.4.18
  
оно напишет, что The working directory /tmp/mkinitrd.xxxx will be kept.
  cd /tmp/mkinitrd.xxxx/
  cp /lib/modules/2.4.18/kernel/modles.dep initrd/lib/modules/2.4.18/kernel/
  mkcramfs initrd /boot/initrd-2.4.18-raid.img 2.4.18
  
после этого в образе гарантированно появится modules.dep, который нужен modprobe. еще можно проверить, если строчка modprobe -k FastTrak в файле /tmp/mkinitrd.xxxx/initrd/loadmodules, а также наличие /tmp/mkinitrd.xxxx/initrd/lib/modules/2.4.18/kernel/drivers/scsi/FastTrak.o

[ опубликовано 18/09/2003 ]

Aleksey Konovalov (alk_te@yahoo.com) - Promise FastTrak TX2000 RH-linux install HOW-TO   Версия для печати