mt7601 kernel 4.19内核集成版本,以及源码编译相关问题

目录

内核自带

内核配置

移植 iw工具

移植mt7601源码

编译文件修改

解决如下:

内核配置

连接时需要的文件


内核自带

内核配置

在linux内核4.19版本中已经把mt7601的驱动加入到内核源码中。

内核需要需要开启mac802.11

wifi连接工具 iwlist_for_visteon-master

使用iwpriv 提示如下,iwpriv工具无法使用了,而iwconfig可以使用

/opt/ko # iwpriv
lo        no private ioctls.

wlan0     no private ioctls.

eth0      no private ioctls.

看下iwpriv与iwconfig的源码区别,左侧为iwconfig ,没有用到ioctl,右侧为iwpriv

内核的mt7601为何不能使用iwpriv,驱动方式的变化
nl80211  与  wext 驱动方式  
nl80211 内核与用户空间交互采用  netlink   iw       使用
wext      内核与用户空间交互采用采用 ioctl     iwxxxx   已经废弃

移植 iw工具

源码地址:https://git.sipsolutions.net/iw.git/ 
使用文档:https://wireless.wiki.kernel.org/en/users/Documentation/iw

依赖libnl-3.2.23    

iw 的makefile的修改

	ifeq ($(NO_PKG_CONFIG),)
	NL3xFOUND := Y#$(shell $(PKG_CONFIG) --atleast-version=3.2 libnl-3.0 && echo Y)
	
	
	ifeq ($(NL3xFOUND),Y)
	# libnl 3.2 might be found as 3.2 and 3.0
	override CFLAGS += -DCONFIG_LIBNL30 -I/home/wy/hisi/tools/libnl-3.2.23/build/include/libnl3
	override LIBS += -L/home/wy/hisi/tools/libnl-3.2.23/build/lib -lnl-3 -lnl-cli-3 -lnl-genl-3 -lnl-idiag-3 -lnl-nf-3 -lnl-route-3 -Wl,-rpath=/home/wy/hisi/tools/libnl-3.2.23/build/lib
	NLLIBNAME = libnl-3.2
	endif
	
	endif # NO_PKG_CONFIG
	
	ifeq ($(V),1)
	Q=
	NQ=true
	else
	Q=@
	NQ=echo
	endif
	
	all: $(ALL)
	
	version.c: version.sh $(patsubst %.o,%.c,$(VERSION_OBJS)) nl80211.h iw.h Makefile \
	                $(wildcard .git/index .git/refs/tags)
	        @$(NQ) ' GEN ' $@
	        $(Q)./version.sh $@
	
	nl80211-commands.inc: nl80211.h
	        @$(NQ) ' GEN ' $@
	        $(Q)sed 's%^\tNL80211_CMD_%%;t n;d;:n s%^\([^=]*\),.*%\t[NL80211_CMD_\1] = \"\L\1\",%;t;d' nl80211.h | grep -v "reserved" > $@
	
	%.o: %.c iw.h nl80211.h nl80211-commands.inc
	        @$(NQ) ' CC  ' $@
	        #$(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
	        $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
	
	ifeq ($(IW_ANDROID_BUILD),)
	iw:     $(OBJS)
	        @$(NQ) ' CC  ' iw
	        $(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o iw
	endif

连网步骤如下 


1.扫描SSID
# sudo iw dev wlan0 scan
 
找到SSID:test
 
2.配置连接wifi
# cat /etc/wpa_supplicant.conf
network={
	ssid="test"
	psk="12345678"

}
3.连接wifi设备
# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
 
4.查看连接转状态
# iw wlan0 link
 
5.为wlan0获取ip地址
# sudo dhclient wlan0

移植mt7601源码

想要使用iwpriv需要移植mt7601源码,移植时有很多错误。

版本:DPO_MT7601U_LinuxSTA_3.0.0.4_20130913

源码下载地址:https://www.mediatek.com/products/broadband-wifi/mt7601u

编译文件修改

makefile的修改

os/linux/config.mk 文件修改

错误提示

解决如下:

1、init_timer   kernel 4.19内核版本API已经改变,使用timer_setup

/* convert NdisMInitializeTimer --> RTMP_OS_Init_Timer */
static inline VOID __RTMP_OS_Init_Timer(
        IN VOID *pReserved,
        IN OS_NDIS_MINIPORT_TIMER * pTimer,
        IN TIMER_FUNCTION function,
        IN PVOID data)
{
        if (!timer_pending(pTimer)) {
                //init_timer(pTimer);
                //pTimer->data = (unsigned long)data;
                //pTimer->function = function;

                timer_setup(pTimer, function, 0);
        }
}

2、 

3、

./os/linux/Makefile.6文件: 添加 EXTRA_CFLAGS += -Wno-incompatible-pointer-types -Wno-date-time

编译出来的文件

DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/mt7601Usta.ko

内核配置

以下配置很重要,否则模块编译错误

  1. Cfg80211

Mac80211

Wext

Lib80211

以及相关的依赖

不配置有以下错误

连接时需要的文件

1、MT7601.bin 

      所在源码位置 : DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/mcu/bin

      放置在板子上位置:   /lib/firmware/mt7601u.bin

2、RT2870STA.dat 

      放置在板子上位置 /etc/Wireless/RT2870STA/RT2870STA.dat

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DRM是指Direct Rendering Manager,是Linux内核中的一个子系统,用于管理图形设备驱动程序。DRM驱动程序负责将用户空间应用程序请求的图形操作传递给图形设备,并且提供了一些控制接口。而IOCTLs则是一种用户态应用程序通过调用设备驱动程序提供的接口来进行设备控制和通信的方式。 在DRM驱动程序中,IOCTLs被用于提供对GPU的访问、配置和操作。它们是用户空间应用程序与内核空间DRM驱动程序之间通信的一种方式。通过调用ioctl函数,用户空间应用程序可以向DRM驱动程序发送不同的命令和参数,以实现对图形设备的控制操作。 而FOPS则是指File Operations,用于定义内核空间文件系统操作的一组函数。在DRM驱动程序中,FOPS用于处理与文件系统相关的操作,例如读取、写入、打开和关闭设备文件等。通过实现FOPS中的函数,DRM驱动程序可以与用户空间应用程序进行文件操作的交互,并提供相应的图形设备数据。 总结来说,DRM驱动程序通过IOCTLs提供了一组控制接口,用于用户空间应用程序与内核空间的通信和对图形设备的管理。而FOPS则用于处理内核空间中的文件系统交互,使DRM驱动程序能够与用户空间应用程序进行文件操作的交互。这些功能的组合使得DRM驱动程序能够有效地管理和控制图形设备,并提供给用户空间应用程序所需的图形功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为了维护世界和平_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值