v86d missing, needed for uvesafb

Bug #189621 reported by PeterKnaggs
30
Affects Status Importance Assigned to Milestone
linux-meta (Ubuntu)
New
Undecided
Unassigned
v86d (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: linux-image-686

The v86d userspace utility executable is missing.
The v86d executable is needed by the uvesafb framebuffer VESA driver module.
The uvesafb module is included in the Hardy Heron kernel.

It would be great if it were possible to include this (very small) v86d userspace
executable on the Live CD, as it would allow the uvesafb framebuffer VESA driver
module to be used without needing to download, build and install the v86d executable
from source each time the Live CD is booted.

The homepage for the uvesafb driver is here:
  http://dev.gentoo.org/~spock/projects/uvesafb/

Towards the end of the following page, please find the section
" Framebuffer Support for nVidia 5200 with uvesafb" where I tried to
describe the steps to use uvesafb on Hardy Heron:
  http://www.penlug.org/twiki/bin/view/Main/LinuxHardwareInfoNvidia5200

I guess to fix this would probably involve packaging v86d somehow, but
when I searched the Debian package archives using
  http://www.debian.org/distrib/packages#search_packages
I don't find any matching package containing v86d, so I'm reporting this
bug as a bug in the kernel package (which isn't really the case, as it's
just that the uvesafb kernel module needs this userspace support module).

Revision history for this message
Bogdan Butnaru (bogdanb) wrote :

Agreed, it should be somewhere in the repositories.

Changed in linux-meta:
status: New → Confirmed
Revision history for this message
Evgeni Golov (evgeni) wrote :

I've just filled http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=473176:
ITP: v86d -- execute x86 BIOS code in a controlled environment

Will try to get this into Debian asap, should follow to Ubuntu then ;)

Revision history for this message
Colin Watson (cjwatson) wrote :

I've synced v86d into Ubuntu. We still need to review it for main and probably get it into the minimal seed, or have the new kernel depend on it, or both.

Revision history for this message
Evgeni Golov (evgeni) wrote : Re: [Bug 189621] Re: v86d missing, needed for uvesafb

Hi,

On Mon, 07 Jul 2008 11:57:05 -0000 Colin Watson wrote:

> I've synced v86d into Ubuntu. We still need to review it for main and
> probably get it into the minimal seed, or have the new kernel depend on
> it, or both.

It failed to build because your linux-libc-dev does not have
a /usr/include/video/uvesafb.h - whyever.
And please please please, don't use v86d as default (so dont let the
kernel depend on it). It should only be used when there is no better FB
driver.

Regards
Evgeni

Revision history for this message
Michael Sotnikov (stari4ek) wrote :

There is problem with uvesafb, which used in 2.6.26-3 kernel.
Check bug https://bugs.launchpad.net/ubuntu/+source/linux/+bug/246269
Maybe this is the same bug.

Revision history for this message
Matt Zimmerman (mdz) wrote :

v86d is available in Intrepid:

Package: v86d
Priority: optional
Section: utils
Installed-Size: 180
Maintainer: Ubuntu Core Developers <email address hidden>
Original-Maintainer: Evgeni Golov <email address hidden>
Architecture: i386
Version: 0.1.5-1ubuntu2
Depends: libc6 (>= 2.7)
Filename: pool/main/v/v86d/v86d_0.1.5-1ubuntu2_i386.deb
Size: 38496
MD5sum: 7bce58bc9dd9c6193d45c19bd7911a92
SHA1: 37b5424e000406efb4b80955b707f62ccaa90e22
SHA256: 1876898d8a8526f22156d406fa538b8683c04088f504829ed2d75c859aa25813
Description: daemon to run x86 code in an emulated environment
 v86d provides a backend for kernel drivers that need to execute
 x86 BIOS code. The code is executed in a controlled environment
 and the results are passed back to the kernel via the netlink
 interface.
 .
 v86d is needed by the uvesafb kernel module.
 .
 This package is built against glibc, as Debian's klibc does not
 have proper uvesafb support yet.
Homepage: http://dev.gentoo.org/~spock/projects/uvesafb/
Bugs: mailto:<email address hidden>
Origin: Ubuntu

Changed in linux:
status: Confirmed → Fix Released
Revision history for this message
nullack (nullack) wrote :

As Michael notes, there is still problems. Having installed v86d from the new package Matt created I still cant access high res vesa modes.

