1

I have one of those 7" HDMI diplays from eBay, driving it with a Q1900 board running Ubuntu 20. I can write to the display using fbi:

sudo fbi -a -T 1 --noverbose -d /dev/fb0 -t 5 --blend 1000 "${PICTURE}"

But the images seem to stay in the framebuffer, or the panel. When I write a second image, the display alternates between showing the two.

I've tried dd if=/dev/nul of=/dev/fbo and just /dev/fbo.

Neither work though. I haven't tried powercycling the Linux box, but powercycling the panel does nothing. If I have to reset the computer it's just not going to work for me.

Is there some command to flush the framebuffer, or is that not what I have to do?

TI

5
  • fbo is not the same thing as fb0, but I guess that might be just a typo? Also, there is no /dev/nul: you might mean /dev/null but it would not work as reading it will output just an immediate end-of-file condition. If you want to zero out something, use /dev/zero as a source instead: it will output an infinite stream of zero bytes. – telcoM Dec 6 '20 at 12:31
  • Yup sorry a few typos there. I now tried using /dev/zero, and got the following response robert@guillemot:~$ dd if=/dev/zero of=/dev/fb0 dd: writing to '/dev/fb0': No space left on device 4801+0 records in 4800+0 records out 2457600 bytes (2.5 MB, 2.3 MiB) copied, 0.0295595 s, 83.1 MB/s – Robert Murphy Dec 6 '20 at 16:03
  • So, I can reliably insert images into what sesms to be a circular buffer, adding image after image. That works great but isn't what I want to do.. and powercycling the HDMI panel doesn't clear that buffer. As said up there where the formatting is pretty bad I tried filling the fb from /dev/zero byt that didn't change anything. These little panels are certainly not what is advertised, this is supposed to be an IPS panel but its off axis image would say that it isn't, I'll keep batting away at it. – Robert Murphy Dec 6 '20 at 16:32
  • Yeah, the "no space left on device" error is to be expected when you write from /dev/zero to anything that has a finite size and you don't specify how much to write: after filling the target completely, it stops and reports there is no more space available. I just found some scripts you might use to test a framebuffer device in more meaningful ways than just zeroing it. – telcoM Dec 7 '20 at 0:08
  • Thanks telcoM there's some interesting ideas there. It's nice to paint on the bare metal. – Robert Murphy Dec 7 '20 at 0:45
0

OK, I've figured this out. I'd previuosly been saying

sudo fbi -a -T 1 --noverbose -d /dev/fb0 -t 5 --blend 1000 "${PICTURE}"

But -t 5 puts fbi into a loop of 5 seconds

Doing this

sudo fbi -1 -a -T 1 -d /dev/fb0 "$1"

works great, note the -1 parameter

Also, when you run fbi, it keeps running, so I was getting 10 copies running at the same time. The -1 parameter I believe fixes that, or just doing a killall fbi before doing any more images.

I believe that solves this issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.