URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9660
[ Назад ]

Исходное сообщение
"Как задать новую опцию сборки ядра Linux"

Отправлено tux2002 , 01-Апр-13 18:23 
Здравствуйте.
Я оредактировал файлик /usr/src/linux-2.6.37.6/fs/Kconfig и добавил опцию:

config FS_TEST_OPTION
        bool "Test option"
        default n
        help
             Test option

Включил её в make menuconfig
Ожидаю в тексте #ifdef CONFIG_FS_TEST_OPTION... #endif
Но переменная не включилась.
Что я не доделал?


Содержание

Сообщения в этом обсуждении
"Как задать новую опцию сборки ядра Linux"
Отправлено Спокойный аноним , 01-Апр-13 19:54 
> Что я не доделал?

забыл добавить в Makefile
obj-$(CONFIG_FS_TEST) += test/


"Как задать новую опцию сборки ядра Linux"
Отправлено tux2002 , 01-Апр-13 21:33 
>> Что я не доделал?
> забыл добавить в Makefile
> obj-$(CONFIG_FS_TEST) += test/

Спасибо, но мне не нужно собирать в подкаталоге test. Мне нужно чтобы была определена переменная препроцессора CONFIG_FS_TEST_OPTION в уже существующих файлах fs/*.c

Ну вот в /usr/src/linux/include/linux/fs.h


#ifdef CONFIG_FSNOTIFY
        __u32                   i_fsnotify_mask; /* all events this inode cares about */
        struct hlist_head       i_fsnotify_marks;
#endif


CONFIG_FSNOTIFY это именно переменная выставляемая опцией сборки ядра FSNOTIFY.

Мне надо тожесамое с моей опцией.


"Как задать новую опцию сборки ядра Linux"
Отправлено pavlinux , 02-Апр-13 00:45 
>[оверквотинг удален]
> #ifdef CONFIG_FSNOTIFY
>         __u32    
>            
>     i_fsnotify_mask; /* all events this inode cares
> about */
>         struct hlist_head  
>     i_fsnotify_marks;
> #endif
> CONFIG_FSNOTIFY это именно переменная выставляемая опцией сборки ядра FSNOTIFY.
> Мне надо тожесамое с моей опцией.

--- a/fs/ioctl.c     2013-03-27 06:41:26.000000000 +0400
+++ b/fs/ioctl.c 2013-04-02 00:39:19.691000000 +0400
@@ -21,6 +21,10 @@
/* So that the fiemap access checks can't overflow on 32 bit machines. */
#define FIEMAP_MAX_EXTENTS     (UINT_MAX / sizeof(struct fiemap_extent))

+#ifdef CONFIG_FS_TEST_OPTION
+    #error "CONFIG_FS_TEST_OPTION"
+#endif
+
/**
  * vfs_ioctl - call filesystem specific ioctl methods
  * @filp:      open file to invoke ioctl method on
--- a/fs/Kconfig     2013-03-27 06:41:26.000000000 +0400
+++ b/fs/Kconfig 2013-04-02 00:37:16.088000000 +0400
@@ -4,6 +4,12 @@

menu "File systems"

+config FS_TEST_OPTION
+       bool "Test option"
+       default n
+       help
+         Test option
+
if BLOCK

# make mrproper;
# make oldconfig;
# make menuconfig /* если нужно */