Problem 1:

From within Intrepid if I unload and reload the module like so:

sudo modprobe -r uvesafb
sudo modprobe uvesafb mode=1280x1024-32

It results in tty alignment being wrong (like its centre aligned not left)

Problem 2:

Trying to load video=uvesafb:1280x1024-32 wont run in the grub boot line results in nothing occuring and the default vga res being activated.

I dont think this package is in a useable state and it being ready for inclusion into linx-meta.

Revision history for this message
Evgeni Golov (evgeni) wrote :

Hi,

On Fri, 18 Jul 2008 02:14:53 -0000 nullack wrote:

> Problem 1:
>
> From within Intrepid if I unload and reload the module like so:
>
> sudo modprobe -r uvesafb
> sudo modprobe uvesafb mode=1280x1024-32
>
> It results in tty alignment being wrong (like its centre aligned not
> left)

Why do you do this? If you want to change resolution, you can use fbset.
And additionaly, 1280x1024 should be possible with standard vesafb
using vga=793 (or 794 or 795).

> Problem 2:
>
> Trying to load video=uvesafb:1280x1024-32 wont run in the grub boot line
> results in nothing occuring and the default vga res being activated.

Do you have uvesafb in your kernel (or at least in your initrd)? If not
you'll need to add those options in /etc/modprobe.d/ and not on the GRUB
command line.

Regards
Evgeni

Revision history for this message
Michael Sotnikov (stari4ek) wrote :

I can reply in return for him.

1. with current interpid kernel (2.6.26-4) vesafb isn't possible - it's absent. It was replaced with uvesafb, which use another command (according to documents)
In addition. After system load we can see that uvesafb was loaded (lsmod | grep uvesafb), but it doesn't work! Cause uvesafb should create some entries in /sys/class/graphics/fb0/.... which is absent at this moment. And if you restart uvesafb - they will be created.

2.I think this is right way - add uvesafb to initrd, but we need it working first.

Revision history for this message
Evgeni Golov (evgeni) wrote :

Hi,

On Fri, 18 Jul 2008 07:58:52 -0000 Michael Sotnikov wrote:

> 1. with current interpid kernel (2.6.26-4) vesafb isn't possible - it's absent. It was replaced with uvesafb, which use another command (according to documents)
> In addition. After system load we can see that uvesafb was loaded (lsmod | grep uvesafb), but it doesn't work! Cause uvesafb should create some entries in /sys/class/graphics/fb0/.... which is absent at this moment. And if you restart uvesafb - they will be created.

So you have
CONFIG_FB_UVESA=y
CONFIG_FB_VESA=n
in your kernel config?
IMHO that's bad, as uvesafb should not be used as a complete
replacement for vesafb, but only in cases where vesafb fails due to
it's limitations.

Can you post a `dmesg |grep -i uvesa` after a fresh boot with uvesafb
not working correctly? I assume it just can't start v86d (as / is not
yet mounted). This should be solved by including v86d into the initrd.

> 2.I think this is right way - add uvesafb to initrd, but we need it
> working first.

It works fine as a module here for me, both with and without initrd.

Revision history for this message
Michael Sotnikov (stari4ek) wrote :

I use default kernel (iterpid):
$ uname -a
Linux astar-laptop 2.6.26-4-generic #1 SMP Mon Jul 14 18:39:53 UTC 2008 i686 GNU/Linux

my config:
$ cat /boot/config-2.6.26-4-generic | grep VESA
CONFIG_FB_UVESA=m
# CONFIG_FB_VESA is not set

after clean start without any "vga=" or "video=":
$ dmesg |grep -i uvesa
[ 2.422795] uvesafb: Getting VBE info block failed (eax=0x4f00, err=-3)
[ 2.422795] uvesafb: vbe_init() failed with -22
[ 2.422795] uvesafb: probe of uvesafb.0 failed with error -22

does it mean that it can't find v86d on / ?
can you help us to figure out how to put it to initrd? I think that forum is a much better than bugzilla: http://ubuntuforums.org/showthread.php?t=860719

Revision history for this message
Evgeni Golov (evgeni) wrote :

hi,

On Fri, 18 Jul 2008 13:26:24 -0000 Michael Sotnikov wrote:

