Как я настраивал USB, PCMCIA и ядро 2.2.18 на моем Лаптопе

  Автор: © Mark Nielsen
Перевод: © Александр Михайлов.


 

[Примечание редактора: Пользователи Линукс сейчас активно мигрируют с ядер серии 2.2 на серию 2.4. Линукс 2.4 включает значительно улучшенную поддержку USB. Большинство дистрибутивов и пользователей еще не перешли на новое ядро, но, вероятно, сделают это в течении следующих нескольких месяцев. Данное описание написано для ядра 2.2.18. Смотрите секцию Ccылки (особенно Linux-USB Guide), на предмет последней информации о том как заставить Линукс работать с USB. -Mike.]

Содержание

  1. Введение
  2. Установка 2.2.18
  3. Настройка Lilo для использования старого ядра наряду с новым
  4. Настройка USB
  5. Переключение модема Ricochet с последовательного порта на USB
  6. Некоторые проблемы с лаптопами и ресурсы
  7. Заключение
  8. Ссылки

Введение

Я хотел использовать свой модем "Ricochet" на моем лаптопе, используя USB порт. Я успешно скачал ядро 2.2.18 и использовал USB на других своих компьютерах. И мне не хотелось устанавливать ядро 2.4.

Проблема с моим лаптопом была в том, что он использовал pcmcia устройства. Позднее я обнаружил, что мне нужно загрузить и установить pcmcia-cs, после того, как я установил новое ядро 2.2.18.

Заставить USB работать на моем лаптопе, означало сделать следующие несколько вещей,

  1. Установить новое ядро 2.2.18.
  2. Установить pcmcia драйвера.
  3. Настроить Lilo на использование старого ядра наряду с новым.
  4. Убедиться, что USB модули подключаются при загрузке.
  5. Создать устройство в /dev/usb для модема "Ricochet".
  6. Изменить мои ppp настройки.
  7. Убедившись, что новое ядро работает хорошо, установить его загрузку по умолчанию.
  8. К сожалению, из за "глупого" BIOS на моем лаптопе и из за этого идиотского plug-and-pray (игра слов: plug-and-play -- включи-и-работай;plug-and-pray -- включи-и-молись) хлама, я мог заставить мой USB порт работать только когда ни один из pcmcia слотов не использовался. Это означает, что я не мог подключить мой laptop к локальной сети, используя мою pcmcia ethernet карту. Это не проблема с ядром Линукс, а "тупое" железо.

Установка 2.2.18

Здесь приведены шаги, которые я использовал, чтобы установить ядро и pcmcia драйвера.
  1. Сконфигурировать и установить новое ядро с драйверами консоли, поддержкой usb и pcmcia. Я также выбрал несколько других опций.
  2. Скачать pcmcia-cs и установить его, используя директорию src нового ядра.
Это команды, которые я использовал чтобы установить новое ядро.
   ## перейдите в директорию с исходным кодом ядра
   ## для xconfig, я выбрал usb options и VESA VGA graphics console
   ## в разделе console drivers для моего лаптопа.
make xconfig
make clean
make dep
make bzImage
make install
make modules
make modules_install
Это шаги, использованные мной для установки pcmcia-cs.
tar -zxvf pcmcia-cs-3.1.23.tar.gz
  ### убедитесь, что вы указали корневую директорию нового ядра
  ### у меня это была /usr/src/linux-2.2.18/linux
  ### Остальные опции я оставил установленными по умолчанию.
make config
make all
  ### Это поместит модули в /lib/modules/2.2.18
make install

Настраиваем lilo на работу с двумя ядрами.

Ниже приведена старая и новая конфигурации /etc/lilo.conf. Я крайне не рекомендую вам использовать ее, т.к. я доработал lilo.conf для своих нужд. После того, как я отредактировал конфигурацию в /etc/lilo.conf, я просто ввел "lilo" в командной строке. Затем, когда я перезагрузил мой компьютер, я получил на выбор "linux_new" и "linux". Когда я убедился, что новое ядро работает, я установил его для загрузки по умолчанию.

Старая конфигурация.

### Configuration for GNUJobs.com test laptop
vga=791 
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux

