17

I want to rotate my console (not X Server) by 90 degrees (clockwise).

The following seems to work for me: echo 1 > /sys/class/graphics/fbcon/rotate; however, I'd prefer to use a kernel option in Grub, rather than including the above in the /etc/rc.local script.

The fbcon documentation outlines the following option that can be passed to the kernel: fbcon=rotate:<n>. Unfortunately, when I modify /etc/default/grub and modify the GRUB_CMDLINE_LINUX line like this:

GRUB_CMDLINE_LINUX="fbcon=rotate_all:1"

... it doesn't work. I also ran update-grub before rebooting.

I've also tried this:

GRUB_CMDLINE_LINUX="fbconsole=rotate_all:1"

Still nothing. Any thoughts?

2
  • Why don't you want to edit rc.local? Mar 19, 2013 at 23:05
  • @EmanuelBerg If you edit rc.local it will only run after the system has finished booting, which means if anything goes wrong and you land in single-user/recovery mode, the screen won't be rotated. By putting it on the command line, the screen will be rotated correctly relatively early in the boot process.
    – Malvineous
    Dec 27, 2020 at 13:16

4 Answers 4

17

Figured this out. You may need to add video=efifb to ensure that the framebuffer console is used:

GRUB_CMDLINE_LINUX="video=efifb fbcon=rotate:1"

EDIT: The efifb driver is designed for EFI firmware only, especially Intel-based Apple computers. However, as I've found out, it also works for non-Apple PCs. I am running the proprietary nVidia drivers on my Linux system, and the efifb driver works quite well. I assume it works for me because I am using nVidia drivers, and the "native" fbdev driver conflicts with them.

To be honest, I don't fully understand why the efifb driver makes things work, but if someone else does (or if you can get things working with another framebuffer driver with nVidia drivers installed), please comment below. Thanks!

9
  • 2
    Big caveat: This only applies if your machine ships with an EFI-enabled BIOS.
    – Alex
    Jan 12, 2015 at 23:47
  • Thanks for posting your solution! If this did indeed solve it for you, please accept it so the question can be marked as answered.
    – terdon
    Jan 12, 2015 at 23:50
  • @aperezbios - Are you sure that's the case? I'm pretty sure that I've seen this working on a conventional BIOS system.
    – BMiner
    Jan 16, 2015 at 19:31
  • @BMiner +1. With the option "video= efi fb" it stands to reason this only works on efi BIOS. Possibly, there is a different command for non-efi BIOS. Nov 29, 2016 at 9:58
  • @MariusMatutiae - Indeed. The video=efifb part isn't necessary if you are running a BIOS firmware or booted in BIOS compatibility mode with an EFI firmware, though it probably doesn't hurt either. Technically speaking, there is no such thing as "EFI BIOS", just EFI firmware or BIOS firmware.
    – BMiner
    Dec 5, 2016 at 14:43
6

There is a small but important difference between the documentation and what you have written in your config file:

…the following option that can be passed to the kernel: fbcon=rotate:<n>

While you have written

fbcon=rotate_all:1

rotate_all is not a valid keyword. If you leave out the _all suffix, it should work:

GRUB_CMDLINE_LINUX="fbcon=rotate:1"

2
  • 3
    The documentation OP linked does mention rotate_all as a valid name in the /sys/class/graphics/fbcon sysfs directory. It's just that the kernel arguments don't use the same set of words as the sysfs attributes do.
    – Ben Voigt
    Dec 20, 2019 at 3:32
  • FYI rotate_all now works on the kernel command line. I don't know when it was introduced but works with kernel 5.6.12 dated May 2020.
    – Malvineous
    Dec 27, 2020 at 14:54
0

writing this answer with the hope that it will help folks in 2023.

GRUB_CMDLINE_LINUX="fbconsole=rotate:1"

is what works on the kernel command line.

As an Archlinux user running kernel 6.1.6 and latest version of grub, i can confirm that the above command line also ensures that all virtual terminals are rotated clockwise.

For the record, 'rotate_all' is not recognized on the kernel command line.

1
  • 1
    Does fbcon no longer work? It is what is still documented so I am skeptical.
    – Olivier
    Jan 16 at 20:23
0

fbcon=rotate:1 is what worked for me in 2023.

Arch Linux, kernel 6.1.26-1-MANJARO

grub-mkconfig (GRUB) version: 2.06

  1. Edit /etc/default/grub

  2. Add fbcon option:

     GRUB_CMDLINE_LINUX="fbcon=rotate:1"
    
  3. Update Grub

     sudo update-grub
    
1
  • Welcome to Unix & Linux! This answer merely duplicates parts of existing answers, and doesn't add any value here. May 26 at 8:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .