blino's website

Free software developer and more

Support pbe5 module in network configuration tools (for Dell Latitude 810)



So that my harddisk does not get noisy every 5 seconds

$ cat bin/disk-low-write-mode.sh
#!/bin/sh

# age time, in seconds
MAX_AGE=600
# allowed dirty ratio, in pct
DIRTY_RATIO=40

# kernel default dirty buffer age
DEF_AGE=30
DEF_UPDATE=5
DEF_DIRTY_BACKGROUND_RATIO=10
DEF_DIRTY_RATIO=40

REMOUNT_PART="/ /home /pub"

case "$1" in
        start)
                AGE=$((100*$MAX_AGE))
                echo "$AGE" > /proc/sys/vm/dirty_expire_centisecs
                echo "$AGE" > /proc/sys/vm/dirty_writeback_centisecs
                echo "$DIRTY_RATIO" > /proc/sys/vm/dirty_ratio
                echo "$DIRTY_RATIO" >
        /proc/sys/vm/dirty_background_ratio
                for part in $REMOUNT_PART; do
                    mount $part -o remount,relatime,commit=$MAX_AGE
                done
                ;;
        stop)
                U_AGE=$((100*$DEF_UPDATE))
                B_AGE=$((100*$DEF_AGE))
                echo "$B_AGE" > /proc/sys/vm/dirty_writeback_centisecs
                echo "$U_AGE" > /proc/sys/vm/dirty_expire_centisecs
                echo "$DEF_DIRTY_RATIO" > /proc/sys/vm/dirty_ratio
                echo "$DEF_DIRTY_BACKGROUND_RATIO" >
        /proc/sys/vm/dirty_backgrou
        nd_ratio
                for part in $REMOUNT_PART; do
                    mount $part -o remount,commit=$DEF_UPDATE
                done
                ;;
        *)
                echo "$0 {start|stop}"
                ;;
esac

exit 0


  • update rpmmon tool for new maintainers db
  • use http://maintainers.mandriva.com/lookup.php?pkg=<PKGNAME>
  • require a plain text output listing per-maintainer packages


From Net::FTP manpage:

dir ( [ DIR ] )
    Get a directory listing of "DIR", or the current directory
    in long format.

    In an array context, returns a list of lines returned from
    the server. In a scalar context, returns a reference to a list.

In some situations, it returns undef in array context, it should probably return a reference to an empty array instead.



  • commmit mirrorlist script modifications (ISO images support)
  • enable back automatic check/upload of mirrorlist in raoh


Sometimes, the iurt process rebuilding dkms is killed, check if it's because we need to set a specific timeout for dkms rebuilds.



Our udev rules modprobing usblp are outdated, they are leftovers from the hotplug migration, when the required aliases where not in the kernel yet.

This is probably the same for a lot of modules in /etc/udev/rules.d/70-hotplug_map.rules.

$ grep printer /etc/udev/rules.d/70-hotplug_map.rules
SUBSYSTEM=="usb", SYSFS{bDeviceSubClass}=="01", SYSFS{bDeviceClass}=="07", SYSFS{bDeviceProtocol}=="01", RUN+="/sbin/modprobe printer"
SUBSYSTEM=="usb", SYSFS{bDeviceSubClass}=="01", SYSFS{bDeviceClass}=="07", SYSFS{bDeviceProtocol}=="02", RUN+="/sbin/modprobe printer"
SUBSYSTEM=="usb", SYSFS{bDeviceSubClass}=="01", SYSFS{bDeviceClass}=="07", SYSFS{bDeviceProtocol}=="03", RUN+="/sbin/modprobe printer"
SUBSYSTEM=="usb", SYSFS{bInterfaceSubClass}=="01", SYSFS{bInterfaceProtocol}=="01", SYSFS{bInterfaceClass}=="07", RUN+="/sbin/modprobe printer"
SUBSYSTEM=="usb", SYSFS{bInterfaceSubClass}=="01", SYSFS{bInterfaceProtocol}=="02", SYSFS{bInterfaceClass}=="07", RUN+="/sbin/modprobe printer"
SUBSYSTEM=="usb", SYSFS{bInterfaceSubClass}=="01", SYSFS{bInterfaceProtocol}=="03", SYSFS{bInterfaceClass}=="07", RUN+="/sbin/modprobe printer"

$ /sbin/modprobe -c | grep printer
install printer          /sbin/modprobe usblp

$ /sbin/modinfo -F alias usblp
usb:v04B8p0202d*dc*dsc*dp*ic*isc*ip*
usb:v*p*d*dc*dsc*dp*ic07isc01ip03*
usb:v*p*d*dc*dsc*dp*ic07isc01ip02*
usb:v*p*d*dc*dsc*dp*ic07isc01ip01*
usb:v*p*d*dc07dsc01dp03ic*isc*ip*
usb:v*p*d*dc07dsc01dp02ic*isc*ip*
usb:v*p*d*dc07dsc01dp01ic*isc*ip*


