DFRobot 2.8 USB TFT Pi 2 Raspbian Setup Guide ( Advanced )


Hi, newbie here trying to set up the USB TFT on a Pi3, have followed the instructions/added steps from the DKMS page but appear to have a couple of errors on install. E.g. cannot set a hard link and kernel source not found.
As per that Github page I logged an issue on the RbUSBPI page but note that it is poorly monitored/supported so have little hope of an imminent response. Anyone here help with this please? See:


Have you tried with Phil’s software, linked below? I believe Phil was trying to maintain his fork of it a bit better than the original authors. :-) If there’s still any problems then I’m sure that Phil can have a shot at fixing it up.


Thanks for the tip, however those were exactly the commands I was following and the errors returned from running the ‘added steps’. So I still have a problem with a failed install.


Aha! Ok. We’ll need to get @gadgetoid on the case!


Looks like you might be running a third-party customised image with a custom kernel and no proper sourcecode package? You’ll need to ask Max2Play if they supply a kernel headers package, or look for one by running apt search linux-headers or apt search kernel and seeing what information you get.

Does /boot exist at all? Or does this distro unmount it by default to prevent it being accidentally changed? What happens if you ls /boot

I think you’ll find it very difficult to get the DFRobot display up and running on a non-standard image. The DKMS package has only ever been run/tested on Raspbian, and the old kernel module builds were only built against Raspbian releases. It’s a whole can of worms to try and support anything else.


Thanks for the info. Noted likely difficulty with 3rd party image but other small TFTs use GPIOs some of which are already used by the DAC HAT I have (IQAudio DAC Pro) hence the USB TFT seemed a good solution - schoolboy error? :-)
Re. both apt search you suggested, both return many Linux-headers files tho I note that v4.9.13 was the highest version explicitly referenced - the last listed was:
linux-headers-rpi-rpfv/oldstable 4.9+63+rpi6 armhf
** This metapackage will pull in the headers for the raspbian kernel for the**
Wondered if this implied a dynamic approach being used for later versions.
The kernel search returned more files than could be listed in the Putty screen.
And ls /boot does return a bunch of files and 2 folders
BTW what is the particular filename (or naming format/convention) your install is looking for?

Before giving up on this TFT and returning it to Pimoroni, I might try a couple of other install approaches e.g. Max2Play but without subsequent update or upgrade or, if I can sort a method of using my laptop as keyboard and display for the RPi3, standard Rasbian (NOOBS even ?)+Squeezelite + Jivelite. Unless you’ve some other suggestions of course.


DKMS is a standardised way of building dynamic kernel modules, and I don’t understand it comprehensively enough to say. But it seems like you’re thinking along the same lines as me? ie: Dropping the right kernel headers into the right place manually would generate a successful build I suspect.

It appears to look into /lib/modules/${kernelver}/build, and kernelver ill be the main part of the version; either 4.9.35+ or 4.9.35-v7+ depending on whether you’re running an ARMv7 Pi or not.

Probably not coincidentally the version of Raspbian Jessie I’m currently running (Jessie being the older version of Raspbian, with Stretch being the latest) Kernel 4.9.35+.

Did you run an rpi-update or similar on your Pi? That will fetch a newer kernel version, but I’m not sure what it does about source.

If you have a /lib/modules/4.9.35-v7+ directory from your earlier attempt at installing headers, you might be able to simply copy, move or symlink the build directory from it into your /lib/modules/4.9.39-v7+ directory.

And, yes, RoboPeak’s first party support of the RP USB Display is basically abandon-ware. This is why I chose to maintain a fork of their code and build a DKMS package. It’s a nice display, but darn is it a pain!


Would have tried to progress this today but so far after c.7hours cannot make a start. Several failed current set up back ups, a few failed new image burns, change sd cards, reformatted cards x times, still failed - a few hours later win32Diskimager replaced with Etcher, success standard Raspbian burned to card. Now failed to connect to RPi via laptop and bridged network, after an hour or so cable RPi to router instead, successful connection so several attempts at changing wifi settings over Putty, wifi still not available despite following ‘proper’ steps on Raspberrypi.org and alternatives on various forums/blogs.
Good grief, how difficult can this be just because I don’t have a keyboard/monitor!! Max2Play sets up wifi in minutes (wirelessly) so why can’t standard Raspbian/Raspberry install process also facilitate a headless set up?
Rant over, note was really just to acknowledge your last message and that I will progress it as soon as I can get my RPi configured again. Walks away slightly seething whilst muttering to myself :D


Just so you’re not left wondering ;-) finally got wifi sorted on Stretch Lite (Rasberry.orgs instructions are incomplete/outdated and there are hundreds of dead end solutions on the .net) so I could install the USBTFT.
Finally have managed to get the test image (your logo) showing so the screen has a reprieve. I may at some point retry setting up with the Max2Play image but for now I’ll stick with standard Raspbian and see if I can get Squeezelite running then Jivelite to display.
Thanks for your prior responses.


