Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
09-06-2014, 10:26 AM
|
#1
|
Member
Registered: Jul 2014
Posts: 30
Rep: 
|
Framebuffer display shows Java apps in weird color.
Hi.
I have to set up a system where the main display is going to be a tiny framebuffer USB display, tied to a x86 mini PC running Linux. Now, when the OS desktop or any "non-java" application is shown, all the colors in the picture are "normal", but when any Java application is running, the color is altered, as if one of the RGB components was missing. In the following picture you can see on the foreground the Java application with weird color. On the side is the same picture (same file) opened with firefox.
http://s17.postimg.org/aud1yhk4v/201...4_13_35_28.jpg
When I perform the same tests using a "conventional" (HDMI or VGA) display, the image in Java apps is shown well. The same as if I execute the app with X forwarding.
I made the tests on TinyCore Linux (Kernel 3.8.10) and in Lubuntu (14.04.01), and the result is the same.
I am wondering if somebody has a possible explanation or a tip to fix this.
Thanks.
|
|
|
09-10-2014, 09:10 PM
|
#2
|
LQ Guru
Registered: Sep 2003
Location: Auckland, NZ
Distribution: openSUSE Leap
Posts: 5,990
|
I can't help with an answer as such, except to wonder if it is a colour space issue (a problem between the frame buffer driver and assumed colour space by java application). It may be bug report material, or perhaps the java application needs tweaking to handle this framebuffer device correctly. I apologize in advance if I'm off track here.
Anyway, FWIW I share the following link (even though it is discussing a custom framebuffer driver for Linux on the Wii)
http://fartersoft.com/blog/2011/06/2...for-wii-linux/
just to illustrate some of the pitfalls encountered around the data format used.
IIRC 'fbset' can be used (compatible with some frame-buffer devices) to set/check settings (including colour format)
*It may need to be installed first.
Hopefully, others with more experience about this behaviour can chime in.
|
|
|
09-10-2014, 10:55 PM
|
#3
|
Member
Registered: Jul 2014
Posts: 30
Original Poster
Rep: 
|
Hi @ferrari:
Actually you are not far from the truth.This is what the display manufacturer told me about :
Quote:
The wired color in Java applications may cause by the RGB color arrangement in the frame buffer memory.
Traditional, Linux framebuffer device use the {R, G, B} sequence (where the R component locates in MSB). But most LCD hardware uses a reversed order: {B, G, R}.
In our framebuffer driver design, in order to improve the overall performance, the usb display’s framebuffer uses {B,G,R} order. For applications like X11, it will query the framebuffer device for the correct RBG order. But there are applications like Java that may assume the framebuffer is always {R,G,B}.
In order to solve this problem, you may try to modify the kernel driver to use the R->G->B order and convert it to BGR before sending the data to the screen. Alternatively, you may check whether there is some configuration options to allow you to alter the RGB sequence in Java VM.
|
So I searched for a Java VM option, but there is nothing related with this. Now I trying to modify the driver, although it escapes of my limited knowledge regarding C and driver development.
I am going to read your link. Thanks a lot for the sugestion.
|
|
|
All times are GMT -5. The time now is 11:52 PM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|