When glxinfo is run on displays without DRI, it sometimes makes the X server crash (backtrace incriminates the _mesa_initialize_context function).

This is currently workarounded in drak3d by blacklisting known drivers on which it crashes, but it should be properly fixed in Mesa.

$ grep "my @glx_blacklist" /usr/lib/libDrakX/Xconfig/glx.pm 
my @glx_blacklist = qw(mga nv sis tdfx vboxvideo vesa vmware)

src/mesa/main/context.c


--- /etc/profile.d/99keychain.sh        2007-09-21 16:09:02.000000000 +0200
+++ ./99keychain.sh     2007-09-04 18:39:48.000000000 +0200
@@ -19,6 +19,9 @@
 if [ -e "$HOME/.gnupg/gpg.conf" -a -z "$GPGKEY" ]
     then GPGKEY=`awk '/^default-key/ {print $2}'
    "$HOME/.gnupg/gpg.conf"`
 fi
+if [ -e "$HOME/.gnupg/pubring.gpg" -a -z "$GPGKEY" ]
+    then GPGKEY=`gpg -K --with-colons | awk -F ':' '$1 = "sec" { print substr($5, 9); exit }'`
+fi

 [ -n "$GPGKEY" ] && KEYS="$KEYS
 $GPGKEY"


$ grep PCI_CLASS_COMMUNICATION /usr/src/linux/include/linux/pci_ids.h 
#define PCI_CLASS_COMMUNICATION_SERIAL  0x0700
#define PCI_CLASS_COMMUNICATION_PARALLEL 0x0701
#define PCI_CLASS_COMMUNICATION_MULTISERIAL 0x0702
#define PCI_CLASS_COMMUNICATION_MODEM   0x0703
#define PCI_CLASS_COMMUNICATION_OTHER   0x0780