I have spent the last 2 days doing nothing but trying to get this display to work on my Raspberrypi, with absolutely no luck. Despite CDing to the correct directory, when I write the command sudo dpkg -i rp-usbdisplay-dkms_1.0_all.deb
I get the error message Cannot access archive ‘rp-usbdisplay-dkms_1.0_all.deb’: No such file or directory


Sure you’re in the right directory/have the right files cloned down?

Check with ls and also try using tab completion to auto-complete the filename.


Thanks for your reply.

Here is what I did following your reply. Is showed what appeared to be the right files, so I tired running sudo dpkg from that folder

pi@raspberrypi:~ cd rp_usbdisplay pi@raspberrypi:~/rp_usbdisplay ls
dkms drivers extra install.sh LICENSE README.md shoplogo.fb.gz
pi@raspberrypi:~/rp_usbdisplay cd dkms pi@raspberrypi:~/rp_usbdisplay/dkms ls
README.md rp_usbdisplay-1.0 rp-usbdisplay-dkms_1.0_all.deb
pi@raspberrypi:~/rp_usbdisplay/dkms $ sudo dpkg -i rp-usbdisplay-dkms_1.0_all.deb
(Reading database … 124740 files and directories currently installed.)
Preparing to unpack rp-usbdisplay-dkms_1.0_all.deb …
Unpacking rp-usbdisplay-dkms (1.0) over (1.0) …
dpkg: dependency problems prevent configuration of rp-usbdisplay-dkms:
rp-usbdisplay-dkms depends on dkms (>= 1.95); however:
Package dkms is not installed.

dpkg: error processing package rp-usbdisplay-dkms (–install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
pi@raspberrypi:~/rp_usbdisplay/dkms $


Then I tried installing dkms
pi@raspberrypi:~ $ sudo apt-get install dkms
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package dkms is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package ‘dkms’ has no installation candidate
pi@raspberrypi:~ $


So I sudo apt-get update prior to running sudo apt-get install dkms and all goes well.
I do the entire install procedure for unsupported kernels again and all progresses beautifully until such time as I attempt to display the shoplogo. This gives a no such file response. So I continue anyway and ensure the conf file is in X11 as per the instructions , modify the cmdline.txt and reboot. The pi boots to a black screen on the HDMI display and to static on the RP display.
I ssh in and sudo nano /boot/cmdline.txt to find the file contains nothing


What do you see if you run:

ls /dev/fb*

and also:

sudo lsmod

and also:

sudo lsusb

(or probably those in reverse order since we’re checking that it’s recognised on the USB bus, that the correct modules have loaded, and that the framebuffer device is available)


I see a Robo Peak USB screen in a trash bin. If the sellers can abandon it so can I. I purchased a supported screen


Did you try any of the above? I have a hunch the module just wasn’t loading at boot.

The manufacturers never really had any worthwhile software support for this display, which has always irked me. For better or worse I did the best job I could of it. It’s easier said than done, though, but it does work. I just avoided the pre-built image download route, since that’s not sustainable.


Hello, my screen stuck on “Waiting for Signal…” sign with black and white buzzes

I have tried these commands:

sudo apt install dkms raspberrypi-kernel-headers
cd /home/pi/rp_usbdisplay/dkms
sudo dpkg -i rp-usbdisplay-dkms_1.0_all.deb
sudo reboot

sudo modprobe rp_usbdisplay
cat /proc/fb | grep rpusbdisp-fb

gives the following output:

1 rpusbdisp-fb

I carry on with this command:

zcat shoplogo.fb.gz > /dev/1

With the output as follows:

bash: /dev/1: Permission denied

I do all these by SSHing on my Raspberry Pi Zero W via my laptop, the screen always stuck on waiting for signal. Any ideas on what to do next?

Edit: Turns out my cable is faulty, and my last command is wrong haha. The screen is turned on now, but its dark. I have edited the /etc/modules to include rp_usbdisplay. Changing directory to rp_usbdisplay and displaying the shop logo displays the pimoroni logo now. How do I start using it as a normal touchscreen?


Glad you got up and running! (microUSB cables are a curse!)

See: https://github.com/pimoroni/rp_usbdisplay/tree/master/extra


I’ve just been trying to get this working (after having had one sat around for 2+ years). I get the impression my Pi is TOO up-to-date. Running the install.sh ends up reporting the following:

Sorry. Current running kernel is not supported.
Linux controller 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux

It looks like there are only drivers up to 4.9.24 (or am I missing something)?

Following the instructions in the link, I get as far as

sudo dpkg -i rp-usbdisplay-dkms_1.0_all.deb

but get the following:

DKMS: install completed.
Building initial module for 4.14.71-v7+

Running module version sanity check.

  • Original module
    • No original module exists within this kernel
  • Installation
    • Installing to /lib/modules/4.14.71-v7+/updates/


DKMS: install completed.
Module build for kernel 4.14.79+ was skipped since the
kernel headers for this kernel does not seem to be installed.
Module build for kernel 4.14.79-v7+ was skipped since the
kernel headers for this kernel does not seem to be installed.