From : Roman Y. Bogdanov http://peps37.ktk.ru/
Subj : [FreeBSD] Настройка работы LPT Iomega Zip под FreeBSD
-------------------------------------------------------------------------------
НАСТРОЙКА IOMEGA ZIP 100 LTP В ОПЕРАЦИОННОЙ СИСТЕМЕ FREEBSD.
Revision 0.1 от 03:38:15, суббота, 14 Октября 2000 г.
Я думаю, вряд ли кто-нибудь будет оспаривать тот факт, что дисководы
Iomega ZIP - вещь удобная и полезная. Мой дисковод ZIP с интерфейсом
LPT - самый медленный в семействе, однако, имеет преимущество
мобильности, т.е. возможности простого подключения к любому компьютеру
типа PC, что делает его удобным средством транспортировки данных.
Приводимые здесь советы являться результатами двухчасового
употребления чая за чтением man'уалов и how-to по операционной системе
FreeBSD и настройке в ней ZIP дисководов.
FreeBSD поддерживает устройства Zip, работающие через параллельный
порт, начиная с версии 3.0. Устройству ZIP может быть назначен SCSI ID
только 5 или 6. Я не знаю, насколько хорошо FreeBSD поддерживает смену
носителя во время работы, но компания Iomega предупреждает, что не
стоит вытаскивать носитель или отключать устройство во время передачи
данных (довольно естественное требование, не правда ли?). Конечно,
чтобы сменить диск, вам сначала нужно его размонтировать, и обратите
внимание на то, что при загрузке все внешние устройства должны быть
включены, чтобы FreeBSD могла их распознать.
Так что распаковываем устройство, подключаем входящий в комплект
кабель к параллельному порту и к разъему на устройстве, втыкаем
сетевой шнур, после чего включаем компьютер. Загружаемся в FreeBSD и
начинаем править ядро. Проверьте, содержит ли ваше ядро драйверы для
scbus0, da0, ppbus0 и vp0 (ядро GENERIC содержит всё это, кроме vp0).
Если эти драйверы имеются, то устройство должно быть доступно как
/dev/da0s4. Диски могут быть смонтированы командами mount /dev/da0s4
/mnt или (для дисков DOS) mount_msdos /dev/da0s4 /mnt соответственно.
На всякий случай заглянем в LINT и посмотрим, что есть на эту тему
там:
# Parallel-Port Bus
#
# Parallel port bus support is provided by the `ppbus' device.
# Multiple devices may be attached to the parallel port, devices
# are automatically probed and attached when found.
#
# Supported devices:
# vpo Iomega Zip Drive
# Requires SCSI disk support ('scbus' and 'da'), best
# performance is achieved with ports in EPP 1.9 mode.
device ppc0 at isa? irq 7
device vpo
Вписываем эти строки, собираем новое ядро и у нас появился ZIP. Он
работает, но очень медленно и грузит систему. Дело в том, что ZIP
может вести обмен через параллельный порт на одной из трех скоростей.
По умолчанию из соображений совместимости устанавливается минимальная
скорость. Драйвер, если его научить, смотрит, какой тип параллельного
порта стоит на компьютере (bidirectional, EPP) и соответствующим
способом устанавливает скорость обмена. Смотрим, как это сделать в
нашем любимом man ppc:
During the probe phase, ppppcc detects parallel port chipsets and
initializes private data according to their operating mode:
COMPATIBLE, NIBBLE, PS/2, EPP, ECP and other mixed modes. If a mode
is provided at startup through the flags variable of the boot
interface, the operating mode of the chipset is forced according to
flags and the hardware supported modes.
Supported flags
And any mixed values.
bit 4: EPP protocol (0 EPP 1.9, 1 EPP 1.7)
bit 5: activate IRQ (1 IRQ disabled, 0 IRQ enabled)
bit 6: disable chipset specific detection
bit 7: disable FIFO detection
Теперь, если мы поставим флаг 0x40 на наш pppc0 то у нас должна
появиться поддержка стандарта EPP. Добавляем ее в ядро. Например, вот
так, выглядит описания параллельного порта моей рабочей станции, в
виду отсутствия принтера.
# Parallel port (my Iomega Zip 100Mb LPT drive)
device ppc0 at isa? flags 0x40 irq 7
device ppbus # Parallel port bus (required)
device vpo # Requires scbus and da
Ещё одна важная деталь. Я забыл, что подключение ZIP дисковода
происходит через SCSI эмуляцию. В ядре есть опция, которая отвечает за
задержку в секундах перед началом инициализации SCSI периферии. А так,
как SCSI винтов в моей системе нет, строчка "before probing SCSI" у
меня не появлялась, и я думал, почему ядро зависает на 15 секунд, при
инициализации ZIP дисковода. Вы можете смело поставить в ядро
нижеследующую опцию и жить спокойно:
options SCSI_DELAY=1000 #Delay (in ms) before probing SCSI
Ну что же, можно сказать, что настройка завершилась, новое ядро
собрано, теперь смотрим на результат нашей работы:
ppc0: at port 0x378-0x37f irq 7 flags 0x40 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
vpo0: on ppbus0
vpo0: EPP 1.9 mode
da0 at vpo0 bus 0 target 6 lun 0
da0: Removable Direct Access SCSI-2 device
da0: 96MB (196608 512 byte sectors: 64H 32S/T 96C)
Официальное лого ZIP дравера для FreeBSD [ [7]смотрет
ь ]
Где и как живет ZIP в моей домашней рабочей станции [ [8]смотрет
ь ]
Ссылки, по которым написан FAQ:
[9]Iomega company site.
[10]Информация о параллельных портах
[11]Информация о LTP ZIP
[12]Информация о USB ZIP
[13]FreeBSD hardware FAQ
[14]FreeBSD ZIP hardware FAQ
[15]Дравер ZIP для версий ядра 2.x.x