September 5, 20233 yr I am trying to compile a new kernel in order to support some satellite receiver tuner (from TBS). I did that successfully (In February 2023) on Orange Pi 5 with Linux kernel 5.10.110, but I am struggling doing it with Orange PI 5 Plus with Linux 5.10.160 (jammy). Basically I would like to turn as Modules lots of CONFIG_VIDEOBUF2_*, in order to replace the modules with the ones compiled separately (that I know are working fine with my TBS USD card). These are my issues: - I do not manage to set separately those CONFIG_VIDEOBUF2_* through the menu config. - Thus I tried to set the whole "multimedia support" as a module and got the error: -------------------------------------------------- [🔨] /usr/bin/aarch64-linux-gnu-ld: drivers/phy/rockchip/phy-rockchip-samsung-dcphy.o: in function `samsung_mipi_dcphy_power_on': [🔨] phy-rockchip-samsung-dcphy.c:(.text+0xe1c): undefined reference to `v4l2_subdev_call_wrappers' [🔨] /usr/bin/aarch64-linux-gnu-ld: drivers/phy/rockchip/phy-rockchip-samsung-dcphy.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `v4l2_subdev_call_wrappers' which may bind externally can not be used when making a shared object; recompile with -fPIC [🔨] phy-rockchip-samsung-dcphy.c:(.text+0xe1c): dangerous relocation: unsupported relocation [🔨] /usr/bin/aarch64-linux-gnu-ld: phy-rockchip-samsung-dcphy.c:(.text+0xe2c): undefined reference to `v4l2_subdev_call_wrappers' [🔨] /usr/bin/aarch64-linux-gnu-ld: phy-rockchip-samsung-dcphy.c:(.text+0xe74): undefined reference to `v4l2_subdev_call_wrappers' [🔨] /usr/bin/aarch64-linux-gnu-ld: drivers/phy/rockchip/phy-rockchip-samsung-dcphy.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `v4l2_subdev_call_wrappers' which may bind externally can not be used when making a shared object; recompile with -fPIC [🔨] phy-rockchip-samsung-dcphy.c:(.text+0xe74): dangerous relocation: unsupported relocation [🔨] /usr/bin/aarch64-linux-gnu-ld: phy-rockchip-samsung-dcphy.c:(.text+0xe84): undefined reference to `v4l2_subdev_call_wrappers' ------------------------------------------------------- Any idea on how to unblock that? I am compiling on native on the PI 5 Plus. Thanks.
September 8, 20233 yr Looks like you need to set a few drivers at least to y instead of module. Something about linking static library against dynamic library. I've made this script as executable in /usr/local/bin/findtext #!/bin/bash location="$1" text="$2" grep -rnw $location -e $text Then you could search with findtext /location/of/kernel/drivers/media v4l2_subdev_call_wrappers Perhaps you could find the options in the kernel config after enabling/saving? cat saved-kernel-config | grep CONFIG_VIDEOBUF2_ Or with findtext without the "w" Edited September 8, 20233 yr by royk
September 17, 20233 yr Author Solution The solution consisted to set the parameter CONFIG_PHY_ROCKCHIP_SAMSUNG_DCPHY=m. This eliminates the compilation error, as it makes that code a Module. Edited September 17, 20233 yr by Tony3 typo
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.