Как передавать параметры ядру по умолчанию?
То есть откомпилировал с уже нужными параметрами.
> Как передавать параметры ядру по умолчанию?
> То есть откомпилировал с уже нужными параметрамиконфигурить загрузчик (redBoot, ecos, lilo, grub ?)
>конфигурить загрузчик (redBoot, ecos, lilo, grub ?)Ядро копируется в DRAM и потом просто делается jmp
на адрес функции start ядра(ядро представляет dump памяти).
Поэтому нужно откомпилировать ядро с уже нужными параметрами.
>>конфигурить загрузчик (redBoot, ecos, lilo, grub ?)
>
> Ядро копируется в DRAM и потом просто делается jmp
>на адрес функции start ядра(ядро представляет dump памяти).
> Поэтому нужно откомпилировать ядро с уже нужными параметрами.само по себе вот так вот берет и копируется?
помещает его в RAM загрузчик. он же помещает туда (в RAM) и параметры ядра по определенному адресу, откуда ядро их с благодарностью получает.По теме: внимательно фтыкать init/main.c
>
> само по себе вот так вот берет и копируется?
>помещает его в RAM загрузчик. он же помещает туда (в RAM) и
>параметры ядра по определенному адресу, откуда ядро их с благодарностью получает.
>
>
>По теме: внимательно фтыкать init/main.c
Так вот самое интересное по как кому адресу ядро берет эту строку параметров
в функции start_kernel есть функция parse_args которая и разбирает строку параметров
но адрес забит жестко в конце section .rodata и там выделено вего 300 байт но что там записано и как туда помистили параметры и как туда еще поместить параметры?Делается это в config-ах или в самом коде надо подставлять значения.
> Как передавать параметры ядру по умолчанию?
> То есть откомпилировал с уже нужными параметрами.В некоторых архитектурах данная опция заводится в .config
CONFIG_BOOTPARAM=y
CONFIG_BOOTPARAM_STRING="console=ttyS0,115200"на i386 такого параметра нет но можно завести в функции setup_arch(&command_line)
#if defined(CONFIG_BOOTPARAM)
memset(command_line, 0, sizeof(command_line));
strncpy(&command_line[0], CONFIG_BOOTPARAM_STRING,
sizeof(command_line));
command_line[sizeof(command_line) - 1] = 0;
#endif