Компиляция файла исходника ядра (psmouse-base.c)
Модератор: Модераторы разделов
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Компиляция файла исходника ядра
Всем день добрый!
Такая проблема:
Обязательно требуется внести изменения в файл kernel-2.6.12/src/driver/input/mouse/psmouse-base.c
Я загрузил kdevelop, создал проект МОДУЛЬ ЯДРА, т.е. после компиляции на выходе psmouse.ko
засунул туда psmouse-base.c и начал компиляцию, а также дал ему все требуемые include.
вот такой вывод компилятора:
cd '/root/psmouse' && gmake -j1
make -C /lib/modules/2.6.18-std-smp-alt6/build SUBDIRS=/root/psmouse modules
CC [M] /root/psmouse/psmouse-driver.o
Building modules, stage 2.
MODPOST
WARNING: "ps2pp_init" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "alps_init" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "alps_detect" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "synaptics_reset" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "synaptics_init" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "synaptics_detect" [/root/psmouse/psmouse-driver.ko] undefined!
CC /root/psmouse/psmouse-driver.mod.o
LD [M] /root/psmouse/psmouse-driver.ko
*** Успешное завершение ***
Т.е вроде всё нормально, за исключением WARNINGов, а модуль в ядро не добавляется.
Как быть? Или этот путь заведомо неверен?
Качать исходники ядра и собирать его?
Такая проблема:
Обязательно требуется внести изменения в файл kernel-2.6.12/src/driver/input/mouse/psmouse-base.c
Я загрузил kdevelop, создал проект МОДУЛЬ ЯДРА, т.е. после компиляции на выходе psmouse.ko
засунул туда psmouse-base.c и начал компиляцию, а также дал ему все требуемые include.
вот такой вывод компилятора:
cd '/root/psmouse' && gmake -j1
make -C /lib/modules/2.6.18-std-smp-alt6/build SUBDIRS=/root/psmouse modules
CC [M] /root/psmouse/psmouse-driver.o
Building modules, stage 2.
MODPOST
WARNING: "ps2pp_init" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "alps_init" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "alps_detect" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "synaptics_reset" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "synaptics_init" [/root/psmouse/psmouse-driver.ko] undefined!
WARNING: "synaptics_detect" [/root/psmouse/psmouse-driver.ko] undefined!
CC /root/psmouse/psmouse-driver.mod.o
LD [M] /root/psmouse/psmouse-driver.ko
*** Успешное завершение ***
Т.е вроде всё нормально, за исключением WARNINGов, а модуль в ядро не добавляется.
Как быть? Или этот путь заведомо неверен?
Качать исходники ядра и собирать его?
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Компиляция файла исходника ядра
Ну так модуль у Вас появился, загрузите его командой
insmod /root/psmouse/psmouse-driver.ko
Чтобы он был видим системой, надо скопировать его в нужное место в директории /lib/modules/<версия> и прогнать depmod -a
insmod /root/psmouse/psmouse-driver.ko
Чтобы он был видим системой, надо скопировать его в нужное место в директории /lib/modules/<версия> и прогнать depmod -a
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
Я же говорю, что модуль в ядро не добавляется.
[root@ekset psmouse]# insmod psmouse-driver.ko
insmod: error inserting 'psmouse-driver.ko': -1 Unknown symbol in module
[root@ekset psmouse]# insmod psmouse-driver.ko
insmod: error inserting 'psmouse-driver.ko': -1 Unknown symbol in module
-
BlackStar
- Сообщения: 1338
- Статус: We are all Kosh
- ОС: Fedora 10
Re: Компиляция файла исходника ядра
Проверь что пишется в dmesg, скорее всего нужно подгрузить другой модуль в котором определены функции ps2pp_init, alps_init и т.д.
LightLang Team
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
dmesg дает тот же результат:
psmouse_driver: Unknown symbol alps_init
psmouse_driver: Unknown symbol alps_detect
psmouse_driver: Unknown symbol synaptics_reset
psmouse_driver: Unknown symbol ps2pp_init
psmouse_driver: Unknown symbol synaptics_detect
psmouse_driver: Unknown symbol synaptics_init
хочу сказать еще то, что эти функции определены в заголовчных файлах, которые я опдсунул при компиляции своего файла.
может как-то надо засунуть еще их реализации?
psmouse_driver: Unknown symbol alps_init
psmouse_driver: Unknown symbol alps_detect
psmouse_driver: Unknown symbol synaptics_reset
psmouse_driver: Unknown symbol ps2pp_init
psmouse_driver: Unknown symbol synaptics_detect
psmouse_driver: Unknown symbol synaptics_init
хочу сказать еще то, что эти функции определены в заголовчных файлах, которые я опдсунул при компиляции своего файла.
может как-то надо засунуть еще их реализации?
-
BlackStar
- Сообщения: 1338
- Статус: We are all Kosh
- ОС: Fedora 10
Re: Компиляция файла исходника ядра
Эти функции должен экспортировать модуль, который в данный момент не загружен в ядро. Что за модуль я не знаю, ищи в исходниках ядра.
LightLang Team
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
А я понял, что при компиляции ему надо указать на эти модули? Только в каком формате?
Или что-то просто подгрузить в ядро?
Или что-то просто подгрузить в ядро?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Компиляция файла исходника ядра
Функция ps2pp_init определена в logips2pp.c, соответственно компоновать модуль psmouse-driver.ko нужно с logips2pp.o. Вообще, стоит немного ознакомится с системой Kbuild и изучить Makefile переделываемого драйвера.
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
Я взял файлы, из которых он не мог найти ссылки, просто вставил их в этот же файл, всё вроде компилится и вставляется в ядро.
Буду пробовать на нужной машине.
Это нормальное решение?
Буду пробовать на нужной машине.
Это нормальное решение?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
я тоже не понимаю, но kdevelop, при создании модуля хоть и добавляет их в проект в маке файле их не происывает почему-то и в итоге то, с чего началась тема...
а ручками я пытался править... видимо пока это выше меня
а ручками я пытался править... видимо пока это выше меня
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
Да, но если зайти в каталог mouse и там это выполнить, то:
[root@terminal mouse]# make && make modules_install
make: *** No targets. Stop.
А если в корневом - то это уже сборка ядра получается....
Или где-то я ошибаюсь?
[root@terminal mouse]# make && make modules_install
make: *** No targets. Stop.
А если в корневом - то это уже сборка ядра получается....
Или где-то я ошибаюсь?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
да, если makefile нормальный, а там:
Код:
# Makefile for the mouse drivers.
# Each configuration option enables a list of files.
obj-$(CONFIG_MOUSE_AMIGA) += amimouse.o
obj-$(CONFIG_MOUSE_RISCPC) += rpcmouse.o
obj-$(CONFIG_MOUSE_INPORT) += inport.o
obj-$(CONFIG_MOUSE_LOGIBM) += logibm.o
obj-$(CONFIG_MOUSE_MAPLE) += maplemouse.o
obj-$(CONFIG_MOUSE_PC110PAD) += pc110pad.o
obj-$(CONFIG_MOUSE_PS2) += psmouse.o
obj-$(CONFIG_MOUSE_SERIAL) += sermouse.o
obj-$(CONFIG_MOUSE_HIL) += hil_ptr.o
obj-$(CONFIG_MOUSE_VSXXXAA) += vsxxxaa.o
psmouse-objs := psmouse-base.o alps.o logips2pp.o synaptics.o
и всё, поэтому снова:
[root@terminal sja]# make -C drivers/input/mouse/
make: Entering directory `/sja/drivers/input/mouse'
make: *** No targets. Stop.
make: Leaving directory `/sja/drivers/input/mouse'
в этом вся проблема...
а через kdevelop тоже вариант не прокатил...
вот это строка
PSMOUSE_DEFINE_ATTR(rate);
дает два раза WARNING:
/root/sjakko/sjakko-driver.c:74: предупреждение: initialization from incompatible pointer type
/root/sjakko/sjakko-driver.c:74: предупреждение: initialization from incompatible pointer type
но модуль компилируется в ядро вставляется, но не назначается Handler в /proc/bus/input/devices для mouse
-
sja
- Сообщения: 66
- ОС: ubuntu, altlinux
Re: Компиляция файла исходника ядра
Может быть, как-нибудь по другому, можно скомпилировать эти файлы?