jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Multiple Frame buffer beta testers wanted

Wed Jun 20, 2018 3:35 pm

Hello all,

Finally got round to sorting out the multi FB support as a beta. This implements frame buffers for both HDMI/composite and LCD panels at the same time. So you get /dev/fb0 and /dev/fb1 if you have both HDMI and LCD attached.

Here are the instructions to get the code and install and test it.

These instructions assume a Pi2B/3B board.

**********************************************************************
WARNING: This is beta software, do not use this on an important system
**********************************************************************

I suggest you backup the changed files from the boot folder first.


To update your installation to the multi framebuffer beta test version


Update your system to a 4.14.50 version, using rpi udpate

`sudo rpi-update fe525d2`

This will ensure you have the correct module versions to match the new kernel.

Download the zip file containing the required firmware changes from here

https://drive.google.com/open?id=1rdSZQ ... 89nLaLA8Y6

Unzip somewhere, should be two files, the VC4 firmware (start_x.elf) and the
kernel (kernel7.img)

Now, copy the new VC4 firmware, start_x.elf to the boot folder on the SD card.

sudo cp <whereever you unzipped it>/start_x.elf /boot

Now copy the new frame buffer driver enabled kernel to the boot folder

sudo cp <whereever you unzipped it>/kernel7.img /boot

Note that only a start_x.elf is supplied, so you will need to add start_x=1 to config.txt if
not already doing so. (Or copy start_x.elf to start.elf)

Reboot.


If you have both LCD and HDMI plugged in you should at startup see the usual
rainbox screen on both devices, with one of them using a slightly different colour ramp.

Once booted to the command line, check that the two frame buffers have been created using

ls /dev/fb*

which should show fb0 and fb1

You can now use things such as fbi to load images to either display. The following uses
fb1 (install fbi using `sudo apt install fbi`), easily changed to fb0.

