Back to Homepage of KG
Linux:
My Contributions to free software
I really enjoy using free software, especially Linux, which I started to
work with in late 1994. It's been more stable and reliable than these
boot-sector viruses called OS from Redmond ever since. With today's
software, it's even getting user-friendly, so MS feels threatened by it.
Read the "Halloween
document", which was written by an MS employee.
For more insight into
the reasons why Open Source Software
has such a high quality and outperforms many commercial products, read
"The cathedral and
the bazaar" from Eric S. Raymond and have a look at the
Free Software Foundation.
For more info on Linux, see Linux,
Linux Documentation Project,
Kernel
history,
Rik van Riel's pages,
Linux kernel mailing list FAQ,
SuSE,
Debian,
RedHat.
German Linux
pages.
Moreover, I'd like to give you a
pointer to an article
about the philosophy of Un*x and Linux.
My contributions to the development of Linux:
DC390 driver
There is one Linux kernel driver maintained by me: The Tekram DC390(T) SCSI
driver (called tmscsim). It supports all sorts of AM53C974 based adapters.
It went into the latest kernels (2.0.37pre1, 2.1.127).
See the dc390 directory for a history of the driver.
There you can also find links to download it, if it's not yet included into
your kernel.
DC395 driver
A driver for the new Tekram DC395/DC315 SCSI adapters can be found
on this page.
SuSE stuff
As I'm working for SuSE now, I have a few
especially nice things for you in the SuSE directory:
SuSE Bootdisks
with support for the Tekram SCSI host adapters as well as some
package
updates. Please note that these are not official SuSE updates.
Notebook
My Linux on my Laptop
page.
Framebuffer (Matrox, nVidia) backport
As I liked the multihead support for Matrox G400 in the 2.4 matroxfb driver,
I backported it to 2.2.17pre10. More exactly to a 2.2.16-SuSE (as in the
upcoming SuSE Linux 7.0), which contains additional patches to update some
drivers. So, your mileage to apply it may vary. Sorry! (Update: You will
probably get around using the bttv update
patch)
Anyway, here is the
diff (V3) to get the 2.4.0-test3
drivers for matroxfb and rivafb working with the 2.2 kernel. RivaFB does
really work now, yes.
Old versions: V2 and
V1.
The backport has been sent to Petr Vandrovecz (the author of matroxfb); he
has put a version, where he merged the bttv- and the i2c-update with my
backport (V1). His
version can
be applied cleanly against an official kernel tree.
I plan to merge it my latest backport ...
Console font stuff
Now, having the new matroxfb and rivafb driver in kernel, you may also want
to use nice high resolutions without this resulting in tiny fonts. There is
one rather large font in the kernel, the sun12x22 font.
Unfortunately, the kbd utils (as of 0.99) can't handle fonts with
non-standard (8) width, so you can't even easily extract it from the kernel
or load it later.
Here is a fix for setfont. I
will send it to the maintainer and ask for inclusion. I created another
patch to enable the compose combinations for
latin1 fonts and to map the compose key to the W*n9x Menu key
(and to Shift - Right Ctrl). This is currently only enabled for the US and
the DE keyboard maps, as I don't know about others :-(
Update (2000-07-25): The kbd-setfont is not necessary for new (>1.00)
versions of kbd. Unfortunately, I based my work on 0.99 :-(
Update (2000-08-01): I created a patch
against 1.03wip. You still need the compose patch ...
The sun12x22 font has a few deficiencies, IMHO. Firstly, it does not
contain a Euro symbol. Secondly, I found some letters and signs not really
fitting well to the overall beautiful design. Thirdly, some more useful
characters were missing as well. I did address these issues and
created a new font, which I called suse12x22, as I work for SuSE
and also to reflect the similarity to the sun12x22 font.
You can download a patch to your kernel as
well as a font (with
unimap), which can be loaded with (the fixed)
setfont.
Here is a 1152x858 fbcon mode (73.6kHz hsync, 80Hz
vsync), which works well on the TNT2 (with 32MB and an iiyama VM 403 screen)
with the suse12x22 font here.
Update (2000-07-26): Here is an updated
suse12x22 font that works with the new
(patched) kbd-1.03wip.
More kernel patches: K6 and (Cyrix/IBM) 6x86 - patches.
These will probably not go into the kernel ...
Cyrix/IBM 6x86 patches
... to be written ...
Now, as the newer standard kernels have satisfactory support for CPU detection and
as there exist userspace tools (set6x86) to do the rest, we don't need them
any longer.
AMD K6 WA-enable module
This little module enables L1 cache Write Allocation for the first 508Mb of
main memory. This will resuolt in a few percent increased performance for
most apps. (Note that it is possible, that your specific app gets slower.)
This should normally be done by your BIOS, but there a lot of users
upgrading old boards with K6/K6-2. It should be noted, that there is a K6-2
with a newer core, where this module won't work, as AMD has changed the
control registers.
This module (source code) can be downloaded here. Look
into the source code for docu. It will enable WA on insertion and restore
the original state on removal.
Two small kernel patches
The 2GB Patch allows the usage of up to 2GB
physical memory on ix86 machines. (Normally the Linux kernel supports only
1GB of physical memory in favour of more virtual memory per process.) Please
note that there exist much better solutions by now (BIGMEM), which support
up to 4GB (or even 64GB with PSE36) and which do NOT limit the per process
address-space from 3GB to 2GB.
HZ=400 on ix86 This patch increases the
frequency of the scheduler, which might be nice for multithreaded
applications. At least, it is for mine. Starting from Linux-2.2.2pre1 (and
2.2.1-ac4) you need this file instead.
Bootdisks
I created a bootdisk with LILO, a Linux kernel, and an INITRD containing
modules and a lot of small tools. This might be useful, if you seriously
crashed your box, if you just want to do diagnosis or if you have problems
with the kernel images provided by your distribution in order to install
Linux. There are two versions: An old one
(bootdisk.gz)
(kernel 2.0.33) and a new on
(bootdsk2.gz)
(kernel 2.0.36, with more tools). Also please read the docu:
bootdisk.readme resp.
bootdsk2.README. The later bootdisk does NOT fit on a 1440k floppy, but
you need to format it with 21 sectors/track to get 1680k. This can be done
by fdformat /dev/fd0u1680 or superformat -2 -s21 /dev/fd0
under Linux or with vgacopy under D*S. It's also the reason, why the old
floppy is still there.
Rescan SCSI bus
Linux allows you to add and remove SCSI devices without rebooting by using
the echo "scsi add-single-device H C I L" > /proc/scsi/scsi
command (H = host, C = channel, I = SCSI ID, L = SCSI LUN). The
remove-single-device command works similarily.
Note, however, that the SCSI bus was NOT designed for hot-plugging,
so you might be out of luck ... And you have to be sure, that termination is
OK. All filesystems on a device have to be unmounted before disconnecting it
or powering it down.
I use this script for rescanning the SCSI bus.
SCSI bugfixes
Here are two bugfixes for the SCSI layer of Linux, diffed against 2.2.12.
The first one prevents SCSI high
level devices (sd, sr, sg, st) from being loaded in spite of being
staticaaly compiled into the kernel and clobbering the device lists. It also
fixes the module usage counters. Oops! The aforementioned patch missed a
chunk. Get it here!
The second one fixes a problem that
arises, if a disk has an unsupported sector size. Without this patch, this would
have caused a deadlock and an Oops.
scsidev utility
If for some reason, the dynamic assignment of device numbers to SCSI devices
of Linux is not suitable for your system, have a look at the
scsidev page.
Miscellanous
A lot of minor contributions have been made to modify existing software
packages, such as mingetty, mount, viewfax, egcs, ...
These are collected on my Free Software
page.
(w) by KG, last changed 2000-08-01