Quectel QMI_WWAN驱动安装报错:make[1]: No rule to make target问题排查
Quectel QMI_WWAN驱动安装错误排查与修复
错误原因拆解
1. 目录名特殊字符引发Shell解析异常
报错/bin/sh: 1: Android_QMI_WWAN_Driver_V1.1: not found的核心原因是驱动目录名包含&符号——Shell会将&识别为后台执行命令的分隔符,导致完整路径被拆分为/home/ttgp/Downloads/quectel_lte5g_linux_usb_driver_v1-0-2/Quectel_Linux和Android_QMI_WWAN_Driver_V1.1两部分,后者被当成独立命令执行,自然无法找到。
2. 内核头文件缺失或架构不匹配
arch/aarch64/Makefile: No such file or directory说明当前系统的内核头文件不完整,或者Makefile指定的ARCH=aarch64参数与已安装的内核头文件架构不匹配,导致编译时找不到对应架构的配置文件。
3. Makefile的install目标语法错误
你提供的Makefile中install目标写法存在语法问题:
install: default cp $(PWD)/qmi_wwan_q.ko /lib/modules/$(shell uname -r)/kernel/drivers/net/usb/ depmod
多个命令写在同一行时未用分号分隔,Make会把后续命令当成目标的依赖项,而非待执行的命令。
修复操作步骤
步骤1:处理目录名中的特殊字符
- 方案一(推荐):直接重命名驱动目录,移除
&符号,例如改为Quectel_Linux_Android_QMI_WWAN_Driver_V1.1 - 方案二:执行命令时给路径加引号,强制Shell识别完整路径:
cd "/home/ttgp/Downloads/quectel_lte5g_linux_usb_driver_v1-0-2/Quectel_Linux&Android_QMI_WWAN_Driver_V1.1" sudo make install
步骤2:修复内核头文件问题
- 先确认已安装对应版本的完整内核头文件:
sudo apt install linux-headers-$(uname -r) - 安装后仍报错的话,检查内核头文件的arch目录是否存在
aarch64:
若没有ls /usr/src/linux-headers-$(uname -r)/arch/aarch64目录,说明当前内核头文件架构与系统不匹配,需重新下载对应aarch64架构的内核头文件包安装。
步骤3:修正Makefile的install目标
打开驱动目录下的Makefile,将install目标修改为正确语法(用分号分隔命令,或换行缩进):
# 方式一:同一行用分号分隔 install: default cp $(PWD)/qmi_wwan_q.ko /lib/modules/$(shell uname -r)/kernel/drivers/net/usb/; \ depmod # 方式二:换行用Tab缩进(Make要求命令行必须Tab开头) install: default cp $(PWD)/qmi_wwan_q.ko /lib/modules/$(shell uname -r)/kernel/drivers/net/usb/ depmod
内容的提问来源于stack exchange,提问作者user26656812
相关产品推荐
相关产品推荐

