[Letux-kernel] LX16 SPI Display
H. Nikolaus Schaller
hns at goldelico.com
Tue Jan 14 18:14:09 CET 2025
> Am 14.01.2025 um 17:12 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>
> root at letux:~# ./fbpng 1280x720_board.png
> 1280x720_board.png: 1280x720 @ 24bpp
> ioctl(FBIOPUT_VSCREENINFO): Invalid argument
> Bus error
> root at letux:~#
>
> The Bus error is because there is no exit in error case. But the ioctl is still defined.
Ok, the most likely reason might be that I do not have the correct UAPI headers on the LX16
and struct fb_var_screeninfo fbvar; is defined differently.
Indeed there is /usr/include/linux/fb.h and /include/linux/fb.h
But the diff is only #include <linux/vesa.h> vs. #define VESA* and a comment.
There is another potential error path in the ioctl() if the code is good but the image too large...
(fbcon_modechange_possible() or fb_set_var() or fbcon_update_vcs() may all fail)
https://elixir.bootlin.com/linux/v6.13-rc3/source/drivers/video/fbdev/core/fb_chrdev.c#L81
So I tried with a smaller PNG... Nope...
root at letux:~# ./fbpng picts_32.png
picts_32.png: 32x32 @ 24bpp
ioctl(FBIOPUT_VSCREENINFO): Invalid argument
Bus error
root at letux:~#
It might as well be that 24bpp isn't accepted...
root at letux:~# fbset
mode "480x320"
geometry 480 320 480 320 16
timings 0 0 0 0 0 0 0
rgba 5/11,6/5,5/0,0/0
endmode
root at letux:~#
The display is not 24bpp and Xorg might be more generous than all
these direct fb access tools.
New ideas welcome...
BR,
Nikolaus
More information about the Letux-kernel
mailing list