IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux  >

Учебник для экзамена LPI 201: Оборудование

Администрирование, средний уровень (LPIC-2) тема 204

developerWorks
На предыдущую страницуСтраница 4 из 8 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Конфигурирование PCMCIA устройств

PCMCIA

PCMCIA утройства иногда также называются устройствами PC-Card. Это тонкие, размером с кредитную карту, модули изначально проектировавшиеся с расчетом на hot-swap и легкость транспортировки. Наибольшее распространение получили они в ноутбуках. Однако некоторые десктопные и серверные конфигурации также имеют PCMCIA интерфейсы, зачастую установленные на внешних креплениях и подсоединенные через различные шины (специальные PCI или ISA карты, USB-трансляторы и т.д.). Различное оборудование может быть реализовано в размерах PCMCIA карт, включая Wireless и Ethernet адаптеры, микродрайвы, flash-диски, модемы, SCSI-адаптеры и многое другое специфическое оборудование.

Технически, PCMCIA интерфейс представляет из себя переходник к расположенным ниже уровнем ISA или PCI шинам. В большинстве случаев, передача происходит прозрачным образом -- одни и те же модули ядра или программы, которые взаимодействуют с ISA или PCI устройством, используются для обслуживания протокола обмена предоставляемого PCMCIA. Единственное настоящее различие PCMCIA устройств заключается в распознавании события при установке устройства и определении типа карты, для которого следует загрузить драйвер.

В настоящее время оборудование PCMCIA скрывается в тени USB и/или Firewire устройств. Несмотря на то, что PCMCIA обладает более удобным конструктивом (обычно скрывающий карту в корпусе), USB более универсален для широкого круга машин. В результате многие устройства, прежде выпускавшиеся в стандарте PCMCIA, нынче оформляются в виде устройств в стиле USB "dongle", а старые доступны только на распродажах.



В начало


Определение PCMCIA устройства (часть первая)

В современных ядрах -- 2.4 и выше -- поддержка PCMCIA доступна в виде модуля ядра. Современные дистрибутивы такую поддержку включают, но если вы собираете свое собственное ядро, включите опции CONFIG_HOTPLUG, CONFIG_PCMCIA и CONFIG_CARDBUS. Ранее такая поддержка обеспечивалась пакетом pcmcia-cs.

Модули pcmcia_core и pcmcia отвечают за поддержку PCMCIA устройств. Модуль yenta_socket так же загружается для поддержки интерфейса CardBus (PCI-over-PCMCIA):

      % lsmod | egrep '(yenta)|(pcmcia)'
      pcmcia                 21380  3 atmel_cs
      yenta_socket           19584  1
      pcmcia_core            53568  3 atmel_cs,pcmcia,yenta_socket

При установке карты в PCMCIA слот демон cardmgr обращается к базе данных /etc/pcmcia/config и загружает тот драйвер, который нужен.



В начало


Определение PCMCIA устройства (часть вторая)

Теперь взглянем на процесс идентификации PCMCIA устройства в действии. Я вставляю карту в Linux лэптоп со слотом PCMCIA, с включенной поддержкой указанных ранее модулей ядра. Я могу воспользоваться программой cardctl для просмотра информации об имеющемся оборудовании:

      % cardctl ident
      Socket 0:
        product info: "Belkin", "11Mbps-Wireless-Notebook-Network-Adapter"
        manfid: 0x01bf, 0x3302
        function: 6 (network)

Эта информация предоставляется модулем ядра pcmcia_core, запросившего ее у физической карты. Как только идентификация проведена, cardmgr сканирует базу данных для того, чтобы найти соответствующий драйвер. Выглядит это примерно так:

      % grep -C 1 '0x01bf,0x3302' /etc/pcmcia/config
      card "Belkin FSD6020 v2"
        manfid 0x01bf,0x3302
        bind "atmel_cs"

В этом случае нам нужен модуль ядра atmel_cs для поддержки wireless интерфейса, предоставляемого этой картой. Вы можете увидеть это, заглянув в /var/lib/pcmcia/stab или /var/run/stab, в зависимости от вашей системы:

       % cat /var/run/stab
       Socket 0: Belkin FSD6020 v2
       0       network atmel_cs        0       eth2



В начало


Получение отладочной информации о PCMCIA устройстве

В приведенном выше примере выполнявшиеся этапы были незаметны. Карта была опознана, драйвера загружены, и все было подключено. Это идеальная ситуация. Если же что-то не в порядке, вы можете обнаружить, что драйвер, который надо загрузить, не найден.

Если вы уверены, что ваше PCMCIA может использовать имеющийся драйвер (например, он совместим с другим чипсетом), вы можете запустить insmod вручную для загрузки подходящего модуля. Или же, если вы постоянно используете эту карту, вы можете отредактировать /etc/pcmcia/config для того, что бы добавить поддержку этой карты, указав необходимый драйвер. Однако в случае, если ваше предположение относительно модуля не оправдалось, вам следует убедиться, что карта действительно совместима с какой-то другой известной PCMCIA картой.

Настройка загрузки PCMCIA может быть сделана через установочный скрипт /etc/pcmcia/, поименованный согласно функциональной категории. Например, когда 802.11b карта, подобная той, что загружалась в предыдущем примере, запускается скрипт /etc/pcmcia/wireless. Вы можете настроить эти скрипты, если устройство требует специальных настроек.



В начало


Использование "схем" для различных конфигураций

Если у вас возникает необходимость использовать PCMCIA устройство в различных конфигурациях, вы можете воспользоваться командой cardctl scheme для установки (или запроса) конфигурации. Например:

      % sudo cardctl scheme foo
      checking: eth2
      /sbin/ifdown: interface eth2 not configured
      Changing scheme to 'foo'...
      Ignoring unknown interface eth2=eth2.
      % cardctl scheme
      Current scheme: 'foo'.

В этом случае, я в действительности не определяю схему foo, но если вы ее измените, то произойдет реконфигурация. Схемы могут быть использованы в настроечных скриптах при помощи анализа переменной $ADDRESS:

      # in /etc/pcmcia/network.opts (called by /etc/pcmcia/network)
      case "$ADDRESS" in
      work,*,*,*)
          # definitions for network in work scheme ...
          ;;
      default,*,*,*)
          # definitions for network in default scheme ...
          ;;
      esac

Конечно, вы можете устанавливать схемы в инициализационных скриптах или переключать их событиями (через задания cron, GUI интерфейс и т.д.).



В начало



На предыдущую страницуСтраница 4 из 8 На предыдущую страницу
    IBM в России Конфиденциальность Контакты