???????? ???????????????? ?? ????????

Преимущeства Open Source

Программы, software, hardware, warez, cracks и все что с этим связано.

Преимущeства Open Source

Сообщение PS » Пт апр 01, 2005 12:29 pm

Subject: mousepad driver for 2.4
===8<==============Original message text===============
Привет, All!

Подарили мне новый красивый коврик для мышки с надписью Verbatim, я было обрадовалась, но оказалось, что у меня нет для него драйверов. Как ни странно, в ядре 2.4.27 (а также 2.4.21, 2.4.18 и, по-видимому, всех 2.4) нужного драйвера не нашлось. Полезла искать в интернет -- тоже ничего не нашла, в лучшем случае то, что находилось по словам "mouse pad linux driver", оказывалось драйвером для TouchPad'а. На сайте Вербатима про драйвера для ковриков вообще ничего не нашлось. Поискала ещё на разных сайтах, где бывают драйвера, но нашла только драйвер под MS Windows 98, и не для моего Verbatim-а, а вообще для ковриков. Как раз рядом стоит комп с MS Windows 98, я проинсталлировала туда драйвер, подложила под мышку свой коврик -- всё работало! Воодушевленная этим, я решила, что, даже не зная Verbatim-овских спецификаций, можно написать generic драйвер для коврика и под Linux, и он будет работать. Ниже представлено то, что у меня получилось после нескольких часов напряжённого кодирования. Тестировалось с ковриком Verbatim и двумя Noname.

Тестировала только под 2.4.27, но по идее должно работать и под другими 2.4. Думаю, несложно переписать и под 2.6. Если кто-то поделится даташитами конкретных моделей ковриков, можно будет добавить их поддержку. Неплохо бы добавить автораспознавание, но я пока не видела ковриков, поддерживающих plug-n-play; единственное, что приходит в голову -- снимать изображение коврика веб-камерой и распознавать с помощью gocr. Ещё, наверное, надо бы добавить возможность поменять модель коврика в /proc на лету без перезагрузки модуля, если пользователь захочет сменить коврик (пока что модель задаётся при загрузке модуля параметром model). Пишите ваши замечания и предложения, следующую версию модуля планируется выпустить через год.

Замеченные баги: при загрузке insmod выдаёт предупреждение, что моё ядро будет заражено кодом с не-GPL лицензией. Не уверена, это баг в моём модуле или в ядре. Как побороть -- не знаю.

Код: Выделить всё
==== start of file mpad.c ====

/* mpad.c
 * generic linux mousepad driver
 */

#include <linux/module.h>
#include <linux/proc_fs.h>

#define DRV_VERSION     "0.0.1"
#define MODEL_GENERIC "Generic"

char *model;
int size[2];
MODULE_PARM (model, "s");
MODULE_PARM_DESC (model, "Mouse Pad model (default Generic)");
MODULE_PARM (size, "2i");
MODULE_PARM_DESC (size, "Mouse Pad width and height in mm (default 0)");

int  mpad_read_proc (char *buf, char **start, off_t offset,
                   int count, int *eof, void *data)
{
  int len = 0;
  len += sprintf(buf+len,"model:\t%.80s\n", model);
  len += sprintf(buf+len,"width:\t%d\n", size[0]);
  len += sprintf(buf+len,"height:\t%d\n", size[1]);
  *eof = 1;
  return len;
}

static int __init mpad_init(void)
{
        if (!model) model=MODEL_GENERIC;
        create_proc_read_entry ("driver/mousepad", 0, NULL, mpad_read_proc,
NULL);
        printk(KERN_INFO "Mouse Pad Driver v" DRV_VERSION "\n");
        return 0;

}

static void __exit mpad_exit (void)
{
  remove_proc_entry ("driver/mousepad", NULL);
  printk(KERN_INFO "Mouse Pad Driver unloaded\n");

}

module_init(mpad_init);
module_exit(mpad_exit);
EXPORT_NO_SYMBOLS;

MODULE_AUTHOR("Olya <[email protected]>");
MODULE_DESCRIPTION("Generic driver for mouse pad");
MODULE_LICENSE("Public Domain");

==== end of file mpad.c ====

Код: Выделить всё
==== start of file Makefile ====
CC=gcc
MODCFLAGS := -Wall -I/usr/src/linux/include -DMODULE -D__KERNEL__ -DLINUX

mpad.o:        mpad.c
#/usr/src/linux/include/linux/version.h
        $(CC) $(MODCFLAGS) -c mpad.c
==== end of file Makefile ====

--
Оля
Чтобы наши письма доходили до адресатов
Аватара пользователя
PS
Отец Александр
 
Сообщения: 2089
Зарегистрирован: Пн ноя 03, 2003 15:00 pm


Сообщение NEX » Пт апр 01, 2005 13:35 pm

:lol: :lol: :lol:
Проведение любых мероприятий на высшем уровне -> www.ArendaZvukaSveta.ru
Аватара пользователя
NEX
Здесь живет давно...
 
Сообщения: 2831
Зарегистрирован: Пн ноя 03, 2003 13:58 pm
Откуда: хз


Вернуться в Сети, программы и железо

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

cron
Яндекс.Метрика