Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Цилюрик О.И. Linux-инструменты для Windows-программистов
Назад Компиляция и сборка приложений Вперед

Сборка модулей ядра

Частным случаем сборки приложений есть сборка модулей ядра Linux (драйверов), для сборки модуля (в ядрах 2.6.х) составляется Makefile построенный на использовании макросов, нам остаётся только записать (для файла кода с именем mod_params.c), как шаблон для сборки модулей:

CURRENT = $(shell uname -r)
KDIR = /lib/modules/$(CURRENT)/build
PWD = $(shell pwd)
TARGET = mod_params
obj-m      := $(TARGET).o
default:
        $(MAKE) -C $(KDIR) M=$(PWD) modules
...

В результате:

$ make

make -C /lib/modules/2.6.18-92.el5/build M=/home/olej/2011-work/Linux-kernel/examples/modules-done_1/hello_printk modules
make[1]: Entering directory `/usr/src/kernels/2.6.18-92.el5-i686'
  CC [M] /home/olej/2011-work/Linux-kernel/examples/modules-done_1/hello_printk/hello_printk.o
  Building modules, stage 2.
  MODPOST
  CC     /home/olej/2011-work/Linux-kernel/examples/modules-done_1/hello_printk/hello_printk.mod.o
  LD [M] /home/olej/2011-work/Linux-kernel/examples/modules-done_1/hello_printk/hello_printk.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.18-92.el5-i686'

$ ls -l *.o *.ko
-rw-rw-r-- 1 olej olej 74391 Мар 19 15:58 hello_printk.ko
-rw-rw-r-- 1 olej olej 42180 Мар 19 15:58 hello_printk.mod.o
-rw-rw-r-- 1 olej olej 33388 Мар 19 15:58 hello_printk.o

$ file hello_printk.ko
hello_printk.ko: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped

$ /sbin/modinfo hello_printk.ko
filename:      hello_printk.ko
author:        Oleg Tsiliuric <olej@front.ru>
license:       GPL
srcversion:    83915F228EC39FFCBAF99FD
depends:
vermagic:      2.6.18-92.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1

Предыдущий раздел: Оглавление Следующий раздел:
Создание проектов, сборка make   Установка программного обеспечения