Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как компилировать модули ядра?  (Прочитано 2535 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн winfack

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Как компилировать модули ядра?
« : 16 Февраль 2009, 12:01:46 »
Я установил обычный Ubuntu 8.10 Desktop (2.6.27-7).
Хочу писать kernel modules, драйверы для этой системы.
Читаю вУмную книжку LDD3, там ничего нет по сути настройки kernel tree,
хотя неоднократно упоминается необходимость таковой.

Хочу работать под той системой для которой буду писать драйверы
(сурово, да?)

Что пробовал сделать: скачал с kernel.org исходники, разархивировал их
в $HOME, потому как один источник не реккомендовал распаковывать это
всё в /usr/src/и так далее, а потом команды:
make mrproper
make oldconfig
make menuconfig //долго всё настраивал
make //дофига времени заняло
make modules_install
make install
   ilja@ilja-desktop:~/linux-2.6.28.5$ sudo make install
   sh /home/ilja/linux-2.6.28.5/arch/x86/boot/install.sh 2.6.28.5
   arch/x86/boot/bzImage System.map "/boot"
reboot

;---- и нифига ----
Когда компилирую исходник модуля с помощью
   gcc -Wall -o <objectname>  <source>
получаю те же самые ошибки, мол, не вижу библиотек, функций и т. д.

Чего делать подскажите??

Оффлайн Dorif

  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Как компилировать модули ядра?
« Ответ #1 : 16 Февраль 2009, 20:26:46 »
Если хошь с новым ядром грузиться- выполни команду update-grub  после установки ядра. Если не поможет- установи KGRUBEDITOR и делай всё вручную.
Тока не забудь initrd создать. ;)

Оффлайн winfack

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Как компилировать модули ядра?
« Ответ #2 : 17 Февраль 2009, 16:09:55 »
Если хошь с новым ядром грузиться- выполни команду update-grub  после установки ядра. Если не поможет- установи KGRUBEDITOR и делай всё вручную.
Тока не забудь initrd создать. ;)

initrd - это вроде загрузка модуля? Какой именно модуль надо загрузить после update-grub?

Оффлайн Dorif

  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Как компилировать модули ядра?
« Ответ #3 : 17 Февраль 2009, 16:58:31 »
Если хошь с новым ядром грузиться- выполни команду update-grub  после установки ядра. Если не поможет- установи KGRUBEDITOR и делай всё вручную.
Тока не забудь initrd создать. ;)

initrd - это вроде загрузка модуля? Какой именно модуль надо загрузить после update-grub?
initrd- Initial RAM disk, необходим для работы ядра(только если у тя не монолит). Это- хранилище модулей, из которого ядро грузит необходимые ему модули до того, как смонтирует ФС на жести. флэше или оптическом диске.  update-grub- добавляет ядро в загрузчик.(для того. чтоб после перезагрузки ты смог ядром своим воспользоваться). А вообще- делай так: вместо make install/make modules_install введи: make-kpkg -initrd kernel_image kernel_headers. Эта команда соберёт пакеты ядра(ищи их в /usr/src, если конечно исходники ядра у тебя там ;)). Потом тупо устанавливаешь эти пакеты( СНАЧАЛА kernel_headers), выполняешь update-grub- и радуешься работающему ядру с автоматически созданным initrd.))))))))) :)
« Последнее редактирование: 17 Февраль 2009, 17:05:20 от Dorif »

Оффлайн winfack

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Как компилировать модули ядра?
« Ответ #4 : 23 Февраль 2009, 10:50:00 »
 :-[

Процесс создания пакетов не удался:

/* тут дофига непонятной писанины*/ then rm -f "DEBIAN/md5sums" ; fi ; } ; create_md5sums_fn              /usr/src/linux-2.6.28.6/debian/linux-image-2.6.28.6
chmod -R og=rX                 /usr/src/linux-2.6.28.6/debian/linux-image-2.6.28.6
chown -R root:root             /usr/src/linux-2.6.28.6/debian/linux-image-2.6.28.6
dpkg --build                   /usr/src/linux-2.6.28.6/debian/linux-image-2.6.28.6 ..
dpkg-deb: сборка пакета linux-image-2.6.28.6 в файл ../linux-image-2.6.28.6_2.6.28.6-10.00.Custom_i386.deb.
dpkg-deb: у управляющего каталога установлен недопустимый режим доступа 2755 (должен быть >=0755 и <=0775)
make[1]: *** [debian/linux-image-2.6.28.6] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28.6'
make: *** [binary/linux-image-2.6.28.6] Error 2

ilja@ilja-desktop:/usr/src/linux-2.6.28.6$ sudo make-kpkg -initrd kernel_image kernel_headers

Объясните, что конкретно тут произошло? Судя по выводу в терминале, make-kpkg
сам же и поменял права доступа к /usr/src/<директория с ядром> !
Я пытался решить эту проблему с помощью chmod: права доступа к каталогам src/
/home; ещё я запускал make-kpkg из Root Terminal, тоже не помогло.

П.С. Начинаю всерьёз подумывать о переходе на другой дистрибутив Линукса  >:(

 

Страница сгенерирована за 0.056 секунд. Запросов: 24.