Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:kernel

This is an old revision of the document!


Модульная анатомия

Цель

Разобраться в структуре загружаемых модулей Linux, больше узнать об устройстве ядра.

Ресурсы

Ноутбук Acer Aspire 3680 (старенький), дистрибутив Debian, голова и интернет.

Действия

Первый пункт

Нам нужно скачать, скомпилировать исходники ядра, с которым мы будем работать. Пользуемся возможностями Debian и получаем исходники ядра из репозитория Debian (всегда можно воспользоваться и http://kernel.org)

  • sudo apt-get update
  • sudo apt-get install liux-doc-2.6.32 linux-manual-2.6.32 linux-source-2.6.32
  • cd /usr/src/
  • tar jxf /usr/src/linux-source-2.6.32.tar.bz2
  • sudo apt-get install build-essential fakeroot kernel-package
  • make menuconfig
  • sudo make-kpkg clean
  • sudo fakeroot make-kpkg –initrd –append-to-version=-mine kernel_image kernel_headers

*1 советую обновить gcc (если пользуетесь stable, то обновлять с testing, в противном случае ядро не соберется, так как не будет нужных заголовочных файлов), вообще стоит использовать новые версии всех требуемых пакетов

*2 возможно придется доставить некоторые другие пакеты (см /usr/share/doc/kernel-package/Kernel.htm)

*3 ядро можно собрать и не “в стиле Debian”, а обычным образом - нет никакой разницы

*4 в даной версии ядра пришлось поправить файл /usr/src/linux-source-2.6.32/Documentation/lguest/lguest.c, в нем нужно было убрать строку #include <sys/eventfd.h> (21 строка), хотя я не понял почему, но погуглив нашел, что такое решение используют и другие.

Discussion

jcmvbkbc, 2010/01/30 22:00

Традиционно, для linux код возврата в случае ошибки (если не указано иного) – - <код ошибки>. Например -ENOMEM.

Существующие коды ошибок – include/linux/errno.h, include/asm/errno.h, include/asm-generic/errno-base.h

You could leave a comment if you were logged in.
etc/users/kernel.1264637276.txt.gz · Last modified: 2010/01/28 03:07 (external edit)