acx100_pci.o mandrake 10.1 安裝
如題, 為何在 load acx100_pci.o 時出現: -1 Invalid module format
- 2 decades agoFavorite Answer
Step 1 - Kernel build
I strongly suggest a custom kernel to base this upon. If you haven't already, check out my howto here. Make sure you include Wireless Network (non HAM-radio) support (no specific devices needed - just the core support). Ensure you're busses (ISA/PCI) are supported and enabled in the kernel.
Step 2 - Build kernel module
Next is to extract and make the source module. The good thing about having a custom kernel is the symbolic link in /lib/modules/<kernel name>/build, which will automatically point to the source tree (which is needed). First extract the source from the tarball.
$ tar -zxvf acx100-0.2.0pre7_plus_fixes_3.tar.gz
$ cd acx100-0.2.0pre7_plus_fixes_3/
Then the next stage is to install the firmware from the vendor. This driver is an interesting wrap around the binary firmware that allows the card to work. The speeds are quiet good - no noticeable slowdown. Copy the firmware from the install CD to the "firmware" directory in the extracted archive.
$ mount /cdrom
$ cp /cdrom/drivers/win2000/*.BIN ./firmware
Now make the module against the firmware and kernel source. Perform the action as root.
The module should build into the src directory of the module-tree. Our module was called "acx100_pci.o".
Step 3 - Load the module and configure the interface
The final stage is to insert the module into the running kernel. A command line parameter is required when insterting the module, so the firmware can be located. For this reason, it is very important that you don't move or delete the source tree once you've installed the driver. The following command is valid if executed from the highest point in the source tree.
# insmod src/acx100_pci.o firmware_dir=firmware
This creates the device "wlan0" which is the device that becomes the network adapter (just as "eth0" is in a normal fixed ethernet).
The wireless Access Point (AP) that was being used had WEP enabled as a first-stage security method. The card also appeared to be unable to see the AP, until a mode change was manually initiated. In amongst the large debugging output, the AP was being recognised, and bypassed, which eventually resulted in the wireless settings sticking to Ad-hoc mode (think cross-over network). The final sucess came with the long winded "iwconfig" command to bring up the wireless device properly. The Station identifier (ESSID) was also required in the setup. The device was first bound to an IP address as well.
# ifconfig wlan0 192.168.1.x
# iwconfig wlan0 mode managed essid <ESSID NAME> key <128bit WEP KEY>
The gateway was set to the ADSL modem IP address.
# route add default gw 192.168.1.1
Finally, the amount of debugging information being printed was riddiculous. It appeared to be the information of every packet, which was considerably loading the machine down. So this was also disabled to clean things up.
# iwpriv wlan0 set_debug 0x00
And to make things complete, this was added to a script, and placed into /etc/init.d/, with a symbolic link in /etc/rc2.d so that the service would run at startup.
# cp wireless.start /etc/init.d/
# cd /etc/rc2.d
# ln -s ../init.d/wireles.start S20wireless.start
And with that, a perfectly working 11Mb wireless lan connection was established. This was also coupled with our ADSL firewall to secure the machine. Note: all of the "eth0" entries were changed to "wlan0" in line with the device change.