目录

问题

这两天为了做gps和arm的通讯,不得不捣鼓这个东东。开发板是创维特jx2410,usb转串口线的芯片是pl2303。还好是这个芯片,让我没费多少力气,就达成了目的。因为linux对它已经支持了,我们只要编译、加载它的驱动就ok了。

驱动源码

一般来说USB转串口的驱动已经集成在内核中,我们无需下载,只需要在编译时进行一些配置即可.

因此在编译之前我们需要确认自己的内核中有没有USB转串口的驱动.

usb转串口的驱动位于内核源码根目录下/drivers/usb/serial

主要的源码包括usb-serial.c,option.c,pl2303.c

针对不同的芯片还有cp210x.c 和 pl2303.c

例如在我们本例中使用的就是pl2303

内核配置

使用make menuconfig进行配置

主要配置信息如下

-->Device Driver

-->usb support

-->USB Serial Converter Surpport相关的选项。

usb generic serial driver选中

usb prolific 2303 single port serial driver配成M。

具体配置如下图所示

首先打开menuconfig,进入Device Drivers驱动配置页面

进入usb support USB驱动配置页面主要配置信息如下

usb support下

选择USB Serial Converter Surpport相关的选项。

选中USB Serial Converter Surpport和

usb generic serial driver

最后选择对应的芯片,注意这里选择为M,将驱动编译成模块,动态加载

编译内核和驱动模块

make zImage, make modules

make modules

加载驱动

最后在源码目录下pl2303.ko 就是我们需要的驱动,在板子上直接insmod即可

问题:

1. usb设备调试命令

lsusb: 列出usb设备和属性, lsusb -v可以查看设备的详细属性

ls /dev/tty*: 查看usb设备是否有加载成功

2. make dep/make module, insmod/rmmod, depmode/modprobe三组的具体用法

这里面提到加载内核驱动的正常流程,首先拷贝*.ko文件到/lib/module/`uname -r`/kernel/driver/usb, 其次执行depmode -a建立依赖,更新module.dep,最后运行modprobe加载模块

modprobe相较于insmod的话,更加智能,会根据module.dep建立的模块依赖关系,安排加载顺序,若insmod则可能会出现undefined symbol等问题

所以在加载pl2303.ko驱动,只要depmod -a, 后使用modprobe pl2303.ko即可,不需要再有insmod usb-serial.ko, insmod option.ko, insmod pl2303.ko等操作

3. 除了在rc中添加insmod, 在开机使用modprobe如何自动加载模块?

/lib/modules/version: cp yourdrivername.ko /lib/modules/`uname -r`/kernel/drivers/misc

depmod -a: 使用depmod -a应该也是可以的,该文件,会一直保存的,不随断电而消失, 或者编辑/lib/modules/`uname -r`/modules.dep,设置驱动程序之间的关联,增加一行: /lib/modules/`uname -r`/kernel/drivers/misc/yourdrivername.ko

modprobe: 编辑/etc/rc.d/rc.local,增加一行: /sbin/modprobe yourdrivername

4. 理解depmod -a和modprobe

depmod -a: 通过读取/lib/modules/version下的每一个模块来创建模块的依赖性列表,也就是/lib/modules/version下的modules.dep文件,所以执行depmod -a不需要到特定目录下,且待加载模块需要拷贝到/lib/modules/version目录下

modprobe: modprobe pl2303, 不需要pl2303.ko, modprobe会读取modules.dep文件,并决定模块加载顺序。

5. 将pl2303.ko和option.ko, usb-serial.ko拷贝到板子的/lib/modules/3.14.**/kernel/drivers/usb下->depmod -a->modprobe, 系统启动会自动加载吗?

在测试pl2303.ko,发现系统启动会自动加载,不知什么原因?

6. Make zImage, make modules, make modules_install怎么理解?

当menuconfig中将模块设置为"M"时,make zImage不会把模块编译进内核。这时,可以使用make modules编译模块源码为*.ko文件,然后通过make modules_install动态加载该模块。

[usb/uart]内核添加USB转串口驱动支持

转自:http://blog.csdn.net/gatieme/article/details/49491325 目录 1. 问题 2. 驱动源码 3. 内核配置 4. 编译内核和模块驱动 5. 加载 ...

Linux 串口、usb转串口驱动分析(2-2) 【转】

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4186852 Linux 串口.usb转 ...

Linux 串口、usb转串口驱动分析(2-1) 【转】

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4186851 Linux 串口.usb转 ...

