Я новичок в программировании ядра, и я кое-что застрял, поэтому я был бы признателен за помощь.Я заранее прошу прощения, если что-то подобное было задано ранее, я не нашел ни одного соответствующего поста и мог найти в Интернете объяснения, которые были бы достаточно просты для понимания того, кто неопытен в этой области, как я.
Я хочуэкспериментируйте с моей собственной версией ext2.Я получил исходные файлы с kernel.org и внес соответствующие изменения.Ничего особенного, просто чтобы проверить то, что я имел в виду.
Теперь я хочу вставить это в мое ядро linux (ubuntu 2.6.31-14-generic-pae, если это имеет значение).Как я могу это сделать?
Моей (очевидно наивной) первоначальной мыслью было просто использовать make-файл, который идет вместе с ним (после ручной установки различных флагов, чтобы он имел obj-m / obj-y там, где это необходимо)и скомпилируйте его как модуль ядра.
Однако я продолжаю получать ошибки во время компиляции о переопределении макросов, неявных объявлениях функций и т. Д. Например,
ext2.h:181:1: warning: "ext2_find_first_zero_bit" redefined
balloc.c:574: error: implicit declaration of function dquot_free_block_nodirty
Очевидно, что это не тот путь.Я предполагаю, что в худшем случае снова компилируется все ядро (с моим измененным кодом ext2 вместо оригинала), поэтому он создает соответствующую библиотеку с моим собственным ext2 и перезагружается из нового образа.Мне трудно поверить, что это лучший подход.
Возможно ли даже вставить новую файловую систему в качестве модуля ядра?
Возможно, я должен поместить свой модифицированный код ext2 в/ usr / src и каким-то образом компилировать только соответствующую библиотеку, которая содержит текущий код ext2?
В любом случае, я был бы признателен за любую помощь в том, что я должен делать.
Спасибо