image=/boot/vmlinuz-2.2.12-32
	label=linux
	initrd=/boot/initrd-2.2.12-32.img
	read-only
	append="hdc=ide-scsi"
#        ramdisk_size=40000
	root=/dev/hda5

Новая конфигурация lilo.conf
### Configuration for GNUJobs.com test laptop 
### Установлено новое ядро. Помните, необходимо установить драйвера консоли в ядро
### иначе vga=791 не сработает.

vga=791 
#vga=ask
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux_new

image=/boot/vmlinuz-2.2.18
        label=linux_new
        read-only
        append="hdc=ide-scsi"
              ### /dev/hda5 is root for GNUJobs.com laptop
        root=/dev/hda5

image=/boot/vmlinuz-2.2.12-32
	label=linux
	initrd=/boot/initrd-2.2.12-32.img
	read-only
	append="hdc=ide-scsi"
              ### /dev/hda5 is root for GNUJobs.com laptop
	root=/dev/hda5

Настройка USB

Чтобы настроить USB, мне пришлось поместить следующие команды в файл /etc/rc.d/rc.local.
   ### Эта команда монтирует файловую систему для USB к /proc/bus/usb. 
mount -t usbdevfs none /proc/bus/usb
   ### Загружает общий usb модуль -- выберите один из 3х, в зависимости от вашей
   ### материнской платы или USB карты.  Я успешно использовал
   ### uhci или usb-uhci на всех моих материнских платах.  Если вы не уверены,  
   ### какой модуль использовать, смотрите "Basic USB Configuration" в Linux-USB Guide
   ### по адресу http://www.linux-usb.org/USB-guide/c122.html#AEN124
insmod /lib/modules/2.2.18/usb/uhci.o
# insmod /lib/modules/2.2.18/usb/usb-uhci.o
# insmod /lib/modules/2.2.18/usb/usb-ohci.o
   ### Load the module for modems, like Ricochet
insmod /lib/modules/2.2.18/usb/acm.o

Переключаем модем "Richochet" с последовательного порта на USB

Чтобы подключить мой модем "Ricochet" к usb, мне пришлось загрузить модули, описанные в приведушей секции, затем создать новое устройство и заставить мою ppp конфигурацию использовать его.
mkdir /dev/usb
mknod /dev/usb/ttyACM0 c 166 0 
Я "переключил" мой модем с использования /dev/ttyS0 на /dev/usb/ttyACM0. Теперь мой модем "Richochet" работает, и кажется делает это быстрее, чем последовательный модем, как и должно быть, хотя может быть это просто мое воображение.

Некоторые проблемы с лаптопами и ресурсы

Я установил новое ядро на мой лаптоп от DELL. При этом у меня возникли некоторые проблемы. Кажется, что мой "глупый" лаптоп не имеет достаточно irq, чтобы поддерживать использование USB порта. Поэтому, теперь мне придется купить USB мышь (и возможно клавиатуру), чтобы освободить некоторые irq. Я также столкнулся с этой проблемой, когда попытался одновременно использовать мой pcmcia модем и pcmcia enthernet карту. Я так и не смог разрешить эту проблему. Теперь, когда я использую USB порт, я не могу использовать ни одну из pcmcia карт. Ужасно раздражает то, что я не могу заставить что либо использовать irq 10, и что я не могу отключить параллельный порт, последовательный порт и внутреннюю ps/2 мышь. Компьютер от DELL был когда-то лучшим Линукс лаптопом, из тех что я видел, но вскоре он явно устареет. Я думаю что с появлением 2.4, коммерческая поддержка Линукс сильно расширится. Зачем софтверная империя заодно с хардварной создали дружелюбный к пользователю plug-and-pray, остается выше моего понимания. Я знаю, что мой лаптоп имеет свободные ресурсы, но я не могу заставить его использовать их. Это жутко раздражает. Я крайне разочарован BIOS конкретного лаптопа DELL, которым владею.

Я приобрел другой лаптоп для одного из моих нанимателей с GNUJobs.com, от Emperor Linux, и он был корректно сконфигурирован, я устроил продавцу допрос с пристрастием, чтобы убедиться, что я получу все в рабочем виде и без проблем. Я намного более счастлив с лаптопом от Emperor Linux.

