Git Product home page Git Product logo

Comments (8)

proxy-m avatar proxy-m commented on August 23, 2024

To avoid the error uvesafb: Getting VBE info block failed (-22) you must firstly build-in or load kernel module vga16fb, which is used by uvesafb in conjunction with helper /sbin/v86d.

P.S.: Also if you use initramfs/initrd, maybe you need fix to modules order.
P.P.S.: On later linux versions, developers revert to vesafb support, but some functions of uvesafb may be missed.

from v86d.

proxy-m avatar proxy-m commented on August 23, 2024

Try https://forums.gentoo.org/viewtopic-t-1096832-start-0.html

and https://forums.gentoo.org/viewtopic-p-8336186.html#8336186

from v86d.

pete4abw avatar pete4abw commented on August 23, 2024

To avoid the error uvesafb: Getting VBE info block failed (-22) you must firstly build-in or load kernel module vga16fb, which is used by uvesafb in conjunction with helper /sbin/v86d.

P.S.: Also if you use initramfs/initrd, maybe you need fix to modules order.
P.P.S.: On later linux versions, developers revert to vesafb support, but some functions of uvesafb may be missed.

Thank you. I will take a look. I may also take a run at 5.4.66 and see what they changed in the Framebuffer code that prevents backscrolling. I realize it may be a security risk, but in X scrolling back on a terminal is standard.

from v86d.

proxy-m avatar proxy-m commented on August 23, 2024

If /sbin/v86d exists, then it just module load order problem. If system already inited and you start uvesafb via modprobe, all works fine.

On the links above you can find solutions to make it work from linux command line too (load order must be correct).

from v86d.

pete4abw avatar pete4abw commented on August 23, 2024

Thanks @proxy-m . Loading modules showed a similar error but with more detail.
[ 149.840277] process '/sbin/v86d' started with executable stack
[ 149.840666] v86d: EBDA too big (10800), truncating.
[ 149.840703] v86d: c000:7910: 01 ILLEGAL EXTENDED X86 OPCODE!
[ 149.840755] uvesafb: Getting VBE info block failed (eax=0xc78d2, err=0)
[ 149.840756] uvesafb: vbe_init() failed with -22
[ 149.840760] uvesafb: probe of uvesafb.0 failed with error -22

Thanks again.
PS: The successful examples above all used VESAFB not UVESAFB. Maybe it's something default in my Intel graphics.

from v86d.

proxy-m avatar proxy-m commented on August 23, 2024

@pete4abw

  1. Did you read two links above? They about enabling uvesafb as "built-in" by initrd/initrafm?
  2. If you try something like this https://gitlab.com/mikb007/buildroot-dl-mini/-/blob/master/.linux-config_9p linux config , execpt must be CONFIG_FRAMEBUFFER_CONSOLE=y , uvesafb can start with modprobe/insmod.
  3. I saw your error Getting VBE info block failed (eax=0xc78d2, err=0), and describe solution.
  4. Error v86d: EBDA too big (10800), truncating. and andv86d: c000:7910: 01 ILLEGAL EXTENDED X86 OPCODE!` is other error.

Is you kernel same arhitecture as v86d binary (i386 works fine, as I saw)?

Also it may be problem with your vga/vesa bios (video card support vga/vesa protocol, which uvesafb can not understand), but it is strange. Try to make all framebuffers not built-in (especially intel) and start uvesafb with modprobe after system scripts (system v or systemd) finished init.

from v86d.

pete4abw avatar pete4abw commented on August 23, 2024

I read the links. There was nothing new in them. I've used uvesafb before for years, since 2011. This is newer laptop with built in Intel graphics and nVidia as a second GPU that is unused (no nVidia, nouveau drivers used though, no Optimus). klibc compiled for current kernel, x86_64 only. All Intel modules are configured as [M].

I notice that with no VGA or video= command, my system boots natively in 1920x1080 mode.

Thanks anyway. Probably a problem with the graphics chipset and the dual GPU.

H/W path         Device        Class          Description
=========================================================
/0/100/2                       display        Iris Plus Graphics G7
/0/100/1c.4/0                  display        GP108M [GeForce MX250]

I'm closing this issue. I appreciate your help. Cheers.

from v86d.

proxy-m avatar proxy-m commented on August 23, 2024

I read the links. There was nothing new in them. I've used uvesafb before for years, since 2011. This is newer laptop with built in Intel graphics and nVidia as a second GPU that is unused (no nVidia, nouveau drivers used though, no Optimus). klibc compiled for current kernel, x86_64 only. All Intel modules are configured as [M].

I notice that with no VGA or video= command, my system boots natively in 1920x1080 mode.

Thanks anyway. Probably a problem with the graphics chipset and the dual GPU.

H/W path         Device        Class          Description
=========================================================
/0/100/2                       display        Iris Plus Graphics G7
/0/100/1c.4/0                  display        GP108M [GeForce MX250]

I'm closing this issue. I appreciate your help. Cheers.

@pete4abw

  1. Interesting Error v86d: EBDA too big (10800), truncating and x1080 mode.

  2. Yes, your intel Iris Plus Graphics G7 card (i915 family) has buggy vesa/vga bios.
    To fix it, use 915resolution hook and 915resolution-static:

Uvesafb and 915resolution

In the following, we address a more complex scenario. Many intel video chipsets for widescreen laptops are known to have a buggy BIOS, which does not support the main, native resolution of the wide screen! For this reason, 915resolution was created to patch the BIOS at boot time and allow the X server to use the widescreen resolution. Nowadays, the X server is able to do this without the help of 915resolution. However, 915resolution can be combined with uvesafb in order to obtain a widescreen framebuffer, without any need to launch X at all. In this case, we need to load uvesafb after having run 915resolution, so that uvesafb can resort to the proper resolution.

915resolution-static

In this scenario, 915resolution needs to be compiled statically (since it is going to be in an initramfs, it can not be linked to external libraries). Thus you CAN NOT use the 915resolution package in the [community] repo. Look instead for 915resolution-staticAUR: archived in aur-mirror] in the AUR. It compiles 915 resolution statically and provides a 915 resolution hook, so you can run 915resolution before loading uvesafb and get the patched resolution. So install 915resolution-static via makepkg and pacman.

The resolution

You need to edit the 915resolution hook in order to define the BIOS mode you want to replace and and the resolution you want to get. You can get information about all the options for 915resolution with:

$ 915resolution -h

Edit /lib/initcpio/hooks/915resolution and modify the options for 915resolution:

run_hook () {
msg -n ":: Patching the VBIOS..."
/usr/sbin/915resolution 5c 1280 800
msg "done."
}

As default 5c is the code of the BIOS mode to replace. You can get a list of the available BIOS video modes with the command 915resolution -l.

Note: You want to choose the code of a mode that you DO NOT need (neither in the framebuffer nor in X), because 915resolution will replace it with a new user-defined mode. In the above example, 1280 800 is the new desired resolution.

The Hooks Array

Add the 915resolution hook and, after it, the v86d hook to HOOKS in /etc/mkinitcpio.conf. Put them before the hooks for the keymap, the resume from suspension and the filesystems.

HOOKS="base udev 915resolution v86d ..."

Then you need to regenerate your initramfs with mkinitcpio (adjust the following command to your setup):

mkinitcpio -p linux

Source: https://web.archive.org/web/20190603210338/https://wiki.archlinux.org/index.php/Uvesafb

from v86d.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.