LINUX.ORG.RU

епусь не па дням а па чесам


0

0

решил значит я папрагммировать драйвера, аднако

и вот значит пишу я:

#vi test.c

#define MODULE
#include <linux/module.h>
                                                                                                                       
int init_module(void)
{
    printk("<1>Hello, world\n");
    return 0;
}

void cleanup_module(void)
{
    printk("<1>Goodbye cruel world\n");
}

:wq


и патома ищё


#gcc -c test.c

#inmod ./test.o

test.o: kernel-module version mismatch
        test.o was compiled for kernel version 2.4.20
        while this kernel is version 2.4.20-8.

миня это аднако очинь растраиваит, паетому я пашол папил пива, терерь оно кончилось, и надо таки шото делать, аднако. а я таки не знаю шо, и ето бальшое горе...
anonymous

мерский ламирр
нада читать книшки типа "Линьюс дивице драйвиррр" и читать што пишит insmod

а решить твою праблему можно пропатчив инклюдники ядра, кторые фтыкаешь в программу

jk_
()
Ответ на: комментарий от jk_

фо, фо, я уже и сам фрубился

пашол купил ищё пива и правил файл /usr/include/version.h

фместа

#define UTS_RELEASE "2.4.20"

я написал

#define UTS_RELEASE "2.4.20-8"

типерь сижу и курю трафу она наше фсё 8)

anonymous
()
Ответ на: комментарий от anonymous

RE:

Нужно не заголовочные файлы править, а модули собирать как в README написано.

gcc -c -I/lib/modules/`uname -r`/build/include ...

Murr ★★
()
Ответ на: RE: от Murr

>Нужно не заголовочные файлы править, а модули собирать как в README написано. 

НИФЕРЮ!!!
можит ето патаму чта у миня какашка РХ

#uname -r
2.4.20-8


# cat /lib/modules/`uname -r`/build/include/linux/version.h

#define UTS_RELEASE "2.4.20-8custom"
#define LINUX_VERSION_CODE 132116
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))



#gcc -c -I/lib/modules/`uname -r`/build/include test.c

insmod ./test.o
./test.o: kernel-module version mismatch
        ./test.o was compiled for kernel version 2.4.20-8custom
        while this kernel is version 2.4.20-8.

а вапще ф чем суть праверки на ферсию?

anonymous
()
Ответ на: комментарий от anonymous

RE:

anonymous:

>#uname -r
>2.4.20-8
># cat /lib/modules/`uname -r`/build/include/linux/version.h
А ты уверен, что больше нигде version.h не ковырял? Тогда и правда RH глюкает.

>а вапще ф чем суть праверки на ферсию?
Для разных ядер разные структуры, значения констант и т.п.
Если часто меняешь ядра, то проще всего прописывать путь к заголовочным файлам /lib/modules/`uname -r`/build/include (у меня работает и на vanilla ядре и на RH и на SuSE). Если же используешь одно, то действительно можно сделать ссылки /usr/include/linux->/usr/src/linux/include/linux, /usr/include/asm->/usr/src/linux/include/asm.

Murr ★★
()
Ответ на: комментарий от grustnoe

RE:

>redhat - это диагноз :)
Сам дистрибутив у них в целом ничего, но ядра - это полная клиника. Тот код, что я выложил в теме про ptrace, вылетает в oops в ptrace_check_attach (и это в ядре из коробки! RH 9.0 kernel 2.4.20-8), при этом прекрасно работая на vanilla.

Еще у клиентов регулярно всплывают проблемы из-за того, что при инсталляции SRPM ядра получается, что ядро собирается с CONFIG_HIGHMEM, но в autoconf.h эта опция чудесным образом вырезается и модуль, ессно, не может сделать kmap на выделенную память и падает.

Murr ★★
()
Ответ на: RE: от Murr

>А ты уверен, что больше нигде version.h не ковырял? Тогда и правда RH глюкает.

не не конечно не я =)
если п я минял я п туда custom точно не написал бы =)

anonymous
()

а можно еще проще сделать - перекомпилить ядро, убрав из него проверку версий модулей. и будет вам щастье :).

anonymous
()
Ответ на: комментарий от anonymous

RE:

>а можно еще проще сделать
счастье в виде сборки с заголовочными файлами от другой версии ядра?

еще раз говорю внутренние структуры в разных ядрах разные, поэтому при попытке доступа к одному полю ты получишь другое (это же касается inline функций в коде).

Murr ★★
()

А не сходить ли тебе для начала в школу? А то твоим познаниям в русском языке уступают разве что твои познания в Линуксе.

anonymous
()
Ответ на: комментарий от anonymous

>А не сходить ли тебе для начала в школу? А то твоим познаниям в русском языке уступают разве что твои познания в Линуксе

какой ты хлупый 8)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.