How to enable framebuffer?

My setup uses 3 monitors in portrait mode. It’s no problem to set them to portrait mode in X, but when I’m using a console ([CTL][ALT]F1) the display is sideways, and so the only way to use it is to manually rotate a screen to landscape position so I can use it. I want to have it boot into portrait mode, and the only way I have found is to enable framebuffer in the kernel, which requires compiling a new kernel. I haven’t compiled a kernel since Linux went from monolithic to modular kernels, and it’s changed a lot since then. I need someone to help me step-by-step.

I have found https://www.tldp.org/HOWTO/Framebuffer-HOWTO/x168.html and unfortunately it appears to be outdated, referencing menu items I cannot find when running ‘make menuconfig’.

Current kernel:


# uname -r                                                                          
4.4.114-42-default

The instructions say

Assuming you are using menuconfig, you will need to do the following steps:

If your processor (on x86 platforms) supports MTRRs, enable this. It speeds up memory copies between the processor and the graphic card, but not strictly necessary. You can of course, do this after you have the console device working.

*IMPORTANT: For 2.1.x kernels, go into the Code Maturity Level menu, and enable the prompt for development and / or incomplete drivers. This is no longer necessary for the 2.2.x kernels.

and*

Go into the Console Drivers menu, and enable the following:

  • VGA Text Console
  • Video Selection Support
  • Support for frame buffer devices (experimental)
  • VESA VGA Graphic console
  • Advanced Low Level Drivers
  • Select Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp and 32bpp packed pixel drivers

…but I don’t see any way to enable MTRR, and I don’t see any Console Drivers Menu. So what’s the latest info on enabling framebuffer? How do I do it?

Sorry? framebuffer is included into openSUSE kernel. What makes you believe you need to compile your own kernel to get it?

What made me think that was all I could find in documentation saying so. But it did appear old, so I was guessing it was outdated. I suspected it was now compiled in because I couldn’t find anything the instructions said to do, so while waiting for an answer I kept looking and finally found instructions on how to do it both from the command line and from grub.

I wish that documentation were always kept reasonably up-to-date,and old, outdated junk be culled from the internet so as to make it much quicker and easier to find relevant info and learn.

Anyway, thanks for the response. The problem is solved.

Source of solution: command line - How do I rotate my display when not using an X Server? - Ask Ubuntu

Solution, in case others may need it:

You can rotate your virtual framebuffers using fbcon. 0 through 3 to represent the various rotations:

  • 0 - Normal rotation
  • 1 - Rotate clockwise
  • 2 - Rotate upside down
  • 3 - Rotate counter-clockwise

These can be set from the command line by putting a value into the correct system file. Rotate the current framebuffer:
echo 1 | sudo tee /sys/class/graphics/fbcon/rotate
Rotate all virtual framebuffers:

echo 1 | sudo tee /sys/class/graphics/fbcon/rotate_all
If you want this to happen automatically when you start your system, you need to modify your boot loader configuration to give it the correct options. In /etc/default/grub add fbcon=rotate:1 to the GRUB_CMDLINE_LINUX line:

GRUB_CMDLINE_LINUX=“fbcon=rotate:1”
(Don’t forget to run sudo update-grub after changing this file.)

Now I don’t have to twist my head or monitor sideways when in a virtual console.