Anonymous asked in 電腦與網際網路軟體 · 2 decades ago

acx100_pci.o mandrake 10.1 安裝

如題, 為何在 load acx100_pci.o 時出現: -1 Invalid module format

如何解決 ?

1 Answer

  • 2 decades ago
    Favorite 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.

    $ su

    # make

    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

    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.

Still have questions? Get your answers by asking now.