I need to integrate the LCD screen into my embedded Linux system (ARM9). The LCD is a portrait of 320x480, and I need to run the screen in landscape orientation of 480x320. Using the LCD configuration register, I can rotate it to hardware so that (x, y) (0,0) rotates 90 degrees. This is where my problem begins, the wide side of the screen narrows from 480 pixels to 320, and the long side of the image exits the screen. This should be fixed by resizing the AFAIK framebuffer, but I tried several ways to do this without success. using fbset, below are the settings for the portrait:
mode "480x320-55"
Sending a team:
fbset --geometry 480 320 480 320 16
Results in:
mode "480x320-55"
This makes the image several times and overlaps, but the screen width is still too narrow.
I tried to provide double screen size for virtual xres and yres, but no change.
fbset --geometry 480 320 960 640 16
I also tried using the fb rotation function, which I found on the network "saFbdevRotation.c", which uses FB IOCTL, but the active screen size is still incorrect.
rotate 90 degrees, see output
$> ./fb_rotate -r 90
I can also add that the system is very limited by free memory, could this be the reason that fb does not allocate a new buffer? However, there were no errors in dmesg.
I will feel your recommendation.
source share