[octopi] octopi with real time kernel

Hi @guysoft
is is possible to add a realtime kernel only by adding the module from RealtimePi to octopi and then build it?
Or is there more to do?

Greetings
Daniel

1 Like

It seems to be a raspbian derivative so you in theory would be able to follow the manual install instructions for raspbian.

It appears that is @guysoft 's CustomPiOS image, so you might also be able to incorporate the octopi scripts directly and build it yourself complete like octopi does.

RealtmePi has a .tar.gz you can extract over the root of the image, and should make the kernel work.

However I am not entirely sure you know how a realtime kernel works, so let me be informative - OctoPrint won't become realtime, because for something to become realtime it needs to use the kernel realtime functions. In fact, it might make the UI less responsive and the USB more buggy.

The main use I saw on a Pi for realtime kernel is for audio stuff. There might be also a servo library that would make them move smoother.

1 Like

Thanks i will try it.
I need it for marlin on the raspberry to control the steppers.

from the PandaPi github

1 Like

I would think realtime would make sense in that instance where you're basically using the pi like a printer control board for faster communication to the GPIO hat.

Just curious, why you wouldn't just use the pandapi provided image?

It uses as far i know still python2
Ah ok there was a new image uploaded on 20.03.2021 which i have to check.

But i also doesn't use a ender3 and the provided image also always pull the ender3 config.
(which you can bypass)

But i think a clean manual setup would be better.

I'm very interested in how you progress, because I've been eyeing the PandaPi project for a while now, thinking I would use something like that for a DIY core x/y setup.

Oh, and I just downloaded that zip for the pi3 and it appears to still be using a python 2 venv for OctoPrint's install.

I think for my coreXY printer i will later use the V2.8 + an mini e3 with klipper and octoprint because i need at least 8 Steppers.
But there is a lot of parts to create.

Yesterday i finished the printer board case.

it is also unclear if the 3 T8 integrated steppers are powerful enough to lift the 4-5 Kg heavy buildplate + print.
(430x430x8mm milled alu plate with 1400w AC powered heater)

Bildschirmfoto 2021-04-01 um 18.08.57 Bildschirmfoto 2021-04-01 um 18.16.42

Yeah the latest image of 20.03.2021 is based on octopi 0.16.0 ...

@guysoft

when i add the realtime kernel module to octopi it fails when building the kernel

linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/cortina.c
linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/davicom.c
linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/dp83640.c
/usr/bin/tar: linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/dp83640.c: Wrote only 7168 of 10240 bytes
linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/dp83640_reg.h
/usr/bin/tar: linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/dp83640_reg.h: Cannot write: No space left on device
linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/dp83822.c
/usr/bin/tar: linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/dp83822.c: Cannot write: No space left on device
linux-e2e9cec6fb061ba58304fd391ef76747f2963557/drivers/net/phy/dp83848.c

i copied the realtimepios module to the octopi modules folder and used this config:

export DIST_NAME=OctoPi
export DIST_VERSION=1.0.0
export MODULES="base(raspicam, network, kernel(realtimepi), +disable-services(octopi), password-for-sudo)"
export KERNEL_SOURCE_CLEANUP="yes"

is there a setting which i can tweak?

maybe your drive has run out of free space?

should be fine
created the VM for building with 40GB of space.

Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              275M  3.3M  272M   2% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   41G  8.4G   30G  22% /
tmpfs                              1.4G     0  1.4G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/sda2                          976M  213M  697M  24% /boot
tmpfs                              275M  4.0K  275M   1% /run/user/1000

ah i missed the

export BASE_IMAGE_ENLARGEROOT=2000
1 Like

Its a few hour build on an amd64 machine.
I'd recommended building RealtimePi separately then extracting the tar over OctoPi in a separate variant. RealtimePi has an export option that gives you someting to extract over another distro.
It makes less sense IMHO to rebuild the kernel each time when you want to update OctoPi/OctoPrint.

1 Like

ok thanks then i will do it the next time.

After 9 hours the image was built XD

pi@octopi:~ $ uname -r
4.19.71-rt24-v7

It is booting but haproxy wasn't able to bind to port 80 so i had to set it manually

frontend public
        bind 192.168.178.21:80 v4v6
        bind 192.168.178.21:443 v4v6 ssl crt /etc/ssl/snakeoil.pem

next step try to compile the 5.4.x kernel with the patch ...

that's insane.. I built a 5.11.11 kernel for my pc the other day and didn't stop the time but I'm pretty sure it was less than 2 hours
Does crosscompiling take longer for some reason?

i had to compile it on a virtualbox on a mid 2015 macbook with 4 cores assigned ...
ah and i started the compile over ssh on an other machine, i remember that it could increase the compile time ..

1 Like