Ядро
Прежде всего вам необходимо получить ядро, которое поддерживает USB. Вы можете либо получить последнее разработанное ядро версии 2.4.0-test5 () (7 августа 2000) по адресу: ftp://ftp.kernel.org/pub/linux/kernel/v2.4/, либо можете взять последнюю устойчивую версию ядра версии 2.2.16 по адресу: ftp://ftp.kernel.org/pub/linux/kernel/v2.2/
и драйвера для USB. Последние драйвера для USB можно взять с: http://www.suse.cz/development/usb-backport/
Текущая версия (август 2000): usb-2.4.0-test2-pre2-for-2.2.16-v3. Могут быть доступны патчи на: http://sourceforge.net/patch/?group_id=1404. Загрузите и установите исходный код, включая драйвер для usb, если вы используете версию 2.2. Ниже показан пример установки версии 2.2 и драйвера USB.
cd /usr/src tar xzvf linux-2.2.14.tar.gz cd linux gzip -dc ../usb-2.3.50-1-for-2.2.14.diff.gz | patch -p1 make distclean
Затем ответственный шаг - определить, какой контроллер USB вы имеете. USB контроллер - аппаратное обеспечение на вашем компьютере, который управляет вводом/выводом USB. На материнской плате с чипсетом Intel, напр. с чипсетом BX - обычный UHCI контроллер. Большинство карт имеют OHCI контроллер. Вы можете определить тип аппаратного обеспечения USB, используя команду 'lspci -v' (смотрите Ссылки если у вас нет lspci). Если вы увидите приблизительно следующее:
USB Controller: ...... Flags: ..... I/O ports at ....
Тогда у вас UHCI контроллер. Если вы увидите приблизительно следующее:
USB Controller: ..... Flags: .... Memory at .....
Тогда у вас OHCI контроллер. (Документация по определению типа контроллера была взята из документаци ядра, Documentation/usb/scanner.txt). Вы можете обратится к http://www.linux-usb.org
для дополнительных подробностей. Документация (Documentation/usb/usb.txt) может также быть полезна в определении вашего типа контроллера.
Если у вас нет USB контроллера, вам необходимо либо купить USB-крэдл для последовательного порта для Visor (что вы делаете читая это?), либо купить устройство с USB (например плату расширения или материнскую плату).
Теперь вам нужно сконфигурировать и собрать ядро. Во время конфигурации убедитесь, что вы разрешаете:
USB support (CONFIG_USB),
соответствующий контроллер - UHCI, альтернатива UHCI или OHCI (CONFIG_USB_UHCI, CONFIG_USB_UHCI_ALT или CONFIG_USB_OHCI)
Поддержка последовательного USB конвертера (CONFIG_USB_SERIAL)
Драйвер USB Handspring Visor (CONFIG_USB_SERIAL_VISOR)
( Я не уверен, что существует разница между драйверами UHCI и тем который рекомендуется для использования). Я собрал их с ядром и как модули ядра. Оба работали. Разработчик предпочитает модульный метод, но вы, как хотите.
После того, как вы это сделаете, закончите установку ядра и перезагрузите компьютер.
Еще не все! Чтобы заставить работать драйвер Visor, нам нужно сделать драйвер USB для последовательного порта. Для этого просмотрите документацию к ядру Linux: Documentation/usb/usb-serial.txt. Там в основном описывается, как создать файлы устройств. Вы можете это сделать командами (под root):
mknod /dev/ttyUSB0 c 188 0 mknod /dev/ttyUSB1 c 188 1 и т.п. ... chmod 666 /dev/ttyUSB*
Вам понадобится создать шестнадцать соединений/портов/устройств, с номерами от 0 до 15. Команда chmod разрешает пользователям доступ к устройству Visor. Это личное мнение автора документа, т.к. это персональный компьютер.
Когда Visor соединен, открыты 2 порта. (Для большинства это будут устройства /dev/ttyUSB0 и /dev/ttyUSB1, или подобные). Первый порт (0) - универсальное подключение. Второй порт - для горячей синхронизации (hotsync). Эта особенность будет разработана в будущем, например, чтобы экспортировать файловую систему с Visor. Будет полезным - создать ссылку на hotsync порт и программное обеспечение для синхронизации будет использовать соответствующее устройство по умолчанию. Вы можете сделать это:
cd /dev ln -s /dev/ttyUSB1 pilot
Только ради забавы, вы можете создать ссылку /dev/visor на /dev/ttyUSB1. Фактический номер устройства можно изменить, в зависимости от того, сколько много (активных?) USB устройств вы имеете в системе. В сообщении отображается устройство, которое фактически используется, когда нажата кнопка горячей синхронизации.
Для тех, кто компилирует USB драйвер, как модули, необходимо также вставить модули в ядро. Запустите (под root):
/sbin/modprobe usb-uhci /sbin/modprobe usb-ohci /sbin/modprobe usb-serial