On Thu, Apr 15, 2004 at 12:18:37AM +0400, Vitaly Lipatov wrote: > Хотелось бы обсудить возможность использования std-up ядер (2.4.х > или 2.6.х) для загрузки по сети (root на NFS) > По поводу 2.4.х читал слухи, что всё связанное с сетью, nts, > вплоть до драйвера сетевой карты, должно быть вкомпилировано в > ядро. Не представляю, зачем это нужно при наличии initrd. > Вопрос в том, что мешает добавить CONFIG_NFS_ROOT в std-up ядро, > чтобы обеспечить возможность загрузки корня с NFS и ядро какой > ветки лучше использовать для этих целей. CONFIG_NFS_ROOT - это старый способ, который как раз требует, чтобы nfs и все необходимые сетевые драйверы были вкомпилированы в ядро. По сути дела это BOOTP-клиент, который запускается при инициализации ядра, получает сетевые параметры, после чего монтирует указанную файловую систему по nfs как корневую. После завершения инициализации ядра этот код удаляется из памяти, поэтому воспользоваться им при модульных сетевых драйверах не получится. Вместо этого нужно сформировать initrd, в котором есть модули сетевых драйверов и nfs, а также DHCP-клиент. Это даже уже делалось (на основе busybox), но не было доведено до автоматизированного состояния. Вот что сейчас есть: net-initrd-0.0.1.tar.bz2 - скелет initrd (нужно доложить туда собранный /bin/busybox, заполнить /lib/modules и вписать команды загрузки модулей в /sbin/init.modules, после чего собрать образ через genromfs). Загрузка модулей сделана довольно тупо - просто грузится всё подряд с расчётом на то, что модули для несуществующих устройств просто не загрузятся (в 2.6 это не пройдёт, и лишние модули так и останутся занимать память - нужно делать определение устройств). busybox-1.00-pre3-netboot.patch - патч для busybox, добавляющий в udhcpc запрос опции root-path, через которую задаётся nfs root для монтирования. .config - файл конфигурации для сборки busybox (1.00-pre3).