2

I have a Pi 2 and decided to check the new experimental OpenGL driver available in the latest version of Raspbian Jessie. Alas! the thing is really buggy. After enabling it my Pi, (through raspi-config) no longer boots and the connected official 7" Pi display shows only the initial colorful square but nothing after that. After reading online it seems that in order for the Pi to boot after enabling the GL driver a display has to be connected to the HDMI. Nice...

So in order to avoid attaching and detaching my desktop display I decide to check if I can disable the GL driver by simply editing X and Y files on the SD card from my notebook.

The problem is that I have no idea which setting (or even settings!) the enabling of the GL driver has triggered so I haven't got a clue which configuration file (or files) I have to edit.

Searching online gave me no fruitful results so I'm asking here hoping that I can resolve this issue.

PS: As mentioned I do have a HDMI screen however knowing which settings the raspi-config actually changes would be really helpful not only for the situation described in this post.

  • Put your SD card in a another box and look at config.txt. I'd expect any changes for opengl to be at the end and reasonably obvious. – joan May 11 '16 at 10:49
  • 1
    Are you using NOOBS? I think that does odd things with partitions. If you use plain Raspbian there will only be one partition visible on a Window's machine. That should contain config,txt, kernel.img, etc. – joan May 11 '16 at 11:00
  • 1
    No, I use the plain Jessie (full not lite) image. However now that you have mentioned TWO partition I realized I have been looking inside the Linux partition where you have the standard /boot folder instead of the boot partition. LOL I found my config.txt. :P As for Windows - I'm using Linux on my desktop PC and notebook so no problem with invisible partitions. :D – rbaleksandar May 11 '16 at 11:36
  • 1
    For future reference raspi-config doesn't have any special powers, it is just a shell script that runs other commands for you. So if you are ever curious about this kind of thing and can understand shell, it's all pretty straightforward: I think the script in is in /usr/bin. – goldilocks May 11 '16 at 13:04
  • 1
    Actually it's /usr/bin, sorry (edited previous comment too). – goldilocks May 11 '16 at 13:08
3

The setting that changes inside the config.txt is dtoverlay. Whenever the GL driver is enabled it is set to dtoverlay=vc4-kms-v3d else commented out.

I had difficulties even finding the config.txt since I was looking in the wrong partition (thanks for the tip, @joan !)

In order to easily find what setting has changed and since I didn't know the name of the setting (or settings) to begin with I had to use my HDMI monitor for the Pi to be able to boot properly. After that I disabled the driver and copied the config.txt inside my /home under the name of config_gl_disabled.txt. After that I enabled it again and did the same thing but this time the name of the copy was config_gl_enabled.txt. Without rebooting (so that I screw things up again) I simply used diff:

diff config_gl_*

and the dtoverlay showed as thing that was changed.

In addition as pointed by @goldilocks the raspi-config is just a shell script which can be found in /usr/bin (you can also see the installation location in the raspi-config.install) or in the GitHub repository. The problem is that for example in my case I was unable to find anything indicating vc4-kms-v3d or dtoverlay so in some situations it might be nearly impossible to follow the breadcrumbs since external scripts are probably also being invoked, which change this and that. So without prior knowledge where to look I believe that diff-ing (or similar way) is the easiest way for beginners.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.