Не могу запустить драйвер
Добавлено: 11 июл 2013, 22:19
Здравствуйте! В данный момент изучаю книгу Linux Device Drivers 3. В ней в качестве учебного драйвера приводится пример символьного драйвера scull.
Исходники этого драйвера я скачал тут: https://github.com/martinezjavier/ldd3/ ... ster/scull
(Это офф источник указанный в книге).
Сборка прошла без проблем, но запустить я его так и не смог.
После сборки запуск производится скриптом scull.init с параметрами: start, stop, reload и т.п.
В ответ на командуполучаю следующий вывод:
Первая и последняя части сообщения (до insmod и FAILED!) выводит скрипт.
Так как сборка прошла успешно, то подозреваю, что проблема именно в scull.init.
Одно из предположений проблемы: в скрипте есть следующий участок:
Судя по всему, автор скрипта хотел чтобы пользователь что-то изменил в нем, но я не понимаю, что именно.
Помогите мне пожалуйста запустить этот драйвер и понять, что не так в скрипте.
P.S. драйвер можно так же запустить скриптом scull_load и отключить скриптом scull_unload (Они так же есть по ссылке). Однако при загрузке скрипта scull_load так же выскакивает ошибка insmod:
Скрипт scull.init заменяет по функционалу scull_load и scull_unload, поэтому сосредоточиться решил на нем, но если поможете запустить драйвер с помощью scull_load, то тоже будет здорово!
Заранее спасибо!
Исходники этого драйвера я скачал тут: https://github.com/martinezjavier/ldd3/ ... ster/scull
(Это офф источник указанный в книге).
Сборка прошла без проблем, но запустить я его так и не смог.
После сборки запуск производится скриптом scull.init с параметрами: start, stop, reload и т.п.
В ответ на команду
Код: Выделить всё
sudo ./scull.init start
Код: Выделить всё
Loading scull (loading file ./scull.o)insmod: error inserting './scull.o': -1 Invalid module format
FAILED!
Так как сборка прошла успешно, то подозреваю, что проблема именно в scull.init.
Одно из предположений проблемы: в скрипте есть следующий участок:
Код: Выделить всё
#FIXME: it looks like there is no misc section. Where should it be?
MODDIR="/lib/modules/${KERNEL}/kernel/drivers/${SECTION}"
if [ ! -d $MODDIR ]; then MODDIR="/lib/modules/${KERNEL}/${SECTION}"; fi
Помогите мне пожалуйста запустить этот драйвер и понять, что не так в скрипте.
P.S. драйвер можно так же запустить скриптом scull_load и отключить скриптом scull_unload (Они так же есть по ссылке). Однако при загрузке скрипта scull_load так же выскакивает ошибка insmod:
Код: Выделить всё
sudo ./scull_load
insmod: error inserting './scull.ko': -1 File exists
Заранее спасибо!