Linux не видит фотоаппарат
Стандартная методика подключения
Итак, для начала вставь свою флешку в свободный USB-порт (или соедини фотоаппарат с компом USB-шнурком). Прежде всего, нам надо убедиться в том, что Linux успешно обнаружил подключаемый девайс. Для этого выполни структуру, составленную из двух команд:
Далее тебе нужно найти примерно такую строку:
USB Mass Storage device found at 2,
На худой конец попробуй поискать строку, похожую на этот шаблон:
USB new device connect on bus1/2
На рисунке ты можешь видеть содержание лога, который сгенерила моя ось по указанной команде. Если ты нашел строку, похожую на первый шаблон, то я могу тебя поздравить – система определила подключаемое устройство. Скорее всего, так и произойдет, но если flash’ка не определилась, то придется вспомнить статью «Hotplug в Linux», опубликованную в одном из предыдущих номеров «Железа».
SCSI вместо USB
Внимательно изучив полученный лог, можно обнаружить, что для работы с USB flash-накопителем используется эмуляция SCSI-харда. Сразу все становится понятно: мы смонтируем твой USB-девайс как обычный SCSI-винчестер. У тебя может возникнуть вопрос, а зачем вообще нужна эта эмуляция, и не проще было бы работать с устройством напрямую? Но я напоминаю, что девайсы в Linux (и не только) подразделяются на символьные и блочные. Обмен данными с символьными устройствами происходит побайтно, а с блочными – блоками определенного размера. USB-девайсы относятся к символьным устройствам, а различные дисковые накопители относятся к блочным. Все бы хорошо, и можно было бы этого не знать, но утилиты Linux, предназначенные для работы с накопителями, например, mount, работают только с блочными устройствами. Таким образом, с помощью эмуляции мы как бы «обманываем» Linux, заставляя его думать, что он работает с жестким диском.
Но вернемся к подключению флешки. Сначала нужно суиднуться, то есть выполнить программу su, чтобы получить права root (как второй вариант можно использовать утилиту sudo). Напоминаю, что более-менее грамотный пользователь Linux никогда не работает в системе с пр0вами суперпользователя. Затем перейдем в директорию монтирования:
В директории монтирования нужно создать директорию, куда ты будешь монтировать флешку:
Мы сделали так для простоты. Вообще, по стандарту этот каталог должен использоваться сисадмином для временно монтируемых файловых систем. Стандарт же предусматривает для монтирования всяческих поключаемых устройств подкаталоги в /media. Но кто соблюдает стандарты :)?
Для полного счастья установим права полного доступа на свежесозданную диру:
chmod a+rw flash
Эту команду хотелось бы рассмотреть поподробнее. С ее помощь мы устанавливаем на каталог flash права на чтение и запись (флаг +rw). Если ты хочешь убрать право на запись то используй флаг –w, а если захочешь добавить право на исполнение, то заюзай флаг +х. Также мы определили круг пользователей: a – для всех пользователей, u – для текущего пользователя и т.д. Если ты хочешь более подробно узнать, как пользоваться командой chmod, то вызови встроенную справку командой:
Итак, настал кульминационный момент – сейчас мы будем монтировать твой USB-девайс :). Для начинающих юзеров Linux поясним термин «монтирование диска», или «монтирование файловой системы». Смонтировать диск (файловую систему) означает, что ты подключил какое-либо устройство и загрузил необходимые модули для работы с его файловой системой. Так как любое устройство в Linux представлено специальным файлом, то это может быть ramdisk, loopback, раздел жесткого диска и т.д. В Linux существует понятие виртуальная файловая система, и когда ты монтируешь устройство или раздел, связывая файл, устройство и директорию монтирования, то ядро загружает соответствующий драйвер файловой системы, который может быть вкомпилирован в ядро или оформлен как модуль. Это реализуется через системные вызовы ядра. Таким образом, ты можешь работать с единым деревом каталогов и с различными файловыми системами, даже не подозревая об этом :). Соответственно, после использования устройство надо размонтировать. Отвечают за эти операции программы mount и umount. Так как при работе с flash drive эмулируется работа SCSI-накопителя то, и монтировать мы его будем как SCSI-хард:
mount /dev/sda1 /mnt/flash
С помощью этой команды мы смонтировали, то есть связали твой flash-девайс, за который отвечает файл устройства /dev/sda1 (не забывай про эмуляцию!), с каталогом /mnt/flash.
Этот пример использовался в моем случае, поэтому совсем не обязательно за твое устройство будет отвечать файл /dev/sda1. Были случаи, что при использовании одних USB Flash Drive операционная система назначала им файл устройства /dev/sda, а при использовании других – файл устройства выглядел как /dev/sda2. Наконец, при одновременном использовании SCSI-винчестера и USB-флешки файл устройства будет выглядеть совсем иначе. Так что если тебя постигла неудача, и неохота разбираться, то просто попробуй подставить другое значение.
В случае удачного монтирования программа ничего не возвращает, и должно появиться приглашение командного интерпретатора. Если же mount чем-то ругнулся, то проверь правильность написания команды или еще раз проверь, какой файл устройства ты назначаешь. То есть если mount вывел список своих ключей, то это означает, что ошибка – синтаксическая, а если mount вернул /dev/sd* no valid block devise – это значит, что ты неправильно указал файл устройства.
Теперь давай посмотрим на содержимое твоего девайса. Делается это с помощью следующей команды:
Программа ls отображает содержимое каталога /mnt/flash, а так как туда мы смонтировали наше устройство, то на мониторе должно отобразиться содержимое твоей флешки.
Небольшие улучшения
Наконец-то нам удалось подключить flash drive (или цифровой фотоаппарат), но сразу можно выделить два временных неудобства при работе с флешками в Linux. Неудобство первое: необходимо постоянно входить в систему с правами root, чтобы смонтировать устройство. Проблема фиксится следующим образом: нам нужно записать информацию о нашем девайсе в специальный конфигурационный файл /etc/fstab. В него записываются все логические и физические устройства, которые могут монтироваться (то есть разделы твоего харда, приводы CD-ROM/RW и так далее). Открой файл /etc/fstab удобным тебе текстовым редактором (я привык использовать vim, но, возможно, тебе больше понравится emacs или joe) и добавь в него строку следующего вида:
/dev/sda1 /mnt/flash auto noauto,user,rw 0 0
Давай рассмотрим основные параметры этой строки:
- /dev/sda1 – обозначает файл устройства, с которым связан flash-накопитель. Не забывай о том, что у тебя может быть назначено другое имя файла устройства!
- /mnt/flash – таким способом мы указали операционной системе место монтирования устройства.
Параметр auto означает, что операционная система сама определяет тип файловой системы. Могу заметить, что ошибается Linux редко :).
Далее у нас идет целая группа параметров, рассмотрим их в порядке появления:
Выражение noauto говорит операционной системе о том, что не нужно пытаться автоматически производить монтирование девайса при загрузке.
Параметр user в нашем случае имеет большое значение – именно он разрешает непривилегированному пользователю работать с USB flash-устройством.
Последний рассматриваемый параметр, rw, разрешает пользователю операции чтения и записи при работе со смонтированной флешкой.
После того как ты записал эту строку в файл /etc/fstab, сохрани изменения и выйди из текстового редактора. Изменения вступят в силу немедленно без перезагрузки. Чтобы убедиться, выполним команду «mount /mnt/flash» с правами непривилегированного пользователя. Обрати внимание, что на этот раз мы опускаем первый параметр. Если ты все сделал правильно, то после выполнения команды «ls /mnt/flash» должно отобразиться содержимое твоей флешки.
Напоследок, открой файл .bash_profile (обрати внимание на точку в названии файла!), который располагается в твоей домашней директории, и запиши в него две новые строки:
alias flashadd='mount /mnt/flash'
alias flashhkill='umount /mnt/flash'
Теперь ты можешь быстро смонтировать или размонтировать свое устройство, напечатав flashadd или flashkill, соответственно.
Теперь рассмотрим вторую проблему, которая связанна с отображением символов кириллицы в Linux. Если ты используешь кириллические символы для присвоения имен файлам, то тебя может ждать неприятный сюрприз, и вместо нормальных символов ты увидишь нечто, напоминающее египетские иероглифы. Я придумал два способа решить эту проблему. Способ первый – отказаться от использования кириллических символов при именовании своих драгоценных файлов :). Второй способ заключается в том, что мы немного модифицируем нашу новую запись в файле /etc/fstab. Строка должна принять следующий вид:
Нетрудно заметить, что мы добавили два новых параметра, которые включают перекодировку названия файла в KOI-8. Если ты планируешь редко монтировать девайс, и не стал ничего записывать в /etc/fstab, то тогда команда монтирования USB flash-устройства должна выглядеть примерно таким образом:
Чтобы посмотреть все ключи программы mount набери «man mount». Ключ –t auto включает автоматическое определение файловой системы. Отметим также, что отображение символов в указанной тобой кодировке будет верным лишь при условии, что твой Linux грамотно русифицирован. Правда, большинство современных дистрибутивов русифицированы по умолчанию, тем более что в Internet есть куча информации, как это правильно сделать.
Возможные проблемы
Если исключить варианты синтаксических ошибок или неправильного применения описываемых программ, то можно выделить три причины неудачного подключения flash-устройств: это отсутствие поддержки USB Mass Storage device (то есть поддержки flash-накопителей), отсутствие поддержки шины USB или отсутствие поддержки SCSI (SCSI нужен для эмуляции работы жесткого диска) в ядре Linux. Если при сборке ядра ты забыл указать один из этих пунктов, то тебе не удастся подключить свой девайс. Не будем подробно описывать процесс сборки ядра, так как данная тема не вписывается в рамки этой статьи и требует отдельного рассмотрения, кроме того, при желании ты сможешь найти тысячу и один подробный manual по компиляции ядра Linux.
Раздобудь где-нибудь последнюю стабильную версию ядра и распакуй ее в каталог /usr/src. Теперь переходи к конфигурированию ядра в директории, куда ты распаковал ядро. Выполни следующую команду «make config», если ты хочешь конфигурировать ядро, последовательно отвечая на вопросы, или «make menuconfig», и конфигурирование будет происходить в удобном текстовом меню, отображаемом в иерархическом виде. Строчка «make xconfig» – аналог предыдущей команды для системы X Window.
Вы подключили USB-флеш-накопитель или клавиатуру или мышь к вашему Linux ПК. Но ничего не происходит.
В чем дело? Почему ваш Linux ПК не обнаруживает устройство? Дело в Linux, или ваше USB-устройство перестало работать?
USB не работает в Ubuntu?
Дисководы, устройства чтения карт памяти, телефоны, медиаплееры и периферийные устройства мультимедиа… все они полезны, но если есть проблема с USB-портом или драйверами вашей системы, они не будут работать. Это может быть особенно неприятно, если вы используете клавиатуру Bluetooth или мышь (с USB-ключом), поскольку это означает выкапывание проводных альтернатив USB.
Однако, это может быть не неработающий порт. Возможно, USB-устройство, которое вы используете, имеет неисправность и не может быть обнаружено.
Решение проблем с USB может быть сложной задачей, но эти неисправности не невозможно диагностировать и сделать необходимые исправления.
Для устранения проблем USB в Linux необходимо выполнить пять шагов:
Давайте рассмотрим каждый из них по очереди и научимся работать с хитроумными USB-устройствами в Linux.
1. Ваше устройство обнаружено Linux?
К счастью, это просто.
Запомните результаты, затем подключите USB-устройство и снова запустите lsusb.
На этот раз вы должны увидеть дополнительное устройство, указанное с идентификатором шины, идентификатором устройства, USB-идентификатором и описанием. Если вы не можете определить, что такое дополнительное устройство (у вас может быть внутреннее устройство USB, возможно, Ethernet), попробуйте выполнить другую команду.
Команда dmesg перечислит подключенные USB-устройства в вашей системе. Он также будет включать в себя оборудование, отличное от USB и к сожалению, предоставляет огромный объем информации. Чтобы противостоять этому, вы можете попробовать:
Наконец, вы можете просто положиться на более удобный:
Это похоже на нечто среднее между командами dmesg и lsusb, перечисляя подключенное USB-оборудование с достаточной информацией для их идентификации.
Итак, USB который вы подключили, указан здесь? Если нет, то возможно порт поврежден или возникла проблема с устройством. Точно так же устройство может быть несовместимо с Linux.
2. Как проверить порт USB
Если USB-устройство не отображается, это может быть связано с неисправностью USB-порта.
Лучший способ проверить это, просто использовать другой USB-порт на компьютере. Если оборудование USB теперь обнаружено, то вы знаете, что у вас есть проблема с одним из USB-портов.
Если другой USB-порт недоступен, вам нужно попробовать USB-устройство на другом ПК или ноутбуке. Однако, это может быть не идеальным вариантом, поскольку в качестве альтернативы вы можете использовать компьютер с Windows или macOS и в данном случае, некоторые USB-устройства не могут использоваться в Linux. Так что будет сложно определить, что именно вызывает проблемы, является ли это USB-устройство или USB-порт.
Для достижения наилучших результатов, где это возможно, придерживаться Linux-совместимого оборудования при устранении неполадок USB-устройств.
3. Исправление поврежденного USB-оборудования
Исправление обычно включает проверку порта USB, а также устройства, которое в настоящее время не работает. Исправления почти всегда будут сосредоточены вокруг кабеля USB и порта на вашем компьютере. USB-кабели, как правило, могут быть заменены, однако USB-порты могут быть отремонтированы.
USB-порты, тем временем, должны быть проверены с выключенным ПК и отключены от электросети. Проверьте, что порты надежно закреплены, шаткие порты USB являются признаком износа оборудования.
Если USB-порт ослабевает, вы можете припаять его обратно на место. Конечно, вы уже должны знать как паять, никогда не пытайтесь выполнять DIY работу (сделай это сам) без предварительного опыта.
Кроме того, проверьте наличие пыли и грязи в USB-портах, особенно на задней панели компьютера, где регулярно собирается пыль. Пыль является врагом ПК, поэтому стоит держать вашу систему в среде где нет пыли. Пыль может проложить свой путь в ваш ПК через USB-порты, найдите время держать эти порты в чистоте. Используйте сжатый воздух для рассеивания пыли и грязи.
Можете ли вы вернуть свое USB-устройство? Если оно новое, то вероятно. Проблема в том, что если она явно не помечено как работающее под Linux, то магазин вряд ли примет возврат.
4. Перезагрузка Linux для исправления USB-порта
Так, что вы можете сделать?
Сначала проверьте, является ли причиной проблемы autosuspend. Вы можете сделать это, перезагрузив компьютер. Если USB-устройство работает, то этот USB-порт получает питание.
Откройте окно терминала и введите:
Измените это на:
Нажмите Ctrl + X для сохранения файла и выхода. Далее, обновите grub:
После этого перезапустите Ubuntu.
После перезагрузки войдите в свою учетную запись и снова введите команду cat:
На этот раз возвращаемое значение должно быть -1. Вы отключили autosuspend, поэтому USB-устройства, подключенные к ноутбуку, не должны выходить из строя из-за проблем с питанием.
5. Проверка драйверов USB-устройств на Linux
Когда-то давно USB-устройства не часто работали в Linux. Только устройства, производимые OEM-производителями с интересом к Linux (возможно, они использовали его для разработки), предложили драйвер Linux.
В наши дни все по-другому, большинство производителей предлагают драйвер Linux. В большинстве случаев это уже будет доступно в вашей операционной системе Linux через ядро. Вам не нужно устанавливать USB-драйверы.
Если драйвер недоступен, вы, вероятно, сможете его найти, связавшись с производителем устройства USB.
Устранение неполадок USB на Linux: исправлено!
Благодаря встроенным драйверам и широкой поддержке многих типов USB-устройств легко диагностировать проблемы с USB-оборудованием компьютера.
В то время как сломанное оборудование может потребовать ремонта или замены, также доступны исправления программного обеспечения.
Если вы недавно пришли с Windows, проблемы с USB на Linux могут быть проблемой. К счастью, эти проблемы обычно легко решаются, что облегчает переход на Linux!
$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0c45:6410 Microdia
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Сheese не ставил, сегодня попробую.
дополнение.
Cheese, как понимаю, проверяет работоспособность камеры, но она работала под windows в скайпе, так что проблема не в камере.
Я так понимаю, драйвер у вас на нее поставился.
В принципе, все должно работать, устройство должно быть в этом списке:
Попробуйте запустить ее с явным указанием устройства и дайте вывод терминала:$ ls /dev/video*
/dev/video0
user@a:
$ guvcview -d /dev/video<0/1>
bash: ошибка синтаксиса около неожиданной лексемы `newline'
user@a:
$ guvcview -d /dev/video0<0/1>
bash: ошибка синтаксиса около неожиданной лексемы `newline'
user@a:
$ lsusb -t
/: Bus 07.Port 1: Dev 1, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Driver=uhci_hcd/2p, 12M
/: Bus 05.Port 1: Dev 1, Driver=uhci_hcd/2p, 12M
|__ Port 2: Dev 2, If 0, Interface Device, Driver=usbhid, 1.5M
/: Bus 04.Port 1: Dev 1, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Driver=ehci-pci/6p, 480M
/: Bus 01.Port 1: Dev 1, Driver=ehci-pci/4p, 480M
|__ Port 2: Dev 2, If 0, Driver=uvcvideo, 480M
|__ Port 2: Dev 2, If 1, Driver=uvcvideo, 480M
user@a:
$
---------------------
поставил скайп, в настройках скайпа камера включается, звук не проверял, нужно установить пульсу.
guvcview -d /dev/video0 или mplayer tv:// -tv device=/dev/video0 для теста
/: Bus 01.Port 1: Dev 1, Driver=ehci-pci/4p, 480M
|__ Port 2: Dev 2, If 0, Driver=uvcvideo, 480M
|__ Port 2: Dev 2, If 1, Driver=uvcvideo, 480M
Иногда (это случилось со мной только однажды), Linux Mint не распознает USB-устройства, даже если мы подключаемся разными способами или через разные порты. Эта проблема также иногда затрагивает наши веб-камеры, но ее решение довольно простое.
Прежде чем принимать решение, которое я собираюсь вам дать, я рекомендую вам ознакомиться со статьей 5 способов отключить и подключить USB-устройство, не отрывая рук от клавиатуры где наш друг Gasparfm В нем очень подробно объясняется поведение USB-устройств и способы управления ими.
В моем случае USB-устройство перестало работать после форматирования и установки на него различных дистрибутивов.
Проверка USB
Первое, что я сделал, когда мое USB-устройство перестало работать, - это проверить, распознается ли оно fdisk с помощью sudo fdisk -l и я также попробовал gparted, но ни один из двух не распознал мой USB.
Затем используя lsusb это утилита для отображения информации о шинах USB в системе и подключенных к ним устройствах, мне удалось проверить, действительно ли мой USB подключен, следовательно, это не проблема с контактами или памятью.
Как заставить Linux Mint распознавать мое USB-устройство
Процесс решения проблемы, связанной с тем, что Linux Mint не распознает мой флеш-накопитель, довольно прост и легок. Для этого выполните следующие действия:
- Откройте терминал и выполните следующую команду
sudo modprobe usb-storage
- Перезагрузите компьютер.
- Проверить с sudo fdisk -l что ваша USB-память уже смонтирована и работает правильно.
Эта простая команда загружает в ядро модуль usb_storage, который иногда перестает загружаться.
Я надеюсь, что с помощью этого простого решения вы сможете решить эту досадную проблему и дать своим USB-устройствам необходимое использование. Помните, что это также работает для некоторых устройств, таких как цифровые камеры, mp3-файлы и другие.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Из Linux » GNU / Linux » Linux Mint не распознает USB-устройства
Читайте также: