Compiling kernel for fbdev and removing DRM support

475 views
Skip to first unread message

João Manoel

unread,
Jul 13, 2019, 4:53:59 AM7/13/19
to BeagleBoard
Hi,

I would like to make a program that uses the fbdev to work and I need to compile the kernel to add this functionality and remove the DRM support.
I managed to compile a bootable kernel but I'm failing to get the fbdev working. I would like to know what is the easiest way to get the fbdev working.

The things that I modified to the kernel config are:

- enable: 
CONFIG_FB_DA8XX=y 
- disable: 
CONFIG_DRM 
CONFIG_DRM_I2C_NXP_TDA998X
CONFIG_DRM_TILCDC

What is missing to get video out with fbdev?

My board is a Beagleboard black wireless, and I couldn't see any error on the dmesg or anything related to the video after booting without video. I'm compiling the kernel 4.14.108. I have an HDMI cable attached, but I'm also trying to get video out with an LCD cape (from farnell element14)

Thank you in advance for the help :)

Best regards 

 

Robert Nelson

unread,
Jul 13, 2019, 1:23:30 PM7/13/19
to Beagle Board
CONFIG_DRM_FBDEV_EMULATION

Then re-enable:

CONFIG_DRM
CONFIG_DRM_I2C_NXP_TDA998X
CONFIG_DRM_TILCDC

Regards,

--
Robert Nelson
https://rcn-ee.com/

João Manoel

unread,
Jul 13, 2019, 4:09:36 PM7/13/19
to BeagleBoard
Hi Robert,

thank you for your message. I used the configuration from bb.org_defconfig and compiled again the kernel. I noticed that the default configuration enables CONFIG_DRM_FBDEV_EMULATION by default. I compiled the kernel, and I have video out to my LCD screen, but I still have problems with Retroarch to run on my board.

As this fbdev emulation is a default configuration I returned to the original kernel (4.14.71-ti-r80) and now I don't really know why I cannot run Retroarch with the standard video support on my board.

I installed retroarch from the repository with (apt-get install retroarch) in a clean Debian 9.5 IOT image. I had video error problems, so I followed the instructions from here:


to install the accelerated video driver, and I managed to get the 3D examples working nicely. But I still getting errors on the Retroarch log:
---------------
....
RetroArch [INFO] :: [DRM]: Mode 0: (480x272) 480 x 272, 59 Hz
gbm: failed to open any driver (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
gbm: Last dlopen error: /usr/lib/dri/tilcdc_dri.so: cannot open shared object file: No such file or directory
failed to load driver: tilcdc
RetroArch [INFO] :: Found GL context: kms
RetroArch [INFO] :: Detecting screen resolution 480x272.
RetroArch [INFO] :: [EGL]: EGL version: 1.4
Segmentation fault
--------------

Now Retroarch seems to be able to detect the video configurations but still giving errors, and craches.

I also tried to compile retroarch from the source with more video driver support like SDL, SDL2, and I found that they have an old driver dedicated to OMAP processors from 2014 that needs /sys/devices/platform/omapdss populated (https://github.com/libretro/RetroArch/blob/master/README-OMAP.md), but none of the drivers that I tried worked. This driver was probably written before DRM support to the beaglebone boards. So, that's why I would like to have the standard fbdev working without any acceleration driver to test the program. I expect that Retroarch won't work well with the PowerVR GPU anyway.

I tried to use old debian images but all images with the beagleboneblack wireless support already have the DRM enabled, and with the CONFIG_DRM_FBDEV_EMULATION enabled I'm confused, and I don't nkow how to make Retroarch work.

Do you have any suggestion?

Best regards 

João Manoel

unread,
Jul 14, 2019, 6:00:35 AM7/14/19
to BeagleBoard
Just to tell that I managed to run Retroarch (surprisingly well!!) on my board with the stock kernel. But only inside an X environment with SDL support (not SDL2) .

Best,
Reply all
Reply to author
Forward
0 new messages