启动时旋转控制台(Debian)


11

我想将控制台(不是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"

依然没有。有什么想法吗?


您为什么不想编辑rc.local
伊曼纽尔·伯格

Answers:


10

想通了。您可能需要添加video=efifb以确保使用了framebuffer控制台:

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

编辑efifb驱动程序仅适用于EFI固件,尤其是基于Intel的Apple计算机。但是,正如我发现的那样,它也适用于非Apple PC。我在Linux系统上运行专有的nVidia驱动程序,并且efifb驱动程序运行良好。我认为它对我有用,因为我正在使用nVidia驱动程序,而“本机” fbdev驱动程序与它们冲突。

老实说,我不完全理解efifb驱动程序为何能使之工作,但是如果其他人这样做(或者如果您可以使之与安装了nVidia驱动程序的另一个帧缓冲驱动程序一起工作),请在下面评论。谢谢!


2
大警告:仅当您的计算机附带支持EFI的BIOS时,此警告才适用。
aperezbios

感谢您发布解决方案!如果确实为您解决了该问题,请接受它,以便将问题标记为已回答。
terdon

@aperezbios-您确定是这种情况吗?我非常确定我已经在常规的BIOS系统上看到了这一功能。
BMiner

@BMiner +1。使用选项“ video = efi fb”可以说这仅适用于efi BIOS。对于非efi BIOS,可能有不同的命令。
MariusMatutiae,2016年

@MariusMatutiae-的确如此。video=efifb如果您正在运行BIOS固件或使用EFI固件以BIOS兼容模式启动,则该部分不是必需的,尽管它也可能不会受到损害。 从技术上讲,没有“ EFI BIOS”之类的东西,只有EFI固件 BIOS固件。
BMiner '16

2

文档与您在配置文件中编写的内容之间存在细微但重要的区别:

...可以传递到内核下面的选项:FBCON = 旋转:<N>

当你写的时候

fbcon = rotation_all:1

rotate_all不是有效的关键字。如果省略_all后缀,它应该可以工作:

GRUB_CMDLINE_LINUX="fbcon=rotate:1"


链接的文档OP确实rotate_all/sys/class/graphics/fbconsysfs目录中的有效名称。只是内核参数没有使用与sysfs属性相同的词集。
Ben Voigt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.