CONFIG_CMDLINE_OVERRIDE definido mas codificado pelo vga-boot-parameter ignorado?

2

Eu construí um kernel Linux customizado com as opções:

...
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE_OVERRIDE=y
CONFIG_CMDLINE="initrd=linux_os.gz root=/dev/ram0 init=/sbin/init ramdisk_size=25600 consoleblank=0 loglevel=2 console=ttyS1 vga=785"
...

Eu uso o syslinux como bootloader. Com funciona corretamente com a seguinte configuração (mesmos parâmetros que os codificados):

default MyConfig
prompt 0
label MyConfig
kernel vmlinuz
append initrd=linux_os.gz root=/dev/ram0 init=/sbin/init ramdisk_size=25600 consoleblank=0 loglevel=5 console=ttyS1 vga=785

Mas se eu substituir a última linha por:

append initrd=linux_os.gz root=/dev/ram0 init=/sbin/init ramdisk_size=25600

"falha" ao inicializar (o modo vga não foi alterado como esperado). Com CONFIG_CMDLINE_OVERRIDE = y os parâmetros configurados no bootloader devem ser ignorados ou estou errado nisto?

Estou usando um kernel 3.10.10 baunilha sem patches relevantes (apenas substituindo o logotipo de inicialização) no x86. É um pice de hardware embarcado e não consigo configurar os parâmetros de inicialização, apenas substituindo vmlinuz e linux_os.gz , exceto para testes.

    
por Peter Schneider 09.07.2014 / 11:29

1 resposta

2

Digitado pela alma do kernel e encontrei minha resposta: O modo de vídeo é definido muito cedo no x86 - mesmo antes de mudar para o modo protegido ( set_video() em main() (arch / x86 / boot / main.c). CONFIG_CMDLINE_OVERRIDE é feito mais tarde em setup_arch() (arch / x86 / kernel / setup.c) Não tenho uma correção real, mas pelo menos uma solução alternativa:

em ./arch/x86/boot/video.c, substitua

for (;;) {
    if (mode == ASK_VGA)
        mode = mode_menu();

    if (!set_mode(mode))
        break;

    printf("Undefined video mode number: %x\n", mode);
    mode = ASK_VGA;
}
boot_params.hdr.vid_mode = mode;

com

boot_params.hdr.vid_mode = 785;
set_mode(785);

(ou qualquer outro modo de vídeo desejado). Isso pode quebrar o modo de mudar, mas eu não quero mudar de modos;)

    
por 09.07.2014 / 14:05