1.环境配置与内核下载
首先将虚拟机磁盘空间设置为100G,运行内存4G,不够的扩容或者重装系统
需要将虚拟机的USB兼容性设置到3.1或者3.0
以Ubuntu 20.04为例
-
uname -r:
查看当前内核版本 -
sudo apt search linux-source:
查看当前可用的内核 -
下载跟当前内核版本相同的内核,命令的后面加上内核号,例如,我的内核版本是5.4.0-54-generic,使用命令
sudo apt-get install linux-source-5.4.0下载 -
打开 /usr/src 目录 解压内核
tar xvf linux-source-5.4.0.tar.bz2 -C ~/,解压到家目录下/home/ubuntu/linux-source-5.4.0,后续的操作中这个目录就是内核的目录 -
安装必要的程序和库
sudo apt-get install bison -y
sudo apt-get install flex
sudo apt-get install libncurses5-dev
sudo apt-get install lib32ncurses5
sudo apt-get install lib32z1
sudo apt-get install libssl-dev
sudo apt-get install lzop
sudo apt-get install libelf-dev -
安装arm-linux-gcc交叉编译器
由于此Ubuntu20.04 是64 位的Ubuntu 系统,就安装64 位的arm-linux-gcc 交叉编译器,直接安装就能成功。链接:https://pan.baidu.com/s/1SffxkJ2ZS17d1F1aYY3pSA
提取码:gydq
把下载好的安装包移动到根目录下的/tmp 目录中
使用tar 命令解压安装包,执行指令sudo tar -xjvf /tmp/arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 -C /,执行此命令会把安装包解压到根目录下的opt 的TuxamitoSoftToolchains 里面(/opt/TuxamitoSoftToolchains)
将压缩包解压完成之后,在/usr/local 中创建一个新的目录arm,执行指令
sudo mkdir /usr/local/arm
创建arm 目录成功后,还需要给它解放全部权限,执行指令sudo chmod 777 /usr/local/arm
在解压出来的目录中找到并把整个gcc-4.6.4 目录复制到刚刚建好的arm 目录中,执行指令
cd /opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/
再执行cp 复制命令,-r 表示整个目录以及里面的任何东西
sudo cp -r gcc-4.6.4 /usr/local/arm
打开/etc/profile 配置环境变量和库变量,目的是以后可以在任何位置使用该交叉编译器,执行指令sudo vi /etc/profile
用vi 或者vim 打开后,在文件最后添加两行,并输入以下代码:第一行是添加执行程序的环境变量,第二行是库文件的路径
export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib
使用source 命令重新加载生效该配置文件,执行指令source /etc/profile
检验是否安装成功,在Terminal 输入以下命令输出版本信息,执行指令arm-linux-gcc -v

2.修改内核文件
- 添加模组的PID和VID
进入到内核目录下,我的是~/linux-source-5.4.0,进入到linux-source-5.4.0/drivers/usb/serial目录,使用gedit打开option.c文件,按照要求在static const struct usb_device_id option_ids[] 函数里面添加相应信息
#if 1 //Added by Quectel
{
USB_DEVICE(0x2C7C, 0x0125) }

本文档详细介绍了RM500Q模块在Ubuntu20.04系统的驱动配置流程,包括环境配置、内核修改及编译、驱动安装等步骤,并提供了常见问题解决方案。

918

被折叠的 条评论
为什么被折叠?



