make menuconfig -> Device Drivers -> Network Device Support -> Wireless LAN -> IEEE 802.11 -> Intel Pro/Wireless 2200BG Network Connection. It can be compiled as a module (M) or statically into the kernel (*). This driver requires the firmware (net-wireless/ipw2200-firmware) and it can load it ONLY if compiled as a module. If it is compiled into the kernel then it is unable to load the firmware (Error -2 occures) -- and it's very difficult to guess the problem (it's not well documented). Reproducible: Always Actual Results: Mysterious and not documented bug -2 occures if compiled statically. Expected Results: This driver should be able to compile ONLY as a module.
Which cat/pkg-version does this apply to?
This behavior is thoroughly documented in recent kernels: "It is recommended that you compile this driver as a module (M) rather than built-in (Y). This driver requires firmware at device initialization time, and when built-in this typically happens before the filesystem is accessible (hence firmware will be unavailable and initialization will fail). If you do choose to build this driver into your kernel image, you can avoid this problem by including the firmware and a firmware loader in an initramfs." In kernels >=2.6.27, you can also add the firmware to the kernel image using CONFIG_EXTRA_FIRMWARE.