Compilation of CrazyCat's media_build

  • Hi,

    I have a TechnoTrend TT-4600 DVB-S2 USB box and figured out that it only works with CrazyCat's Firmware/Drivers.

    I use LibreElec as client but want to use Manjaro ARM as server. For this reason I've tried to compile CrazyCat's media_build .

    Unfortunately it always completes with errors.

    Here is the full log of the process:

    Some details of my System:

    Manjar ARM

    Release: 19.06


    Linux vdr01 5.1.16-1-MANJARO-ARM #1 SMP Fri Jul 5 07:42:44 UTC 2019 aarch64 GNU/Linux

    1. pacman -Q | grep linux
    2. archlinuxarm-keyring 20140119-1
    3. libutil-linux 2.34-3
    4. linux-aarch64 5.1.16-1
    5. linux-aarch64-headers 5.1.16-1
    6. linux-api-headers 5.1-1
    7. linux-firmware 20190628.70e4394-1
    8. util-linux 2.34-3

    I'd hope that someone could give me a hint on this.

    EDIT: might have something to do with this?

    Mailing List Archive: [PATCH v3] ARM: tegra: Enable Tegra VDE driver in tegra_defconfig

    Best regards,


  • Thanks for your reply. As you can see in the log, that's exactly what I did.

    But the compilation fails.

    1. /home/vdr/media_build/v4l/trace.h:30:18: warning: 'struct tegra_vde' declared inside parameter list will not be visible outside of this definition or declaration
    2. ...
    3. /home/vdr/media_build/v4l/../linux/include/uapi/../../drivers/staging/media/tegra-vde/trace.h: In function 'trace_event_get_offsets_register_access':
    4. /home/vdr/media_build/v4l/../linux/include/uapi/../../drivers/staging/media/tegra-vde/trace.h:16:21: error: implicit declaration of function 'tegra_vde_reg_base_name'; did you mean 'try_to_release_page'? [-Werror=implicit-function-declaration]

    grep -r TEGRA_VDE:

  • What about

    1. cd media_build
    2. make download
    3. make untar
    4. make -C v4l allyesconfig
    5. sed -e 's/CONFIG_TEGRA_VDE=m/# CONFIG_TEGRA_VDE is not set/g' -i v4l/.config
    6. make


  • Mhm, make after changing the CONFIG_TEGRA_VDE value did not work:

    After 'make distclean' I'm now compiling as you suggested in your last post.
    Thanks for your help, I really appreciate it!

  • Nope, same error :(

    EDIT: in you sed command, sed CONFIG_TEGRA_VDE=m should get replaced with # CONFIG_TEGRA_VDE is not set .

    Assumed it the other way, because # CONFIG_TEGRA_VDE is not set is the default value. Changed it now and it's again compiling...

  • Try

    1. sed -e 's/CONFIG_VIDEO_CODA=m/# CONFIG_VIDEO_CODA is not set/g' -i v4l/.config

    And it is not the same error :)

    If is not set is default value then you don't need to use sed on that one.


  • Omg, I was stuck on researching for tegra_vde so that I didn't think about disalbing coda .

    Got another error:

    1. make[3]: *** Keine Regel vorhanden, um das Ziel „/home/vdr/media_build/v4l/vdec/vdec_h264_if.o“,
    2. benötigt von „/home/vdr/media_build/v4l/mtk-vcodec-dec.o“, zu erstellen. Schluss.

    So, disabled that, too:

    1. sed -e 's/CONFIG_VIDEO_MEDIATEK_VCODEC=m/# CONFIG_VIDEO_MEDIATEK_VCODEC is not set/g' -i v4l/.config

    After that compilation went through. So I did a "make install" and rebootet, but now by DVB-S2 box is not getting detected:

    1. dvb_usb: Unknown symbol dvb_create_media_graph (err -2)

    I assume this could be caused by using distcc for compilation ?

    1. DISTCC_HOSTS=",lzo,cpp" pump make -j5 CC="distcc aarch64-unknown-linux-gnu-gcc"

    So, compiling again - without distcc - will take some time now :)

    1. cd media_build
    2. make distclean
    3. make download
    4. make untar
    5. make -C v4l allyesconfig
    6. sed -e 's/CONFIG_VIDEO_CODA=m/# CONFIG_VIDEO_CODA is not set/g' -i v4l/.config
    7. sed -e 's/CONFIG_VIDEO_MEDIATEK_VCODEC=m/# CONFIG_VIDEO_MEDIATEK_VCODEC is not set/g' -i v4l/.config
    8. make KERNELRELEASE=$(uname -r) KDIR26="/lib/modules/$(uname -r)/updates" -j5

    Edited 2 times, last by schnere ().

  • Mhm, still no luck :(

    1. $ dmesg | grep dvb
    2. [ 11.307058] usb 1-1.4: Product: dvb-s2
    3. [ 16.866654] dvb_usb: Unknown symbol dvb_create_media_graph (err -2)
    1. $ modprobe -v dvb_usb
    2. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko
    3. modprobe: ERROR: could not insert 'dvb_usb': Unknown symbol in module, or unknown parameter (see dmesg)
  • If I use upstream linux-tv git repository instead of CrazyCat's I get a different error:

    1. [ 68.705948] mc: exports duplicate symbol __media_device_register (owned by kernel)

    I've tried modprobe m88ds3103 dvb_core i2c_mux before, but that didn't work either.

  • Then I'm out of ideas. Grep your media_build folder for missing symbol and why it is not included.


  • Okay, dvb_create_media_graph is defined in dev-core: Linux source code: drivers/media/dvb-core/dvbdev.c (v5.2) - Bootlin

    lsmod | grep dvb has no output, so dvb-core is not loaded which must cause the problem with dvb-usb.

    But when I do modprobe dvb-core I get no output, but it still isn't loaded.

    1. $ modprobe --show-depends dvb-usb
    2. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/rc/rc-core.ko
    3. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/media.ko
    4. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/v4l2-core/videodev.ko
    5. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/common/videobuf2/videobuf2-common.ko
    6. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/common/videobuf2/videobuf2-memops.ko
    7. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
    8. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/dvb-core/dvb-core.ko
    9. insmod /lib/modules/5.1.16-1-MANJARO-ARM/kernel/drivers/media/usb/dvb-usb/dvb-usb.ko

    As i can see dvb-core depends on media which is also not loaded.

  • I think you are mixing modules from a system and modules from media_build. Maybe you are using dvb-core from a system but you should from media_build (it needs higher priority) - that's why you are missing symbols.

    As I remember modules from media_build should be put in some special folder under /lib/.