Custom kernel 23.05.2

Hey I have a question. I am new on the forum and I am trying to build my own openwrt image. Why? Alot of drivers in the default I don't need. So I wanted a more stripped version just supporting my own hardware. I got a minicomputer as router something similar to the Carrep Minipc J4125 Fanless 2.5g Router Nano 4 Intel I226-v B3 2.5gbe Nics Pfsense Firewall Router

Ok so first of all what I am trying to do I don't even know if it is possible lets get that straight. Am just experimenting with it. But surely there are more expierenced people here that can tell me what I am doing if it is even possible.

What I wanted to do is make the openwrt more fast. I found out because linux now has reached some performance boost on serveral distro's.

There are serveral options in the openwrt that can achieve higher performance. Such as:

  1. Preempt-RT (Real-Time) Patch:
  • Converts most kernel spinlocks into preemptible mutexes.
  • Ensures that critical sections are minimized and that preemptions are allowed almost everywhere.
  1. Fully Preemptible Kernel (CONFIG_PREEMPT_RT_FULL):
  • Makes the kernel fully preemptible, reducing latency.
  • Allows almost all code paths to be preempted by higher priority tasks.
  1. High Resolution Timers (CONFIG_HIGH_RES_TIMERS):
  • Provides high precision and high-resolution timers, which are crucial for reducing latency.
  1. Threaded Interrupts (CONFIG_IRQ_FORCED_THREADING):
  • Forces interrupts to be handled in kernel threads, allowing them to be preempted.
  1. CPU Isolation (CONFIG_CPU_ISOLATION):
  • Allows isolating CPUs from general kernel threads and user-space processes, dedicating them to specific tasks.
  1. Tickless System (CONFIG_NO_HZ_FULL):
  • Reduces the frequency of timer interrupts, which can minimize latency caused by timer interrupts.
  1. Low Latency Scheduling Classes:
  • Provides scheduling classes like SCHED_FIFO and SCHED_RR for real-time tasks.

Cause I care more about low latency than throughput. Funny thing is with the kernel like this it works fast.

Now I have succesfully build the kernel. I installed it on the router.

I got KPN FTTH which the cable fiber goes into the nokia modem provided by KPN.

My network setup is modem (nokia) ---> openwrt router (for lan) ---> Fritzbox 7590 (lan and wifi) --> tp link extender

The fritzbox is setup as a passthrough.

Now I installed all the packets for routing and such also igmpproxy for iptv and multicasting.

The weird thing is now that my fritzbox is getting the ipv4 and ipv6 address. I would assume that would all it needed. The fritzbox is handling the wifi. For some reason my mobile phone can see the fritzbox and my laptops. But my sonos system, tp link extender and my ring doorbell 3 device cannot find my fritzbox anymore.

With a default image of openwrt everything works, so the problem is not the fritzbox but it has to do with my kernel, am pretty sure about that.

After a day my ring doorbell 3 does connect. But still it cant find my fritzbox and my sonos simply does not connect at all, same as the tp link extender.

Does anyone have an explanation for this>?

I am puzzeled I was not expecting this kind of behavior.

What I did and I don't know if it is smart but on this site https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/

You can get the fully preemptible kernel. I have patched it into my kernel source build directory. This worked, no problems. Than I selected it in the make kernel_menuconfig and I build it succesfully.

So I think that is the problem. I just dont understand that everything seems to be working except for these devices. I have all the packages I need also selected all the options I need.

I have also done this by inserting the default config. Which is used with default images. Still the same result after patching. Patching is not possible? Of course I did patch for the kernel I have. on the 23.05.3 there is not one for the 5.15.150 but the 5.15.153 works aswell.

On the 23.05.2 there is kernel version 5.15.137 and the patch is also for 5.15.137 so that one is 1on1.

Does anybody know why this is happening. It seems weird to me.

Realtime processes are not very popular on OpenWRT, like asterix pbx or time servers come in mind.
Methodical walkthrough around network performance bottlenecks here from red-hat

