You are not logged in.
I have recently installed fbsplash from the AUR, and would like to use uvesafb, now included in the vanilla kernel. Now I am wondering why I can't get any higher than 640x480. When I try and put in a line with something else, it is just ignored. DonGiovanni has told me that it has been compiled in as a module and that it may be related to the problem. I don't want to compile my own kernel because it takes much too long. Anyone know how to fix this?
Offline
I just recently made an AUR package (named v86d) for using uvesafb as a module with the vanilla kernel. do makepkg, pacman -U then follow the instructions.
I'm not using fbsplash though so I can't guarantee anything.
To know recursion, you must first know recursion.
Offline
I have problems with v86d hook. It seems that it fails to load uvesafb module during boot. I have 2.6.24 kernel from testing, hook and UVESAFB_PARMS are set. If I load uvesafb from comandline with proper options, it will switch to framebuffer and works well. Maybe you know what's wrong?
Offline
you have to add uvesafb to the MODULES line in /etc/mkinitcpio.conf too ... (and do mkinitcpio -p kernel26 again)
edit: typo
Last edited by vogets (2008-02-04 19:04:53)
Offline
I just looked on the uvesafb website, and found this:
NOTE: The older versions of klibc seem to have problems with the new unified arches in the kernel (2.6.24). To avoid these issues, use klibc-1.5.8 or newer. Thanks to David Raison for pointing this out.
And Arch's klibc is out of date. Maybe this is related?
Offline
If it's worth anything I can't get uvesafb to work either. I have not ever been able to get it to work under archlinux. Has anyone been able to use uvesafb? I do have everything that is required. The right kernel patch with correct kernel params, v86d in mkinitcpio.conf hooks, uvesafb in mkinicpio.conf MODULES. This is so frustrating
FaunOS: Live USB/DVD Linux Distro: http://www.faunos.com
Offline
I have it working, with three hooks (one for 915resolution-static to patch my bios, one for v86d, one for uvesafb). The options for the module are in /etc/modprobe.conf
Mortuus in anima, curam gero cutis
Offline
And Arch's klibc is out of date. Maybe this is related?
Maybe this is the problem. For now I solved it by using modprobe.conf.
add uvesafb options to modprobe.conf
options uvesafb mode=1280x1024-32 mtrr=3 scroll=ywrap
my mkinicpio.conf
MODULES="uvesafb"
BINARIES=""
FILES="/etc/modprobe.conf"
HOOKS="base udev autodetect v86d pata filesystems"
Offline
patroclo7 and mefju,
Thanks for your suggestions. I will give it a shot.
FaunOS: Live USB/DVD Linux Distro: http://www.faunos.com
Offline
Your recommendation worked! klibc is definitely the culprit.
Thank you.
Last edited by raymano (2008-02-05 01:00:30)
FaunOS: Live USB/DVD Linux Distro: http://www.faunos.com
Offline
huh? with my AUR package and core/klibc 1.5-3 and testing/kernel26 2.6.24-2, it totally works (unless one forgets to remove any 'vga=' parameter as I did in the beginning).
that said, the modprobe.conf + MODULES method seems much better to me. I'll fix that.
EDIT: AUR package updated.
Last edited by lloeki (2008-02-05 10:18:54)
To know recursion, you must first know recursion.
Offline
I need to load uvesafb after the 915resolution hook, otherwise I am unable to get a 1280x800 framebuffer (this is my main aim in using uvesafb). So I need to have a uvesafb hook which loads the module after 915resolution. If I list uvesafb in MODULES, it does not work. On the contrary I realized that I do not need a v86d hook, I can list /sbin/v86d in BINARIES in mkinitcpio.conf.
So finally (just for reference for all the people with intel chipsets and widescrens which require 915 resolution):
1) compile 915 resolution statically (since it is going to be in an initramfs, it can not be linked to external libraries), with the following PKGBUILD:
pkgname=915resolution
pkgver=0.5.3
pkgrel=1
pkgdesc="A tool to modify the video BIOS of the 800 and 900 series Intel graphics chipsets"
arch=('i686' 'x86_64')
url="http://www.geocities.com/stomljen"
license=('custom')
depends=('glibc')
backup=(etc/conf.d/915resolution)
source=(http://www.geocities.com/stomljen/$pkgname-$pkgver.tar.gz 915resolution.rc.d 915resolution.conf.d)
md5sums=('ed287778a53d02c31a7a6a52bc146291' '4a5e9f60ba800883b361c9bb64ee0220'\
'4df864a584173398f79293014766d575')
build() {
cd $startdir/src/$pkgname-$pkgver
export LDFLAGS="-s -static"
make clean
make || return 1
unset LDFLAGS
install -D -m755 915resolution $startdir/pkg/usr/sbin/915resolution
install -m755 dump_bios $startdir/pkg/usr/sbin
install -D -m755 ../915resolution.rc.d $startdir/pkg/etc/rc.d/915resolution
install -D -m644 ../915resolution.conf.d $startdir/pkg/etc/conf.d/915resolution
install -D -m644 LICENSE.txt $startdir/pkg/usr/share/licenses/915resolution/LICENSE.txt
}
2) write an initcpio hook for 915resolution. The following is /lib/initcpio/install/915resolution:
install ()
{
MODULES=""
BINARIES="/usr/sbin/915resolution"
FILES=""
SCRIPT="915resolution"
}
help ()
{
cat<<HELPEOF
This hook patches the video BIOS for widescreen displays
HELPEOF
}
The following is /lib/initcpio/hooks/915resolution (adapt to your widescreen resolution):
run_hook ()
{
msg -n ":: Patching the VBIOS..."
/usr/sbin/915resolution 5c 1280 800
msg "done."
}
3) write an hook to load uvesafb. The following is
/lib/initcpio/install/uvesafb
install ()
{
MODULES="uvesafb"
SCRIPT="uvesafb"
}
help ()
{
echo "This hook loads uvesafb"
}
The following is /lib/initcpio/hooks/uvesafb:
run_hook
{
/sbin/modprobe uvesafb
}
4) install v86d from the AUR
5) add to /etc/modprobe.conf the options for uvesafb, so that it uses the resolution you have added to the bios with 915resolution:
options uvesafb mode=1280x800-32 scroll=ywrap
6) in mkinitcpio.conf, leave MODULES empty, and write:
BINARIES="/sbin/modprobe /sbin/v86d"
FILES="/etc/modprobe.conf"
7) add the 915resolution hook and, after it, the uvesafb hook to HOOKS in mkinitcpio.conf. Put them after the hooks of the hard disk and before those for the keymap, the resume from suspension and the filesystems
8) regenerate your initcpio
9) reboot and enjoy your widescreen framebuffer.
Mortuus in anima, curam gero cutis
Offline
I have started a wiki page on uvesafb. What I have written is mostly focused on the interaction with 915resolution. Feel free to enrich and integrate with all the other aspects.
http://wiki.archlinux.org/index.php/Uvesafb
Mortuus in anima, curam gero cutis
Offline
Hello, the problem for me is this: I have kernel26 (2.6.24.1-2) from Core (installed with pacman -S), and i have installed v86d from aur. So my framebuffer works only if i modprobe uvesafb manually after boot, in tty1, for example if i load it in gnome-terminal, it go in Segmentation Fault.
But the problem is that i would put uvesafb in the Initramfs, so i have changed few config's files.
This is my files config:
/lib/initcpio/hooks/uvesafb
run_hook ()
{
/sbin/modprobe uvesafb
}
/lib/initcpio/hooks/v86d
run_hook ()
{
/sbin/v86d
}
/lib/initcpio/install/v86d
install() {
MODULES=" $(checked_modules "video/uvesafb") "
SCRIPT="v86d"
MODULES=$(echo ${MODULES}) #trim whitespace
if [ -n "${MODULES}" ]; then
MODULES="${MODULES}"
fi
add_dir "/dev"
add_dir "/root"
add_dir "/sbin"
add_device "/dev/console" c 5 1
add_device "/dev/tty1" c 4 1
add_device "/dev/zero" c 1 5
add_device "/dev/mem" c 1 1
add_binary "/sbin/v86d" "/sbin/v86d"
}
help() {
echo "This hook sets up v86d, the userspace helper for uvesafb."
}
# vim: set ft=sh ts=4 sw=4 expandtab:
/lib/initcpio/install/uvesafb
# vim: set ft=sh:
install ()
{
MODULES="uvesafb"
SCRIPT="uvesafb"
}
help ()
{
cat<<HELPEOF
This hook loads uvesafb
HELPEOF
}
/etc/mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES="piix ide_disk reiserfs"
MODULES="ata_generic ata_piix piix ide_disk ext3"
# BINARIES
# This setting includes, into the CPIO image, and additional
# binaries a given user may wish. This is run first, so may
# be used to override the actual binaries used in a given hook.
# (Existing files are NOT overwritten is already added)
# BINARIES are dependancy parsed, so you may safely ignore libraries
BINARIES="/sbin/modprobe /sbin/v86d"
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in anyway. This is useful for config files.
# Some users may wish to include modprobe.conf for custom module options,
# like so:
# FILES="/etc/modprobe.conf"
FILES="/etc/modprobe.conf"
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'modload' may be used in place of 'udev', but is not recommended
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
# This setup specifies all modules in the MODULES setting above.
# No raid, lvm2, or encrypted root is needed.
# HOOKS="base"
#
# This setup will autodetect all modules for your system and should
# work as a sane default
# HOOKS="base udev autodetect ide scsi sata filesystems"
#
# This setup will generate a 'full' image which supports most systems.
# No autodetection is done.
# HOOKS="base udev ide scsi sata usb filesystems"
#
# This setup assembles an ide raid array with an encrypted root FS.
# Note: See 'mkinitcpio -H raid' for more information on raid devices.
# HOOKS="base udev ide raid encrypt filesystems"
#
# This setup loads an lvm2 volume group on a usb device.
# HOOKS="base udev usb lvm2 filesystems"
HOOKS="base udev autodetect v86d uvesafb dsdt ide pata scsi sata usbinput keymap filesystems"
I have already tried to put uvesafb in MODULES, but the result is the same.
/etc/modprobe.conf
options uvesafb mode=1024x768-32
BUT when i run kernel dmesg report me this error:
uvesafb: (C) 1988-2005, ATI Technologies Inc. M26-P01.00, M26-P01.00, 01.00, OEM: ATI ATOMBIOS(C) 1988-2005, ATI Technologies Inc. M26-P01.00, VBE v3.0
uvesafb: protected mode interface info at c000:af46
uvesafb: pmi: set display start = c00cafd4, set palette = c00cb014
uvesafb: VBIOS/hardware supports DDC2 transfers
uvesafb: monitor limits: vf = 60 Hz, hf = 49 kHz, clk = 68 MHz
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000018
printing eip: c025ae53 *pde = 00000000
Oops: 0000 [#1] PREEMPT SMP
Modules linked in: uvesafb cn sr_mod cdrom sd_mod generic pata_acpi ehci_hcd uhci_hcd usbcore ext3 jbd mbcache ide_disk piix ide_core ata_piix ata_generic libata
Pid: 1178, comm: modprobe Not tainted (2.6.24-ARCH #1)
EIP: 0060:[<c025ae53>] EFLAGS: 00010246 CPU: 0
EIP is at fb_try_mode+0x3/0x90
EAX: f7f7f008 EBX: f7f7f008 ECX: 00000010 EDX: f7f7f000
ESI: 00000001 EDI: 00000000 EBP: 00000008 ESP: f744fbe0
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 1178, ti=f744e000 task=f7f9e000 task.ti=f744e000)
Stack: f7411285 c025b918 00000008 00000000 00200200 f7411285 f7f7f000 f7f7f008
00000001 00000001 00000000 00000400 00000300 00000020 000003e8 00000001
00000000 00000000 00000000 00000246 22222222 22222222 22222222 f7fa6a80
Call Trace:
[<c025b918>] fb_find_mode+0x578/0x650
[<f88708d0>] uvesafb_exec+0x130/0x260 [uvesafb]
[<c01808eb>] __kmalloc+0x2b/0x110
[<f88718d2>] uvesafb_probe+0x772/0x1010 [uvesafb]
[<c01252bb>] kunmap_atomic+0x8b/0xd0
[<c012526d>] kunmap_atomic+0x3d/0xd0
[<c0164d47>] get_page_from_freelist+0x297/0x460
[<c0240c0c>] idr_get_empty_slot+0xec/0x280
[<c0240e1b>] ida_get_new_above+0x7b/0x180
[<c01c70f0>] sysfs_ilookup_test+0x0/0x10
[<c01c7784>] sysfs_addrm_finish+0x14/0x1e0
[<c01c7494>] sysfs_add_one+0x44/0xe0
[<c01c756f>] sysfs_addrm_start+0x3f/0xb0
[<c01c82fd>] sysfs_create_link+0x8d/0x120
[<c02ab21c>] platform_drv_probe+0xc/0x10
[<c02a9cd8>] driver_probe_device+0x88/0x190
[<c036a6df>] klist_next+0x5f/0xc0
[<c02a8f84>] bus_for_each_drv+0x44/0x70
[<c02a9e9d>] device_attach+0x7d/0x90
[<c02a9de0>] __device_attach+0x0/0x10
[<c02a8ef5>] bus_attach_device+0x45/0x90
[<c02a7fb8>] device_add+0x428/0x510
[<c02ab5b9>] platform_device_add+0xf9/0x150
[<f887242f>] uvesafb_init+0x5f/0xb0 [uvesafb]
[<c0152236>] sys_init_module+0x126/0x19d0
[<c024294f>] prio_tree_insert+0x1f/0x240
[<c01054e2>] sysenter_past_esp+0x6b/0xa1
[<c0360000>] rpc_pipe_release+0x110/0x140
=======================
Code: 8d 42 d0 3c 09 76 04 89 d8 5b c3 0f be d2 83 c1 01 8d 04 9b 8d 5c 42 d0 eb e3 8d b4 26 00 00 00 00 8d bc 27 00 00 00 00 53 89 c3 <8b> 41 08 89 03 8b 41 0c 89 43 04 8b 41 08 89 43 08 8b 41 0c 83
EIP: [<c025ae53>] fb_try_mode+0x3/0x90 SS:ESP 0068:f744fbe0
---[ end trace f8ce83033d91e116 ]---
So i have tried to recompile klibc, i take it from ABS, modify the PKGBUILD and i have makepkg it, and install it, recompiled the mkinitcpio -p kernel26, But when i restart the kernel, the kernel go in panic with this error:
::Loading Initramfs
-/init: 44: replace: not found
-/init: 44: replace: not found
export: 44: bad variable name
....kernel panic!
the PKGBUILD of klibc is this
# $Id: PKGBUILD,v 1.12 2007/10/31 08:25:30 thomas Exp $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Maintainer: Thomas Baechler <thomas@archlinux.org>
###
### NOTE: Do not build this package with anything except gcc - using ccache
### forces others to use it as well as it becomes hardcoded in the klibc
### script.
###
pkgname=klibc
pkgver=1.5
_klibcbranch=Stable #Stable/Testing
_kver=2.6.24
pkgrel=3
pkgdesc="a minimal libc made for early-userspace"
arch=(i686 x86_64)
url="http://www.kernel.org/pub/linux/libs/klibc/"
license=('BSD')
groups=('base')
options=(!ccache)
source=(http://www.kernel.org/pub/linux/libs/klibc/$_klibcbranch/$pkgname-$pkgver.tar.gz
multiple_raid_assembly_fix.patch
klibc-compile-shared-by-default.patch
klibc-module-init-tools.patch)
md5sums=('d55ce89c0656a7d6896ec0b2af07b5dc'
'8d257d50a4554d57b8f461c6a87a2877'
'c263a7c3fd290fcc84a4e230d456d022'
'4d78311ebce63f2fbb711f8518e71839')
build()
{
cd $startdir/src/$pkgname-$pkgver
#INI_DEBUG causes ipconfig to fail within kinit
sed -i "/#define INI_DEBUG/d" usr/kinit/kinit.h
ln -sf /usr/src/linux-${_kver} linux
# $Id: PKGBUILD,v 1.12 2007/10/31 08:25:30 thomas Exp $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Maintainer: Thomas Baechler <thomas@archlinux.org>
###
### NOTE: Do not build this package with anything except gcc - using ccache
### forces others to use it as well as it becomes hardcoded in the klibc
### script.
###
pkgname=klibc
pkgver=1.5
_klibcbranch=Stable #Stable/Testing
_kver=2.6.24
pkgrel=3
pkgdesc="a minimal libc made for early-userspace"
arch=(i686 x86_64)
url="http://www.kernel.org/pub/linux/libs/klibc/"
license=('BSD')
groups=('base')
options=(!ccache)
source=(http://www.kernel.org/pub/linux/libs/klibc/$_klibcbranch/$pkgname-$pkgver.tar.gz
multiple_raid_assembly_fix.patch
klibc-compile-shared-by-default.patch
klibc-module-init-tools.patch)
md5sums=('d55ce89c0656a7d6896ec0b2af07b5dc'
'8d257d50a4554d57b8f461c6a87a2877'
'c263a7c3fd290fcc84a4e230d456d022'
'4d78311ebce63f2fbb711f8518e71839')
build()
{
cd $startdir/src/$pkgname-$pkgver
#INI_DEBUG causes ipconfig to fail within kinit
sed -i "/#define INI_DEBUG/d" usr/kinit/kinit.h
ln -sf /usr/src/linux-${_kver} linux
patch -p1 -i ../multiple_raid_assembly_fix.patch || return 1
# make klibc-module-init-tools compile
# don't build insmod
patch -p1 -i ../klibc-module-init-tools.patch || return 1
# compile binaries shared by default
patch -p1 -i ../klibc-compile-shared-by-default.patch
make EXTRA_KLIBCFLAGS='' || return 1
make INSTALLROOT=$startdir/pkg install
#simplify
mv $startdir/pkg/usr/lib/klibc/bin/sh.shared $startdir/pkg/usr/lib/klibc/bin/sh
rm $startdir/pkg/usr/lib/klibc/bin/mknod
rm $startdir/pkg/usr/lib/klibc/bin/kill
}
patch -p1 -i ../multiple_raid_assembly_fix.patch || return 1
# make klibc-module-init-tools compile
# don't build insmod
patch -p1 -i ../klibc-module-init-tools.patch || return 1
# compile binaries shared by default
patch -p1 -i ../klibc-compile-shared-by-default.patch
make EXTRA_KLIBCFLAGS='' || return 1
make INSTALLROOT=$startdir/pkg install
#simplify
mv $startdir/pkg/usr/lib/klibc/bin/sh.shared $startdir/pkg/usr/lib/klibc/bin/sh
rm $startdir/pkg/usr/lib/klibc/bin/mknod
rm $startdir/pkg/usr/lib/klibc/bin/kill
}
Thanks you for any your replay!!
Offline
Well, the first behavior is normal, I think that you can not load the framebuffer from inside X (there should not be any difference between tty1 tty2 etc).
The second one seems a kernel bug, but I would try to simplify your setup (provided that you have not an intel chipset and so you do not need the trick with 915resolution which is discussed in the wiki article). Just list uvesafb in MODULES and /sbin/v86d in BINARIES, remove the two hooks and regenerate tour initramfs.
About the recompilation of klibc: itseems that for someone this generates a kernel panic. I think that this is totally unrelated to uvesafb: it is a problem between klbc-1.5 and the 2.6.24 kernel. Not a general problem though: the recompiled klibc works fine for me. You could try to upgrade to the testing version of klibc 1.5.8 (edit the PKGBUILD changing pkgver and _klibcbranch).
Mortuus in anima, curam gero cutis
Offline
About the recompilation of klibc: itseems that for someone this generates a kernel panic. I think that this is totally unrelated to uvesafb: it is a problem between klbc-1.5 and the 2.6.24 kernel. Not a general problem though: the recompiled klibc works fine for me. You could try to upgrade to the testing version of klibc 1.5.8 (edit the PKGBUILD changing pkgver and _klibcbranch).
I have the same problem, albeit with a different kernel (...-zen/x86:64 with uvesafb compiled in). And I have tried with klibc 1.5.8 and it doesn't help: see this thread.
Last edited by awagner (2008-02-13 12:30:59)
Offline
So, I have same thing when recompile klibc:
::Loading Initramfs
-/init: 44: replace: not found
-/init: 44: replace: not found
export: 44: bad variable name
....kernel panic!
After system restore - it's time to try build new version of klibc.
But it doesn't help us - if everything happens as on the previous post.
Last edited by airstep (2008-02-13 12:40:55)
Offline
So, I have same thing when recompile klibc:
::Loading Initramfs
-/init: 44: replace: not found
-/init: 44: replace: not found
export: 44: bad variable name....kernel panic!
After system restore - it's time to try build new version of klibc.
But it doesn't help us - if everything happens as on the previous post.
I know these errors...:( I just changed the _kernver variable in the PKGBUILD, is there anything else one should change in order not to get this error?
Offline
hi
i tried to use uvesafb.
i only got a black screen at boot (after initramfs loads). nothing else. no errors no nothings
i have not tried to compile a newest klibc
Offline
I think we must waiting for new klibc.
Offline
I think we must waiting for new klibc.
also i, think this!!!
Offline
I'm getting this error.
uvesafb: Getting VBE info block failed (eax=0x4f00, err=-3)
uvesafb: vbe_init() failed with -22
uvesafb: probe of uvesafb.0 failed with error -22
I did everything according to the post-install instructions + I added /sbin/modprobe and /sbin/v86d to the BINARIES section of /etc/mkinitcpio.conf
Last edited by LordRaiden (2008-02-15 15:25:55)
Offline
LordRiden try to compile uvesafb as module in kernel and then to load it (modprove uvesafb) from tty1, and see dmesg ;-)
Offline
airstep wrote:I think we must waiting for new klibc.
also i, think this!!!
Hm, its working here. Stock kernel26 and the usual steps outlined in the wiki (modprobe.conf and Modules)
Haven't been here in a while. Still rocking Arch.
Offline
Do you use Arch i686 or Arch64? [For me it failed on Arch64]
Offline