libpruio on Debian 11 with kernel 5.10

I have installed a 5.10 ‘bone’ kernel on my Debian 11 system and have successfully installed libpruio as described in the ‘Preparation’ section of its web-site. There’s several minor problems with the installation process, the key for apt is an old format for example. However there’s nothing major and I managed to muddle my way through the niggles.

However nothing works.

The Python examples seem to be written in Python2 which is no longer in a normal Debian installation. I went through and fixed all the syntax errors in one set of scripts but then it just fails with ""pruio_new failed ".

I also tried all the pre-built binaries that the libpruio installation had installed in /usr/bin. None of them work either, they all give “initialisation failed (parsing kernel claims)” or “NEW failed: parsing kernel claims” or “no grafic available”.

Has anyone else got libpruio working on Debian 11 or is it just not possible because Debian 11 is ‘too new’. All the errors I have found and fixed seem to be due to recent changes that libpruio doesn’t know about.

This isn’t an answer to the problem. But instead a solution to help developers control their own packages in a “ppa” where they control their library builds, instead of waiting on me to struggle on builds.

Here’s my best example: BeagleBoard.org / ci-openocd · GitLab

For this build, end Users just add:

sudo sh -c "echo 'deb [trusted=yes] https://beagleboard.beagleboard.io/ci-openocd stable main' > /etc/apt/sources.list.d/ci-openocd.list"

Which give you debian packages: Index of /public

Right now we have a pool of 4 dedicated docker-aarch64-ci builders. More can be added, there’s also x86 and riscv builders…

Regards,

1 Like

libpruio is based on the uio_pruss kernel module, which is no longer supported in main line since the device tree structure changed (in 2017 AFAIR).

There’is an attempt to make that module work on newer kernels.

Regards

So @zmatt has kept the uio driver in pretty good shape, for 5.x/6.x kernels what we do is backport drivers/uio/uio_pruss.c from v5.10.x lts branch and apply these 2 patches… patches/drivers/ti/uio · am33x-v5.10 · Robert Nelson / bb-kernel · GitLab

userspace testing is done with his py-uio project: GitHub - mvduin/py-uio: Userspace I/O in Python

Regards,

1 Like

Got libpruio working under kernel

Linux BeagleBone 5.19.8-bone9 #1bookworm PREEMPT Tue Sep 13 00:43:19 UTC 2022 armv7l GNU/Linux

There’re a bunch of pitfalls (not in the library code). Ie important packages disapered like

  • freebasic
  • am335x-pru-package (for pasm assembler)

In /boot/uEnv.txt the entry “uboot_overlay_pru=” has gone.

I’m not sure how to prevent loading the rproc driver (blacklisted it).

@RCN: Are there any docs on how to handle those changes?

Regards

It all seems a bit of a can of worms to me! :slight_smile:

I only really have one thing that the PRU would help me with and I’ve wasted too much time already chasing around trying to get things to work. It’s a real pity because the PRUs are a brilliant thing to have but they’re far too hard to actually use in an up to date BBB installation.

I second that!

At least the -bone flavour should not be polluted by any rproc magic. It should fast-boot without cape-universal, but with the uio_pruss driver by default (if any). And it should ship with pre-installed libpruio, like Jason Kridner announced ten years ago.

TI and others do a lot to hide away the PRUSS-brilliancy from the users.

Regards