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