FBTFT drivers in kernel?

I’m wondering what support is already baked in for TFT displays. Is the ssd1322 FBTFT display module included in this kernel?

I’m planning on installing PatchboxOS soon and want to give it a test, but thought I’d ask about this first. I’ve got a device using the ssd1322 OLED display and I think starting with PatchboxOS might give me the best performance vs compiling myself from source.

Thx

Hi, the kernel is based on the same config that’s used for Raspbian images, but it is built from a special -rt branch.

The build script to build the two variations of kernels (one for Pi 1, Pi Zero, Pi Zero W, and Compute Module, the other for Pi 2, Pi 3, Pi 3+, and Compute Module 3) is available here: https://github.com/BlokasLabs/rpi-kernel-rt/blob/master/build.sh (which is based on https://www.raspberrypi.org/documentation/linux/kernel/building.md)

You can check the configurations here:

https://github.com/raspberrypi/linux/blob/rpi-4.14.y-rt/arch/arm/configs/bcm2709_defconfig
https://github.com/raspberrypi/linux/blob/rpi-4.14.y-rt/arch/arm/configs/bcmrpi_defconfig

It would be super awesome and helpful if you could add

CONFIG_FB_TFT_SSD1322=m

to your configs.

I’m working on a pi3+ DAC board that uses the ssd1322 oled display and allows folks to use the monome norns software.

I’ve run into a bunch of issues with compiling just the display module on it’s own (mis-matched kernel headers) and I’m looking for a good kernel to work with as a starting point.

We could enable this config for our custom builds, but we don’t plan a new release of the kernel at the moment, so in the mean time I’d recommend you to make a full build of Raspbian kernel with the config changed. In my experience the build runs pretty smooth if you follow the Raspberry Pi’s guide. Also checkout https://github.com/notro/rpi-source/wiki tool, it downloads the correct version of currently running kernel source code to ~/linux and sets up out-of-tree module building too. (However it won’t work if running custom build like ours, in that case do sudo rpi-update to get the latest official kernel build, reboot, and then use rpi-source)

Also I heard that there’s now a kernel headers package for Raspbian that should have headers for currently installed stock kernel.

yeah - but this is kinda weird since apt-get install rapsberrypi-kernel-headers will only get you the most recent version of the headers - not the one that’s installed. So if I start with the stock stretch image (4.14.79) pulling the headers gets me 4.14.98 headers. :-\

I’ve gotta check my build process again and look at rpi-source once more. (I’ve done the full build a number of times, but not yet with the PatchboxOS configs)

Would you clarify once more all of the steps you suggested to do the full custom build like yours? Which version do I need to pull from rpi-source?

Thanks!

I think you should either specify the version you want to install (if I remember right it should be possible by adding =4.14.79 to the package name you are installing via apt-get, but the string should match exactly the version, it may be numbered slightly differently), or update the kernel image itself to match the headers package.

The entire script to build our custom kernel build is available here: rpi-kernel-rt/build.sh at master · BlokasLabs/rpi-kernel-rt · GitHub - it is meant to be run on a desktop Linux for faster build time, but you can replicate the build on Raspberry Pi itself by skipping lines 8 and 9, and use -j4 for make instead of -j8.

We don’t yet have our own solution like rpi-source for getting the right kernel source for the current kernel version, but at the time of writing, you can still get the right kernel code by doing:

git clone --depth 1 --branch rpi-4.14.y-rt https://github.com/raspberrypi/linux, commit hash 22bb67b8e2e809d0bb6d435c1d20b409861794d2

1 Like

Following up on this again…

I’ve got a new version of my DAC pcb coming in a week or two that I’d like to get working with Patchbox and Orac 2

Since i’ve got this ssd1322 OLED as part of the design, I’m going to start with my own kernel build (per above, which is working great).

Are there some shortcuts to install the patchboxOS requirements after i have my kernel already built? The patchbox-os-gen stuff is pretty confusing to me and appears to be building everything. (I’m totally crap when it comes to shell scripting, so I don’t really understand how patchbox-os-gen works)

Can I manually install just the various packages/repos/etc for PatchboxOS and Orac? Can you point me in the right direction?

Hi, you should simply run the Patchbox OS image, and just install your kernel on top of the one that comes with the image.

The steps for building the kernel on Raspberry Pi outlined under section ‘Raspberry Pi 2, Pi 3, Pi 3+, and Compute Module 3 default build configuration’ in https://www.raspberrypi.org/documentation/linux/kernel/building.md will install the newly built kernel.

We can integrate some config adjustments to kernel by you in one of future PatchboxOS builds.

Today I tried doing an install with your above advice - I swapped in my kernel images and got Patchbox/Orac up and working with my DAC board. :tada:

but my display is not happening.

The fbtft display module for my display not there at
/lib/modules/4.14.91-rt49-v7+/kernel/drivers/staging/fbtft/

Do I need to manually copy the module files over to the new install?

(I don’t fully understand what parts of the system are contained in the kernel img files or in the regular linux file system)

UPDATE - I went ahead and copied the fbtft modules from my build and it looks like it’s loading now (with a tweak to my overlay). Yay. :cake:

2 Likes

If you built the kernel running Patchbox OS itself, following the Raspberry Pi guide, sudo make modules_install should automatically copy it to the right place on the current system.

FWIW - I built the original install with the rpi-4.14.y-rt source (adding the display module). Then I downloaded the current patchboxOS image and swapped the kernels.

2 Likes

Hey @okyeron, do you still need the CONFIG_FB_TFT_SSD1322=m to be enabled?

Yes please!
Thanks!