Since some recent version of the Linux kernel, the WEP on WiFi is broken.
I upgraded my notebook to kernel 2.6.21 some months ago and until now, I need
some WEP to connect to Internet. It was OK before but I found it shows the
following message when I try to set the WEP key using
ieee80211_crypt_wep: could not allocate crypto API arc4 eth1: could not initialize WEP: load module ieee80211_crypt_wep.o
Google can’t tell you the solution, but the source code does: In the previous
version of the kernel, the
ieee80211_crypt module did all the so-called
encryption work, but not it is doing some division of labour. The
ieee80211_crypt_wep is handling the WEP part but it does no encryption,
however, and it relies on the cryptographic modules to do the data manipulation
in general. Because WEP is close to block cipher in structure but some-how using
RC4 stream cipher for the data. So it uses the
ecb block module with
algorithm module. Nevertheless, the
ieee80211_crypt_wep doesn’t know it has to
ecb (for unknown reason), so it don’t work.
Solution: Simply execute the following commands to load the modules before the
modprobe ecb modprobe arc4 modprobe ieee80211 modprobe ieee80211_crypt modprobe ieee80211_crypt_wep modprobe ipw2200 # because I am using Intel's cards iwconfig ...