5/04/2007

Если устройство в Linux работать не хочет: где скачать драйвера для линукс?

Если устройство в Linux работать не хочет, то не надо пытаться скачать где-то драйвера для Linux и сразу кричать "Linux - отстой, Windows рулит", потому как часто решение - в шаге от вас. Немного терпения, и всё скорее всего получится.

Устройство в Линукс не работает - что делать?
Для того, чтобы попробовать решить проблему, требуется:

1. Точно узнать название устройства и подробности его работы. Лучший способ - посмотреть логи, большинство которых находится в каталоге /var/log (они доступны для просмотра только пользователю root)
  • Если устройство подключается к USB - пишем в консоли lsusb > lsusb.txt
  • Если это встроенное устройство или подключено к ISA/PCI, пишем lspci > lspci.txt
  • Так же для обращения в поиск и форум потребуется вывод команды dmesg
  • Если проблема с видеокартой или вообще видеоподсистемой - сохраняйте /var/log/X.org.conf или /var/log/XFree86.conf (у кого он остался)

2. Учитесь читать и анализировать логи - в них часто не только ответ на ваш вопрос, но и путь к его решению. Это приходит с опытом, но надо же с чего-то начинать...
Пример: пользователь жалуется, что в ноутбуке при подключении USB-мыши Линукс зависает. Это в общем не характерное для Линукс поведение, тем более в случае USB-шины, может быть вызвано:
а) кривым драйвером (что редко) или
б) кривым оборудованием (что чаще).

Опытный факт: если в оборудование работает неправильно, ядро об этом будет сыпать сообщениями типа Warning и FATAL часто, пока проблема не решится.

Смотрим логи dmesg: одна из строк выглядит так

PCI: BIOS Bug: MCFG area at e0000000 is not E820-reserved
Кто владеет английским на уровне школы, тот может догадаться, что в BIOS какая-то ошибка. Смотрим дальше:

PCI: Bus #03 (-#06) is hidden behind transparent bridge #02 (-#03) (try 'pci=assign-busses')
Please report the result to linux-kernel to fix this permanently
Так и есть: а вот и возможное решение нашей проблемы! Об этой проблеме ядро "скажет" ещё не раз:

PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
PCI: Cannot allocate resource region 3 of device 0000:00:00.0
Какой-то регион 3, какие-то устройства... не сразу можно понять. Интересно, где это себя проявляет?

ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 17
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
Это USB-устройства - всё сходится. Зависание Линукса при втыкании USB-мыши происходит благодаря кривизне рук программистов, написавших BIOS. Теперь понятно не только кто в этом виноват и куда копать, но и один из возможных методов решения.

Помогает либо установка более нового ядра, чем то, которое уже стоит, либо, как ни странно, установка более старого.

3. Локализуем проблему. Что именно не работает?
  • Если это принтер, за это отвечает подсистема CUPS, поэтому официальный сайт в помощь: проверьте, поддерживается ли ваш принтер и если да, то в какой степени. Попробуйте установить более свежую версию CUPS, походите по форумам - желательно с логами, версией ядра и подробным описанием проблемы.
  • Если это сканер - наш рулевой это подсистема SANE и гугление по словам sane linux _модель_сканера_.
  • Работу звуковых карт обеспечивает проект ALSA, где можно так же узнать о поддержке оборудования. Для этого имеет смысл так же попробовать установить или собрать самому более свежее ядро Линукс (в ядре содержится большое количество драйверов).
  • За сенсоры и термодатчики на материнских платах отвечает проект lm85, который состоит из драйверов ядра и утилит работы с ними.
  • Источники бесперебойного питания (UPS) поддерживаются пакетом apcups.

Попытаться устранить проблему при помощи гугления по методу _имя_проекта_ linux _название устройства_. Очень и очень часто решение есть и ждёт своего часа. Если гугление и прочие методы не принесли желаемого результата - остаётся подождать, пока проблему решат и / или добавят драйвер устройства в ядро или программы связанных с устройством проектов. В конце концов, двойную загрузку (dual boot) с другими операционными системами никто не отменял.

Ссылки и благодарности

Пост был вдохновлён комментарием _Yuriy_ на opennet, в котором говорилось, что "написать обзор может каждый дурак, а вот что делать, когда устройство не пашет?" Насчёт первой части утверждения можно и поспорить, а во второй части есть сермяжная правда - надеюсь, кому-нибудь этот пост пригодится.

