Ответы пользователя по тегу Драйверы
  • Как тестировать драйвера?

    leahch
    @leahch Куратор тега Linux
    Я мастер на все руки, я козлик Элек Мэк :-)
    С копмиляцией вам уже посдказали. Давайте я про отладку расскажу. Во первых очень желательно иметь две машины - одну для компиляции и отладки, вторую - таргет, куда все грузим и где тестируем и проверяем
    1) используем printk, в 95% случаев этого достаточно
    2) если аппаратура позволяет, используем jtag - это аппаратный модуль для отладки - 100% успех!
    3) можно использовать kgdb - не всегда это работает.

    Ну и совсем сильная магия - использовать статическую область памяти, где реализуем кольцевой буфер и туда пишем своими средствами отладочную информацию напрямую. Но для этого статическая память должна быть на каком-то из устройств, я обычно пишу в статику в часики реального времени, но не везде они есть и имеются. За то таким образом можно отлаживать абсолютно все, от NME, до драйверов высокоскоростных устройств.
    Ответ написан
  • Как установить intel HD драйверы в ubuntu?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Так, я счяз все объясню!

    1) Драйверы есть в ядре(!!!), и скорее всего они стартуют. Смотрим lsmod | grep i915
    Если не стартовал, то или чипсет не поддерживается, или какой-то мезальянс с аппаратурой и драйвером (что очень редко).

    2) Драйвер графической системы (XWindow) цепляется за драйвер ядра. Но не всегда он правильно определяет что нам нужно и начинает использовать вместо акселерированного драйвера драйвер VESA. Посмотреть можно в логах X (где-то в недрах /var/log/, сейчас не помню).
    Для победы над врагом рекомендую создать каталог /etc/X11/xorg.conf.d и прописать туда файл с именем 20-intel.conf с текстом
    Section "Device"
        Identifier "Intel Graphics"
        Driver "intel"
    EndSection

    Перезапустить системку.
    Ответ написан
  • Не хочет устанавливать драйвер через Bootcamp?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Я тоже поставил SSD, а старый диск на место DVD. Винду так и не поставил, промучившись пол дня. При этом проблема со звуком в винде у тебя не порешается.
    Как пишут в интернетах, ставь первым диском HDD, и будет винда со звуком, и сам виндовс без проблем встанет. Но мне лень переставлять и винда работает в vmware fusion.
    Ответ написан
  • Как разработать программу, которая будет взаимодействовать с другой (сервотехника)?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Если говорить за микросовт уиндоуз, то у него есть технология OLE. Если элементы программы оформлены как COM-компоненты (а это часто бывает со scada-программами), то эти COM-объекты можно дергать из другой программы. Описание здесь - https://ru.wikipedia.org/wiki/Microsoft_OLE_Automation

    Ну и в сети где-то валялся ole-browser, который позволяет без программирования посмотреть на объекты. А вот, в visualstudio имеется - https://msdn.microsoft.com/en-us/library/d0kh9f4c.aspx

    Если программа не использует COM/OLE, то придется вытаскивать данные другими способами, но это лучше у виндузятников спрашивать.

    PS. Вот здесь альтернативы как посмотреть объекты forum.script-coding.com/viewtopic.php?id=4481
    Ответ написан
  • Как обратиться к памяти pci устройства при написании драйвера под Linux?

    leahch
    @leahch Куратор тега Linux
    Я мастер на все руки, я козлик Элек Мэк :-)
    Тут важно знать, как на PCI эта плата видна. Есть ли DMA, или только регистры PCI?
    Объяснять достаточно долго, лучше прочитать, а если что непонятно, задавать более конкретные вопросы.
    Общее:
    - найти устройство pci_get_device()
    - установить регистры PCI, включить устройство
    - установить обработчик прерывания
    - отмапировать DMA и регистры
    - далее, работаем обычно через обработку прерывания, реализацию IOCTL или через дескриптор устройства. (по поводу реализации своих ioctl, лучше сначала посмотреть ен подходит ли чего из существующего)

    Документация по работе с PCI из драйвера - https://www.kernel.org/doc/Documentation/PCI/pci.txt
    Очень хорошее объяснение работы PCI - www.tldp.org/LDP/tlk/dd/pci.html
    Да и вообще обязательно прочитать эту книгу полностью - www.tldp.org/LDP/tlk

    Разрабатывать быстро драйверы можно начать с Померанца (но там нет PCI, а только примеры реализации драйверов) www.tldp.org/LDP/lkmpg/2.6/html/index.html

    В любом случае в помощь lspci, документация в самом ядре и конечно же исходники драйверов и то, что рекомендовал.

    PS. И да, это не так сложно, как у меня написано! Простой PCI-драйвер строк в 100-150!!!!
    Ответ написан
  • При долгом отключении что делать?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    "абырвалг"
    Перефразируйте вопрос, ничего не понятно! Что, когда, куда, зачем...
    Попробую догадаться.
    1) На макбуке в режиме bootcamp (?) установлена Win8
    2) Кто-то обновил драйвер (а какой?)
    3) Что-то работало 2 минуты, а стало работать 15 секунд?
    4) Операционка (Win8?) не выключается самостоятельно?
    5) Именно после обновления (каких драйверов?) стала греться (этого драйвера?). а теперь не греется(?)!
    6) Разобрали макбук (зачем?), поменяли термопасту (????)
    7) Что делать не знаем, когда макбук долго не работал? (При долгом отключении что делать?)
    Ответ написан
  • Debian. Почему нет звука?

    leahch
    @leahch Куратор тега Linux
    Я мастер на все руки, я козлик Элек Мэк :-)
    Первое, чтобы проверить, какие карты проинициализировались в ядре, нужно дать команду "arecord -l", будет примерно так:
    root@xxx:~# arecord -l
    **** List of CAPTURE Hardware Devices ****
    Home directory /home/xxx not ours.
    card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 2: ALC892 Analog [ALC892 Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: S0000 [SC580, Audio Capture #00.00], device 0: PCM #00 [PCM #00]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 2: S0100 [SC580, Audio Capture #01.00], device 0: PCM #01 [PCM #01]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 3: S0200 [SC580, Audio Capture #02.00], device 0: PCM #02 [PCM #02]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 4: S0300 [SC580, Audio Capture #03.00], device 0: PCM #03 [PCM #03]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    root@xxx:~#

    Второе - посмотреть в биосе, может быть просто карта запрещена.
    Третье - запустить alsamixer и подвигать ползунки.
    Четвертое - если стоит графика, то посмотреть на pulseaudio, права доступа в audio-устройствам и прочее.

    Если нет устройств по arecord, то смотреть в сторону драйверов...
    Если устройства находятся, то как минимум они работают, но звук может просто не туда маршрутизироваться аудио-демоном, обычно это pulseaudio, но бывает и jack-audio и oss!

    Ну и проверить, что просто звук идет через нужную карточку:
    # cat /dev/urandom | aplay -D hw:0,0

    Ну и вот ссылка на всякий - en.wikibooks.org/wiki/Configuring_Sound_on_Linux/H...
    Ответ написан
  • Как заработать новичку на низкоуровневом программировании?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    На системном программировании можно не только копейки зарабатывать. Вариантов несколько: начать самостоятельно с простых контроллеров типа stm32 или rasberrypi; устроиться на оборонку или в фирму, которая делает разработки на мк; пойти на практику в одну из таких фирм.
    Например обратитесь в ртсофт в центр разработок или в центр системного ПО.
    Ответ написан
  • Не запускается Linux после установки драйвера

    leahch
    @leahch Куратор тега Linux
    Я мастер на все руки, я козлик Элек Мэк :-)
    Варианты решений:
    1) У юбунты есть Recovery загрузка, попробовать через нее.
    2) Нажать любую клавишу при загрузке для выхода в меню grub. Отредактировать строку загрузки дописав init=/bin/bash. Далее, после загрузки, перемонтировать рут командой mount -o remount,rw /. После удалить/исправить ядро.
    3) загрузиться с LiveCD или USB, подмонтировать HDD, восстановить ядро или убить драйвер. Ядро лежить в каталоге /boot. Драйвера в каталоге /lib/modules/<версия ядра>
    Ответ написан