Vero 4K+ nat-rtsp dkms

I tested nat-rtsp and i need CONFIG_IP_NF_RAW to make nat-rtsp work:

iptables-legacy -A PREROUTING -t raw -p tcp --dport 554 -j CT --helper rtsp

also i need another configuration,
therefore i think the best is that i should create an enviroment to compile the kernel.

I don’t see logic asking for configuration by configuration.

When I have checked all the necessary configurations I will inform you and if you think it is convenient you will add them.

the next question is how to create an environment to compile aarm64 kernel for vero 4k+ from a debian 64b?, and the more important question is how to upgrade and downgrade kernel at vero device safely?

thanks in advance

You seem to be on 4.9.113-29. I downloaded the “image” package and extracted the contents. According to the config file, CONFIG_IP_NF_RAW is built-in to the kernel.

user@disp7538:~/img/boot$ grep RAW config-4.9.113-29-osmc 
CONFIG_IP_NF_RAW=y
CONFIG_IP6_NF_RAW=m
# CONFIG_RAW_DRIVER is not set
CONFIG_SND_RAWMIDI=y
# CONFIG_SND_RAWMIDI_SEQ is not set
CONFIG_HIDRAW=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_GADGET_VBUS_DRAW=2

CONFIG_IP_MROUTE doesn’t seem to be in the 4.9.133 kernel but, given that it was in the 3.14 kernel and also appears in the Pi kernels, this is probably just an oversight.

1 Like

I’m sorry again, my fault :frowning:
i mixed the testing in the two kernel. The device need multicast and then rtsp, but v4 hasn’t multicast and v3 hasn’t raw for rtsp, multicast working well.
I must test it another way

I see. Since the missing multicast seems to be an oversight, perhaps @sam_nazarko will produce a new kernel.

Looking at a copy of Debian Stretch (4.9), it has these MROUTE settings:

grep MROUTE config-4.9.0-15-amd64 
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y

I can do this in a bit – there’s a few kernel changes that need to be made first before this can be merged in.

Hi
another one CONFIG_NETFILTER_XT_TARGET_CT

vero:~# grep CONFIG_NETFILTER_XT_TARGET_CT /boot/config-4.9.113-29-osmc
# CONFIG_NETFILTER_XT_TARGET_CT is not set

thank you both very much

Hi again.
I already have the kernel with the required config:

kernel-osmc (master)$ ls -1 *.deb
vero364-headers-4.9.113-35-osmc.deb
vero364-image-4.9.113-35-osmc.deb
vero364-image-debug-4.9.113-35-osmc.deb
vero364-kernel-4.9.113-35-osmc.deb
vero364-source-4.9.113-35-osmc.deb

and this is the diff:

--- a/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch
+++ b/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch
@@ -1,6 +1,6 @@
 --- /dev/null  2021-03-25 22:18:28.982818921 +0000
 +++ b/.config  2021-03-25 19:46:27.632268410 +0000
-@@ -0,0 +1,5995 @@
+@@ -0,0 +1,5998 @@
 +#
 +# Automatically generated file; DO NOT EDIT.
 +# Linux/arm64 4.9.113 Kernel Configuration
@@ -668,7 +668,10 @@
 +# CONFIG_NET_IPIP is not set
 +# CONFIG_NET_IPGRE_DEMUX is not set
 +CONFIG_NET_IP_TUNNEL=m
-+# CONFIG_IP_MROUTE is not set
++CONFIG_IP_MROUTE=y
++# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
++# CONFIG_IP_PIMSM_V1 is not set
++# CONFIG_IP_PIMSM_V2 is not set
 +CONFIG_SYN_COOKIES=y
 +# CONFIG_NET_IPVTI is not set
 +CONFIG_NET_UDP_TUNNEL=m
@@ -800,7 +803,7 @@
 +# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
 +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-+# CONFIG_NETFILTER_XT_TARGET_CT is not set
++CONFIG_NETFILTER_XT_TARGET_CT=m
 +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
 +# CONFIG_NETFILTER_XT_TARGET_HL is not set
 +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set