$ grep PCI_CLASS_COMMUNICATION
/usr/src/linux/drivers/serial/8250_pci.c 
        if ((((dev->class >> 8) != PCI_CLASS_COMMUNICATION_SERIAL) &&
             ((dev->class >> 8) != PCI_CLASS_COMMUNICATION_MODEM)) ||
                PCI_CLASS_COMMUNICATION_SERIAL << 8,
                PCI_CLASS_COMMUNICATION_MODEM << 8,
                PCI_CLASS_COMMUNICATION_MULTISERIAL << 8,

ungrab-winmodem.c











ultrastar-ng: a free C++ Linux based clone of Singstar



Fedora moved to util-linux-ng, we should probably do the same before the freeze for 2008.0 http://cvs.fedora.redhat.com/viewcvs/devel/util-linux-ng/









4  0xb7f5da7e in HardwareInfo::checkCurrentCPUFreqPolicy (this=0x811f030)
    at hardware.cpp:554

Fix assigning gov of 0x01 to cpuFreq



fbmenu (from bootsplash package) is used to show a graphical netprofile menu early in boot. It is currently built with gtk-linux-fb, which is unmaintained and deprecated.

We should package gtk-directfb, and cairo-directfb (since the former requires it).

The patch in bootsplash is quite trivial.

--- bootsplash-3.2.8/fb/Makefile        2007-02-26 12:03:23.000000000 +0100
+++ bootsplash-3.2.8/fb/Makefile      2007-08-01 15:09:12.000000000 +0200
@@ -25,7 +25,7 @@
        gcc $(GTK_CFLAGS) [...] -pthread -O2 -Wall -lgtk-x11-2.0 -o xmenu fbmenu.c;

 fbmenu: fbmenu.c
-       gcc $(GTK_CFLAGS) [...] -pthread -O2 -Wall -lgtk-linux-fb-2.0 -o fbmenu fbmenu.c;
+       gcc $(GTK_CFLAGS) [...] -pthread -O2 -Wall -lgtk-directfb-2.0 -o fbmenu fbmenu.c;

 progress: progress.c
        $(CC) $(CFLAGS) $(FSFLAGS) -o $@ progress.c


The network scripts send message over DBus on interface events, handle them in the network center.

We could also handle some udev/hal messages on-the-fly (in my dreams).



  • fix wrapper (patch below)
  • make --use-old-chroot command work:
sudo ./iurt-tmp-wrapper --shell --use-old-chroot /export/home/mandrake/chroot_tmp/blino/chroot_cooker.0.20070822181005/

--- /usr/local/bin/iurt 2007-04-20 09:30:49.000000000 +0200
+++ iurt-tmp-wrapper    2007-08-08 18:11:38.000000000 +0200
@@ -16,7 +16,7 @@
     echo
     echo "   $0 usage:"
     echo
-    echo "             $0 [--shell] [--stop a|b|l|d|i|c|p] [--clean] [--media media1 media2] package.rpm"
+    echo "             $0 [--shell] [--stop a|b|l|d|i|c|p] [--clean] [--use-old-chroot <path>] [--media media1 media2] package.rpm"
     echo
     echo "                 e.g.: $0 --shell --media main/release main/updates /SRPMS/main/release/mkcd-4.2.5-1mdv2007.1.src.rpm"
     echo
@@ -43,17 +43,19 @@
        echo
        exit
     fi
-else  
-    if [[ $1 == '--shell' ]]; then
+elif [[ $1 == '--shell' ]]; then
        shift
        stop="--shell"
-    else 
-       if [[ $1 == '--clean' ]]; then
+elif [[ $1 == '--clean' ]]; then
            shift
            stop="--clean $SUDO_USER"
-       fi
-    fi
 fi
+if [[ $1 == '--use-old-chroot' && -n "$2" ]]; then
+       stop="$1 $2"
+       shift
+       shift
+fi
+

 if [[ $1 == '--media' ]]; then
     shift




Review all SVN log. Revert some things, such as the %clean step removal.



Send short bio of myself to figure on http://www.tropheesdulibre.org/-Le-jury-.html?lang=fr

Take photo from http://leeloo.warly.org ?



Add these in some default modprobe options file:

options ipw2100 associate=0
options ipw2200 associate=0

to prevent automatic association to open access points. We prefer to rely on wpa_supplicant.

(affects Mandriva Flash 2007 Spring and Mandriva Cooker)



Some race during coldplug prevents USB controllers modules from being loaded, they can't find some usbcore symbols at loading time.

https://bugs.launchpad.net/ubuntu/+source/module-init-tools/+bug/24238 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333052

The suggested patches have been applied upstream, so we already have them in the distro. The loop checking module loading status in /proc/modules should have been enough, need to investigate more.

Debian lowered the bug importance not to block their final release, and the bug was eventually marked as fixed later, without valuable explanation.

  • /usr/src/linux/kernel/module.c
  • module-init-tools-3.3-pre11/libmodprobe.c

Trying rmmod ehci_hcd; rmmod uhci_hcd; umount /proc/bus/usb; rmmod usbcore; udevtrigger; grep usb /proc/modules to reproduce isn't enough, the bug probably appears only when the system is overloaded.

Linux agpgart interface v0.102 (c) Dave Jones
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
iTCO_vendor_support: vendor-support=0
usbcore: registered new device driver usb
agpgart: Detected an Intel 915GM Chipset.
agpgart: Detected 7932K stolen memory.
agpgart: AGP aperture is 256M @ 0xc0000000
iTCO_wdt: Intel TCO WatchDog Timer Driver v1.01 (21-Jan-2007)
iTCO_wdt: Found a ICH6-M TCO device (Version=2, TCOBASE=0x1060)
iTCO_wdt: initialized. heartbeat=30 sec (nowayout=1)
uhci_hcd: Unknown symbol usb_hcd_pci_suspend
uhci_hcd: Unknown symbol usb_hcd_resume_root_hub
uhci_hcd: Unknown symbol usb_hcd_pci_probe
uhci_hcd: Unknown symbol usb_disabled
uhci_hcd: Unknown symbol usb_calc_bus_time
uhci_hcd: Unknown symbol usb_hcd_pci_resume
uhci_hcd: Unknown symbol usb_hcd_giveback_urb
uhci_hcd: Unknown symbol usb_hcd_poll_rh_status
uhci_hcd: Unknown symbol usb_hcd_pci_remove
uhci_hcd: Unknown symbol usb_root_hub_lost_power
ACPI: PCI Interrupt 0000:00:1f.3[B] -> GSI 17 (level, low) -> IRQ 17
USB Universal Host Controller Interface driver v3.0
ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 16 (level, low) -> IRQ 16
PCI: Setting latency timer of device 0000:00:1d.0 to 64
uhci_hcd 0000:00:1d.0: UHCI Host Controller
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:1d.0: irq 16, io base 0x0000bf80
usb usb1: configuration [#1 http://qa.mandriva.com/show_bug.cgi?id=1] chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 17 (level, low) -> IRQ 17
PCI: Setting latency timer of device 0000:00:1d.1 to 64
uhci_hcd 0000:00:1d.1: UHCI Host Controller
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
uhci_hcd 0000:00:1d.1: irq 17, io base 0x0000bf60
usb usb2: configuration [#1 http://qa.mandriva.com/show_bug.cgi?id=1] chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 18
PCI: Setting latency timer of device 0000:00:1d.2 to 64
uhci_hcd 0000:00:1d.2: UHCI Host Controller
uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3
uhci_hcd 0000:00:1d.2: irq 18, io base 0x0000bf40
usb usb3: configuration [#1 http://qa.mandriva.com/show_bug.cgi?id=1] chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
intel_rng: FWH not detected

$ grep usb_hcd_pci_suspend /lib/modules/2.6.22-4mdv/modules.symbols 
alias symbol:usb_hcd_pci_suspend usbcore


vfat detection does not work in blkid, this breaks filesystem detection in mount.

  • blkid_verify() in e2fsprogs-1.40/lib/blkid/probe.c
  • known_fstype() in util-linux-2.13-pre7/mount/mount_guess_fstype.c


blosxom Optimised for standards.
Olivier Blin (2005)