
コンパイルすることは可能ですか?LinuxTV.org V4L-DVB メディアビルド実行中のカーネル ソース (つまり、異なるバージョン) ではなく、特定のパスに含まれるカーネル ソースに対して実行しますか?
私が持っていますカーネルソースそしてルートディレクトリ:(バニラ)とカーネル構成ルートディレクトリしかし、私は。/建てるスクリプトはそこにあります。
例えば:
# make tar DIR=/root/mytest/linux-3.12.6
いくつかのファイルが見つからないため失敗します:
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
答え1
解決策は非常に単純でしたが、あまり「公開」されていませんでした。私は利用可能なディスカッションでそれを見つけました。ここ基本的には、まずカーネルを独自のパスでビルドする必要があります(およびを使用)。make allmodconfig
そしてmake init
、メディアビルド、 あなたが実行します:
# 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
ご覧のとおり、指定したパスから正しいカーネルバージョンが選択されます。ディレクタースイッチ。