Есть USB IrDA донгл ARKMICRO-3118, но под него нигде нет драйвера. Где-то вычитал что он должен заработать под драйвером ark3116 (который входит в дистрибутив Альта-4.0), но в него надо внести ID моего девайса. Как мне объяснили есть два пути: вычленить исходник модуля драйвера из исходника модуля ядра, либо сразу найти исходник модуля драйвера (нашёл) и в них внести изменения. Затем собрать модуль.
Исходник драйвера взял с сайта http://avr.auctionant.de/ark3116_linux_driver/ файл ark3116-0.4.2.tgz
Вопросы:
- Как вычленить модуль драйвера из исходника ядра?;
- Куда внести изменения?;
- Как правильно собрать модуль?
Сбока модуля драйвера
Модераторы: Skull, Модераторы разделов
-
Alexei_VM
- Сообщения: 765
- ОС: ALT Linux Sisyphus
Re: Сбока модуля драйвера
Есть много способов. Есть правильный способ в терминах ALT. Я его, к сожалению, не умею. Поэтому приведу рабочий, но (идеологически) неправильный.
1. Установите пакеты kernel-headers* и kernel-headers-modules* для своего ядра.
2. Создайте символьную ссылку /usr/src/linux -> /usr/src/linux-версия-вашего-ядра (если ее нет)
3. Скачайте с сайта драйвер, распакуйте в любое место (по сути, оттуда понадобится только Makefile).
4. Возьмите исходники вашего ядра (например, из пакета kernel-source-версия), и из каталога drivers/usb/serial скопируйте файл ark3116.c в каталог с драйвером. Там уже есть этот файл, но он старый, его следует заменить новым.
5. Отредактируйте файл под свои нужды.
6. make и (от рута) make install
-
NIMNUL
- Сообщения: 4
- ОС: ALT-Linux
-
Alexei_VM
- Сообщения: 765
- ОС: ALT Linux Sisyphus
Re: Сбока модуля драйвера
Не знаю
Но могу предположить, что сюда вписать по аналогии еще одни {} с USB_DEVICE(xxx,yyy):
Код: Выделить всё
static struct usb_device_id id_table [] = {
{ USB_DEVICE(0x6547, 0x0232) },
{ },
};