but when I’m building I get a warning ask me about CONFIG_NF_CONNTRACK_ZONES, and it adds some entries

I would like to test it with qemu to check if everything is fine but I don’t know how I should do it, could you give me some advice

Thanks in advance.

I don’t think you will be able to run the kernel under QEMU.

What’s wrong with booting and checking it?

fear of a kernel panic or cyclical reboots or a brick …

Yes, I can confirm it does. Either answer N or include it (set to “is not set”) in your patch file to suppress the message.

yes i answered that and got a kernel
in the end, with sam_nazarko’s answer so confidently, I decided to install the kernel
now I’m testing everything

everything works fine
now I only have two requests:

add requested kernel configurations: CONFIG_IP_MROUTE and CONFIG_NETFILTER_XT_TARGET_CT, this is the config diff:

--- a/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch
+++ b/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch
@@ -1,6 +1,6 @@
 --- /dev/null  2021-03-25 22:18:28.982818921 +0000
 +++ b/.config  2021-03-25 19:46:27.632268410 +0000
-@@ -0,0 +1,5995 @@
+@@ -0,0 +1,6000 @@
 +#
 +# Automatically generated file; DO NOT EDIT.
 +# Linux/arm64 4.9.113 Kernel Configuration
@@ -668,7 +668,10 @@
 +# CONFIG_NET_IPIP is not set
 +# CONFIG_NET_IPGRE_DEMUX is not set
 +CONFIG_NET_IP_TUNNEL=m
-+# CONFIG_IP_MROUTE is not set
++CONFIG_IP_MROUTE=y
++# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
++# CONFIG_IP_PIMSM_V1 is not set
++# CONFIG_IP_PIMSM_V2 is not set
 +CONFIG_SYN_COOKIES=y
 +# CONFIG_NET_IPVTI is not set
 +CONFIG_NET_UDP_TUNNEL=m
@@ -711,7 +714,9 @@
 +# CONFIG_IPV6_FOU_TUNNEL is not set
 +CONFIG_IPV6_MULTIPLE_TABLES=y
 +# CONFIG_IPV6_SUBTREES is not set
-+# CONFIG_IPV6_MROUTE is not set
++CONFIG_IPV6_MROUTE=y
++# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set
++# CONFIG_IPV6_PIMSM_V2 is not set
 +CONFIG_NETLABEL=y
 +# CONFIG_ANDROID_PARANOID_NETWORK is not set
 +# CONFIG_NETWORK_SECMARK is not set
@@ -800,7 +805,7 @@
 +# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
 +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-+# CONFIG_NETFILTER_XT_TARGET_CT is not set
++CONFIG_NETFILTER_XT_TARGET_CT=m
 +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
 +# CONFIG_NETFILTER_XT_TARGET_HL is not set
 +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set

And an advice or how to compile the external module like I’ve builded the kernel, from my debian amd64. I have read build.sh but it seems complicated

thanks a lot

sudo chroot /opt/osmc-tc/aarch64-toolchain-osmc /usr/bin/make -C /mnt/package/kernel-osmc/nat-rtsp-0.7+4.18 KERNELDIR=/mnt/package/kernel-osmc/files-headers/usr/src/vero364-headers-4.9.113-35-osmc

that request is resolved

Now v19 is in testing state, I can look at including these changes for you shortly.

Sam

Your modules should now be included in:

This is available as part of the Kodi v19 test builds. See [TESTING] Kodi v19 builds for Vero 4K / 4K +.

Sam

With the kernel that I built I cannot see 4k videos:

screenshot_4k_KO_7

now with your new kernel 4.9.113-36 I can see them. I should have made some mistake but I don’t know.
This weekend I will compile nat-rtsp for this kernel and test it

Thank you so much.

after testing it I have checked that everything works fine

Thank you so much

Thanks again for headers: [package] [kernel-osmc] Ensure we have all headers on ARM64 platforms · osmc/osmc@0f0dd66 · GitHub
now I don’t need download sources

1 Like

Can you confirm that all the modules you now need are included?

Sorry for the delay

yes, I confirm that all the modules I need are included.
Many thanks