Impressão formatada da configuração do kernel do Linux

3

Como as opções fazem o menuconfig e o fazem o nconfig permitir uma boa maneira de configurar as opções do kernel, existe alguma maneira de obter essa estrutura hierárquica para imprimi-lo?

Algo semelhante à saída do comando "tree".

    
por Rfraile 16.03.2018 / 23:19

1 resposta

2

Graças ao replay do @ jeff-schaller eu fiz uma contribuição para o projeto Kconfiglib e agora há um novo script de exemplo para essa tarefa. Estas são as etapas para usá-lo:

Dentro do diretório com a fonte linux, clone o repo:

root@23e196045c6f:/usr/src/linux-source-4.9# git clone git://github.com/ulfalizer/Kconfiglib.git
Cloning into 'Kconfiglib'...
remote: Counting objects: 3367, done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 3367 (delta 64), reused 89 (delta 50), pack-reused 3259
Receiving objects: 100% (3367/3367), 1.25 MiB | 1.79 MiB/s, done.
Resolving deltas: 100% (2184/2184), done.

Corrigir o makefile:

root@23e196045c6f:/usr/src/linux-source-4.9# patch -p1 < Kconfiglib/makefile.patch
patching file scripts/kconfig/Makefile

Configure conforme necessário, basicamente para obter um arquivo .config:

root@23e196045c6f:/usr/src/linux-source-4.9# make menuconfig

Execute o script com o arquivo de configuração:

root@23e196045c6f:/usr/src/linux-source-4.9# make scriptconfig SCRIPT=Kconfiglib/examples/print_config_tree.py SCRIPT_ARG=.config

======== Linux/x86 4.9.65 Kernel Configuration ========

[*] 64-bit kernel (64BIT)
    General setup
        ()  Cross-compiler tool prefix (CROSS_COMPILE)
        [ ] Compile also drivers which will not load (COMPILE_TEST)
        ()  Local version - append to kernel release (LOCALVERSION)
        [ ] Automatically append version information to the version string (LOCALVERSION_AUTO)
        -*- Kernel compression mode
                --> Gzip (KERNEL_GZIP)
                    Bzip2 (KERNEL_BZIP2)
                    LZMA (KERNEL_LZMA)
...

Mas o bom é que é possível passar configurações de kernel diferentes e combinar as mudanças facilmente:

root@23e196045c6f:/usr/src/linux-source-4.9# make scriptconfig SCRIPT=Kconfiglib/examples/print_config_tree.py SCRIPT_ARG=/tmp/config1 > config1-list.txt

root@23e196045c6f:/usr/src/linux-source-4.9# make scriptconfig SCRIPT=Kconfiglib/examples/print_config_tree.py SCRIPT_ARG=/tmp/config2 > config2-list.txt

E, finalmente, agora com uma ferramenta de comparação:

    
por 20.03.2018 / 10:45