Вам, само собой, потребуются такие вещи, как компьютер, USB-порты,
Handspring
Visor (с USB-кроваткой), Linux и прочее. Вам также нужно знать, как
компилировать и устанавливать разное ПО, например, ядро. Если у вас
отсутствуют эти знания и умения, то вам, скорее всего, поможет документ
kernel-HOWTO:
http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html.
Сначала вам потребуется ядро, которое поддерживает USB. Вы можете взять
"последнее" разрабатываемое ядро, которое на момент написания этого
документа
имело версию 2.4.0-test5 (на момент перевода версия была уже не такой,
но я не
вижу большого смысла указывать ее -- Прим. переводчика). Его можно найти
по
адресу
ftp://ftp.kernel.org/pub/linux/kernel/v2.4/.
Второй вариант -- взять последнее стабильное ядро, и последний бэк-порт
USB-кода. На момент написания этого документа (7 августа, 2000)
стабильным
ядром было 2.2.16 и его можно было найти здесь:
ftp://ftp.kernel.org/pub/linux/kernel/v2.2/. Последний бэк-порт
USB-кода распространяется
проектом linux-usb project и находится тут:
http://www.suse.cz/development/usb-backport/
Текущая версия (7 августа, 2000) -- usb-2.4.0-test2-pre2-for-2.2.16-v3.
Возможно, как бэк-порту есть патчи. Вы сможете найти их по адресу
http://sourceforge.net/patch/?group_id=1404.
Выкачайте и установите исходный код ядра, включив в него USB-код, если
вы
используете версию 2.2. Ниже приведен пример установки исходного кода
2.2 и
бэк-порта.
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-контроллерами. Вы
можете определить тип вашего контроллера при помощи команды
'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-контроллера, то вам нужно либо купить "кроватку" для
Visor,
подключающуюся к последовательному порту (кстати, зачем вы это
читаете?), либо
устройство, имеющее USB-контроллер (то есть карту расширения или
материнскую
плату).
Теперь нам предстоит настроить и собрать ядро. При настройке не забудьте
включить
USB support (CONFIG_USB),
соответствующий тип контроллера -- UHCI, alternate UHCI, или OHCI
(CONFIG_USB_UHCI, CONFIG_USB_UHCI_ALT, или CONFIG_USB_OHCI)
USB Serial Converter support (CONFIG_USB_SERIAL)
USB Handspring Visor Driver (CONFIG_USB_SERIAL_VISOR) (подпункт
пункта USB
Serial Converter support)
(Я не знаю, в чем разница между двумя UHCI-драйверами, и не знаю, какой
порекомендовать. Кто-нибудь может объяснить?)
Я компилировал драйвера как отдельными модулями, так и включая их в
ядро.
Работает и так, и так. Разработчики предпочитают модули, но решайте
сами.
После этого заканчивайте сборку и установку ядра, а затем
перезагружайтесь.
Еще не все! Чтобы драйвер Visor заработал, нам потребуется выполнить
дополнительные процедуры по обеспечению работоспособности USB Serial
driver. Вы
можете найти их описание в документации по ядру:
Documentation/usb/usb-serial.txt. Вкратце, вам потребуется создать
необходимые
устройства. Для этого достаточно с полномочиями пользователя root
выполнить
следующие команды:
mknod /dev/ttyUSB0 c 188 0
mknod /dev/ttyUSB1 c 188 1
etc...
chmod 666 /dev/ttyUSB*
В настоящий момент ограничения в коде позволяют использовать до 16
подключений/портов/устройств, так что вам потребуются только устройства
с
номерами от 0 до 15. Команда chmod позволит всем пользователям получить
доступ
к Visor. По мнению автора этого документа, такая настройка хороша лишь
для
персонального компьютера. Для многопользовательских машин этот вопрос
следует
рассмотреть дополнительно.
При подключении Visor образуются два открытых "порта". (В большинстве
случаев
это будут /dev/ttyUSB0 и /dev/ttyUSB1, или что-нибудь подобное).
Первый порт (номер ноль) -- общее соединение. Второй порт --
hotsync-порт.
Это позволит в будущих разработках устроить что-нибудь типа, например,
экспорта файловой системы с Visor. Полезно будет создать ссылку с
hotsync-порта, чтобы синхронизирующее программное обеспечение по
умолчанию
использовало нужное устройство. Это можно сделать так:
cd /dev
ln -s /dev/ttyUSB1 pilot
Просто для развлечения вы также можете создать ссылку с /dev/visor
на /dev/ttyUSB1, ну, просто потому, что у нас visor, а не pilot
(или Palm(tm)). Реальный номер устройства может изменяться, в
зависимости от
того, сколько (активных?) USB-последовательных устройств подключено к
вашей
системе. При нажатии на "кроватке" кнопки синхронизации будет выведено
сообщение, указывающее, какое устройство используется.
Если вы скомпилировали USB-код как модули, вам также потребуется
включить эти
модули в работающее ядро. Как пользователь root введите следующие
команды:
ColdSync представляет собой пакет, который содержит программы,
предназначенные
для коммуникации с Visor (или Palm(tm), если у вас один из них). Другим
популярным пакетом для решения тех же задач является pilot-link. Однако,
как
кажется, в работе pilot-link есть ошибки, особенно при работе с
USB-драйверами. Поэтому я рекомендую ColdSync. Системы с
UHCI-контроллерами
работают с coldsync прекрасно, хотя у OHCI-контроллеров есть некоторые
проблемы. (При использовании pilot-link все хуже и в том, и в другом
случае.)
Дополнительную информацию вы можете найти в списке рассылки
разработчиков
visorusb:
http://www.geocrawler.com/lists/3/SourceForge/1169/.
На момент написания этого документа (7 августа, 2000) последней
стабильной
версий ColdSync была 1.2.5. Последняя версия pilot-link, насколько я
знаю, --
0.9.3. Одним из преимуществ pilot-link является то, что существует
больше
графических интерфейсов, использующих библиотеки pilot-link, нежели
использующих coldsync.
Обсуждавшиеся программы могут быть найдены по следующим адресам:
Мы уже почти закончили. Теперь нужно протестировать, как все работает.
Конечно, Visor должен быть в "кроватке", а она должна быть подключена к
USB-порту.
Для тестирования мы можем использовать coldsync. Для того, чтобы
компьютер
осознал, что Visor действительно здесь, вам потребуется нажать кнопку
синхронизации на "кроватке". (Я заметил, что при подключении
USB-устройства на
экране появляется куча информации. Обновление: это происходит при
включенной
отладке.) После этого драйвер для Visor создаст запись в
/proc/drivers/visor,
которая будет содержать дополнительный (minor) номер и назначение.
Подробнее
об этом -- потом. А сейчас давайте запустим coldsync.
coldsync -p /dev/visor
(Помните, /dev/visor -- символическая ссылка на /dev/ttyUSB1).
Начиная с этого момента используйте другую документацию. Полезен man.
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!