> I use default kernel (iterpid):
> $ uname -a
> Linux astar-laptop 2.6.26-4-generic #1 SMP Mon Jul 14 18:39:53 UTC 2008 i686 GNU/Linux
>
> my config:
> $ cat /boot/config-2.6.26-4-generic | grep VESA
> CONFIG_FB_UVESA=m
> # CONFIG_FB_VESA is not set
>
> after clean start without any "vga=" or "video=":
> $ dmesg |grep -i uvesa
> [ 2.422795] uvesafb: Getting VBE info block failed (eax=0x4f00, err=-3)
> [ 2.422795] uvesafb: vbe_init() failed with -22
> [ 2.422795] uvesafb: probe of uvesafb.0 failed with error -22
>
> does it mean that it can't find v86d on / ?

Yes it looks like this.
Do you have v86d 0.1.5-1ubuntu2? If so, it should have added itself to
the initrd already... Can you look inside of it (gzip and cpio are your
friends) and tell me that there is a v86d inside?

> can you help us to figure out how to put it to initrd? I think that forum is a much better than bugzilla: http://ubuntuforums.org/showthread.php?t=860719

I don't have an account there, and to be honest: I don't want to have
one :)

Revision history for this message
Michael Sotnikov (stari4ek) wrote :

$ apt-cache policy v86d
v86d:
  Установлен: 0.1.5-1ubuntu2
  Кандидат: 0.1.5-1ubuntu2
  Таблица версий:
 *** 0.1.5-1ubuntu2 0
        500 http://archive.ubuntu.com intrepid/main Packages
        100 /var/lib/dpkg/status

with unpacked initrd:
$ find . | grep vesa
./lib/modules/2.6.26-4-generic/initrd/uvesafb.ko
$ find . | grep v86d
./sbin/v86d

Revision history for this message
Evgeni Golov (evgeni) wrote :

Hi,

On Fri, 18 Jul 2008 18:17:14 -0000 Michael Sotnikov wrote:

> $ apt-cache policy v86d
> v86d:
> Установлен: 0.1.5-1ubuntu2
> Кандидат: 0.1.5-1ubuntu2
> Таблица версий:
> *** 0.1.5-1ubuntu2 0
> 500 http://archive.ubuntu.com intrepid/main Packages
> 100 /var/lib/dpkg/status
>
> with unpacked initrd:
> $ find . | grep vesa
> ./lib/modules/2.6.26-4-generic/initrd/uvesafb.ko
> $ find . | grep v86d
> ./sbin/v86d

That looks strange... Well it looks right and it's strange that it does
not work :P
Where do you set uvesafb for use in initrd?
I have the following line in my /etc/initramfs-tools/modules:
uvesafb mode=1024x768
Which gives me a perfect 1024x768 framebuffer on boot.
Maybe something in /usr/share/initramfs-tools/modules.d?

Regards
Evgeni, puzzled about that issue.

Revision history for this message
Michael Sotnikov (stari4ek) wrote :

I've tried same line in /etc/initramfs-tools/modules - the same as it was.
I didn't do anything special about uvesafb. This stuff is coming through updates. I've tried to figure out what's the problem, but you see...

$ cat /etc/initramfs-tools/modules | grep -v "#"
uvesafb mode=1024x768

$ ls -a /usr/share/initramfs-tools/modules.d
. ..

according to forum there is a lot of guys who has it broken.

Revision history for this message
Evgeni Golov (evgeni) wrote :

Hi,

I was able to reproduce this error on one of my machines. It seems it
*does* find v86d, as the error would have to more lines if it wouldn't:

uvesafb: failed to execute /sbin/v86d
uvesafb: make sure that the v86d helper is installed and executable
uvesafb: Getting VBE info block failed (eax=0x4f00, err=-2)
uvesafb: vbe_init() failed with -22
uvesafb: probe of uvesafb.0 failed with error -22

I still do not understand why it works on 2 machines, and on one not...
Could you try moving the uvesafb line from /etc/initramfs-tools/modules
to /etc/modules, run "update-initramfs -u" and reboot? That works for
me on the one machine, however that means that uvesafb and v86d will be
started a bit later (leaving you with an ugly console until then).

Regards
Evgeni

PS: what graphiccard do you have? My working are an old Radeon 7000 and
a VIA Chrome 9, the non-working is a Radeon X1400.

Revision history for this message
Michael Sotnikov (stari4ek) wrote :

my answers are there: https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/246269 ,cause this bug (missing v86d) is already fixed.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.