我想将我的控制台(不是 X Server)旋转 90 度(顺时针)。
以下似乎对我有用:echo 1 > /sys/class/graphics/fbcon/rotate
;但是,我更喜欢在 Grub 中使用内核选项,而不是在/etc/rc.local
脚本中包含上述内容。
这fbcon 文档概述了可以传递给内核的以下选项:fbcon=rotate:<n>
。不幸的是,当我像这样修改/etc/default/grub
并修改该行时:GRUB_CMDLINE_LINUX
GRUB_CMDLINE_LINUX="fbcon=rotate_all:1"
...这不起作用。我也在update-grub
重启之前运行过。
我也尝试过这个:
GRUB_CMDLINE_LINUX="fbconsole=rotate_all:1"
依然没有。有什么想法吗?
答案1
想通了这一点。你可能需要添加video=efifb
以确保使用帧缓冲区控制台:
GRUB_CMDLINE_LINUX="video=efifb fbcon=rotate:1"
编辑: 这埃菲布驱动程序仅针对 EFI 固件设计,尤其是基于 Intel 的 Apple 计算机。然而,正如我发现的,它也适用于非苹果电脑。我在 Linux 系统上运行专有的 nVidia 驱动程序,并且 efifb 驱动程序工作得很好。我认为它对我有用,因为我使用 nVidia 驱动程序,并且“本机”fbdev 驱动程序与它们冲突。
老实说,我不完全理解为什么 efifb 驱动程序可以使事情正常工作,但如果其他人这样做(或者如果您可以使用安装了 nVidia 驱动程序的另一个帧缓冲区驱动程序使事情正常工作),请在下面发表评论。谢谢!
答案2
文档与您在配置文件中编写的内容之间有一个微小但重要的区别:
...可以传递给内核的以下选项:fbcon=旋转:<n>
虽然你已经写了
FBCON=全部旋转:1
rotate_all
不是有效的关键字。如果省略后缀_all
,它应该可以工作:
GRUB_CMDLINE_LINUX="fbcon=rotate:1"
答案3
写下这个答案,希望对2023年的人们有所帮助。
GRUB_CMDLINE_LINUX="fbconsole=rotate:1"
是在内核命令行上运行的。
作为运行内核 6.1.6 和最新版本 grub 的 Archlinux 用户,我可以确认上述命令行还确保所有虚拟终端顺时针旋转。
根据记录,“rotate_all”是不是在内核命令行上被识别。
答案4
fbcon=rotate:1
这在 2023 年对我有用。
Arch Linux,内核 6.1.26-1-MANJARO
grub-mkconfig (GRUB) 版本:2.06
编辑
/etc/default/grub
添加
fbcon
选项:GRUB_CMDLINE_LINUX="fbcon=rotate:1"
更新GRUB
sudo update-grub