38d1736f

Создаем ядро Linux


Я создал зацикленное устройство с использованием ядра версии 2.0.31, другие версии тоже должны работать, но они должны поддерживать все опции, перечисленные ниже.

Опции ядра, которые вам надо будет включить:

  • Поддержка электронных дисков (RAM disk support) (CONFIG_BLK_DEV_RAM).

  • Поддержка загрузочного электронного диска (Initial RAM disk (initrd) support) (CONFIG_BLK_DEV_INITRD).

  • Поддержка зацикленных устройств (Loop device support) (CONFIG_BLK_DEV_LOOP).

  • Поддержка файловой системы FAT (fat fs support) (CONFIG_FAT_FS).

  • Поддержка файловой системы MSDOS (msdos fs support) (CONFIG_MSDOS_FS).

Первые две опции - это сам электронный диск и загрузочный электронный диск. Следующая - это зацикленная файловая система. Последние две - это поддержка файловой системы msdos, которая необходима для подключения DOS-раздела.

Сборка ядра без модулей - это наиболее простой способ, но если вы все-таки решили использовать модули, это возможно, хотя я этого и не пробовал. Если вы используете модули, вы должны убедиться в том, что опции, используемые выше, встроены в ядро, а не собраны в виде модулей.

В зависимости от версии вашего ядра, вам, возможно, придется установить патч к ядру. Это очень простой патч, который разрешает использование зацикленной файловой системы в виде корневой.

  • Ядра версий до 2.0.0 - у меня нет информации по этому поводу.

  • Ядра версий 2.0.0 - 2.0.34 - вам придется использовать патч для ядер 2.0.х, приведенный ниже.

  • Ядра версий 2.0.35 - 2.0.x - патч не требуется.

  • Ядра версий 2.1.x - вам придется использовать патч для ядер 2.0.х или 2.2.х, приведенный ниже, в зависимости от конкретной версии ядра 2.1.x.

  • Ядра версий 2.2.0 - 2.2.10 - вам придется использовать патч для ядер 2.2.х, приведенный ниже.

  • Ядра версий 2.3.x - вам придется использовать патч для ядер 2.2.х, приведенный ниже.

Для ядер версий 2.0.x в файл /init/main.c надо добавить одну строку, в соответствии с уже измененной версией, приведенной ниже. В строке, которую надо добавить написано "loop", 0x0700.



Содержание раздела