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

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

É possível compilar oLinuxTV.org V4L-DVB media_buildpara uma fonte de kernel contida em um caminho específico, em vez daquele em execução (ou seja, uma versão diferente)?

Eu tenho ofontes do kernele em/root/mytest/linux-3.12.6(vanilla) e a configuração do kernel em/root/mytest/linux-3.12.6/.configmas não consigo encontrar uma maneira de dizer ao./construirroteiro 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

Responder1

A solução foi bastante simples mas não tão bem “publicada”; Eu encontrei em uma discussão disponívelaqui. Basicamente, primeiro você tem que construir o kernel em seu próprio caminho (com make allmodconfige make init) e depois, emmedia_build, você corre:

# 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 seleciona a versão correta do kernel no caminho que você especificou com oDIRtrocar.

informação relacionada