fbi --noverbose --blend 1000 -t 3 -d /dev/fb1 /usr/share/rpd-wallpaper/*

You can specify which display the console will appear on, and swap during use.

to specify the startup console, in cmdline.txt, add the `fbcon=map:0` or `fbcon=map:1` option.

See https://www.kernel.org/doc/Documentation/fb/fbcon.txt for more details on the map
option, its a bit more complicate than you might expect. There are some other fun commands in
there too.

Use con2fbmap after startup to switch consoles, second parameter is the framebuffer number.

`con2fbmap 1 1`
`con2fbmap 1 0`

To specify which display X (the desktop) appears on, edit the entries in

`/usr/share/X11/xorg.conf.d/99-fbturbo.conf`

**********************************************************************

What I am looking for...

Any bugs or regressions, anything that works differently than before that
will upset backwards compatibility. Adulation.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

procount
Posts: 1306
Joined: Thu Jun 27, 2013 12:32 pm
Location: UK

Re: Multiple Frame buffer beta testers wanted

Wed Jun 20, 2018 4:13 pm

Cool!
I'd like to put this into PINN. Would it be possible to build it into PINN/NOOBS's buildroot environment?
PINN - NOOBS with the extras... https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=142574

aBUGSworstnightmare
Posts: 1097
Joined: Tue Jun 30, 2015 1:35 pm

Re: Multiple Frame buffer beta testers wanted

Wed Jun 20, 2018 6:52 pm

Will this work with DPI too or is it only possible to use HDMI and DSI?
If yes, how to configure the timings in case custom timings are required for both, HDMI and DPI?

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Wed Jun 20, 2018 8:53 pm

aBUGSworstnightmare wrote:
Wed Jun 20, 2018 6:52 pm
Will this work with DPI too or is it only possible to use HDMI and DSI?
If yes, how to configure the timings in case custom timings are required for both, HDMI and DPI?
Any display that is run from the VC4 side of things using dispmanx would work. Just set up the DPI display as you would before, and it should just appear as a framebuffer. However, I have NOT tested this! Composite should also work, but I beleive that will only work if there is no HDMI connected.

At the moment I have limited the total display to 2, but this could be expanded, although there is a memory hit for each display.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Wed Jun 20, 2018 8:54 pm

procount wrote:
Wed Jun 20, 2018 4:13 pm
Cool!
I'd like to put this into PINN. Would it be possible to build it into PINN/NOOBS's buildroot environment?
I'd be inclined to wait until testing shows no issues, then we will release it as standard anyway.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5371
Joined: Fri Jul 29, 2011 5:36 pm
Location: The unfashionable end of the western spiral arm of the Galaxy

Re: Multiple Frame buffer beta testers wanted

Thu Jun 21, 2018 3:46 pm

procount wrote:
Wed Jun 20, 2018 4:13 pm
Cool!
I'd like to put this into PINN. Would it be possible to build it into PINN/NOOBS's buildroot environment?
Out of curiosity, why? What use would having two displays have in NOOBS or PINN?

procount
Posts: 1306
Joined: Thu Jun 27, 2013 12:32 pm
Location: UK

Re: Multiple Frame buffer beta testers wanted

Thu Jun 21, 2018 4:03 pm

Out of curiosity, why? What use would having two displays have in NOOBS or PINN?
Well, maybe not so much for NOOBS, more so for PINN.
1. There are several users (gamers mostly I think) who use a DSI touchscreen and a HDMI. I have added functionality in PINN to alter the priority of these screens as currently the only way to switch from one to the other is to reboot, which is where PINN fits in nicely. But it would be much easier if we could switch them dynamically without having to reboot.
2. I want to explore what is possible and experiment with it.
3. Not sure about actually using both screens at once, but we could have the help browser on one screen and the recovery program on the other at the same time?
4. Just curious to see if it could be done.
PINN - NOOBS with the extras... https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=142574

ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5371
Joined: Fri Jul 29, 2011 5:36 pm
Location: The unfashionable end of the western spiral arm of the Galaxy

Re: Multiple Frame buffer beta testers wanted

Thu Jun 21, 2018 4:06 pm

procount wrote:
Thu Jun 21, 2018 4:03 pm
Out of curiosity, why? What use would having two displays have in NOOBS or PINN?
Well, maybe not so much for NOOBS, more so for PINN.
1. There are several users (gamers mostly I think) who use a DSI touchscreen and a HDMI. I have added functionality in PINN to alter the priority of these screens as currently the only way to switch from one to the other is to reboot, which is where PINN fits in nicely. But it would be much easier if we could switch them dynamically without having to reboot.
2. I want to explore what is possible and experiment with it.
3. Not sure about actually using both screens at once, but we could have the help browser on one screen and the recovery program on the other at the same time?
4. Just curious to see if it could be done.
Makes sense, thanks.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Fri Jun 22, 2018 8:52 am

Ping.

Has anyone actually tried this stuff out?
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

DirkS
Posts: 9487
Joined: Tue Jun 19, 2012 9:46 pm
Location: Essex, UK

Re: Multiple Frame buffer beta testers wanted

Fri Jun 22, 2018 9:24 am

jamesh wrote:
Fri Jun 22, 2018 8:52 am
Ping.

Has anyone actually tried this stuff out?
Working on it ATM.

Having a problem, though.

Basic config: Pi3B, RPF LCD, External screen on HDMI-VGA converter.
External screen seems to be recognised fine, but I only see 1 framebuffer in /dev and output goes to the touchscreen.
vcdbg log:

Code: Select all

001026.341: brfs: File read: /mfs/sd/config.txt
001026.842: brfs: File read: 355 bytes
001048.272: HDMI:EDID version 1.3, 1 extensions, screen size 34x27 cm
001048.384: HDMI:EDID features - videodef 0xa0 standby suspend active off; colour encoding:RGB444|YCbCr422; sRGB is not default colourspace; preferred format is not native; does not support GTF
001048.517: HDMI:EDID found preferred DMT detail timing format: 1280x1024p @ 60 Hz (35)
001048.606: HDMI:EDID found DMT format: code 4, 640x480p @ 60 Hz in established timing I/II
001048.685: HDMI:EDID found DMT format: code 5, 640x480p @ 72 Hz in established timing I/II
001048.771: HDMI:EDID found DMT format: code 6, 640x480p @ 75 Hz in established timing I/II
001048.848: HDMI:EDID found DMT format: code 8, 800x600p @ 56 Hz in established timing I/II
001048.944: HDMI:EDID found DMT format: code 9, 800x600p @ 60 Hz in established timing I/II
001049.025: HDMI:EDID found DMT format: code 10, 800x600p @ 72 Hz in established timing I/II
001049.111: HDMI:EDID found DMT format: code 11, 800x600p @ 75 Hz in established timing I/II
001049.198: HDMI:EDID found DMT format: code 16, 1024x768p @ 60 Hz in established timing I/II
001049.285: HDMI:EDID found DMT format: code 17, 1024x768p @ 70 Hz in established timing I/II
001049.366: HDMI:EDID found DMT format: code 18, 1024x768p @ 75 Hz in established timing I/II
001049.456: HDMI:EDID found DMT format: code 36, 1280x1024p @ 75 Hz in established timing I/II
001049.585: HDMI:EDID standard timings block x 8: 0x0101 0101 0101 0101 0101 0101 0101 0101
001062.635: HDMI:EDID parsing v3 CEA extension 0
001062.712: HDMI:EDID monitor support - underscan IT formats:yes, basic audio:yes, yuv444:yes, yuv422:yes, #native DTD:1
001062.799: HDMI:EDID found CEA detail timing format: 1280x720p @ 60 Hz (4)
001062.868: HDMI:EDID does not understand CEA format code 0
001062.934: HDMI:EDID does not understand CEA format code 0
001063.005: HDMI:EDID found CEA format: code 4, 1280x720p @ 60Hz (native)
001063.084: HDMI:EDID found CEA format: code 19, 1280x720p @ 50Hz
001063.144: HDMI:EDID does not understand CEA format code 0
001063.206: HDMI:EDID does not understand CEA format code 0
001063.281: HDMI:EDID found CEA format: code 2, 720x480p @ 60Hz
001063.351: HDMI:EDID found CEA format: code 3, 720x480p @ 60Hz
001063.410: HDMI:EDID does not understand CEA format code 0
001063.470: HDMI:EDID does not understand CEA format code 0
001063.535: HDMI:EDID does not understand CEA format code 0
001063.628: HDMI:EDID found audio format 2 channels PCM, sample rate: 32|44|48 kHz, sample size: 16|20|24 bits
001063.698: HDMI:EDID found Video Capability DB length 2
001063.768: HDMI:EDID video capability: CE:3 IT:3 PT:0 QS:0
001063.828: HDMI:EDID found HDMI VSDB length 7
001063.892: HDMI:EDID HDMI VSDB has physical address 2.0.0.0
001063.950: HDMI:EDID HDMI VSDB supports AI:yes, dual link DVI:no
001064.017: HDMI:EDID HDMI VSDB deep colour support - 48-bit:no 36-bit:no 30-bit:no DC_yuv444:no
001064.085: HDMI:EDID HDMI VSDB max TMDS clock 225 MHz
001064.143: HDMI:EDID HDMI VSDB has no latency information
001064.228: HDMI:EDID filtering formats with pixel clock > 162 MHz or h. blanking > 1023
001064.448: HDMI:EDID preferred mode remained as DMT (35) 1280x1024p @ 60 Hz with pixel clock 108 MHz
001077.835: brfs: File read: /mfs/sd/config.txt
001078.211: HDMI:Setting property pixel encoding to Default
001078.276: HDMI:Setting property pixel clock type to PAL
001078.331: HDMI:Setting property content type flag to No data
001078.396: HDMI:Setting property fuzzy format match to enabled
001078.552: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
001577.201: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
001577.554: hdmi: HDMI:>>>>>>>>>>>>>Rx sensed, reading EDID<<<<<<<<<<<<<
001589.661: hdmi: HDMI:EDID version 1.3, 1 extensions, screen size 34x27 cm
001589.769: hdmi: HDMI:EDID features - videodef 0xa0 standby suspend active off; colour encoding:RGB444|YCbCr422; sRGB is not default colourspace; preferred format is not native; does not support GTF
001589.919: hdmi: HDMI:EDID found preferred DMT detail timing format: 1280x1024p @ 60 Hz (35)
001590.007: hdmi: HDMI:EDID found DMT format: code 4, 640x480p @ 60 Hz in established timing I/II
001590.097: hdmi: HDMI:EDID found DMT format: code 5, 640x480p @ 72 Hz in established timing I/II
001590.177: hdmi: HDMI:EDID found DMT format: code 6, 640x480p @ 75 Hz in established timing I/II
001590.267: hdmi: HDMI:EDID found DMT format: code 8, 800x600p @ 56 Hz in established timing I/II
001590.350: hdmi: HDMI:EDID found DMT format: code 9, 800x600p @ 60 Hz in established timing I/II
001590.440: hdmi: HDMI:EDID found DMT format: code 10, 800x600p @ 72 Hz in established timing I/II
001590.521: hdmi: HDMI:EDID found DMT format: code 11, 800x600p @ 75 Hz in established timing I/II
001590.607: hdmi: HDMI:EDID found DMT format: code 16, 1024x768p @ 60 Hz in established timing I/II
001590.688: hdmi: HDMI:EDID found DMT format: code 17, 1024x768p @ 70 Hz in established timing I/II
001590.779: hdmi: HDMI:EDID found DMT format: code 18, 1024x768p @ 75 Hz in established timing I/II
001590.867: hdmi: HDMI:EDID found DMT format: code 36, 1280x1024p @ 75 Hz in established timing I/II
001591.009: hdmi: HDMI:EDID standard timings block x 8: 0x0101 0101 0101 0101 0101 0101 0101 0101
001604.070: hdmi: HDMI:EDID parsing v3 CEA extension 0
001604.155: hdmi: HDMI:EDID monitor support - underscan IT formats:yes, basic audio:yes, yuv444:yes, yuv422:yes, #native DTD:1
001604.253: hdmi: HDMI:EDID found CEA detail timing format: 1280x720p @ 60 Hz (4)
001604.330: hdmi: HDMI:EDID does not understand CEA format code 0
001604.393: hdmi: HDMI:EDID does not understand CEA format code 0
001604.474: hdmi: HDMI:EDID found CEA format: code 4, 1280x720p @ 60Hz (native)
001604.552: hdmi: HDMI:EDID found CEA format: code 19, 1280x720p @ 50Hz
001604.623: hdmi: HDMI:EDID does not understand CEA format code 0
001604.693: hdmi: HDMI:EDID does not understand CEA format code 0
001604.769: hdmi: HDMI:EDID found CEA format: code 2, 720x480p @ 60Hz
001604.849: hdmi: HDMI:EDID found CEA format: code 3, 720x480p @ 60Hz
001604.920: hdmi: HDMI:EDID does not understand CEA format code 0
001604.989: hdmi: HDMI:EDID does not understand CEA format code 0
001605.052: hdmi: HDMI:EDID does not understand CEA format code 0
001605.153: hdmi: HDMI:EDID found audio format 2 channels PCM, sample rate: 32|44|48 kHz, sample size: 16|20|24 bits
001605.220: hdmi: HDMI:EDID found Video Capability DB length 2
001605.290: hdmi: HDMI:EDID video capability: CE:3 IT:3 PT:0 QS:0
001605.348: hdmi: HDMI:EDID found HDMI VSDB length 7
001605.420: hdmi: HDMI:EDID HDMI VSDB has physical address 2.0.0.0
001605.488: hdmi: HDMI:EDID HDMI VSDB supports AI:yes, dual link DVI:no
001605.566: hdmi: HDMI:EDID HDMI VSDB deep colour support - 48-bit:no 36-bit:no 30-bit:no DC_yuv444:no
001605.632: hdmi: HDMI:EDID HDMI VSDB max TMDS clock 225 MHz
001605.689: hdmi: HDMI:EDID HDMI VSDB has no latency information
001605.773: hdmi: HDMI:EDID filtering formats with pixel clock > 162 MHz or h. blanking > 1023
001605.991: hdmi: HDMI:EDID preferred mode remained as DMT (35) 1280x1024p @ 60 Hz with pixel clock 108 MHz
001606.058: hdmi: HDMI: hotplug attached with HDMI support
001606.138: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
001608.595: hdmi: HDMI: power_on to DMT mode [email protected]
001611.814: hdmi: HDMI: Action callback added to queue to happen at frame 2
001611.879: hdmi: HDMI: Action stop_3d_mode added to queue to happen at frame 2
001611.948: hdmi: HDMI: Action unmute added to queue to happen at frame 3
001612.012: hdmi: HDMI: Action cec_init added to queue to happen at frame 3
001661.951: *** Restart logging
001662.015: brfs: File read: 355 bytes
001663.728: brfs: File read: /mfs/sd/cmdline.txt
001663.836: Read command line from file 'cmdline.txt':
001663.903: 'dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=d9947356-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles'
001664.231: brfs: File read: 187 bytes
002045.671: brfs: File read: /mfs/sd/kernel7.img
002045.738: Loading 'kernel7.img' to 0x8000 size 0x4b1590
002049.415: No kernel trailer - assuming DT-capable
002049.505: brfs: File read: 4920720 bytes
002055.817: brfs: File read: /mfs/sd/bcm2710-rpi-3-b.dtb
002055.884: Loading 'bcm2710-rpi-3-b.dtb' to 0x4b9590 size 0x5f12
002185.615: brfs: File read: 24338 bytes
002202.356: brfs: File read: /mfs/sd/overlays/rpi-ft5406.dtbo
002214.729: Loaded overlay 'rpi-ft5406'
002259.211: brfs: File read: 1018 bytes
002272.012: brfs: File read: /mfs/sd/overlays/rpi-backlight.dtbo
002283.456: Loaded overlay 'rpi-backlight'
002315.396: brfs: File read: 489 bytes
002318.055: brfs: File read: /mfs/sd/config.txt
002318.127: dtparam: i2c_arm=on
002334.413: dtparam: spi=on
002348.945: dtparam: audio=on
002367.569: brfs: File read: 355 bytes
002378.466: brfs: File read: /mfs/sd/overlays/pi3-disable-wifi.dtbo
002389.447: Loaded overlay 'pi3-disable-wifi'
003473.449: gpioman: gpioman_get_pin_num: pin EMMC_ENABLE not defined
003583.248: Device tree loaded to 0x2eff9b00 (size 0x64e5)
003585.316: gpioman: gpioman_get_pin_num: pin SDCARD_CONTROL_POWER not defined
004705.432: vchiq_core: vchiq_init_state: slot_zero = 0xfad80000, is_master = 1
004709.616: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
004714.918: TV service:host side not connected, dropping notification 0x00000002, 0x00000002, 0x00000023
config.txt

Code: Select all

dtparam=i2c_arm=on
dtparam=spi=on
dtparam=audio=on
enable_uart=1

dtoverlay=pi3-disable-wifi
lcd_rotate=2

disable_overscan=1

DirkS
Posts: 9487
Joined: Tue Jun 19, 2012 9:46 pm
Location: Essex, UK

Re: Multiple Frame buffer beta testers wanted

Fri Jun 22, 2018 9:49 am

Got it working now.
Had to add

Code: Select all

start_x=1
to config.txt :-)

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Fri Jun 22, 2018 12:37 pm

DirkS wrote:
Fri Jun 22, 2018 9:49 am
Got it working now.
Had to add

Code: Select all

start_x=1
to config.txt :-)
Ah, good point, I only supplied a start_x.elf with the modifications, none of the other options. I've updated the first post instructions.

Phew. Thought there might be a problem with HDMI-VGA conversion there.

This stuff should also work for composite displays, but we don't have any in the office so unable to test. I don't believe you can have composite and HDMI at the same time though, for HW limitations reasons.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

DirkS
Posts: 9487
Joined: Tue Jun 19, 2012 9:46 pm
Location: Essex, UK

Re: Multiple Frame buffer beta testers wanted

Fri Jun 22, 2018 2:04 pm

Question: are the frame buffers always assigned in the same order, e.g. HDMI before DSI?
So far my HDMI screen is always assigned fb0 and the RPF LCD fb1

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Fri Jun 22, 2018 2:55 pm

DirkS wrote:
Fri Jun 22, 2018 2:04 pm
Question: are the frame buffers always assigned in the same order, e.g. HDMI before DSI?
So far my HDMI screen is always assigned fb0 and the RPF LCD fb1
I put in some specific ordering code, so could be in the order people think is best. I thought I had given the LCD priority, perhaps not. Will check.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

procount
Posts: 1306
Joined: Thu Jun 27, 2013 12:32 pm
Location: UK

Re: Multiple Frame buffer beta testers wanted

Fri Jun 22, 2018 9:55 pm

I found a bit of time to have a try.
I installed Raspbian via PINN.
I applied rpi-update and checked uname gave me 4.14.50
I copied the new kernel7.img and start_x.elf & rebooted.
OK so far.
But when I set start_x=1 in config.txt it doesn't boot.
I get 2 quick flashes of the green LED and the HDMI monitor backlight comes on but the screen remains black.

RPi3B v1.2 running on a Motorola Lapdock via HDMI only.
PINN - NOOBS with the extras... https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=142574

User avatar
Gavinmc42
Posts: 2192
Joined: Wed Aug 28, 2013 3:31 am

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 8:19 am

Bit of a toy application but could it do two frame buffers for SPI LCDs?

These have reasonable pixel/inch, so tiny VR headset?
https://www.adafruit.com/product/3787
They also have low pixel count so frame rate should not be too bad.
I seem to remember stereo display coding was possible?

Or eye animations
https://www.adafruit.com/product/3356

Would need a new driver, a modification of the fb_ST7735r.c?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 9:32 am

procount wrote:
Fri Jun 22, 2018 9:55 pm
I found a bit of time to have a try.
I installed Raspbian via PINN.
I applied rpi-update and checked uname gave me 4.14.50
I copied the new kernel7.img and start_x.elf & rebooted.
OK so far.
But when I set start_x=1 in config.txt it doesn't boot.
I get 2 quick flashes of the green LED and the HDMI monitor backlight comes on but the screen remains black.

RPi3B v1.2 running on a Motorola Lapdock via HDMI only.
Hmm. Dunno. I presume other people have got it working?
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 9:34 am

Gavinmc42 wrote:
Sat Jun 23, 2018 8:19 am
Bit of a toy application but could it do two frame buffers for SPI LCDs?

These have reasonable pixel/inch, so tiny VR headset?
https://www.adafruit.com/product/3787
They also have low pixel count so frame rate should not be too bad.
I seem to remember stereo display coding was possible?

Or eye animations
https://www.adafruit.com/product/3356

Would need a new driver, a modification of the fb_ST7735r.c?
Completely different frame buffer. This stuff is for displays detected on the video core, so DSI, DPI, HDMI and composite.

I know nothing about SPI displays - is it physically possible to connect two? If so, the driver probably already supports it.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

procount
Posts: 1306
Joined: Thu Jun 27, 2013 12:32 pm
Location: UK

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 9:48 am

@JamesH - me neither. I'll try again with a more conventional setup. (I even copied bootcode.bin to PINN, but it made no difference)
PINN - NOOBS with the extras... https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=142574

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 7:08 pm

Hm. I've obviously missed something, but there again, someone has got it working. Hmm indeed. I'll have a think, but might need to wait for Monday for fixes.

Did you rpi-update to the commit id specified?
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

tvjon
Posts: 632
Joined: Mon Jan 07, 2013 9:11 am

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 8:58 pm

"Ping.

Has anyone actually tried this stuff out?"

James,

Thank you for your efforts in this area.

I suspect many interested parties are busy with other things, hence finding it difficult to immediately download, test, note inconsistencies, post back back to the forum, important as this clearly is (potentially).

So:

No rainbow screen on either display (both 1920*1080) just the usual scrolling boot info'. I disabled splash for the test, but subsequently enabled it which works fine.

HDMI in my test case is fb0, & suffers from underscan, which is supposedly disabled via raspi-config, so that seems to be ignored.

DPI *is* full screen.

Oddly my experimental RSS feed now appears on fb1, not fb0, where it's supposed to be.

omxplayer plays everything on fb1. It also ignores all references to display numbers.

I'll try to test composite video tomorrow.

I don't use fbi, but if I get time, I'll try it anyway.

HTH

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 10:24 pm

Thanks for the report.

You should defo. see the rainbow screen. Or do you mean you have turned it off?

Odd that underscan cannot be turned of, I don't see that.

omxplayer does not play to framebuffers, it's a superimposed display of a display. When I tried it I could specify the display OK, so I must have changed something since that test was done. I've had to do quite a bit of code and display shuffling to get this to work, some something has gone awry somewhere.

Not sure about the RS feed thing - a frame buffer is a framebuffer. To write on fb1 it must be specifying fb1.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

tvjon
Posts: 632
Joined: Mon Jan 07, 2013 9:11 am

Re: Multiple Frame buffer beta testers wanted

Sat Jun 23, 2018 11:21 pm

"omxplayer does not play to framebuffers,"


Yes, I understand that.


"- a frame buffer is a framebuffer. To write on fb1 it must be specifying fb1."

If you think about it, prior to your new code, there was no possibility of a frame buffer on hdmi & another on DPI. My RSS display code just uses a Dispmanx layer, no reference whatsoever to fb1, expecting it to be shown on screen 0 ("default display").

I've now conducted a short test with Composite video, using exactly the same config.txt as my initial 2 screens test.

Rainbow screen does appear on composite, but not on DPI.

The X display now comes up on DPI screen, again with underscan. My RSS output appears on DPI too.

omxplayer with no display argument also appears on DPI.

However, I can get its output on the composite screen via:

omxplayer --display 5 some-video.mp4

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jun 25, 2018 8:39 am

You are getting some odd results. I'll look at all the points this morning. Hadn't realised you were using dispmanx directly. I was hoping that stuff was backwards compatible, but seems not to be the case, and I am not sure I will be able to make it 100% backward compatible. Will try though!
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 20924
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jun 25, 2018 9:14 am

OK, so testing with DSI LCD and HDMI and everything seems to work ok, I have overscan turned off and it's off on both, and I get rainbow screens on both.

So looks like something odd with DPI screen, and it appears we do have on in the office, so will give that a go.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Please direct all questions to the forum, I do not do support via PM.

Return to “General discussion”