LINUX.ORG.RU

Сборка initrd при живом kernel

 , ,


0

1

Коллеги, прошу пнуть в нужном направлении:

имею 2.6.28 сборку (x86)

root (hd0,1) kernel /kernel.bin root=/dev/ram0 console=ttyS0,115200 ramdisk_size=131072 fw=1 root (hd0,1) initrd /bootimage.bin boot

ядро kernel.bin стандартное:

Direct booting from floppy is no longer supported.

внутри kernel.bin в gzip лежит сам ELF. Задача - поместить в kernel другой ELF, он в сжатом виде немного меньше по размеру.

Судя по офсетам в kernel.bin хранится длина gzипленного ELF и контрольная сумма и т.п. просто замена DWORD размера и самого GZIPленного ELF не помогает, имею ошибку CRC error, если проверку убрать- lenght error.

Есть ли где-то внятный скрипт или сырец как собирается пресловутый kernel.bin?

И можно ли под конкретное ядро kernel.bin собирать чем-то отдельно bootimage.bin ?

Спасибо.


Ответ на: комментарий от valman___

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

town ()
Ответ на: комментарий от anonymous

cksum проблем нет,

в ядре в заголовке идет boot, нашел его в linux-2.6.28.10\arch\x86\boot\header.S

вопрос в том как собрать boot + vmlinux.gz+tail в один файл. т.е. понять как работает собирается содержимое vmlinuz

town ()

Есть подозрение что нужно копать в linux-2.6.28.10\arch\x86\boot\ в частности, arch\x86\boot\tools\build.c

но хотелось бы быть уверенным.

на выходе хочу получить утиль или скрипт собирающий kernel в vmlinuz/bzimage с моим собственным готовым ELF vmlinux

town ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.