linux驱动基础系列--Linux 串口、usb转串口驱动分析

前言 主要是想对Linux 串口.usb转串口驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如字符设备驱动.平台驱动等也不进行详细说明原理.如果有任何错误地方,请指出, ...

usb转串口驱动时会出现“文件的哈希值不在指定的目录”这样的提示

一般在安装一些usb转串口驱动时会出现“文件的哈希值不在指定的目录”这样的提示,那么怎么解决呢?知道的别喷我哦,我只是再普及一下,嘿嘿1.鼠标移到右下角,点击“设置”,再点击“更改电脑设置”2.点击最 ...

USB转串口驱动代码分析

1.USB插入时,创建设备 [plain] view plaincopy DriverObject->DriverExtension->AddDevice = USB2COM_PnPAdd ...

TI 开发板安装USB转串口驱动

使用TI开发板的时候,USB转串口驱动没有,显示,无法识别设备.搜了好久才搜到相关驱动. 做个记录. 链接: https://pan.baidu.com/s/1ZT5zzVcU727jrYacKVoT ...

STM32 USB转串口驱动安装不成功出现黄色感叹号解决方法!

相信很多人在做USB转串口时出现过串口驱动安装不成功,出现黄色感叹号问题, 出现这种问题一般是驱动安装不成功造成的. 这里我就这个问题总结几个简单的方法. 方法1: 插上USB,利用驱动人生安装驱动. ...

linux下usb转串口驱动分析【转】

转自:http://blog.csdn.net/txxm520/article/details/8934706 首先说一下linux的风格,个人理解 1. linux大小结构体其实是面向对象的方法,( ...

随机推荐

11.struts2文件上传

文件上传 1.上传单个文件 2.上传多个文件   1.上传单个文件 实现步骤: (1)导入一个Jar包:commons-io-1.3.2.jar.只所以要导入这个Jar包,是因为要用到一个工具类Fil ...

[BZOJ3874][AHOI2014] 宅男计划

Description 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第i种食物会在Si天后过期.JYY是不会吃过期食物的.比如JYY如果今天点了一份保质期为1天的食 ...

Log

Public Shared Sub WriteLog(ByVal FormID As String, ByVal ex1 As Exception) 'log信息 Dim loginfo As Str ...

JavaScript禁用页面刷新

JavaScript禁用页面刷新代码如下: //禁用F5刷新 document.onkeydown = function () { if (event.keyCode == 116) { event. ...

Python中Lambda, filter, reduce and map 的区别

Lambda, filter, reduce and map Lambda Operator Some like it, others hate it and many are afraid of t ...

机房收费系统之vb报表的模板的制作(一)

机房收费系统有报表的功能,报表对于我们来说有点陌生.这不是会计的事吗?怎么机房收费系统也參合进来了,事实上我们学会了报表的步骤.理解了代码后.报表变得不是非常难,世上无难事,仅仅怕肯登攀 ...

[ACdream]女神教你字符串——违和感

题目描述: 女神最喜欢字符串了,字符串神马的最有爱了. 女神是一个重度强迫症患者,面对不是对称的东西,她会觉得太违和了,就会爆炸.所以她手上的字符串都是回文的,像什么a,b,aabaa,abcba,上 ...

ftp和mysql数据库结合使用

问题描述: 看下 1.1.1.1 的ftp为什么连不上 报错的信息: 'ftpServer' => '1.1.1.1', // FTP服务器地址 ', 'ftpUsername' => ' ...

单机单网卡最大 tcp 长连接数是 65535 吗

在Linux里,如果是作为客户端或者负载均衡器的节点连接多个服务器,在connect()服务器之前, 调用bind()先绑定IP地址(通常是在多网卡的场景),即使使用bind(IP, port=0), ...

EFCore Owned Entity Types,彩蛋乎?鸡肋乎?之鸡肋篇

鸡肋 鸡肋(Chicken ribs),现代汉语词语,出自裴松之注引曰:"夫鸡肋,弃之如可惜,食之无所得,以比汉中,知王欲还也.& ...

