需要一些帮助来构建 wifi 驱动程序

需要一些帮助来构建 wifi 驱动程序

我以前从未编译过驱动程序,所以我想弄清楚如何做到这一点。顺便说一下,我使用的是内核 3.14.1。我正在尝试从 github 构建 Ralink RT3573 驱动程序。当我执行 sudo make 时出现错误。构建说明令人困惑。有人可以带我了解一下吗?这是 github 链接:https://github.com/ashaffer/rt3573sta

Build Instructions:  
====================

1> $tar -xvzf DPB_RT2870_Linux_STA_x.x.x.x.tgz
go to "./DPB_RT2870_Linux_STA_x.x.x.x" directory.

2> In Makefile
 set the "MODE = STA" in Makefile and chose the TARGET to Linux by set "TARGET =     LINUX"
 define the linux kernel source include file path LINUX_SRC
 modify to meet your need.

3> In os/linux/config.mk 
define the GCC and LD of the target machine
define the compiler flags CFLAGS
modify to meet your need.
** Build for being controlled by NetworkManager or wpa_supplicant wext functions
   Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y'.
   => #>cd wpa_supplicant-x.x
   => #>./wpa_supplicant -Dwext -ira0 -c wpa_supplicant.conf -d
** Build for being controlled by WpaSupplicant with Ralink Driver
   Please set 'HAS_WPA_SUPPLICANT=y' and 'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n'.
   => #>cd wpa_supplicant-0.5.7
   => #>./wpa_supplicant -Dralink -ira0 -c wpa_supplicant.conf -d

4> $make
# compile driver source code
# To fix "error: too few arguments to function ¡¥iwe_stream_add_event"
  => $patch -i os/linux/sta_ioctl.c.patch os/linux/sta_ioctl.c

5> $cp RT2870STA.dat  /etc/Wireless/RT2870STA/RT2870STA.dat

6> load driver, go to "os/linux/" directory.
#[kernel 2.4]
#    $/sbin/insmod rt2870sta.o
#    $/sbin/ifconfig ra0 inet YOUR_IP up

#[kernel 2.6]
#    $/sbin/insmod rt2870sta.ko
#    $/sbin/ifconfig ra0 inet YOUR_IP up

7> unload driver    
$/sbin/ifconfig ra0 down
$/sbin/rmmod rt2870sta

答案1

  1. 假设你已经将驱动程序文件下载到某个地方(可能是你的主目录),解压它:tar -xvzf DPB_RT2870_Linux_STA_x.x.x.x.tgz
    然后切换到刚刚创建的目录
    cd DPB_RT2870_Linux_STA_x.x.x.x
  2. 此步骤要求您编辑文件 Makefile:nano Makefile
    但据我所知,设置已经正确。请将其保留,直到您在后续步骤中发现问题为止。
  3. 文件 os/linux/config.mk 也是如此。同样,默认设置看起来不错。说明是否选择“Native WPA Supplicant support”的行包含驱动程序编译后您将使用的命令。WPA Supplicant 是将使用您的驱动程序连接到网络的组件。
  4. 返回目录树顶部(即~/DPB_RT2870_Linux_STA_x.x.x.x)并执行命令make。显然,“参数太少”错误非常常见,因此 RALINK 提供了一种解决方法。如果出现此错误,请输入patch提供的命令并重试make
  5. 驱动程序需要一个数据文件,因此您将其复制到 /etc/Wireless(您将需要sudo)。
  6. 现在您应该能够加载驱动程序模块(即,将其放在内核可以使用的内存中): cd os/linux sudo /sbin/insmod rt2870sta.ko sudo ifconfig ra0 inet YOUR_IP up
    这将加载您的模块一次。要让模块在每次重启后都加载,您需要采取一些额外的操作。
  7. 这些是有关卸载模块的说明。

相关内容