Quais são os métodos para recuperar uma configuração do Kernel do Linux?

5

Atualmente, estou tentando reconstruir o kernel para um dispositivo proprietário. Para fazer isso, precisarei produzir uma configuração do kernel para o dispositivo. Embora eu pudesse fazer isso por meio de tentativa e erro, seria melhor verificar se posso extrair a configuração do host em execução.

Dito isto, o kernel em execução não foi compilado com CONFIG_IKCONFIG (e portanto não CONFIG_IKCONFIG_PROC ). Isso significa que não há /proc/config.gz para extrair.

Além disso, eles não se preocuparam em empacotar a configuração em /boot . Assim, os dois lugares comuns onde uma configuração do kernel é geralmente armazenada estão sem sorte.

Quase tudo foi compilado estaticamente neste kernel:

 # cat /proc/modules
 linux_user_bde           12327 0                         - Live 0xf8536000 (PO)
 linux_kernel_bde         29225 1           linux_user_bde, Live 0xf8524000 (PO)
 pciDrv                    1448 0                         - Live 0xf8510000 (O)
 iTCO_wdt                  4456 0                         - Live 0xf83fb000 
 iTCO_vendor_support       2003 1                 iTCO_wdt, Live 0xf83f7000 
 i2c_dev                   5443 0                         - Live 0xf83f2000 
 i2c_i801                  9421 0                         - Live 0xf83eb000 
 i2c_core                 20859 3 i2cscan,i2c_dev,i2c_i801, Live 0xf83e0000 
 igb                     148294 0                         - Live 0xf83ae000 (O)
 dca                       4665 0                         - Live 0xf804c000 
 # ls -l /proc/conf*
 ls: /proc/conf*: No such file or directory
 # find /boot/ -name "conf*"
 # modprobe configs
 modprobe: module 'configs' not found
 #
    
por Brian Redbeard 22.08.2016 / 04:07

2 respostas

4

Uma idéia, possivelmente boba, que vem à mente é ver se você pode extrair a tabela de símbolos do kernel da imagem ou de /proc/kallsyms ou algum lugar, e fazer engenharia reversa de pelo menos os drivers incluídos com base nisso. Embora com algo como 35000 símbolos mostrados por kallsyms em um kernel de distribuição de ações, isso exigiria alguns scripts.

    
por 28.08.2016 / 21:05
1

Resposta não técnica, mas sob a GPLv2 você tem direito ao código-fonte e quaisquer modificações a ele, bem como as configurações usadas para criar a versão em execução.

Assim, uma maneira é pedir aos criadores do "dispositivo proprietário" (se eles ainda existirem) para fornecer as fontes às quais você tem direito sob a GPL.

    
por 22.08.2016 / 06:43