23.02.2005 13:09
Getting bootsplash to work with the intel 815 framebuffer (i810fb)
This was again one of those tasks, you don't want to have assigned to you.
I had to install my thinclient-installation on a messy old Compaq Deskpro EN with
an Intel 815 Chipset. As my thinclient-installation uses bootsplash [EN] to show
nice graphics while booting, I booted this machine after restoring the tc-image
on it and waited for the bootsplash to no avail.
The reason, why bootsplash didn't show up was on the one hand the missing framebuffer support and on the other hand, the missing framebuffer support (no, that's semantically correct!).
My kernel lacked support for the i810fb (CONFIG_FB_I810=y, CONFIG_FB_I810_GTF=y) and bootsplash still lacks support for any other framebuffer driver than the vesafb. So you have to patch the bootsplash-code of your bootsplash-enabled kernel.
You also have to edit your bootloaders configuration file so your newly compiled kernel will get the right parameters for the i810fb driver. I'd recommend reserving about 8MiB of system memory for the i810fb device, otherwise you may run into errors when switching bootsplash images (2MiB is far to less, 4MiB is on the limit (3,8MiB needed by my bootsplash images)). The append-line for LILO could look like this (1024x768, 16bit, 8MiB RAM):
The reason, why bootsplash didn't show up was on the one hand the missing framebuffer support and on the other hand, the missing framebuffer support (no, that's semantically correct!).
My kernel lacked support for the i810fb (CONFIG_FB_I810=y, CONFIG_FB_I810_GTF=y) and bootsplash still lacks support for any other framebuffer driver than the vesafb. So you have to patch the bootsplash-code of your bootsplash-enabled kernel.
You also have to edit your bootloaders configuration file so your newly compiled kernel will get the right parameters for the i810fb driver. I'd recommend reserving about 8MiB of system memory for the i810fb device, otherwise you may run into errors when switching bootsplash images (2MiB is far to less, 4MiB is on the limit (3,8MiB needed by my bootsplash images)). The append-line for LILO could look like this (1024x768, 16bit, 8MiB RAM):
append="video=i810fb:vram:8,xres:1024,yres:768,bpp:16,hsync1:30,hsync2:55,vsync1:50,vsync2:60"I had to use 16 bits of color depth because with 8bpp bootsplash doesn't work with i810fb and the upper limit of 60Hz for vsync2 was necessary because of my TFT screen (so if you use a CRT you may increase this value to whatever your monitor is capable of). Don't forget to remove the "vga=791" option in bootloader's configuration file because with the video= parameter, this parameter is obsolete and causes user interaction at boot time because of an invalid VGA-mode passed to your kernel.
Posted by Alexander Griesser | Permanent Link | Categories: linux kernel | Comments: --> New comment
23.02.2005 11:45
Xlib: sequence lost when starting openoffice.org
After the last debian upgrade my openoffice.org [EN] refused to start with
the following error message:
What helped, was to temporary relink libGL.so.1 to the library provided by xlibmesa-glu with the following commands:
I can't believe, that I'm the only one who has this problem but according to the Debian BTS and Dr. Google, I am. So this article is for everyone, who has the same problem - maybe even nobody...
Update:
Today I really fixed this problem, and it was not related to xlibmesa-gl but to the new beta driver for my matrox graphics card. The upgrade of xlibmesa-gl revoked the changes, I made a few months ago to my OpenGL drivers and I didn't think of it at this moment. Besides, the install script of the 1.4.0 beta driver for my parhelia card does not correctly install the OpenGL-library provided for X11. I had to manually copy it to /usr/X11R6/lib and link it to libGL.so.1. Afterwards, everything worked fine, even accelerated
tuxx@vi-edv003:~$ oowriter Xlib: sequence lost (0x10000 > 0xe) in reply type 0x0!I tracked that problem down by using strace [EN] and found out, that the last library, that was opened before the system wrote this message was libGL.so.1, which is part of the xlibmesa-gl package.
What helped, was to temporary relink libGL.so.1 to the library provided by xlibmesa-glu with the following commands:
cd /usr/X11R6/lib ln -fs libGLU.so.1.3 libGL.so.1In fact, this solution is not very beautiful, but at this time it fixes my problem and that's important.
I can't believe, that I'm the only one who has this problem but according to the Debian BTS and Dr. Google, I am. So this article is for everyone, who has the same problem - maybe even nobody...
Update:
Today I really fixed this problem, and it was not related to xlibmesa-gl but to the new beta driver for my matrox graphics card. The upgrade of xlibmesa-gl revoked the changes, I made a few months ago to my OpenGL drivers and I didn't think of it at this moment. Besides, the install script of the 1.4.0 beta driver for my parhelia card does not correctly install the OpenGL-library provided for X11. I had to manually copy it to /usr/X11R6/lib and link it to libGL.so.1. Afterwards, everything worked fine, even accelerated
16.02.2005 13:36
restore-dpkg-status skript
In cases, where your /var/lib/dpkg/status file is corrupt it's very difficult
to restore it properly, so I wrote this little script to rebuild the status file.
Since the first version of this script never really worked, I wrote a new one today which works flawlessly (as far as I could test that on my systems). This script tries to rebuild the status-file by using the package-information (grep from /var/lib/dpkg/available) of all installed packages (ls in /var/lib/dpkg/info/).
Feature Requests, Comments or Bugreports via e-mail, please.
You can download this script here [BASH] and there's also a html-version of the syntax-highlighted code available here [EN].
Please read the comment-section on top of the script before first use!
Since the first version of this script never really worked, I wrote a new one today which works flawlessly (as far as I could test that on my systems). This script tries to rebuild the status-file by using the package-information (grep from /var/lib/dpkg/available) of all installed packages (ls in /var/lib/dpkg/info/).
Feature Requests, Comments or Bugreports via e-mail, please.
You can download this script here [BASH] and there's also a html-version of the syntax-highlighted code available here [EN].
Please read the comment-section on top of the script before first use!
08.02.2005 16:37
Update for xbattbar-acpi
Today I resolved an issue with my xbattbar-modification.
The bug was that if the batteries were fully charged, the color of bar indicating
the capacity percentage was still blue (instead of green). This bug is fixed
now, you may download the patch to xbattbar.c
here, the new xbattbar.c here and the new
Debian package here.
07.02.2005 10:46
xbattbar with ACPI support
The last weekend I tried to improve the famous xbattbar [EN] utility because
I needed ACPI support compiled in. Since xbattbar does not support ACPI I merged
it with the ACPI module from procmeter3 [EN].
This is just some kind of ugly hack and some features are still missing, like a proper
Makefile/Imakefile for selecting ACPI or APM support at compile time, etc.
You may download my efforts here:
Instructions for self-compilers:
- download xbattbar 1.4.2 and extract it
- copy acpi.h and xbattbar.c into the main xbattbar directory (overwrite xbattbar.c)
- compile as described in the README file
01.02.2005 22:09
Exim 3.36 with MySQL Support in Debian
Today I configured my first exim MTA [EN] with MySQL [EN] Support. Debian does not
provide MySQL-Support in its exim package, so you have to recompile exim
from source to enable MySQL Support.
First of all you need some additional packages installed to avoid compile problems, here's a listing of these packages:
To compile the exim-source, you first have to download it.
Finally install the package with the following command, and your exim-mysql should be up and running (check that with ps}.
The default entry for uid and gid is 8, which is the UID/GID of the system account "mail" on Debian systems.
"example.com" has to be replaced by your domain, of course.
To set up a test-user, issue the following command within the mysql shell:
At last, we have to configure exim by editing exim.conf. Here's my exim.conf - feel free to pick out everything you need or make a diff with your default exim.conf to see what has been changed.
To test exim, send yourself an email (either by using the mail/mailx utility or by speaking SMTP to localhost:25). Monitor /var/log/exim/mainlog while doing so and afterwards check /data/mail/$username if the mail has arrived.
First of all you need some additional packages installed to avoid compile problems, here's a listing of these packages:
libdb3-dev dpkg-dev libmysqlclient14-dev libpcre3-dev libldap2-dev libpam0g-dev libident-dev libwrap0-dev xlibs-dev libxaw7-devOf course you also need exim and mysql-server installed. I used exim 3.36 and mysql-server-4.1.
To compile the exim-source, you first have to download it.
apt-get source eximThis command creates a subdirectory called exim-$version in your CWD. You now have to edit the file exim-$version/debian/editme-diff as shown below:
old: # LOOKUP_MYSQL=yes new: -# LOOKUP_MYSQL=yes +LOOKUP_MYSQL=yes old: # LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include -# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq +LOOKUP_LIBS=-lldap -llber new: -# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include +LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/include/mysql -I /usr/local/pgsql/include -# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq +LOOKUP_LIBS=-lldap -llber -lmysqlclientcd to the exim-$version directory and issue the following command to build the package:
dpkg-buildpackage -uc -bIf this process succeeds, you'll get the compiled debian package outside the exim-$version directory. For those of you, who don't want to compile exim-mysql, you can use my precompiled package for Debian Sarge [DEB].
Finally install the package with the following command, and your exim-mysql should be up and running (check that with ps}.
dpkg -i exim_3.36-13_i386.debNow you have to prepare your MySQL Database and modify exim.conf. This part of my "howto" derives from this site [EN], but has some modifications for using the standard mailfile format instead of maildir, etc. Can't help myself, I don't like maildir...
create database maildb;
grant select,insert,update,delete on maildb.* to mail@localhost identified by 'secret';
flush privileges;
use maildb;
CREATE TABLE users (
id char(12
DEFAULT '' NOT NULL,
crypt char(12
DEFAULT '' NOT NULL,
clear char(12
DEFAULT '' NOT NULL,
name char(12
DEFAULT '' NOT NULL,
uid int(10) unsigned DEFAULT '8' NOT NULL,
gid int(10) unsigned DEFAULT '8' NOT NULL,
home char(255) DEFAULT '' NOT NULL,
mailfile char(255) DEFAULT '' NOT NULL,
quota char(255) DEFAULT '' NOT NULL,
KEY id (id(128))
);
CREATE TABLE domains (
domain char(12
NOT NULL default '',
KEY domain (domain)
);
INSERT INTO domains (domain) VALUES ("example.com");
'secret' means the password that will be stored in the MySQL users-table.The default entry for uid and gid is 8, which is the UID/GID of the system account "mail" on Debian systems.
"example.com" has to be replaced by your domain, of course.
To set up a test-user, issue the following command within the mysql shell:
INSERT INTO users (id, crypt, clear, name, home, mailfile) VALUES (
"luser@example.com", ENCRYPT("test"), "test", "My name is Luser",
"/nonexistent", "/data/mail/luser");
Verify, that the direcory /data/mail (or the directory you want to hold your
mailfiles) exists and is owned by root.mail, mode 2775. If you want your
users to have a homedirectory, replace "/nonexistent" with the
new $HOME of this user.At last, we have to configure exim by editing exim.conf. Here's my exim.conf - feel free to pick out everything you need or make a diff with your default exim.conf to see what has been changed.
To test exim, send yourself an email (either by using the mail/mailx utility or by speaking SMTP to localhost:25). Monitor /var/log/exim/mainlog while doing so and afterwards check /data/mail/$username if the mail has arrived.