blino's website

Free software developer and more

The stage1 now builds with gcc-4.1.1 (not that easy since we use -Werror).

I've used -fno-strict-aliasing in the options parser of the pppd code to workaround a dereferencing type-punned pointer will break strict-aliasing rules warning (maybe Gwenole can come with a better solution).

The PCMCIA code is build with -Dlint so that the byacc generated code doesn't complain about unused labels. By the way, it made me find an interesting article about the "lint" word on Wikipedia.

I've finally committed my PCMCIA bus support in the stage1. It browses the /sys/bus/pcmcia/devices/ sysfs directory to list devices, and use their modalias and prod_id* fields.

The device listing seems to work when the PCMCIA subsystem is initialized before stage1 is started, but some strange bugs appear when the stage1 program does the whole initialization (controller module loading, socket startup, device module loading). The pcnet_cs module hangs when inserted in the kernel... It's quite weird since it works fine when udev runs the same actions.

I suspect some kernel bug in our cooker 2.6.14 kernel package (yes, that's damn outdated), I've yet to try a more decent one.

I've killed the old cardmgr daemon in the stage1 part of the installer, but we still need something to replace the resource allocation made by old cardmgr.

Some PCMCIA controllers (including yenta_socket) require to setup a dynamic resource database for non statically mapped PCMCIA sockets.

This required to do the following in stage1:

  • mount sysfs in stage1
  • allocate socket resources: I've used the startup.c code of pcmcia-socket-startup from pcmciautils-013)
  • add /etc/pcmcia/config.opts and its parser (I actually removed our previous code and update to the one from pcmciautils-013)
  • include a minimal sysfs library (ripped from sysfsutils-2.0.0)

I've successfully tested this new PCMCIA socket support with a PCMCIA CD-Rom drive using the ide-cs module. Quite nice, given that I couldn't make it work with the 2006.0 stage1...

The old PCMCIA cardmgr daemon has been obsoleted by the new sysfs and hotplug system in latest kernels (>= 2.6.13). The installer stage1 used to embed its own simplified copy of the cardmgr damemon.

My plan is to use sysfs to detect PCMCIA devices in stage1 now (that will be the first probing code to use sysfs in stage1!). The device description will be built from the prod_id* sysfs fields, and the driver will be guessed from the modalias field.

Since we don't embed udev in stage1 yet and don't even have modprobe, I'll build a minimal PCMCIA alias table (out of modules.alias), that will allow to load the PCMCIA driver that matches the modalias field.

Try to find third-party modules in a sub-directory named by the kernel release (backport from trunk, useful for Corporate)

  • don't try to find unused modules on sparc (occured when flatten_and_check()ing list of modules to be skipped)
  • merge sparc fixes (from Per Řyvind Karlsen)

blosxom Optimised for standards.
Olivier Blin (2005)