реклама на сайте
подробности

 
 
> Встраивание номера сборки в модуль драйвера, или как отучить номер сборки изменяться без правки исходников
Hoodwin
сообщение Mar 12 2013, 12:51
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Вопрос такой. Есть небольшой драйвер, который собирается примерно таким Makefile-ом:
Код
...
KERNEL_DIR := $(LINUX_C6X_TOP_DIR)/Build/kobjs/my_kernel
ROOTFS_DIR := $(LINUX_C6X_TOP_DIR)/Build/rootfs/kernel-modules-$(ARCH)
INCVER := ../../IncVer/incver

# /lib/modules/$(CURRENT)/build
PWD = $(shell pwd)

obj-m   := my_driver.o
my_driver-y := driver.o

module:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
    $(INCVER) version.h

install:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) INSTALL_MOD_PATH=$(ROOTFS_DIR) modules_install

...


Решил приделать нумератор сборок к нему и написал простенькую утилитку incver, которая парсит хидер и добавляет единичку к define-у, отвечающему за номер сборки. Запускаю ее после успешной сборки самого модуля.
В целом все хорошо, номерок тикает, но вот напрягает то, что сборка выполняется всякий раз, когда я дергаю make и в итоге номер сборки меняется при каждой сборке, даже если ничего не поменялось в исходниках.
Вопрос заключается в том, можно ли как-нибудь добиться такой ситуации, чтобы номер сборки увеличивался только при действительно произошедшей сборке?

Чисто теоретически понятно, что надо написать явную зависимость my_driver.ko от всех .o $(my_driver-y) и выполнять $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules не в таргете module, а в таргете my_driver.ko. Однако тут все же есть такой нюанс, что при изменении чего-нибудь в самом ядре драйвер тоже может потребовать пересборки, так как бинарник из-за этого поменяется. И тогда вопрос звучит так: можно ли что-то из ядра включить в зависимость к my_driver.ko или проще забить и следить только за своими исходниками?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01339 секунд с 7
ELECTRONIX ©2004-2016