linux usb转串口驱动报错,[驱动]内核添加USB转串口驱动支持相关推荐

  1. 360手机驱动 360手机高通驱动 360手机驱动报错 360手机USB驱动

    360手机驱动 360手机高通驱动 360手机驱动报错 360手机USB驱动   [工具下载] 参考:360手机-360刷机360刷机包twrp.root 刷机包+工具下载地址:https://360 ...

  2. 解决:安装NVIDIA推荐驱动报错、nvidia-smi报错 Failed to initialize NVML

    解决:安装NVIDIA推荐驱动报错.nvidia-smi报错 Failed to initialize NVML: Driver/library version mismatch 文章目录 解决:安装 ...

  3. maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0

    maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 问题:引入依赖之后会报错.在maven中央库中查找ojdbc, ...

  4. 安装声卡驱动报错,代码:0xe0000246

    安装声卡驱动报错,代码:0xe0000246 打开注册表,找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DeviceInstall\P ...

  5. win10显卡驱动报错怎么办【系统天地】

    用户在win10版本刚出来的时候就进行了更新,因此也遇到了不少的问题最常见的就是显卡驱动总是报错,那么win10显卡驱动报错怎么办呢?今天小编就为大家带来了win10显卡驱动报错的解决方法. win1 ...

  6. 安装ubuntu系统操作系统详细流程、ubuntu管理包命令apt和dpkg命令详细说明、一键部署openstack环境、DBeaver下载驱动报错和登录提示RSA public key.. 解决方法

    文章目录 安装ubuntu操作系统 安装vmware,我这的版本是16 . 创建虚拟机 设置网络.[你没有啥特殊需求,忽略该步骤] 开启处理器虚拟化 开始安装ubuntu系统 配置sshd和修改roo ...

  7. 报错解决:加载数据库驱动报错-Loading class `com.mysql.jdbc.Driver‘. The new driver class is `com.mysql.cj.jdb

    Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.D ...

  8. [896]DBeaver安装和下载驱动报错问题

    文章目录 DBeaver连接ClickHouse DBeaver安装完成使用时下载驱动报错的问题 DBeaver导出连接配置 DBeaver连接ClickHouse 1.从DBeaver官网下载安装包 ...

  9. linux上添加下载源的时候报错:无法添加 PPA:“‘此 PPA 不支持 bionic‘”,以及关于linuxPPA的介绍,如何查找软件包的PPA源,并添加PPA

    1 介绍LInux PPA 在介绍问题之前,首先来说明一下什么是PPA,清楚问题的本质,追根溯源,这样才能更明确问题,然后针对性的去解决这个问题! 1.1 为什么需要PPA PPA:Personal ...

  10. Linux下Tomcat启动报错:port already in use

    Linux下Tomcat启动报错:port already in use,导致该问题的原因很多,我在这里记录一下我遇到的情况的解决办法. 检查了${TOMCAT_HOME}/conf/server.x ...

最新文章

  1. ORB-SLAM2从理论到代码实现(三):ORB特征提取和匹配理论和代码详解
  2. [three.js]学习笔记
  3. 正确的理解iOS MVC
  4. Git简介及其下载 安装 卸载
  5. Laravel的Class Laravel\Passport\Passport not found
  6. [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相(树的重心+贪心)
  7. python自带的编辑器怎么换行_Python3基础 print 自带换行功能
  8. Codeforces Round #387 (Div. 2) A+B+C+D!
  9. Anaconda 国内镜像源整理
  10. android 多个模块,Android 模块化中两个模块之间传递model
  11. 【vue】 生命周期
  12. c语言是非结构化程序语言_1、C语言是一种结构化程序设计语言
  13. GD32 startup.s
  14. 为什么你的问题总是得不到博主回复?一文教你如何高效和博主进行沟通!
  15. Typora开始收费,替代品marktext
  16. Ubuntu18.04手动安装Realtek网卡驱动
  17. Lotka–Volterra equation Competitive Lotka–Volterra equations
  18. 写技术博客的一些心得体会
  19. qt.network.monitor: Could not get the INetworkConnection instance for the adapter GUID.QT关闭时程序异常结束
  20. 2019牛客暑期多校训练营 第三场 I Median

热门文章

  1. 轻松学会当前读、快照读、MVCC、gap锁
  2. 某公司的雇员分为以下若干类
  3. 用计算机实测技术研究声波和拍内容,基础物理实验/面向21世纪课程教材
  4. Fast RTPS原理与代码分析(2):动态发现协议之参与者发现协议PDP
  5. 使用JDBC创建出版社和书籍管理系统
  6. C语言--函数-统计单词个数
  7. Android仿IOS屏幕亮度调节-自定义view系列(5)
  8. ios 图片加载内存尺寸_iOS图片内存优化
  9. element表格表头显示斜杠
  10. 怎么用软件测试相似相似度,文档相似性检测工具