Hi,
I need to provide a display to the T1040RDB. With the DIU not available, I decided to plug a graphics card in the main PCIe port, choosing a Matrox G550 card.
After having added the right configs in the Linux kernel, I had to change the type of physical addresses in the drivers, as they were in 32 bits while Linux uses 64-bit values for physical addresses.
I got 2 framebuffer instances (the card has 2 DVI ports), /dev/fb0 and /dev/fb1. Using fb0, I am able to use fbset, change the resolution, switch between sleeping and active mode (to wake up the monitor). I get the Linux boot logo (4 penguins) and the message "Please wait: booting..." on screen. But my problem is whatever the tool used to send images to the framebuffer, they are never displayed.
Do you know if using a graphics card like that has been tried with success? What changes need to be applied in the Linux configuration? Do you recommend another model of graphics card?
Thanks,
Mathias
Solved! Go to Solution.
I want to confirm that using this graphics card on the T1040RDB board now works (at least the first DVI output in 1024x768x32-60).
I fixed the 32-bit addresses in the Matrox driver and found a good boot command line
setenv othbootargs ramdisk_size=960000 video=matroxfb:vesa:0x118,init
But that was not enough.
One of the main structure of the framebuffer has hardcoded 32-bit values for physical addresses.
I saw in the framebuffer driver that some code to manage 64-bit physical addresses was inside a "ifdef CONFIG_COMPAT / endif" block. I failed to enable this config with a 32-bit kernel but then that worked with a 64-bit kernel!
I want to confirm that using this graphics card on the T1040RDB board now works (at least the first DVI output in 1024x768x32-60).
I fixed the 32-bit addresses in the Matrox driver and found a good boot command line
setenv othbootargs ramdisk_size=960000 video=matroxfb:vesa:0x118,init
But that was not enough.
One of the main structure of the framebuffer has hardcoded 32-bit values for physical addresses.
I saw in the framebuffer driver that some code to manage 64-bit physical addresses was inside a "ifdef CONFIG_COMPAT / endif" block. I failed to enable this config with a 32-bit kernel but then that worked with a 64-bit kernel!
The display has a blanking feature that can be enabled.
Try to re-enable the display using the following command to disable blanking:
$ echo 0 > /sys/class/graphics/fb0/blank
Have a great day,
Pavel
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Pavel
I used that to wake up the screen after timeout. By the way, that restored the text but not the bootlogo with the 4 penguins...
I don't know what's wrong with my Linux config...
Is it a problem of flush / refresh (scan out) of the graphics to the screen? Is there a wrong association between the VT and the framebuffer? I also thought about the DVI support but as I get a display on boot...
Mathias