tbsdtv / linux_media

TBS linux open source drivers
https://github.com/tbsdtv/linux_media/wiki
Other
169 stars 79 forks source link

Build fails in Fedora 36 kernel 5.18.5-200.fc36.x86_64 #286

Closed fe31nz closed 1 year ago

fe31nz commented 2 years ago

I tried compiling in a VirtualBox Fedora 36 with the current kernel (5.18.5-200.fc36.x86_64) and it fails on incompatible pointer types:

/root/projects/tbs6909-drivers/media_build/v4l/msi001.c:504:27: error: initialization of 'void ()(struct spi_device )' from incompatible pointer type 'int ()(struct spi_device )' [-Werror=incompatible-pointer-types] 504 | .remove = msi001_remove, | ^~~~~

It looks like this warning is being upgraded to an error as a result of an option being passed to gcc, or maybe it is now the default with gcc 12.1.1 which is current on Fedora 36. I have attached my full build script file and the log of its output:

./download_and_build.sh 2>&1 | tee build.log

fe31nz commented 2 years ago

Attaching the files did not work, so here they are:

download_and_build.sh:

!/bin/bash

set -x cd /root/projects/tbs6909-drivers || exit 1 rm -r media rm -r media_build git clone https://github.com/tbsdtv/media_build.git || exit 2 git clone --depth=1 https://github.com/tbsdtv/linux_media.git -b latest ./media || exit 3

cd media_build make dir DIR=../media || exit 11 make allyesconfig || exit 12 make -j$(($(getconf _NPROCESSORS_ONLN)+1)) || exit 13

make || exit 13

make install

restart

build.log:

WARNING: You do not have the full kernel sources installed. This does not prevent you from building the v4l-dvb tree if you have the kernel headers, but the full kernel source may be required in order to use make menuconfig / xconfig / qconfig.

If you are experiencing problems building the v4l-dvb tree, please try building against a vanilla kernel before reporting a bug.

Vanilla kernels are available at http://kernel.org. On most distros, this will compile a newly downloaded kernel:

cp /boot/config-uname -r /.config cd make all modules_install install

Please see your distro's web site for instructions to build a new kernel.

WARNING: This is the V4L/DVB backport tree, with experimental drivers backported to run on legacy kernels from the development tree at: http://git.linuxtv.org/media-tree.git. It is generally safe to use it for testing a new driver or feature, but its usage on production environments is risky. Don't use it in production. You've been warned. CEC_CROS_EC: Requires at least kernel 9.255.255 V4L2_H264: Requires at least kernel 9.255.255 VIDEO_IPU3_CIO2: Requires at least kernel 9.255.255 VIDEO_OMAP3: Requires at least kernel 9.255.255 VIDEO_ROCKCHIP_ISP1: Requires at least kernel 9.255.255 VIDEO_MEM2MEM_DEINTERLACE: Requires at least kernel 9.255.255 VIDEO_HI556: Requires at least kernel 9.255.255 VIDEO_IMX208: Requires at least kernel 9.255.255 VIDEO_IMX258: Requires at least kernel 9.255.255 VIDEO_IMX274: Requires at least kernel 9.255.255 VIDEO_IMX319: Requires at least kernel 9.255.255 VIDEO_OV02A10: Requires at least kernel 9.255.255 VIDEO_OV2740: Requires at least kernel 9.255.255 VIDEO_OV5670: Requires at least kernel 9.255.255 VIDEO_OV5675: Requires at least kernel 9.255.255 VIDEO_OV772X: Requires at least kernel 9.255.255 VIDEO_OV8856: Requires at least kernel 9.255.255 VIDEO_OV9650: Requires at least kernel 9.255.255 SND_BT87X: Requires at least kernel 9.255.255 INTEL_ATOMISP: Requires at least kernel 9.255.255 VIDEO_HANTRO: Requires at least kernel 9.255.255 VIDEO_ROCKCHIP_VDEC: Requires at least kernel 9.255.255 VIDEO_IPU3_IMGU: Requires at least kernel 9.255.255 Created default (all yes) .config file ./scripts/fix_kconfig.pl make[1]: Leaving directory '/root/projects/tbs6909-drivers/media_build/v4l' ++ getconf _NPROCESSORS_ONLN

tryptichon commented 2 years ago

If you are familiar with patching, try this: https://github.com/tbsdtv/linux_media/issues/283#issuecomment-1162672107

fe31nz commented 2 years ago

Thank you, that patch makes it compile on Fedora 36 with kernel 5.18. I have not actually tried it with my tuners yet. To use it, I put the .patch file in the top directory where I build from and added this to my build script after the "cd media" command: patch -p1 <../kernel_v4l_update.patch

crazycat69 commented 1 year ago

Updated, now compatible with 4.14 - 6.2