Другой глупостью с моей стороны было то, что я забыл установить iso9660 формат в ядро (или как модуль). Из за этого я не смог читать cdrom диски. Мне пришлось перекомпилировать ядро еще один раз, и включить поддержку файловой системы iso9660, в качестве модуля.

Заключение

Я крайне впечатлен уровнем поддержки USB в ядре Линукс 2.2.18. После выхода ядра 2.4.1 , я скорее всего обновлю свое ядро до серии 2.4. Я прочел о всех новых возможностях 2.4, и это звучит впечатляюще!

Очевидно, даже в случае с ядром 2.4, pcmcia-cs не включено в дистрибутив ядра. Я точно не понимаю почему, и меня раздражает то что я должен загружать и устанавливать pcmcia-cs, отдельно от ядра Линукс. Надеюсь когда нибудь он будет включен по умолчанию.

В целом, я впечатлен тем фактом, что установка нового ядра была практически безболезненна. Установка нового ядра не уничтожает старые, поэтому я могу протестировать новое ядро не избавляясь от старого. Это полезно если вы хотите вернуться к старому ядру. Например, перед тем как я установил pcmcia-cs для нового ядра, ethernet карта моего лаптопа не работала, следовательно было полезно то, что я мог загрузить старое ядро, где ethernet карта продолжала работать. Если бы это случилось в "тупой" операционной системе, которая форсирует обновления и не позволяет вам выбирать, как контролировать вашу систему, я бы оказался в трудной ситуации.

Хотя установка была достаточно проста для меня, для некоторых людей может оказаться проще просто использовать rpm'ы и положиться на помощь их любимого Линукс дистрибутива. Это самая простая установка ядра и pcmcia драйверов для лаптопа, в которых я когда либо участвовал. Приятно видеть, что процесс инсталляции становится все проще и проще. После долгих лет "битв" с ядром, то по одной причине, то по другой, приятно увидеть что все технологии наконец сходятся вместе.

Я не вижу как "злобная империя" :-) сможет предотвратить свое падение, учитывая тот факт, что GNU/Linux (и OpenBSD и FreeBSD) технологически совершеннее и предлагаю дружелюбные интерфейсы с GNOME и KDE. "Злобная империя" никогда не заботилась о технологии, скорее - о маркетинге и дружелюбности к пользователям. Некоторые "злобные" производители коммерческих UNIX, заботились только о технологии и не думали о том, чтобы сделать их среду приятной и дружественной к пользователю. Так как GNU/Linux совмещает технологию с дружественностью к пользователю, т.е. то чего хотят люди, мы получаем лучшее из двух миров, вместо того, чтобы позволять "злобным империям" диктовать нам свои условия (или контролировать нас так, что они могут "доить" нас).

Ссылки

  1. Взято непосредственно из linux/Documentation/usb/usb-help.txt
    
    2000-July-12
    
    Чтобы получить помощь по USB, кроме readme файлов расположенных в
    linux/Documentation/usb/*,смотрите следующие ресурсы:
    
    Linux-USB project:  http://www.linux-usb.org
      зеркала на        http://www.suse.cz/development/linux-usb/
             и        http://usb.in.tum.de/linux-usb/
    
    Linux USB Guide:    http://www.linux-usb.org/USB-guide/book1.html
       ПРОЧТИТЕ ЭТО!          (или на других Linux-USB зеркалах)
    
    Linux-USB device overview (работающие устройства и драйвера):
                        http://www.qbik.ch/usb/devices/
        
    Листы рассылки Linux-USB:
      linux-usb-users@lists.sourceforge.net   по общим вопросам
      linux-usb-devel@lists.sourceforge.net   по вопросам разработки
    
    
    
  2. Linux Kernel 2.2.18
  3. PCMCIA-CS source
  4. Using the wireless modem Ricochet
  5. Оригинальное местоположение этой статьи - http://www.gnujobs.com/Articles/15/USB.html. (любые обновления будут появляться здесь)

 


Copyright © 2001, Mark Nielsen.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 63 of Linux Gazette, Mid-February (EXTRA) 2001

Вернуться на главную страницу