Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

How to make the whole "media support" branch a module

Featured Replies

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.

Solved by Tony3

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 by royk

  • 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 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.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.