First thing for latency would be to not chain routers the longest way possible and add traffic shaping like SQM as close to internet connection as possible.
Can you run "ubus call system board" on OpenWRT router connected to the internet so that we can assess your options.
Also post test results from [https://www.waveform.com/tools/bufferbloat] (links to your results) from various places down the chain, like from wired near Nokia CPE to wireless behind tplink extender(its model may come in play if supported by OpenWRT).

Everything is useless for x86 router. Go for 6.9-6.10 kernel

Ok I flashed the image again, but I think I flashed the wrong one. I just tried the bufferbloat but something is not right. Normally am getting 0.5 ms. But that is with the fully preemptible kernel. And basically all above that I mentioned turned on.

The problem is not the bufferbloat. My gaming rig is on the openwrt router.
All the devices which are not latency sensitive are on my fritzbox.

So I have one eth0 for my gaming rig. I got my fritzbox on eth3 which are both in the br-lan.

Other devices are in my fritzbox. I know it is better for bufferbloat to have my wireless internet on my openwrt. But I have not made it work yet. For some reason it is not going as I would like. That is why I got the fritzbox so I still have wifi.

The problem is with the custom kernel that my devices like my ring doorbell3, tp link extender and sonos audio system cannot find the wifi of the fritzbox anymore. That is cause of the custom kernel, cause without everything works.

So my question is not really about bufferbloat, I got that under control. It is more how come my laptop and mobile device can find the fritzbox with custom kernel and these other devices cannot.

If I wait a day the ring somehow does connect to the fritzbox but still I can't really use the app. It is weird.

When doing the ubus call system board I get the following:
{
"kernel": "5.15.137",
"hostname": "OpenWrt",
"system": "Intel(R) Celeron(R) J4125 CPU @ 2.00GHz",
"model": "Default string Default string",
"board_name": "default-string-default-string",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "23.05.2",
"revision": "r23630-842932a63d",
"target": "x86/64",
"description": "OpenWrt 23.05.2 r23630-842932a63d"
}
}

well it is an x86/64 router not only x86.

But what do you mean by this. Am not talking about a linux distro now. Openwrt cannot run 6.9-6.10 kernel right?

Why not? Just need to spend some time

root@OpenWrt:~# ubus call system board
{
	"kernel": "6.9.3",
	"hostname": "OpenWrt",
	"system": "MediaTek MT7621 ver:1 eco:3",
	"model": "Beeline SmartBox TURBO+",
	"board_name": "beeline,smartbox-turbo-plus",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "SNAPSHOT",
		"revision": "r0-b1bddb1",
		"target": "ramips/mt7621",
		"description": "OpenWrt SNAPSHOT r0-b1bddb1"
	}
}
root@OpenWrt:~#
1 Like

Well share the online test results. And the feedback if you found any defect/improvement following redhat walkthrough.
You might want to compile kernel with DYNAMIC_PREEMPT and choose mode using boot parameter.

Are you running openwrt on the Fritz box?

The kernel on your x64 pc router cannot impact the visibility of a wifi network which is being broadcast from another device (the Fritz box).

Check your wifi settings on the Fritz device, make certain you haven’t enabled mixed mode and that the devices you want to connect support the encryption you are using

2 Likes

Ok so basically changing the kernel should not matter even if I patch the kernel with options it normally does not have?

Cause I have not tried to build it without the patch.

No I am not running openwrt on my fritzbox 7590

I got KPN FTTH that is cable fiber to the home. 1000/1000 connection.

Well yes that is the weird thing. I cannot understand how some devices can see it and some cannot. If my laptop and phone can see the fritzbox. But without the custom kernel I can. So if I use a default image there is no problem.

That means it is not in the fritzbox. But for all the routing and stuff I included. So I just don't understand.

That is not realtime/llatency/throughput issue, more like unwanted isolation. Can you draw a network map, like subnets, wifis connected etc?

Ok I installed the default image. The same problems. So apparently it is not the openwrt kernel but it seems like an update on the fritzbox might be the problem. It can also be what you describe.

So the cable fiber xpon is connected to nokia modem. The openwrt has the default br-lan.
Which lists two ports. 1 cable for my gaming pc on eth0. 1 cable for for the fritzbox eth3.

I will give my network config here later but the fritzbox is set up as an ip client. Meaning it simply gets what is beeing given from the openwrt router since it is the master.

So they are in the same subnet.

The tp link and ring is simply connected to the fritzbox. The tp link extender has dhcp off.

It is not an advanced setup. And worked before. But I am reading that the fritzbox has done an update and more people are saying that it says that some devices are offline which should not be.

Could be a bug but basically the setup that I had for over 2 years. Nothing changed. Except for an update on the fritzbox side. I will post my network setup later on.

It comes down to this.

Eth1 is wan port with 2 vlans. Eth1.6 for internet which contains pppoe. And eth1.4 for iptv.

My wan is on the eth1.6 and my wan6 is routed with @wan. So it simply extends. The wan is only ipv4 and wan6 ipv6.

Its configuration issue, no% speed ir latency, so far you talk about half millisec then giveno illustration, nor any blink of configurations defining your network
we c`n help you organise your network in better layout, but independently from your realtime research.

Ok so it was my fritzbox. They updated firmware which was faulty. I got different gear now.