Форум — Development kernel 2.6 module problem 0 0 Сделал простейший моhelloow world с priдуль для ядра 2.6 ntk(); делаю insmod test.ko всё ок printk() срабатывает делаю rmmod test - пишет ошибку, ресурс занят, почему так? Ссылка
Ответ на: комментарий от rei3er 09.09.08 23:10:46 MSK нет, в примерах его не видел ни разу anonymous (10.09.08 00:52:20 MSK) Ссылка
Ответ на: комментарий от lv 09.09.08 19:03:19 MSK Простой hello_init() printk() и всё anonymous (10.09.08 00:53:14 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 10.09.08 00:53:14 MSK тогда код покажи rei3er ★ (10.09.08 09:07:39 MSK) Показать ответ Ссылка
Ответ на: комментарий от rei3er 10.09.08 09:07:39 MSK #include <linux/uaccess.h> #include <linux/init.h> #include <linux/module.h> #include <linux/kdev_t.h> #include <linux/fs.h> #include <linux/cdev.h> MODULE_LICENSE( "Dual BSD/GPL" ); static unsigned char device_name[100] = "my_device\0"; static int device_count = 10; static dev_t device_number; static struct cdev *my_cdev = NULL; static unsigned char my_buf[100]; static size_t my_buf_size = 0; static int __init hello_init( void ) { int result = 0; printk( KERN_ALERT "Privet moy dikiy mir hello_init\n" ); printk( "test hello init %d\n", result ); return( 0 ); } static void __exit hello_exit( void ) { printk( KERN_ALERT "Privet moy dikiy mir hello_exit\n" ); printk( "test hello exit\n" ); return; } module_init( hello_init ); module_exit( hello_exit ); anonymous (10.09.08 12:27:43 MSK) Показать ответы Ссылка
Ответ на: комментарий от anonymous 10.09.08 12:27:43 MSK У меня всё ок.. Кстати, а зачем там много глобальных непонятно зачем нужных переменных в начале объявлено? lv ★★ (10.09.08 12:37:12 MSK) Ссылка
Ответ на: комментарий от anonymous 10.09.08 12:27:43 MSK Навряд ли в этом проблема, но покажи ещё свой Makefile и команду, которой модуль компиляешь.. lv ★★ (10.09.08 12:42:02 MSK) Показать ответ Ссылка
Ответ на: комментарий от lv 10.09.08 12:42:02 MSK Makefile: obj-m := test.o компиляция: #!/bin/sh # make -C /usr/src/linux-source-2.6.18 M=drivers/char/my_drv clean make -C /usr/src/linux-source-2.6.18 M=drivers/char/my_drv -Wall modules 2>err.log anonymous (10.09.08 13:30:02 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 10.09.08 13:30:02 MSK Ну, собственно, у меня Makefile: obj-m += nw.o mk: #!/bin/bash make -w -C /usr/src/linux M=`pwd` modules mk запускается из каталога с исходником модуля. Имя исходника nw.c Но вроде как и у тебя всё нормально... не знаю даже чего и посоветовать.. lv ★★ (10.09.08 13:39:56 MSK) Ссылка
Может ядро собрано без поддержки удаления модулей - CONFIG_MODULE_UNLOAD? eth (10.09.08 15:43:58 MSK) Показать ответ Ссылка
Ответ на: комментарий от eth 10.09.08 15:43:58 MSK Вот уж не знаю. debian lenny anonymous (10.09.08 16:02:20 MSK) Показать ответы Ссылка
Ответ на: комментарий от anonymous 10.09.08 16:02:20 MSK $ grep CONFIG_MODULE_UNLOAD /boot/config-$(uname -r) INFOMAN ★★★★★ (10.09.08 16:21:07 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 10.09.08 16:02:20 MSK Заработало после установки ядра 2.6.18-6-486 из репозитария etch anonymous (11.09.08 10:42:55 MSK) Ссылка
Ответ на: комментарий от INFOMAN 10.09.08 16:21:07 MSK CONFIG_MODULE_UNLOAD=y anonymous (11.09.08 10:44:37 MSK) Ссылка