Tony3 Posted September 5, 2023 Posted September 5, 2023 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. 0 Quote
royk Posted September 8, 2023 Posted September 8, 2023 (edited) 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, 2023 by royk 0 Quote
Tony3 Posted September 9, 2023 Author Posted September 9, 2023 Thanks, will investigate further. 0 Quote
Solution Tony3 Posted September 17, 2023 Author Solution Posted September 17, 2023 (edited) 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, 2023 by Tony3 typo 0 Quote
Recommended Posts
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.