This is an old revision of the document!
Table of Contents
Цель
Разобраться в структуре загружаемых модулей 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”, а обычным образом - нет никакой разницы
Discussion
Традиционно, для linux код возврата в случае ошибки (если не указано иного) – - <код ошибки>. Например -ENOMEM.
Существующие коды ошибок – include/linux/errno.h, include/asm/errno.h, include/asm-generic/errno-base.h