18 комментариев:

  1. В качестве десктоп-системы пока использую XP (так как имеется лицензия), но все твои посты про железо в Linux'е читаю с интересом и сохраняю себе на будущее - скоро накопится критическая масса и тогда полностью перееду в Linux.
    + готовлю жену к переменам ;)

    ОтветитьУдалить
  2. Кто бы помог наладить работу микрофона в линукс на моем стареньком Делл Inspiron 5000e. Боюсь что так просто не получится. А за статью спасибо.

    ОтветитьУдалить
  3. пасибо, ценная информация

    ОтветитьУдалить
  4. 2 Яков пишет...
    Поправьте линк на linuxprinting.org ;)
    О, спасибо! Исправил. Так же мелкие стилистические баги пофиксены :-)


    2 Roman Sozinov пишет...
    В качестве десктоп-системы пока использую XP (так как имеется лицензия), но все твои посты про железо в Linux'е читаю с интересом и сохраняю себе на будущее
    Если будете ставить убунту (а это лучше всего) - вам они могут и не понадобиться. :-) Там всё скучно и на полном автомате.

    скоро накопится критическая масса и тогда полностью перееду в Linux.
    Должна накопиться критическая масса раздражения от глюков и сбоев винды. :-)

    + готовлю жену к переменам ;)
    А вы ей в качестве графической оболочки ГНОМ поставьте: не поверите, скорее всего даже обрадуется. Я одной знакомой ставил Убунту - так она сказала "ой, какая прелесть, игрушек сколько, и всё так просто - что ж ты раньше этот линукс не показал" :-)

    2 Анонимный пишет...
    Кто бы помог наладить работу микрофона в линукс на моем стареньком Делл Inspiron 5000e.
    А на linux-on-laptops.net что-нибудь про это пишут? В alsamixer ползунок для микрофона от-mutt-или?

    А за статью спасибо.
    Пожалуйста.

    2 Pretorean пишет...
    пасибо, ценная информация
    Если что-то упустил - не стесняйтесь, пишите в комментарии.

    ОтветитьУдалить
  5. А ты поди им объясни, кто круче :) и что чтение логов или гугление это хорошо.
    Смешно, блин. Серьезно. :)

    Да, я тоже это полюбляю и иногда умею, и выход найти могу и решение собрать.
    А вот было дело. Значит у моей жены на нуте хрюша, зло котороя. Как-то ее сестра припёрлась к нам с мобильником с ИК портом. Поднесли, подключились, работает. Фотки какие-то дурацкие поперекидывали. Без вопросов. До этого даже не пользовались никогда и не знали как это работает. Таинственный ИК порт!

    Я себе представляю, что нужно сделать, чтобы у меня в базовом арче+ флюксе совершить подобное :) Это ж полдня шаманства будет..

    Или вот еще. Сегодня утром приплыло новое ядро, в котором модуль звуковухи не работает. Вот не работает. Загружается устройства несоздает :) Жду когда пофиксят. На эксперименты полдня убил. А ведь хотел просто сеть в кваку побегать.

    А, да. За статью спасибо ;)

    ОтветитьУдалить
  6. 2 libc6 пишет...
    А ты поди им объясни, кто круче :) и что чтение логов или гугление это хорошо.
    Это необходимо. Захотели отсутствия вирусов и большей производительности - извольте палец о палец ударить. Или обратно в винду, или выкладываем деньги за Мак, или включаем мозг. :-)


    А вот было дело. Значит у моей жены на нуте хрюша, зло котороя. Как-то ее сестра припёрлась к нам с мобильником с ИК портом. Поднесли, подключились, работает.
    Повезло - а у меня на старом ноутбуке оно глючило неимоверно. Иконка ИК-приёмника появляется, все дела, но часто при передаче файла всё обрывалось на части файла - и всё, кранты. Только перезагрука, а то и не одна. Ни логов, ни рецептов.

    Я себе представляю, что нужно сделать, чтобы у меня в базовом арче+ флюксе совершить подобное :)
    А ты на арч перешёл? Давно? :-)
    Когда я настраивал блютус в Дебиане, мне потребовалось ровно 20 минут гугления и 1 простой скрипт. И всё пашет. В KDE это пашет просто автоматом: втыкаешь и работает.

    Сегодня утром приплыло новое ядро, в котором модуль звуковухи не работает.
    То есть как всплыло? Зачем ставить новые ядра, когда и старые работают? А такое бывает, хоть и не часто...

    А вот у меня недавно была возможность протестировать XP ещё раз. Новая система, двуядерная и все пальцы веером. Кноппикс на ней, ясен пень, грузится без вопросов. 3D-десктоп с ходу не пашет, а так нормально. Видит диски, сетевые карты и всё такое. СТавим ЗлоХР. Видит только 130Гб из 250. Сетевой карты и звука нет, для принтера тем более, драйвера для навороченной карты поставил какие-то феерические: если окошко начать перемещать, оно это делает чуть ли не попиксельно. Комп за 1500$, хозяин в шоке. Как тебе "передовые технологии мелкософт"?

    А, да. За статью спасибо ;)
    Да не за что. Надеюсь она, Анрей, тебе не пригодится :-))

    ОтветитьУдалить
  7. Спасибо за статью, очень интересно и познавательно.

    ОтветитьУдалить
  8. Ктоб подсказал как заставить корректно SkyStar2 работать?
    У него любимая привычка постепенное "засыпание" (szap говорит FE_HAS_LOCK имеется а потока нет,tcpdump -i dvb0_0 -n ничего не видит).Сменено две разных карты, несколько ядер. Раздел /usr/src/linux/Documentation/dvb/ весь перечитан.
    Пока что самое лучщее найденное решение:
    - скрипт с пинговкой каждые 5 сек сайта, пинга нет-выгрузка дров и повторная загрузка.
    Стоит сейчас 2.6.19-gentoo-r5
    2.6.20 с kernel.org - тоже самое

    (2.6.20-gentoo-r7 не ставлю-там по непонятной причине(мои кривые руки при сборке?) пропала таблица nat в iptables)

    ОтветитьУдалить
  9. Привет, было бы наверно еще актуально написать в эту статью о том как определить на какой шине весит например вновь "воткнутая" флешка, просто у некоторых знакомых бывает такая ситуация, что они втсавляют флешку она не монтируется и не знаеют какой /dev/sda прописать для монтирования.

    ОтветитьУдалить
  10. 2 Дмитрий пишет...
    Ктоб подсказал как заставить корректно SkyStar2 работать?
    Смутно подозреваю, что это сетевая карта. Ни разу не видел. Так что я во всяком случае наверное не помогу.

    2 mczim пишет...
    Привет, было бы наверно еще актуально написать в эту статью о том как определить на какой шине весит например вновь "воткнутая" флешка
    Ммм... а dmesg не спасает отцов русской демократии? :-) Есть ещё lsusb. Но в общем надо бы добавить. Спасибо за идею.

    ОтветитьУдалить
  11. Полезная статейка. Но к счастью уже какое-то время такие проблемы не стоят. Даже не знаю как так получилось.

    ОтветитьУдалить
  12. 2 Michael de`Oz пишет...
    Полезная статейка. Но к счастью уже какое-то время такие проблемы не стоят.
    У меня почему-то тоже :-) Втыкаю оборудование - и оно работает. НО на форумах часто обратная ситуация - собственно, новичкам на форумах посвящается...

    ОтветитьУдалить
  13. А я вот не могу модем настроить на ноутбуке. Перепробовал несколько способов, тяжело с винмодемами, однако.

    ОтветитьУдалить
  14. Засыпание SkyStar2.
    Борюсь таким способом:
    1. создаю файл
    в /etc/modprobe.d/dvb-core такого содержания:
    options dvb-core\ dvb_shutdown_timeout=0
    #(не получилось в одну строчку написать)
    # если сигнал слабый dvbкарта все-равно засыпает
    2. запускаю xskynet
    "если кто не знает - программа для рыбалки со спутника"
    dvb карта постоянно получает сигнал и не засыпает.
    В винде такой способ не проходит. там с одного пида одновременно самому подключаться к инету и рыбачить нельзя.

    ОтветитьУдалить
  15. options dvb-core dvb_shutdown_timeout=0
    обратный слеш не нужен, писал строка переносилась, а в итоге правильно оказалось

    ОтветитьУдалить
  16. Спасибо, очень интересная и полезная статья.

    ОтветитьУдалить
  17. Ну хорошо как работать с устройствами USB понятно стало. А вот как быть вот с таким случаем. После обновления Ubuntu 10.04 до 10.10 проблемки начались с видеокартой. После загрузки BIOS появляется вот такая надпись:""Fatal error incorected i915 (lib/modules/2.6.35-23 generic/kernel/drivers/gpu/-drm/i915/i915.ko):Nо such device." Пробывал загружаться со старой версией ядра ошибка не исчезает. Заранее благодарю!

    ОтветитьУдалить