Compile o Linux V4L-DVB media_build para um kernel específico (não o em execução)

0

É possível compilar o LinuxTV.org V4L-DVB media_build para uma fonte do kernel contida em um caminho específico, em vez do código em execução (ou seja, uma versão diferente)?

Eu tenho as fontes do kernel e /root/mytest/linux-3.12.6 (vanilla) e a configuração do kernel em / root / mytest / linux-3.12.6 / .config mas não consigo encontrar uma maneira de dizer ao script ./ build que está lá.

Por exemplo:

# make tar DIR=/root/mytest/linux-3.12.6

falha porque não consegue encontrar alguns arquivos:

tar: mm/frame_vector.c: Cannot stat: No such file or directory
tar: include/linux/fence.h: Cannot stat: No such file or directory
tar: include/linux/of_graph.h: Cannot stat: No such file or directory
tar: include/linux/dma/xilinx_dma.h: Cannot stat: No such file or directory
tar: include/trace/events/v4l2.h: Cannot stat: No such file or directory
tar: include/trace/events/vb2.h: Cannot stat: No such file or directory
tar: include/uapi/linux/lirc.h: Cannot stat: No such file or directory
tar: include/uapi/linux/media-bus-format.h: Cannot stat: No such file or directory
tar: include/uapi/linux/vsp1.h: Cannot stat: No such file or directory
tar: include/uapi/linux/xilinx-v4l2-controls.h: Cannot stat: No such file or directory
tar: include/uapi/linux/smiapp.h: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors
make: *** [tar] Error 2
    
por virtualdj 16.06.2016 / 19:22

1 resposta

0

A solução foi bastante simples, mas não tão bem "publicada"; Eu encontrei em uma discussão disponível aqui . Basicamente, primeiro você tem que construir o kernel em seu próprio caminho (com make allmodconfig e make init ) e então, em media_build , você executa:

# make release DIR=/root/mytest/linux-3.12.6

make -C /root/mytest/media_build/v4l release
make[1]: Entering directory '/root/mtest/media_build/v4l'
Searching in /root/mytest/linux-3.12.6/Makefile for kernel version.
Forcing compiling to version 3.12.6
make[1]: Leaving directory '/root/mytest/media_build/v4l'

# ./build

Como você pode ver, ele pega a versão correta do kernel do caminho que você especificou com a opção DIR .

    
por 26.07.2016 / 21:06