- 16 команд для проверки аппаратной части компьютера в Linux
- Информация о комплектации компьютера
- 1. lscpu
- 2. lshw – список аппаратных устройств
- 3. hwinfo – информация об аппаратуре компьютера
- 4. lspci – список устройств PCI
- 5. lsscsi — список устройств scsi
- 6. lsusb – подробный список шин и устройств usb
- 7. Inxi
- 8. lsblk — список блочных устройств
- 9. df – дисковое пространство файловых систем
- 10. Pydf – команда df, написанная на языке Python
- 11. fdisk
- 12. mount
- 13. free – проверка оперативной памяти
- 14. dmidecode
- 15. Файлы /proc
- 16. hdparm
- Заключение
- Как в Linux посмотреть подключенные USB устройства
- Просмотр списка имен USB устройств с помощью команды df
- Список имен подключенных USB — устройств с помощью команды lsblk
- Список USB — устройств с помощью команды fdisk
- Список сведений о подключенных USB-устройствах с помощью команды lsusb
- Список USB контроллеров и устройств, использующих USB устройства
- Заключение
- Linux и USB-устройства
- 1. Общие сведения о шине USB.
- 2. Поддержка USB-устройств в Linux
- 3. USB-мышь в Linux
- 4. Flash-диски
- 5. Цифровые фотоаппараты
- Замечания и дополнения от читателей.
16 команд для проверки аппаратной части компьютера в Linux
Информация о комплектации компьютера
Точно также, как для всего прочего, в вашей системе Linux есть много команд для получения информацию об аппаратной части вашего компьютера. Некоторые команды сообщают информацию только о конкретных компонентах оборудования, например, процессоре или памяти, а другие — выдают информацию сразу о нескольких устройствах.
В данной статье кратко рассказывается о нескольких наиболее часто используемых командах, предназначенных для получения информации и особенностях настройки различных периферийных устройств и компонентах компьютера. Среди рассматриваемых — команды lscpu, hwinfo, lshw, dmidecode, lspci и другие.
1. lscpu
Команда lscpu выдает информацию о процессоре и его составляющих. В ней нет каких-либо дополнительных параметров или функциональных возможностей.
2. lshw – список аппаратных устройств
Утилита общего назначения, которая сообщает подробную и краткую информацию о нескольких различных аппаратных устройствах, таких как процессор, память, диск, контроллеры usb, сетевые адаптеры и т.д. Команда lscpu извлекает информацию из различных файлов /proc.
Если вы хотите больше узнать о команде lshw, то обратите внимание на пост Получаем интфомацию в Linux об аппаратных частях компьютера с помощью команды lshw .
3. hwinfo – информация об аппаратуре компьютера
Утилита hwinfo является еще одной универсальной утилитой зондирования аппаратуры, которая может сообщить подробную и краткую информацию о многих различных аппаратных компонентах, причем может сообщить больше, чем утилита lshw.
4. lspci – список устройств PCI
Команда lspci выдает список всех шин PCI, а также подробную информация об устройствах, которые к ним подключены. Под эту категорию подпадают следующие устройства — адаптер vga, графическая карта, сетевой адаптер, порты usb, контроллеры sata и т.д.
Отфильтруйте информацию о конкретном устройстве с помощью команды grep.
5. lsscsi — список устройств scsi
Выдается список устройств scsi/sata, например, жестких дисков и оптических приводов.
6. lsusb – подробный список шин и устройств usb
Эта команда показывает информацию о контроллерах usb и подробные сведения о подключенных к ним устройствах. По умолчанию выдается краткая информация. Для того, чтобы о каждом порте usb получить подробную информацию, используйте параметр «-v».
В системе, информация о которой приведена выше, один порт usb используется для подключения мыши.
7. Inxi
Inxi является мега скриптом bash, состоящим из 10000 строк кода, с помощью которого из разных источников и команд системы будет получена подробная информация об аппаратном обеспечении и будет создан отчет в виде, позволяющим его читать пользователям, которые не являются техническими специалистами.
8. lsblk — список блочных устройств
Перечисляется информация о всех блочных устройствах, которыми являются разделы жестких дисков и других устройств хранения данных, например, оптических приводов и флэш-накопителей
9. df – дисковое пространство файловых систем
Отчеты о различных разделах, об их точках монтирования и о том, сколько в каждом разделе есть свободного места.
10. Pydf – команда df, написанная на языке Python
Улучшенный вариант команды df , написанной на языке python, который выдает информацию в цвете, что выглядит лучше, чем информация, выдаваемая командой df
11. fdisk
Fdisk является утилитой, предназначенной для изменения разделов жестких дисков, и ей также можно пользоваться для получения информации о списке имеющихся разделов.
12. mount
Команда mount используется для монтирования/демонтирования, а также для просмотра смонтированных файловых систем.
Опять же, используйте команду grep для отфильтровывания информации только о тех файловых системах, которые вам интересны
13. free – проверка оперативной памяти
С помощью команды free проверьте объем используемой, свободной и общий объема оперативной памяти, имеющейся в системе.
14. dmidecode
Команда dmidecode отличается от всех других команд. Она извлекает информацию об оборудовании, читая для этого данные из структур данных SMBOIS (которые также называются таблицами DMI).
Подробности смотрите на странице man.
15. Файлы /proc
Во многих виртуальных файлах каталога /proc содержится информация об аппаратном обеспечении и о конфигурациях. Ниже приведены некоторые из них.
Информация о процессоре/памяти
Информация о Linux/ядре
16. hdparm
Команда hdparm получает информацию об устройствах sata, например, жестких дисков.
Заключение
В каждой из команд используется чуть-чуть иной способ извлечения информации, и вам для, чтобы получить определенную информацию об оборудовании, возможно, потребуется попробовать более одной команды. Но все они есть в большинстве дистрибутивов Linux и их легко можно установить из репозиториев, используемых по умолчанию.
Для тех, кто не хочет запоминать и вводить команды, на рабочем столе есть графические инструментальные средства. Hardinfo и I-nex — некоторые из популярных инструментальных средств, с помощью которых можно получить подробную информацию о большом количестве различных аппаратных компонентов.
Источник
Как в Linux посмотреть подключенные USB устройства
В настоящее время многие компьютерные периферийные устройства, такие как веб-камеры, мыши, сканеры, принтеры, жесткие диски, USB (Pendrive) подключаются по USB. После того, как эти устройства подключены к рабочему столу или серверу, важно знать имя устройства или путь к нему. Это помогает идентифицировать USB устройства для таких задач, как форматирование или отключение.
В Linux все файлы устройств хранятся в каталоге /dev и должны быть доступны во время загрузки системы.
В этой статье я покажу вам различные способы как в ubuntu посмотреть usb устройства. Большинство команд, упомянутых здесь, должны работать практически на всех дистрибутивах Linux. Например Ubuntu, Debian, Mint.
Просмотр списка имен USB устройств с помощью команды df
Команда df — это полезная команда, которая может помочь составить список всех подключенных томов, включая USB-накопители.
Как только USB-устройство подключается в систему Linux, это устройство автоматически монтируется в раздел /media и становится готовым к использованию.
Из приведенного выше вывода следует, что у меня есть 1 USB-накопитель /dev/sdb с 2 разделами /dev/sdb1 и /dev/sdb2
Список имен подключенных USB — устройств с помощью команды lsblk
Команда Lsblk используется для перечисления всех блочных устройств в системе Linux. Из списка можно фильтровать USB-устройства с помощью команды grep.
Чтобы получить дополнительную информацию, такую как UUID, производитель и тип файловой системы, используйте команду blkid, как показано на рисунке ниже.
Список USB — устройств с помощью команды fdisk
Вы можете использовать старую добрую команду fdisk, которая используется для разбиения томов на разделы, чтобы перечислить все разделы в системе Linux, включая USB-накопители.
Запятая будет отображать подробную информацию о вашем USB-томе, включая разделы , размер тома, секторы и тип файловой системы.
Список сведений о подключенных USB-устройствах с помощью команды lsusb
Команда lsusb, также известная как команда “List USB”, используется в Linux для перечисления всех USB-устройств, подключенных к системе.
На выводе выше отображается идентификатор шины, идентификатор устройства, идентификатор USB, а также поставщик или производитель USB-устройств
Команда lsusb перечисляет подключенные устройства и не предоставляет дополнительной информации о USB-устройствах.
Для получения дополнительной информации о подключенных USB устройствах используйте команду dmesg. Команда dmesg, также известная как “сообщение драйвера” или “показать сообщение”, используется для проверки загрузочных сообщений. Кроме того, эта команда используется для отладки проблем, связанных с оборудованием и печати сообщений, генерируемых драйверами устройств.
Вы можете использовать команду dmesg и grep, чтобы сузиться до USB-устройств.
Кроме того, вы можете передать вывод команды dmesg в less для облегчения прокрутки.
На выходе вы можете найти определенную строку, нажав клавишу прямой косой черты ( / ) на клавиатуре, а затем имя или идентификатор устройства USB-устройства.
В моем случае я ищу дополнительную информацию о USB устройстве под названием SanDisk.
Поиск USB-накопителя
Список USB контроллеров и устройств, использующих USB устройства
Команда usb-devices-это сценарий оболочки, который позволяет вам перечислить все USB-контроллеры и USB-устройства, подключенные к вашему компьютеру. Он печатает детали USB-устройства, такие как производитель, название продукта, серийный номер и многое другое. Вот вывод команды:
Заключение
В этой статье мы продемонстрировали различные способы просмотра USB-устройств, подключенных к системе Linux.
Источник
Linux и USB-устройства
(C) В.А.Костромин, kos @ rus-linux dot net
1. Общие сведения о шине USB.
У любого компьютера, выпущенного в последнее время, вы обязательно обнаружите либо на лицевой панели, либо на задней стенке разъем USB. Шина USB (Universal Serial Bus) первоначально была разработана для обеспечения легкого подключения компьютера к телефонным линиям и расширения числа портов. Первая версия стандарта (версия 1.0) была выпущена в январе 1996 года. Сейчас в основном используется версия 1.1. Устройства этой версии обычно помечены значком, изображенным на рис.1. Стандарт USB 1.1 вполне удовлетворяет всем требованиям при работе с низко-скоростными устройствами, вроде мышей и клавиатур, и даже с устройствами, работающими на средних скоростях, вроде Ethernet-адаптеров (10 Mbit/sec) или устройств бытовой электроники (таких, как цифровые камеры и MP3-плейеры), которые пересылают только несколько мегабайт данных. Но если на периферийное устройство или в обратном направлении необходимо пересылать большие объемы информации (примеры — жесткие диски, видеокамеры высокого разрешения, или одновременное использование нескольких сетевых адаптеров стандарта 100BaseT), то скорости, обеспечиваемые USB 1.1, уже недостаточны. Поэтому в 1999 году была разработана версия 2.0 стандарта USB, обеспечивающая более высокие скорости обмена данными. Значок, которым помечаются USB-устройства версии 2.0, изображен на рис. 2.
Рис. 1. Эмблема USB-устройств версии 1.1
Рис. 2. Эмблема USB-устройств версии 2.0
Современные компьютеры обычно имеют контроллер USB-шины, установленный на материнской плате. Для USB версии 1.1 было разработано два типа таких контроллеров, отличающихся интерфейсом взаимодействия с USB-устройствами: OHCI (Open Host Controller Interface) фирмы Compaq и UHCI (Universal Host Controller Interface) фирмы Intel. Оба типа имеют примерно одинаковые возможности и USB-устройства работают с обоими типами контроллеров. Аппаратная часть UHCI-контроллеров проще, а значит, они дешевле, но зато требуют более сложных драйверов, что увеличивает нагрузку на процессор. Версия 2.0 стандарта USB использует улучшенный вариант интерфейса — EHCI (Enhanced Host Controller Interface).
Стандарт USB предусматривает строгую иерархию устройств, управляемых основным хостом, и использование протокола master/slave для управления подключаемыми устройствами. На один USB-разъем могут быть последовательно подключены до 127 устройств. Но непосредственно подключать одно устройство к другому нельзя, поскольку питание таких устройств осуществляется по той же шине. Поэтому для подключения дополнительных устройств используются специальные хабы, обеспечивающие снабжение этих устройств необходимой энергией. В результате USB-устройства образуют как бы дерево, каждая не конечная вершина которого является хабом. Поскольку любой обмен данными инициируется только хостом, и периферийные устройства не могут начать взаимодействие, исключена возможность коллизий, вследствие чего снижается стоимость устройств. Правда, такое решение приводит к некоторому снижению производительности. В результате USB-устройства версии 1.1 могут работать в двух режимах: так называемом low speed, обеспечивающем скорость передачи данных до 1.5 Mбит/сек, и full speed, в котором скорость передачи данных может составлять 12 Мбит/сек. Это только теоретический предел, а реально производительность шины даже в идеальных условиях не превышает 8,5 Мбит/сек., а в среднем составляет около 2 Мбит/сек.
Интерфейс EHCI, используемый в устройствах версии 2, обеспечивает режим работы high speed, для которого скорость передачи данных может достигать 480 Мбит/сек. Для того чтобы USB-устройства могли обмениваться данными с такой скоростью, и хост-контроллер и само устройство должны соответствовать стандарту USB 2.0 и обеспечивать работу с интерфейсом EHCI. Однако хост-контроллеры 2.0 успешно работают с устройствами версии 1.1. И наоборот, вы вполне можете подключать устройства USB 2.0 к хосту (и к хабам) версии USB 1.1 и они будут прекрасно работать, но . со скоростью не более 12, а не 480 Мбит/сек.
В настоящее время разработан широкий спектр устройств, подключаемых по шине USB. Это клавиатуры, мыши, джойстики, игровые приставки, сканеры, модемы, принтеры, цифровые камеры, устройства хранения информации – дисководы гибких и жестких дисков, дисководы Zip, LS120 и CD-ROM. Очень перспективный и интересный класс таких устройств образуют накопители на основе Flash-памяти. Объем статьи не позволяет рассказать о каждом из этих типов устройств, так что ограничимся рассмотрением USB-накопителей (в частности Flash-дисков и цифровых фотокамер). Но вначале рассмотрим общие вопросы, что, надеюсь, позволит вам справиться и с другими типами устройств.
2. Поддержка USB-устройств в Linux
Для того чтобы работать с USB-устройствами под Linux, должны выполняться несколько условий. Во-первых, USB-устройства должны поддерживаться на аппаратном уровне, то есть на материнской плате должен быть установлен USB-контроллер. Определить его наличие можно по характерным разъемам, обычно расположенным на задней стенке системного блока. Тип интерфейса этого контроллера вы можете определить с помощью команды
[user]$ /sbin/lspci –v
Направьте вывод этой команды в файл и просмотрите результат. Для каждого из установленных у вас контроллеров вы найдете примерно такие строки:
00:1f.2 USB Controller: Intel Corp. 82801BA/BAM USB (Hub (rev 05) (prog-if 00 [UHCI])
Subsystem: Intel Corp. 82801BA/BAM USB (Hub
Flags: bus master, medium devsel, latency 0, IRQ 11
I/O ports at d000 [size=32]
Как видите, в моем компьютере стоит USB-контроллер с интерфейсом UHCI, а следовательно, версии 1.1.
Теперь перейдем к программной части. Как и для любой другой аппаратуры, у вас должна быть реализована поддержка USB в ядре. Если вы используете ядро, скомпилированное разработчиком, то такая поддержка, скорее всего, обеспечена. Полноценная поддержка USB версии 1.1 включается в ядро, начиная с версии 2.2.18. Если хост-контроллер вашего компьютера соответствует версии 2.0 стандарта USB, вы должны иметь ядро, версия которого не ниже 2.4.19, и использовать драйвер EHCI.
Если же вы сами компилируете ядро для своей системы, вы должны включить поддержку USB либо непосредственно в ядро, либо в подключаемые модули ядра. Для этого при компиляции надо задать следующие опции в секции поддержки USB (либо подключить соответствующие модули):
Поддержка USB (CONFIG_USB, usbcore.o)
Подключение USB-драйверов (выберите нужный драйвер из следующего списка):
ECHI HCD (CONFIG_USB_EHCI_HCD, ehci-hcd.o)
UHCI (CONFIG_USB_UHCI, usb-uhci.o)
OHCI (CONFIG_USB_OHCI, usb-ohci.o)
Поддержка USB-накопителей (CONFIG_USB_STORAGE, usb-storage.o).
Во-вторых, поскольку взаимодействие с USB осуществляется путем эмуляции SCSI, должны быть включена и поддержка SCSI-устройств, для чего должны быть включены следующие опции в секции поддержки SCSI (либо подключены указанные модули):
Поддержка SCSI (CONFIG_SCSI, scsi_mod.o)
Поддержка SCSI-дисков (CONFIG_BLK_DEV_SD, sd_mod.o)
SCSI generic support (CONFIG_CHR_DEV_SG, sg.o)
Включен опрос всех LUN на каждом SCSI-устройстве (CONFIG_SCSI_MULTI_LUN).
В третьих, в секции файловых систем должна быть включена поддержка файловых систем, используемых USB -устройствами:
DOS FAT (CONFIG_FAT_FS, fat.o)
MSDOS (CONFIG_MSDOS_FS, msdos.o)
VFAT (CONFIG_VFAT_FS, vfat.o)
Ну, и наконец, для конкретных типов устройств должна быть включена поддержка соответствующих устройств. Например, для клавиатуры, мыши, джойстика необходимо включить поддержку USB Human Interface Device (HID) , для сканера включить опцию USB Scanner support , для модема — USB Modem (CDC ACM) support , для принтера — USB Printer support , и так далее.
Для работы с USB-устройствами динамически генерируется виртуальная файловая система, являющаяся частью файловой системы /proc , и располагающаяся в каталоге /proc/bus/usb. Генерация такой системы выполняется из инициализационных скриптов при загрузке системы. В дистрибутиве Red Hat версии 9, например, такая генерация происходит при выполнении скрипта /etc/rc.d/rc.sysinit, в котором имеется следующая команда:
mount -t usbdevfs none /proc/bus/usb
Одновременно загружаются модули usbcore, usb-uhci, hid и производится инициализация usb-контроллеров.
В некоторых случаях монтирование может осуществляться путем прописывания в файле /etc/fstab строки вида:
none /proc/bus/usb usbdevfs defaults 0 0
или же путем выполнения от имени root-а команды:
[root]# mount -t usbdevfs none /proc/bus/usb
и запуска необходимых модулей командой modprobe.
Теперь давайте посмотрим, как в работающей системе проверить, обеспечена ли поддержка USB. Существует несколько точек, в которых отображаются такие сведения (я не могу гарантировать, что сумею перечислить все такие точки, но упомянутых достаточно для того, чтобы убедиться, что USB работает).
Начнем с файла /var/log/dmesg, содержащего протокол начальной загрузки. Проведите в нем поиск по шаблону “usb”. Я, например, увидел там строки, говорящие, что загружены драйверы usbdevfs и usb-uhci, поддерживаются два порта и драйвер hid (хотя у меня и мышь и клавиатура обычные, не-USB).
Запустив далее команду /sbin/lsmod, я увидел, что загружены модули usb-storage, usbcore, usb-uhci и hid.
Теперь давайте заглянем в каталог /proc/bus/usb. Его содержимое должно выглядеть примерно так:
dr-xr-xr-x 1 root root 0 Jan 26 10:40 001
-r—r—r— 1 root root 0 Jan 26 10:40 devices
-r—r—r— 1 root root 0 Jan 26 10:40 drivers
Если у вас более одного USB-контроллера, вы увидите соответствующее число подкаталогов с цифровыми именами 002, 003 и так далее. Если каталог /proc/bus/usb пуст, это означает, что виртуальная файловая система поддержки USB не смонтирована или смонтирована не в тот каталог. В каждом из каталогов 001, 002 и так далее у вас пока (до подключения к шине каких-то устройств) должно быть всего по одному файлу, имя которого тоже представлено трехзначным числом. Эти числа являются уникальными номерами USB-устройств, и пока что задают только номера контроллеров. Содержимое этих файлов нас пока не интересует.
Файл /proc/bus/usb/drivers содержит список зарегистрированных на данный момент драйверов (даже если драйвер не используется никаким устройством). Я у себя увидел в этом файле три строки:
Прежде чем рассматривать содержимое файла /proc/bus/usb/devices, давайте посмотрим, что происходит при подключении к USB-шине какого-то устройства. В Linux имеется программа /sbin/hotplug, основное назначение которой состоит в том, чтобы уведомлять приложения о существенных изменениях в системе, в первую очередь – об изменениях в составе аппаратных средств. Программа эта запускается из инициализационных скриптов (конкретно, в скрипте /etc/rc.sysinit). Когда вы подключаете USB-устройство к какому-либо порту, ядро обнаруживает это событие и изменяет файл /proc/bus/usb/devices. Соответственно, и при удалении устройства этот файл тоже изменяется. Следовательно, в нем в каждый момент времени содержится информация о каждом устройстве, подключенном в текущий момент времени к USB-шине.
Каждому конкретному устройству соответствует группа строк в файле /proc/bus/usb/devices , начинающаяся со строки, обозначенной буквой T:.
Отдельные строки содержат следующую информацию:
Строка, начинающаяся с буквы T:, задает топологию.
Bus указывает, к какой шине подключено устройство.
Lev указывает уровень устройства, начиная с уровня 00 для корневого хаба (root hub). Уровень 01 соответствует любому устройству, подключенному к корневому хабу, уровень 02 соответствует устройствам, подключенным к хабу уровня 01, и так далее.
Prnt указывает на устройство, являющееся родительским по отношению к данному (всегда 00 для корневого хаба и 01 для устройств, подключенных к корневому хабу).
Port — порт на родительском устройстве, начиная с 00 для первого порта каждого устройства.
Значения Prnt и Port уникальны в пределах одной шины.
Cnt показывает, какой номер имеет данное устройство на своем уровне в соответствии с порядком перечисления устройств данного уровня, начиная с номера 01 для первого устройства.
Dev# указывает номер устройства безотносительно к уровню. Этот номер уникален в пределах одной шины.
Spd указывает, с какой скоростью работает устройство в Мбит/сек. (возможные значения для версии 1.1 USB — 1.5 или 12).
MxCh показывает, сколько устройств может быть подключено к данному устройству; это число равно 00 для всех устройств, кроме хабов.
Driver показывает, какой драйвер используется для этого устройства; если указано none, значит никакого драйвера не используется.
Строки, начинающиеся с букв D: и P:, содержат информацию из спецификации устройства и сведения о производителе.
Самые интересные для нас строки (таких строк может быть несколько) начинаются с буквы S:. Эти строки содержат наименование известных системе устройств и имена их производителей.
Другие строки мы здесь подробно разбирать не будем, при желании вы можете найти такое описание в USB Guide, либо в файле linux/Documentation/usb/proc_usb_info.txt .
Для примера приведу вид файла /proc/bus/usb/devices на одном из компьютеров, у которого имелся один USB-порт, и никаких USB-устройств подключено не было:
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI Root Hub
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
После подключения flash-диска в этом файле появились следующие дополнительные строки:
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 9 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0ea0 ProdID=6803 Rev= 1.00
S: Product=Solid state disk
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=1ms
Как видите, содержимое файла /proc/bus/usb/devices позволяет достаточно точно определить, о каких USB-устройствах известно вашей системе. Однако, понять записи в этом файле без дополнительных разъяснений довольно сложно. Помочь в их расшифровке вам может программа usbview (разработчик — Greg Froah-Hartman, сайт программы — http://usbview.sourceforge.net). На рисунке 3 приведен вид окна этой программы. Как видите, прочитать информацию о подключенном к системе flash-диске с ее помощью несколько проще. Причем, устройство обнаруживается этой программой сразу после его подключения.
Рис. 3. Окно программы usbview
На этом изложение общих вопросов закончено, и можно перейти к рассказу о конкретном опыте работы с некоторыми из USB –устройств. Я расскажу здесь о своем опыте работы в Linux с тремя типами устройств: мышью, цифровым фотоаппаратом и накопителем на основе flash-памяти.
3. USB-мышь в Linux
После подключения USB-мыши к разъему в файле /proc/bus/usb/devices появились строки
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0
D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=046d ProdID=c002 Rev= 1.20
S: Product=USB-PS/2 Mouse M-BA47
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 50mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID) Sub=01 Prot=02 Driver=hid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
Курсор сразу же начал реагировать как на перемещения основной мыши, так и дополнительной, подключенной через USB. Никаких дополнительных усилий для обеспечения работоспособности USB-мыши не потребовалось. Причем в OpenOffice даже работало колесико, прокручивая страничку. На случай, если у вас все же возникнут какие-либо сложности, приведу некоторые дополнительные сведения о настройке USB- мышей, заимствованные мной из литературных источников.
Во-первых, проверьте, что ссылка с именем /dev/mouse указывает на правильный порт. Если у вас USB-мышь, то /dev/mouse должна указывать на /dev/input/mice.
Далее убедитесь, что существует файл /etc/sysconfig/mouse, и что в нем записано что-то вроде:
Первые две строки определяют, какой протокол будет использоваться, соответственно, в текстовом и графическом режимах. Третья строка нужна в случае, когда у вас двух-кнопочная мышь и третья кнопка эмулируется одновременным нажатием двух имеющихся кнопок.
Протокол — это чисто программная характеристика мыши. У мышей, подключаемых через последовательный порт, обычно работает протокол “Microsoft” а мыши типа PS/2 используют протокол »PS/2». Для USB- мыши в качестве протокола можно тоже указать »PS/2».
В последнее время появились мыши с колесиком, которые обеспечивают скроллинг (прокрутку) при вращении колесика и в силу этого очень удобны при работе с некоторыми программами (например, с текстовым редактором из пакета OpenOffice или браузером Mozilla). Колесико мыши заменяет одновременно 3-ю, 4-ую и 5-ую кнопки мыши (нажатие на колесико равносильно нажатию 3-ей кнопки, вращение в одном направлении – 4-ая кнопка, в другом – 5-ая). Использоваться скроллинг может только в графическом режиме, причем пакет XFree86 должен быть версии не ниже 3.3.2, и то скроллинг будет работать не в каждом приложении. Для USB- мышей с колесиком надо выбирать протокол “IMPS/2”.
Чтобы мышь корректно работала в графическом режиме, необходимо правильно задать секцию InputDevice в файле XF86Config-4. Вот пример соответствующей секции для мыши с колесиком, подключаемой через USB- порт:
Option «Device» «/dev/mouse»
Option «Protocol» «IMPS/2»
Option «ZAxisMapping» «4 5»
Option «Emulate3Buttons» «no»
Отмечу, что для мыши с колесиком последняя строка («Emulate3Buttons» «no») является обязательной.
После этого в графических средах KDE и GNOME скроллинг будет работать по умолчанию в большинстве приложений, например, в браузере Mozilla и офисном пакете OpenOffice.org. В отдельных приложениях (например, в текстовом редакторе Nedit) для использования скроллинга требуется произвести некоторые изменения в конфигурационных файлах приложения. Подробнее о том, какие дополнения и куда необходимо вписать, вы можете узнать на страничке Colas Nahaboo — http://koala.ilog.fr/colas/mouse-wheel-scroll/ .
4. Flash-диски
Вторым устройством, которое я попытался подключить через USB-разъем, был накопитель на основе энергонезависимой flash-памяти. Такие устройства часто называют flash-дисками, что, конечно, не верно, но думаю, что такое название приживется. Как оказалось, работа с такими устройствами в Linux осуществляется достаточно просто. После подключения flash-диска к разъему USB светодиод на нем начинает периодически мигать. После этого (если поддержка USB ядром имеется) можно просто смонтировать flash-диск командой:
[root]# mount –t vfat /dev/sda1 /mnt/usb
А если в файле fstab прописать строку вида
/dev/sda1 /mnt/usb vfat users,codepage=866, iocharset=koi8-r 0 0
то монтировать USB-диск смогут все пользователи простой командой
[user]$ mount /mnt/usb
Когда происходит обращение к этому диску, частота мерцания светодиода на нем повышается.
Внимание! Имейте в виду, что вынимать смонтированный flash-диск из разъема нельзя – после этого он может сразу перестать читаться. Необходимо предварительно размонтировать устройство, дождаться, пока мерцание снова станет более редким, и только после этого flash-диск можно отключать от разъема. Если вы все же умудрились «испортить» ваш flash-диск некорректным отключением, то имейте в виду, что его работоспособность можно восстановить с помощью специальных утилит, поставляемых разработчиком flash-диска (только обычно такие утилиты предназначены для использования под ОС Windows).
5. Цифровые фотоаппараты
Третьим типом USB-устройств, с которыми мне довелось поработать, был цифровой фотоаппарат Olympus C120. Я полагаю, что на сегодняшний день цифровые фотоаппараты вообще являются одним из самых распространенных типов устройств, подключаемых к компьютеру по шине USB. Существует три типа подключения таких устройств к компьютеру. Некоторые аппараты имеют кабель, подключаемый к USB-порту компьютера. Второй конец такого кабеля подключается непосредственно к фотоаппарату посредством специального разъема. Второй тип фотоаппаратов не имеет на корпусе разъема для подключения кабеля, зато снабжаются специальным адаптером, в который вставляется извлеченная из фотоаппарата карта памяти. Адаптер уже подключается к компьютеру и производится перенос файлов изображений на жесткий диск (или их отправка по электронной почте и так далее). И, наконец, третий тип подключения – это PCMCIA-адаптеры, которые тоже служат для переноса изображений с извлеченной из фотоаппарата карты памяти. Такие адаптеры обычно применяются только для работы с лэптопами. Поскольку мне приходилось иметь дело только с аппаратом, имеющим USB-разъем, то я буду рассматривать только случай камеры первого типа.
После того, как вы убедитесь, что ваше ядро поддерживает стандарт USB, подключите камеру к компьютеру через USB-порт (питание аппарата должно быть включено!) и убедитесь в том, ядро «видит» камеру. Судить об этом можно по тому, что в файле /proc/bus/usb/devices появятся строки, аналогичные тем, которые вы видите ниже:
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=07b4 ProdID=0105 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
Если камера не обнаружилась, необходимо проверить настройки «/proc/bus/usb» и «usbdevfs» (смотри раздел 2 выше). Если же ядро обнаружило камеру, то ее можно смонтировать точно так же, как монтировался flash-диск.
Некоторые дополнительные сложности могут возникнуть в том случае, если вы работаете попеременно с flash-диском и с цифровым фотоаппаратом. Если вначале была подключена камера, то даже после вполне корректного ее отключения подключить flash-диск у меня вначале не получалось. Как ни старался, команда mount выдавала такую ответную реакцию:
mount: /dev/sda1 is not a valid block device
Проблема разрешилась, когда я стал монтировать первое устройство как /dev/sda1, а второе — как /dev/sdb1. Найти такое решение мне помог файл /etc/sysconfig/hwconf. Этот файл формируется утилитой kudzu на этапе загрузки системы и содержит информацию об имеющемся в системе оборудовании. После одной из очередных перезагрузок я заметил, что устройство определилось как sdb, после чего мне удалось его смонтировать (в режиме суперпользователя). Ну а дальше уже нашлись и способы облегчения процедур монтирования.
В заключение раздела приведу два коротких замечания.
Первое: в состав некоторых дистрибутивов (например, ASPLinux версии 7.3) входит программа gPhoto, которая позволяет организовать работу с цифровыми фотоаппаратами и теми коллекциями фотографий, которые у вас накопятся вскоре после приобретения такого аппарата. Но осваивать работу с этой программой вам придется самостоятельно.
Второе: учитывая, что в имевшемся у меня цифровом фотоаппарате использовалась съемная карта flash-памяти, я полагаю, что с подключением к Linux-компьютеру выпускаемых для работы с такими картами специальных устройств, – картоводов, проблем тоже не возникнет, ибо подключение таких устройств к компьютеру производится обычно тоже по шине USB.
Если у вас имеются поправки и дополнения к этой статье, я готов опубликовать их здесь после получения от вас письма на адрес kos (at) rus-linux (dot) net.
Замечания и дополнения от читателей.
Здравствуйте. В своей статье вы рекомендуете, отмонтировать usb-накопители прежде чем вытаскивать их из разъёма, чтобы не были потеряны данные и испорчен накопитель. Но не сказали об опции монтирования «sync», которая, в общем-то, позволяет работать с такими устройствами более свободно и безопасно (с точки зрения забывчивости).
—
Лучшие пожелания, Андрей
Источник