Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: как в линуксе установить драйвер для устройства?  (Прочитано 12719 раз)
0 Пользователей и 1 Гость смотрят эту тему.
konst
Гость
« : 02-06-2004 11:29 » 

можно ли не перекомпилируя ядро это сделать?
драйвер загружаемый serial.c ком-порта универсальный и писиай платочка, с адресом а400 и ирку 9 Улыбаюсь))
Записан
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #1 : 02-06-2004 15:37 » 

попробуйте собрать драйвер модулем, может помочь.
Записан
--Zap--
Гость
« Ответ #2 : 02-06-2004 15:43 » 

Цитата: darkelf
попробуйте собрать драйвер модулем, может помочь.

Насколько я знаю обычно так и делают(ведь создатили Линуха не тупые) если что не сочти за грубость это делается все примерно вот так:
Код:

$ gcc serial.c -c #комилируем модуль в object файл )а не executable!:
$ insmod serial.o # запихиваем его в kernel

Так же используя команды "lsmod"  и "rmmod" можно просматривать и удалять загруженные модули.
Записан
konst
Гость
« Ответ #3 : 02-06-2004 17:20 » 

дико извиняюсь, но, блин, это внутри самого serial.c написано, а читать я могу и даже писАть :\
я не про то спрашиваю.
есть уже у меня serial.o который прекрасно insmodица и rmmodица.
у меня также есть плата мультипортовая. писиай. плаг унд плэй. надо их как-то свести или подружить или как ещё...
в винде то просто, она по хардваре ийди связывает устройство и драйвер (можно ещё насильно попросить использовать драйвер для устройства), а в линуксе как???
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 02-06-2004 19:53 » 

konst, вроде бы мы уже говорили на эту тему... serial_register()
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
konst
Гость
« Ответ #5 : 04-06-2004 07:35 » 

не. это всё есть. есть драйвер-то, который с ядром идёт, serial.c -- универсальный, ну, неужели в линуксе не бывает универсальных драйверов!?
мне интересно, как линукс сопоставляет устройство и драйвер. вот в винде проблемы нет Улыбаюсь
что я вижу: при загрузке линукс ищет новые устройства и находит мой ком-порт, я отказался устанавливать для него драйвер и просил больше не спрашивать, что, как мне кажется, означает, что есть по крайней мере 2 места в линуксе, где, во-первых, храница список всех найденных ранее устройств, во-вторых, какие драйверы для каких устройств использовать. отсуда вопросы:
1. как простомотреть это
2. как управлять этим
3. как сделать так, чтобы при запуске линукс или по первому использованию загружался мой драйвер и получал инфу о пространстве ввода-вывода платы и ирку (ведь их же может быть и 2е!)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 04-06-2004 11:30 » 

konst, универсальный - значит поддерживает набор чипов, но не более.

Стандартно, он при старте находит 4 стандарных для PC порта (ну и еще одну или две нестандартные железки). Если нужно что-то еще - пиши свой модуль, который будет находить эти нестандартные порты и регистрить их в драйвере.

При старте тебя теребит утилита kudzu. Я ее сам не люблю - как-то криво и непонятно она работает.

Физические устройства находят сами драйвера. Если драйвер не запущен, то и устройства нет. Если драйвер включен в ядро, то при старте ядра каждый драйвер проходит инициализацию, во время которой он и ищет свои устройства.

Как найти устройство? - Через PCI, ISA PNP и прочие системы с автоопределением. Если же устройство не поддерживает это, то задать его можно только вручную, если, конечно, драйвер поддерживает такие параметры.

См. так же файл /etc/modules.conf - там задаются параметры и прочее, что нужно для настройки модулей. Но модули сами от этого загружаться не станут.
Модули могут загружаются такими способами: чисто вручную (в том числе из скриптов), автоматом при загрузке другого модуля (если модуль нужен другому для работы) и по зависимостям ядра (когда в ядре требуется фича, которая находится в модуле, но еще не загружена).
В случае драйвера физического устройства модуль нужно загружать "вручную". Например, поместить команду "modprobe имя_модуля" в /etc/rc.modules.
Какие-то драйвера загружают скрипты, выполняемые при загрузке.

Извиняй за сумбурность - параллельно работаю. Позжее чего-нибудь напишу.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
konst
Гость
« Ответ #7 : 04-06-2004 15:13 » 

спасибо за довольно развёрнутый ответ!
тоже напишу мысли и чё там разберу потом...судя по всему придётся править поиск действительно.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines