Well the building and installation is explained on that page. You would need to have a build environment (login with the steps explained above and then run) sudo apt-get update sudo apt-get build-essential
But if that drivers build on ARM might be another question
The command make -j4 as the next command provides following error messages (in bold):
make[1]: Entering directory ‘/home/osmc/media_build/v4l’
scripts/make_makefile.pl
Updating/Creating .config
make[2]: Entering directory ‘/home/osmc/media_build/linux’
make[2]: Entering directory ‘/home/osmc/media_build/linux’
Syncing with dir …/…/media
Syncing with dir …/…/media
Patches for 3.14.29-160-osmc already applied.
make[2]: Leaving directory ‘/home/osmc/media_build/linux’
Patches for 3.14.29-160-osmc already applied.
make[2]: Leaving directory ‘/home/osmc/media_build/linux’
./scripts/make_kconfig.pl /lib/modules/3.14.29-160-osmc/build /lib/modules/3.14.29-160-osmc/build
Preparing to compile for kernel version 3.14.29
File not found: /lib/modules/3.14.29-160-osmc/build/.config at ./scripts/make_kconfig.pl line 33, line 4.
make[1]: INTERNAL: Exiting with 1 jobserver tokens (should be 0)!
Preparing to compile for kernel version 3.14.29
File not found: /lib/modules/3.14.29-160-osmc/build/.config at ./scripts/make_kconfig.pl line 33, line 4.
Updating/Creating .config
make[2]: Entering directory ‘/home/osmc/media_build/linux’
make[2]: Entering directory ‘/home/osmc/media_build/linux’
Syncing with dir …/…/media
Syncing with dir …/…/media
Patches for 3.14.29-160-osmc already applied.
make[2]: Leaving directory ‘/home/osmc/media_build/linux’
./scripts/make_kconfig.pl /lib/modules/3.14.29-160-osmc/build /lib/modules/3.14.29-160-osmc/build
Patches for 3.14.29-160-osmc already applied.
make[2]: Leaving directory ‘/home/osmc/media_build/linux’
Preparing to compile for kernel version 3.14.29
File not found: /lib/modules/3.14.29-160-osmc/build/.config at ./scripts/make_kconfig.pl line 33, line 4.
Preparing to compile for kernel version 3.14.29 File not found: /lib/modules/3.14.29-160-osmc/build/.config at ./scripts/make_kconfig.pl line 33, line 4. make[1]: *** No rule to make target ‘.config’, needed by ‘.myconfig’. Stop.
make[1]: Leaving directory ‘/home/osmc/media_build/v4l’ make: *** [Makefile:26: all] Error 2
That said, I can’t get it to compile in the standard (armhf) environment, probably because it’s building for an aarch64 kernel. You might need to use the aarch64-toolchain-osmc package. The error I see is:
osmc@osmc-4k:~/media_build$ make -j4
make -C /home/osmc/media_build/v4l
make[1]: Entering directory '/home/osmc/media_build/v4l'
make -C firmware prep
creating symbolic links...
make[2]: Entering directory '/home/osmc/media_build/v4l/firmware'
make[2]: Nothing to be done for 'prep'.
make[2]: Leaving directory '/home/osmc/media_build/v4l/firmware'
make -C firmware
make[2]: Entering directory '/home/osmc/media_build/v4l/firmware'
make[2]: Nothing to be done for 'default'.
make[2]: Leaving directory '/home/osmc/media_build/v4l/firmware'
Kernel build directory is /lib/modules/3.14.29-160-osmc/build
make -C ../linux apply_patches
make[2]: Entering directory '/home/osmc/media_build/linux'
Patches for 3.14.29-160-osmc already applied.
make[2]: Leaving directory '/home/osmc/media_build/linux'
make -C /lib/modules/3.14.29-160-osmc/build M=/home/osmc/media_build/v4l modules
make[2]: Entering directory '/usr/src/vero364-headers-3.14.29-160-osmc'
gcc: error: unrecognized command line option '-mstrict-align'; did you mean '-Wstrict-aliasing'?
KBUILD_CFLAGS_MODULE:-DMODULE
CC [M] /home/osmc/media_build/v4l/altera-lpt.o
gcc: error: unrecognized command line option '-mstrict-align'; did you mean '-Wstrict-aliasing'?
CC [M] /home/osmc/media_build/v4l/altera-jtag.o
gcc: error: unrecognized command line option '-mgeneral-regs-only'
gcc: error: unrecognized command line option '-mstrict-align'; did you mean '-Wstrict-aliasing'?
make[3]: *** [scripts/Makefile.build:308: /home/osmc/media_build/v4l/altera-lpt.o] Error 1
make[3]: *** Waiting for unfinished jobs....
gcc: error: unrecognized command line option '-mgeneral-regs-only'
make[3]: *** [scripts/Makefile.build:308: /home/osmc/media_build/v4l/altera-jtag.o] Error 1
make[2]: *** [Makefile:1291: _module_/home/osmc/media_build/v4l] Error 2
make[2]: Leaving directory '/usr/src/vero364-headers-3.14.29-160-osmc'
make[1]: *** [Makefile:53: default] Error 2
make[1]: Leaving directory '/home/osmc/media_build/v4l'
make: *** [Makefile:26: all] Error 2
Unfortunately, I’ll not have a lot of free time today or tomorrow to investigate further.
Not on the 3.14 kernel. I noticed that when I ran make allyesconfig, it produced a large number of warnings suggesting that the kernel was too old:
osmc@osmc-4k:~/media_build$ make allyesconfig
make -C /home/osmc/media_build/v4l allyesconfig
make[1]: Entering directory '/home/osmc/media_build/v4l'
make[2]: Entering directory '/home/osmc/media_build/linux'
Patches for 3.14.29-160-osmc already applied.
make[2]: Leaving directory '/home/osmc/media_build/linux'
./scripts/make_kconfig.pl /lib/modules/3.14.29-160-osmc/build /lib/modules/3.14.29-160-osmc/build 1
Preparing to compile for kernel version 3.14.29
***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` <your kernel dir>/.config
cd <your kernel dir>
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.
BPF_LIRC_MODE2: Requires at least kernel 3.17.0
IR_GPIO_CIR: Requires at least kernel 3.17.0
IR_GPIO_TX: Requires at least kernel 3.17.0
RC_ST: Requires at least kernel 3.15.0
CEC_CORE: Requires at least kernel 3.19.0
MEDIA_CEC_SUPPORT: Requires at least kernel 3.19.0
CEC_CH7322: Requires at least kernel 4.16.0
CEC_CROS_EC: Requires at least kernel 9.255.255
CEC_SECO: Requires at least kernel 4.1.0
V4L2_H264: Requires at least kernel 9.255.255
V4L2_FLASH_LED_CLASS: Requires at least kernel 3.18.0
VIDEO_SOLO6X10: Requires at least kernel 4.5.0
VIDEO_IPU3_CIO2: Requires at least kernel 9.255.255
RADIO_SI470X: Requires at least kernel 3.17.0
I2C_SI4713: Requires at least kernel 3.17.0
RADIO_WL128X: Requires at least kernel 4.13.0
VIDEO_CAFE_CCIC: Requires at least kernel 4.2.0
VIDEO_ASPEED: Requires at least kernel 4.9.0
VIDEO_MUX: Requires at least kernel 4.13.0
VIDEO_OMAP3: Requires at least kernel 9.255.255
VIDEO_XILINX: Requires at least kernel 4.10.0
VIDEO_XILINX_CSI2RXSS: Requires at least kernel 4.13.0
VIDEO_VIMC: Requires at least kernel 3.17.0
VIDEO_TDA1997X: Requires at least kernel 4.15.0
VIDEO_ADV7180: Requires at least kernel 3.17.0
VIDEO_ADV748X: Requires at least kernel 4.8.0
VIDEO_ADV7604: Requires at least kernel 3.17.0
VIDEO_TC358743: Requires at least kernel 3.17.0
VIDEO_TVP5150: Requires at least kernel 3.17.0
VIDEO_TW9910: Requires at least kernel 3.17.0
VIDEO_MAX9286: Requires at least kernel 4.19.0
SDR_MAX2175: Requires at least kernel 3.19.0
VIDEO_I2C: Requires at least kernel 4.17.0
VIDEO_ST_MIPID02: Requires at least kernel 4.10.0
VIDEO_HI556: Requires at least kernel 4.10.0
VIDEO_IMX214: Requires at least kernel 4.10.0
VIDEO_IMX219: Requires at least kernel 4.10.0
VIDEO_IMX258: Requires at least kernel 4.10.0
VIDEO_IMX274: Requires at least kernel 3.17.0
VIDEO_IMX290: Requires at least kernel 4.10.0
VIDEO_IMX319: Requires at least kernel 4.10.0
VIDEO_IMX355: Requires at least kernel 4.10.0
VIDEO_OV2640: Requires at least kernel 3.17.0
VIDEO_OV2659: Requires at least kernel 3.17.0
VIDEO_OV2680: Requires at least kernel 4.10.0
VIDEO_OV2685: Requires at least kernel 3.17.0
VIDEO_OV2740: Requires at least kernel 4.17.0
VIDEO_OV5640: Requires at least kernel 3.19.0
VIDEO_OV5645: Requires at least kernel 3.17.0
VIDEO_OV5670: Requires at least kernel 4.10.0
VIDEO_OV5675: Requires at least kernel 4.10.0
VIDEO_OV5695: Requires at least kernel 3.17.0
VIDEO_OV7251: Requires at least kernel 4.10.0
VIDEO_OV772X: Requires at least kernel 4.19.0
VIDEO_OV7670: Requires at least kernel 3.19.0
VIDEO_OV7740: Requires at least kernel 4.3.0
VIDEO_OV8856: Requires at least kernel 4.10.0
VIDEO_OV9640: Requires at least kernel 3.17.0
VIDEO_OV9650: Requires at least kernel 4.19.0
VIDEO_OV13858: Requires at least kernel 4.5.0
VIDEO_MT9M001: Requires at least kernel 3.17.0
VIDEO_MT9M111: Requires at least kernel 3.18.0
VIDEO_MT9P031: Requires at least kernel 3.17.0
VIDEO_MT9T112: Requires at least kernel 3.17.0
VIDEO_MT9V032: Requires at least kernel 3.19.0
VIDEO_MT9V111: Requires at least kernel 4.10.0
VIDEO_RDACM20: Requires at least kernel 4.10.0
VIDEO_RJ54N1: Requires at least kernel 3.17.0
VIDEO_SMIAPP: Requires at least kernel 4.0.0
VIDEO_ET8EK8: Requires at least kernel 3.17.0
VIDEO_AD5820: Requires at least kernel 3.17.0
VIDEO_AK7375: Requires at least kernel 4.10.0
VIDEO_DW9714: Requires at least kernel 4.10.0
VIDEO_DW9768: Requires at least kernel 4.10.0
VIDEO_DW9807_VCM: Requires at least kernel 4.10.0
VIDEO_ADP1653: Requires at least kernel 3.17.0
MEDIA_TUNER_TDA18250: Requires at least kernel 4.3.0
DVB_M88DS3103: Requires at least kernel 4.7.0
DVB_AF9013: Requires at least kernel 4.7.0
DVB_CXD2820R: Requires at least kernel 4.3.0
DVB_RTL2830: Requires at least kernel 4.7.0
DVB_RTL2832: Requires at least kernel 4.7.0
DVB_MN88443X: Requires at least kernel 4.9.0
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_ZORAN: Requires at least kernel 4.18.0
VIDEO_IPU3_IMGU: Requires at least kernel 9.255.255
Created default (all yes) .config file
./scripts/fix_kconfig.pl
make[1]: Leaving directory '/home/osmc/media_build/v4l'
Unfortunately, something is currently broken on my V4K that’s stopping me installing the aarch64-toolchain-osmc package. Short of a full reinstall, I think I’m not going to be able to use the toolchain.
I did try the build on a Pi 3B (kernel 4.19.122). The list of warnings when running make allyesconfig is very short and the errors we see on the V4K don’t occur. The build does fail, but because of a known problem with the headers, for which there is a workaround.
I can get rid of the initial error messages by editing a couple of Makefiles but that just produces new errors. Perhaps things will improve in the 4.9 kernel.