Uvesafb: Difference between revisions
(Small spelling correction:) |
m (→Configuration: casing) |
||
(40 intermediate revisions by 18 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Graphics]] | [[Category:Graphics]] | ||
[[Category:Eye candy]] | [[Category:Eye candy]] | ||
[[ | [[ja:Uvesafb]] | ||
[[zh- | [[zh-hans:Uvesafb]] | ||
In contrast with other framebuffer drivers, uvesafb needs a userspace virtualizing daemon, called v86d. It may seem foolish to emulate x86 code on a x86, but this is important if one wants to use the framebuffer code on other architectures (notably non-x86 ones). | {{Related articles start}} | ||
{{Related|Kernel modules}} | |||
{{Related|Kernel parameters}} | |||
{{Related|sysctl}} | |||
{{Related articles end}} | |||
{{Style|Many [[Help:Style]] issues}} | |||
{{Expansion|Since this is the redirect for [[framebuffer]], it should mention what a framebuffer is, what it does, why we care, etc.}} | |||
In contrast with other framebuffer drivers, uvesafb needs a userspace virtualizing daemon, called {{AUR|v86d}}. It may seem foolish to emulate x86 code on a x86, but this is important if one wants to use the framebuffer code on other architectures (notably non-x86 ones). It was added in kernel 2.6.24 and has many more features than the standard vesafb, including: | |||
# Proper blanking and hardware suspension after delay | # Proper blanking and hardware suspension after delay | ||
# Support for custom resolutions as in the system BIOS. | # Support for custom resolutions as in the system BIOS. | ||
Line 10: | Line 17: | ||
== Installation == | == Installation == | ||
[[ | [[Install]] the {{aur|uvesafb-dkms}} package. | ||
== | == Configuration == | ||
Remove any framebuffer-related kernel | Remove any framebuffer-related [[kernel parameter]] from the [[boot loader]] configuration to disable the old vesafb framebuffer from loading. The following commands should return no result: | ||
$ grep vga /proc/cmdline | $ grep vga /proc/cmdline | ||
$ grep -ir vga /etc/modprobe.d/ | $ grep -ir vga /etc/modprobe.d/ | ||
If you do have a {{ic|1=vga=}} option somewhere, you will need to remove it. | |||
=== | === mkinitcpio hook === | ||
Add the v86d hook to HOOKS in {{ic|/etc/mkinitcpio.conf}}. This allows uvesafb to take over at boot time. | |||
HOOKS= | HOOKS=(base udev v86d ...) | ||
=== Define a resolution === | === Define a resolution === | ||
The settings for uvesafb are defined in {{ic|/usr/lib/modprobe.d/uvesafb.conf}} | The settings for uvesafb are defined in {{ic|/usr/lib/modprobe.d/uvesafb.conf}}. | ||
Documentation for {{ic|mode_option}} can be found at [ | Documentation for {{ic|mode_option}} can be found at [https://docs.kernel.org/fb/modedb.html]. | ||
To prevent your customizations being overwritten when the package is updated, copy this file to {{ic|/etc/modprobe.d/uvesafb.conf}}: | To prevent your customizations being overwritten when the package is updated, copy this file to {{ic|/etc/modprobe.d/uvesafb.conf}}: | ||
Line 60: | Line 44: | ||
# cp /usr/lib/modprobe.d/uvesafb.conf /etc/modprobe.d/uvesafb.conf | # cp /usr/lib/modprobe.d/uvesafb.conf /etc/modprobe.d/uvesafb.conf | ||
and then | and then make sure {{ic|/etc/mkinitcpio.conf}} includes {{ic|modconf}} in the {{ic|HOOKS}} array. | ||
To make changes take effect, [[regenerate the initramfs]] and reboot the system. | |||
=== Optimizing | === Optimizing resolution === | ||
A list of possible resolutions can be generated via the following command: | A list of possible resolutions can be generated via the following command: | ||
Line 78: | Line 56: | ||
Users can then modify {{ic|/usr/lib/modprobe.d/uvesafb.conf}} with any entry returned above. | Users can then modify {{ic|/usr/lib/modprobe.d/uvesafb.conf}} with any entry returned above. | ||
=== Checking | === Checking current resolution === | ||
Either of following commands can be used to show the current framebuffer resolution as a sanity check to see that settings are honored: | Either of following commands can be used to show the current framebuffer resolution as a sanity check to see that settings are honored: | ||
Line 86: | Line 64: | ||
$ cat /sys/class/graphics/fb0/virtual_size | $ cat /sys/class/graphics/fb0/virtual_size | ||
== | == Kernel module parameters == | ||
If you compile your own kernel then you can also compile uvesafb into the kernel and run v86d later. In this case, the options can be passed as [[kernel parameters]] in the format {{ic|1=video=uvesafb:''options''}}. | |||
If you compile your own kernel | |||
== | |||
== Troubleshooting == | == Troubleshooting == | ||
Line 131: | Line 72: | ||
=== Uvesafb cannot reserve memory === | === Uvesafb cannot reserve memory === | ||
Check if you forgot to remove any {{ | Check if you forgot to remove any {{ic|1=vga=}} kernel parameter − this overrides the UVESA framebuffer with a standard VESA one. | ||
Try to add {{ic|1=video=vesa:off vga=normal}} to the [[kernel command line]]. | |||
== See also == | == See also == | ||
* [https:// | * [https://docs.kernel.org/fb/uvesafb.html Uvesafb Kernel Page] | ||
* [http://dev.gentoo.org/~spock/projects/uvesafb | * [https://web.archive.org/web/20121118062504/http://dev.gentoo.org/~spock/projects/uvesafb/ Gentoos uvesafb Page] | ||
* [ | * [[wikipedia:VESA_BIOS_Extensions#VBE_mode_numbers|VESA mode numbers]] |
Latest revision as of 15:51, 20 March 2024
In contrast with other framebuffer drivers, uvesafb needs a userspace virtualizing daemon, called v86dAUR. It may seem foolish to emulate x86 code on a x86, but this is important if one wants to use the framebuffer code on other architectures (notably non-x86 ones). It was added in kernel 2.6.24 and has many more features than the standard vesafb, including:
- Proper blanking and hardware suspension after delay
- Support for custom resolutions as in the system BIOS.
It should support as much hardware as vesafb.
Installation
Install the uvesafb-dkmsAUR package.
Configuration
Remove any framebuffer-related kernel parameter from the boot loader configuration to disable the old vesafb framebuffer from loading. The following commands should return no result:
$ grep vga /proc/cmdline $ grep -ir vga /etc/modprobe.d/
If you do have a vga=
option somewhere, you will need to remove it.
mkinitcpio hook
Add the v86d hook to HOOKS in /etc/mkinitcpio.conf
. This allows uvesafb to take over at boot time.
HOOKS=(base udev v86d ...)
Define a resolution
The settings for uvesafb are defined in /usr/lib/modprobe.d/uvesafb.conf
.
Documentation for mode_option
can be found at [1].
To prevent your customizations being overwritten when the package is updated, copy this file to /etc/modprobe.d/uvesafb.conf
:
# cp /usr/lib/modprobe.d/uvesafb.conf /etc/modprobe.d/uvesafb.conf
and then make sure /etc/mkinitcpio.conf
includes modconf
in the HOOKS
array.
To make changes take effect, regenerate the initramfs and reboot the system.
Optimizing resolution
A list of possible resolutions can be generated via the following command:
$ cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
Users can then modify /usr/lib/modprobe.d/uvesafb.conf
with any entry returned above.
Checking current resolution
Either of following commands can be used to show the current framebuffer resolution as a sanity check to see that settings are honored:
$ cat /sys/devices/virtual/graphics/fbcon/subsystem/fb0/virtual_size
$ cat /sys/class/graphics/fb0/virtual_size
Kernel module parameters
If you compile your own kernel then you can also compile uvesafb into the kernel and run v86d later. In this case, the options can be passed as kernel parameters in the format video=uvesafb:options
.
Troubleshooting
Uvesafb cannot reserve memory
Check if you forgot to remove any vga=
kernel parameter − this overrides the UVESA framebuffer with a standard VESA one.
Try to add video=vesa:off vga=normal
to the kernel command line.