Currently, the SourceForge website provides the sdiostack patch for Linux 2.6.18 kernel. With this patch, you can compile the driver for the atheros sdio WiFi V1.0 module.
First, select the working directory (for example, the current user's personal directory/home /~), All subsequent operations are performed in this directory. The following uses the Samsung S3C2410 platform as an example to introduce the driver compilation process. The cross-compilation tool used is arm-Linux-GCC v3.4.6.
1. Download and decompress the kernel package.
Tar zxvf linux-2.6.18.tar.gz
2. Download The sdiostack driver and decompress it to the kernel source code directory. The patch contains five patch files and one series file, which are patched in sequence in the series file.
Tar zxvf sdio-linux-2.6.18.tar.gz-C linux-2.6.18/
CD linux-2.6.18/
Patch-P1 <common_atheros_sdiostack.patch
Patch-P1 <common_atheros_sdiostack_shcd.patch
Patch-P1 <common_atheros_sdiostack_functions.patch
Patch-P1 <common_atheros_sdiostack_sample_fd.patch
Patch-P1 <common_atheros_sdiostack_benchmark.patch
Patch-P1 <common_atheros_sdiostack_ar6000_wlan.patch
3. You can copy the S3C2410 configuration template from the configuration path and then modify it.
Cp arch/ARM/configs/s3c2410_defconfig. config
You need to enable the device drivers --> Plug and Play support option to support PNP.
You must enable the device drivers --> network device support --> Wireless LAN (non-hamradio) --> Wireless LAN drivers (non-hamradio) & wireless extensions options. Otherwise, the wireless_send_event function definition cannot be found.
Make menuconfig
4. drivers/PNP/resource. the request_dma and free_dma functions in C need to be deleted. Otherwise, a missing definition error will occur during later compilation (I have never made the resource. c successfully finds the implementation of these two related DMA functions and can only comment out them. If you know something, I hope to tell me the correct method ). Then start the kernel compilation operation.
Make
5. The driver modules are generated in the drivers/sdio/directory. Sdiostack patch only provides HCD modules on a few platformsCodeIf the code for the target platform is missing, you need to port it yourself. The following four modules are required for the minimum configuration.
LIB/sdio_lib.ko
Busdriver/sdio_busdriver.ko
Function/WLAN/ar6000/ar6000.ko
HCd/s3c2412/sdio_s3c2410_hcd.ko
Note: The kernel version used to compile the sdiostack driver must be the same as the kernel version on the target platform. If the kernel version is not 2.6.18, a message may be prompted during patching, you can manually modify the settings as prompted. The Kernel configuration options on different platforms are also different, and you may need to make some adjustments to the configuration. Generally, the HCD module code contained in the patch cannot meet your needs. The most difficult part to use is how to obtain the missing code. Montavista also provides a patch for download. I have never used this patch, but the sdiostack document contained in it is a good reference. If you want to use atheros sdio WiFi V2.0, you can check the openmoko patch. Next, I will try to compile the driver for WiFi V2.0.