То, чего так долго ждали все мы!
Модератор: Модераторы разделов
-
Topper
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
То, чего так долго ждали все мы!
From: Olya Briginets <bolya@ukrpost.net>
Привет, 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 <bolya@ukrpost.net>");
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 ====
Привет, 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 <bolya@ukrpost.net>");
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 ====
Хрю.
-
Vladislav
- Сообщения: 383
- ОС: Debian Sid
Re: То, чего так долго ждали все мы!
И патч к нему 
From: Eugene Konev <ejka<at>imfi<dot>kspu<dot>ru>
To: debian-russian<at>lists<dot>debian<dot>org
Subject: [PATCH] mousepad driver
Date: Fri, 01 Apr 2005 12:46:46 +0800
Hello Olya.
On Fri, 01 Apr 2005 00:46:32 +0300
you wrote:
[ Тут прополз буквоед... ]
OB> Замеченные баги: при загрузке insmod выдаёт предупреждение, что моё
OB> ядро будет заражено кодом с не-GPL лицензией. Не уверена, это баг в
OB> моём модуле или в ядре. Как побороть -- не знаю.
MODULE_LICENSE("GPL") и всё вылечится.
[ Тут прополз буквоед... ]
Патч для 2.6 (маленько ругается при сборке, но работает):
diff -Nru mpad.orig/Makefile mpad/Makefile
--- mpad.orig/Makefile 2005-04-01 11:26:17.050350912 +0800
+++ mpad/Makefile 2005-04-01 11:37:10.837514740 +0800
@@ -1,6 +1,31 @@
+KVER := $(shell uname -r | cut -c -3)
+ifneq ($(KVER),2.6)
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
+
+else
+
+ifneq ($(KERNELRELEASE),)
+obj-m := mpad.o
+
+else
+KDIR := /lib/modules/$(shell uname -r)/build
+PWD := $(shell pwd)
+
+all:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
+
+install:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
+endif
+
+endif
+
+clean:
+ -rm -f *.o *.ko .*.cmd *.mod.c *~
+ -rm -rf .tmp_versions
+
diff -Nru mpad.orig/mpad.c mpad/mpad.c
--- mpad.orig/mpad.c 2005-04-01 11:26:01.544066836 +0800
+++ mpad/mpad.c 2005-04-01 11:28:18.147521651 +0800
@@ -2,6 +2,12 @@
* generic linux mousepad driver
*/
+#include <linux/version.h>
+
+#ifdef MODVERSIONS
+#include <linux/modversions.h>
+#endif
+
#include <linux/module.h>
#include <linux/proc_fs.h>
@@ -44,7 +50,10 @@
module_init(mpad_init);
module_exit(mpad_exit);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
EXPORT_NO_SYMBOLS;
+#endif
MODULE_AUTHOR("Olya <bolya@ukrpost.net>");
MODULE_DESCRIPTION("Generic driver for mouse pad");
From: Eugene Konev <ejka<at>imfi<dot>kspu<dot>ru>
To: debian-russian<at>lists<dot>debian<dot>org
Subject: [PATCH] mousepad driver
Date: Fri, 01 Apr 2005 12:46:46 +0800
Hello Olya.
On Fri, 01 Apr 2005 00:46:32 +0300
you wrote:
[ Тут прополз буквоед... ]
OB> Замеченные баги: при загрузке insmod выдаёт предупреждение, что моё
OB> ядро будет заражено кодом с не-GPL лицензией. Не уверена, это баг в
OB> моём модуле или в ядре. Как побороть -- не знаю.
MODULE_LICENSE("GPL") и всё вылечится.
[ Тут прополз буквоед... ]
Патч для 2.6 (маленько ругается при сборке, но работает):
diff -Nru mpad.orig/Makefile mpad/Makefile
--- mpad.orig/Makefile 2005-04-01 11:26:17.050350912 +0800
+++ mpad/Makefile 2005-04-01 11:37:10.837514740 +0800
@@ -1,6 +1,31 @@
+KVER := $(shell uname -r | cut -c -3)
+ifneq ($(KVER),2.6)
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
+
+else
+
+ifneq ($(KERNELRELEASE),)
+obj-m := mpad.o
+
+else
+KDIR := /lib/modules/$(shell uname -r)/build
+PWD := $(shell pwd)
+
+all:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
+
+install:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
+endif
+
+endif
+
+clean:
+ -rm -f *.o *.ko .*.cmd *.mod.c *~
+ -rm -rf .tmp_versions
+
diff -Nru mpad.orig/mpad.c mpad/mpad.c
--- mpad.orig/mpad.c 2005-04-01 11:26:01.544066836 +0800
+++ mpad/mpad.c 2005-04-01 11:28:18.147521651 +0800
@@ -2,6 +2,12 @@
* generic linux mousepad driver
*/
+#include <linux/version.h>
+
+#ifdef MODVERSIONS
+#include <linux/modversions.h>
+#endif
+
#include <linux/module.h>
#include <linux/proc_fs.h>
@@ -44,7 +50,10 @@
module_init(mpad_init);
module_exit(mpad_exit);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
EXPORT_NO_SYMBOLS;
+#endif
MODULE_AUTHOR("Olya <bolya@ukrpost.net>");
MODULE_DESCRIPTION("Generic driver for mouse pad");
-
xorader
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: То, чего так долго ждали все мы!
Хороший пример темплейта для драйвера... Оли-Боли рулят :lol:
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
-
snake
- Бывший модератор
- Сообщения: 677
Re: То, чего так долго ждали все мы!
На полном серьезе, у меня имееться *.inf файлик с помощью которого можно установить виндовый драйвер коврика для мыши от всех ведущих производителей (Verbatim -- точно поддерживаеться! :lol: ) В крайнем случае можно установить "драйвер коврика для мыши неизвестного производителя" (с рисунком или без)...
Вот, только под xp, по-ходу, не работает...
В реальности все не так, как на самом деле...
JabberID: zmeyk@jabber.ru
JabberID: zmeyk@jabber.ru
-
DW
- Бывший модератор
- Сообщения: 662
- Статус: и это еще не все или ничего.
Re: То, чего так долго ждали все мы!
УРА! наконец-то написали.
теперь и в драйверах Линукс Виндовсу не уступает
.
теперь и в драйверах Линукс Виндовсу не уступает
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
-
Topper
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
Re: То, чего так долго ждали все мы!
Для snake:
кажись, у меня такой тоже где-то валялся... еще в Хакере году этак в 99 была инструкция по написанию такого инф-файла
кажись, у меня такой тоже где-то валялся... еще в Хакере году этак в 99 была инструкция по написанию такого инф-файла
Хрю.
-
VN_MAClover
- Сообщения: 1233
- Статус: Человек с бульвара Капуцинов
Re: То, чего так долго ждали все мы!
А как этот драйвер реагирует на пыль?
In RMS we trust.
Зачем нам Ваши окна, если LAMPочка даёт достаточно света?
Зачем нам Ваши окна, если LAMPочка даёт достаточно света?
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: То, чего так долго ждали все мы!
Для VN_MAClover:
А в нём реализована функция очистки. Правда, реализована пока всего на 43%...
А в нём реализована функция очистки. Правда, реализована пока всего на 43%...
-
VN_MAClover
- Сообщения: 1233
- Статус: Человек с бульвара Капуцинов
Re: То, чего так долго ждали все мы!
(czarker @ Вторник, 05 Апреля 2005, 22:32) писал(а):А в нём реализована функция очистки. Правда, реализована пока всего на 43%...
Лучше реализовать функцию объёмного обсчёта количества пыли с внесением коррекции в реальном времени!!!!!
In RMS we trust.
Зачем нам Ваши окна, если LAMPочка даёт достаточно света?
Зачем нам Ваши окна, если LAMPочка даёт достаточно света?
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: То, чего так долго ждали все мы!
Для VN_MAClover:
Угу. С программным удалением.
Угу. С программным удалением.
-
TIM
- Сообщения: 91
- ОС: FreeBSD
Re: То, чего так долго ждали все мы!
IMHO, подобный драйвер должен заниматься чем-нибудь полезным, напр. измерять пробег и скорость грызуна (что-нибудь типа /proc/mpadinfo)
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: То, чего так долго ждали все мы!
Для TIM:
Угу. Полезное дело...
Лучше пусть в него (/proc/mpadinfo) пишутся сообщения, которые отображаются на экран только в графическом режиме.
Угу. Полезное дело...
Лучше пусть в него (/proc/mpadinfo) пишутся сообщения, которые отображаются на экран только в графическом режиме.
-
Ослик ИА
- Сообщения: 261
Re: То, чего так долго ждали все мы!
не.
лучше пусть выводит эти сообщения на коврике.
лучше пусть выводит эти сообщения на коврике.
спасибо за внимание
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: То, чего так долго ждали все мы!
Для Ослик ИА:
Угу...
Угу...
-
Topper
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
Re: То, чего так долго ждали все мы!
шутки-шутками, а для меня и еще нескольких сотен счастливцев понятие "драйвера для коврика" не кажется приколом...
Хрю.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: То, чего так долго ждали все мы!
Почему?..(Topper @ Среда, 06 Апреля 2005, 18:19) писал(а):шутки-шутками, а для меня и еще нескольких сотен счастливцев понятие "драйвера для коврика" не кажется приколом...
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
VN_MAClover
- Сообщения: 1233
- Статус: Человек с бульвара Капуцинов
Re: То, чего так долго ждали все мы!
(Topper @ Среда, 06 Апреля 2005, 18:19) писал(а):шутки-шутками, а для меня и еще нескольких сотен счастливцев понятие "драйвера для коврика" не кажется приколом...
Неужто коврик умер из-за кривых дров?
In RMS we trust.
Зачем нам Ваши окна, если LAMPочка даёт достаточно света?
Зачем нам Ваши окна, если LAMPочка даёт достаточно света?
-
Topper
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
Re: То, чего так долго ждали все мы!
просто у меня коврик подключается к компу кабелем :P
я ж писал про приобритение чудо-мыши...
я ж писал про приобритение чудо-мыши...
Хрю.
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: То, чего так долго ждали все мы!
Для Topper:
Приду домой, прикручу к коврику витую пару и воткну в компостер. Тоже стану модным.
Приду домой, прикручу к коврику витую пару и воткну в компостер. Тоже стану модным.
-
xorader
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: То, чего так долго ждали все мы!
нада exploit написать 
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
-
Topper
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: То, чего так долго ждали все мы!
Так расскажи, зачем ему хвост. Или ссылку дай, раз писал.(Topper @ Четверг, 07 Апреля 2005, 16:05) писал(а):просто у меня коврик подключается к компу кабелем
я ж писал про приобритение чудо-мыши...
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж