首先安装包含 lsusb 命令的 usbutils, emerge -v usbutils.

使用 lsusb后,可以查看到 ch340 的信息:

Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

然后在内核中开启 USB-ACM, 位置在 Device Drivers -> USB support (USB_SUPPORT [=y]) -> Support for Host-side USB (USB [=m]) -> USB Modem (CDC ACM) support (USB_ACM),

重新编译后,在 /dev 中还是找不到 ttyusb0, 使用 dmesg 有错误提示:

[  172.647083] ch34x: Unknown symbol usb_serial_port_softint (err 0)
[ 172.647136] ch34x: Unknown symbol usb_serial_deregister_drivers (err 0)
[ 172.647150] ch34x: Unknown symbol usb_serial_register_drivers (err 0)

继续在内核中寻找,发现 usb 有以下的选项:

-->[m] usb serial convert support
-->[*] usb generic serial driver
-->[m] usb winchiphead ch341 single port serial driver
-->[m] usb ftdi single port serial driver
-->[m] usb prolific 2303 single port serial driver

重新编译内核和模块,多了 usbserial,ch341,ftdi_sio,pl2303,usb-serial-simple 这几个模块。

然后重启系统后,插入 usb,自动加载了 usbserial 和 ch341 模块,同时 /dev/ttyUSB0 也出来了。

初步判断,可能不需要 usb-acm 模块。

对于CH340,内核里面有相应的驱动,所以不需要从官网上面下载驱动CH341SER_LINUX,而且官网驱动直接编译有错误。github 上面修改后的驱动 juliagoda/CH341SER

https://github.com/juliagoda/CH341SER

CH341SER-master 也是不需要的,直接用内核驱动即可。

把CH340 编译为内核模块后,不需要其他设置,直接插入 usb,会自动加载 usbserial, ch341 内核模块。

串口调试工具下载了 minicom, putty, ckermit。minicom 中可以设置使用 ckermit 来进行 kermit 的传输。先按照网络上面的教程创建了 .kermrc 文件,增加内容:

set line /dev/ttyUSB0      //如果是串口就是ttyS0

set speed 115200

set carrier-watch off

set handshake none

set flow-control none

robust

set file type bin

set file name lit

set rec pack 1000

set send pack 1000

set window 5

然后输入 kermit 启动软件,提示 /var/lock: Permission denied, 没有相应的权限。

gpasswd -a $USER uucp
gpasswd -a $USER lock

如果提示有用户组不存在,那么使用 groupadd 命令来添加新的用户组,查看已有的用户组可以直接用

groupadd 用户组
cat /etc/group | grep 用户组

别忘了退出当前的终端重新进入,这样就有相应的权限了。

把 USB2SER 模块的 232 的RXD和TXD短接,进行回环测试。

使用 ckermit 发现只能使用 ASCII 进行传输,putty 也是只能用 ASCII 传输。只能试试 minicom,发现 minicom -H 只能输出16进制,输入还是不能16进制,只能重新寻找串口软件。

找到了16进制的串口软件是 cutecom 和 xgcom,gentoo 中直接直接安装 cutecom, emerge -v cutecom。

cutecom 中配置后,可以有时间戳,16进制和ASCII 同时显示,输出作为 log 文件,保存到相应的目录,但是只能在关闭软件后自动保存。还是比较希望能有软件按照时间把输入输出一起保存下来。不过暂时 cutecom 也够用了。

gentoo usb serial ch340 16进制读写的更多相关文章

  1. pyserial 16进制显示与发送

    pyserial 16进制显示与发送 http://www.centoscn.com/python/2013/0817/1320.html 十六进制显示的实质是把接收到的字符诸葛转换成其对应的ASCI ...

  2. java利用16进制来辨别png格式的图片

    很多人知道利用.png的字符串结尾可以判断前端传入的图片是否为png格式,但是这只是潜意识的判断!那么如何利用png读写的特殊内容来深意识地判断图片格式呢?最近在做东西的时候遇到了点问题,在加载图片的 ...

  3. 16进制ascii码转化为对应的字符,付ipmitool查询硬件信息

    最近工作需要在用ipmitool查询服务器硬件信息.ipmitool查询硬件信息 比如电源,使用命令: 获取PSU0信息:Ipmitool raw 0x3a 0x71 0x00: 获取PSU1信息:I ...

  4. iOS根据16进制的色号来设置颜色,适合封装工具类

    iOS中有时候UI给的一个色号就像 #54e1b7 这个,而我们一般设置颜色都是根据RBG来设置的,所以这里需要把这个16进制的色号转为RGB值,这里我们就使用一下的方法来调用设置颜色. + (UIC ...

  5. Emacs 16进制模式

    http://blog.163.com/lan_ne/blog/static/1926701702012112272840545/ ALT+X hexl-mode   进入16进制模式 在这一模式,直 ...

  6. PHP 通过Socket收发16进制数据

    最近在php下做关于Socket通讯的相关内容,发现网络上好多人在了解如何进行16进制收发,研究了下,代码如下,欢迎拍砖. <?php        $sendStr = '30 32 30 3 ...

  7. 使用AS3输出ByteArray为16进制

    package { import flash.utils.ByteArray; /** * 输出ByteArray为16进制 * @author Rise */ public class Byte2H ...

  8. js字符串与16进制互相转换

    // \x65\x76\x61\x6c是否启用\x加密 <script type="text/javascript"> function JavaDe() { var ...

  9. 16进制字符串转换为3进制(扩展至K进制)

    [本文链接] http://www.cnblogs.com/hellogiser/p/16-to-3-or-k.html [题目] 写代码把16进制表示的串转换为3进制表示的串.例如x=”5”,则返回 ...

随机推荐

  1. 特殊场景Sql优化

    一.大表的大数据量修改 问题: 1.大量的行级锁,长时间阻塞   2.主从延时,大批数据不一致 解决方法: 分批次修改 二.大表的表结构修改 问题:长时间锁表 解决方法: 1.从库修改,主从切换,主库 ...

  2. Spring手动提交事务

    // name的值根据spring配置文件的事物管理器的id而定 @Resource(name="transactionManager") private DataSourceTr ...

  3. Hide Data into bitmap with ARGB8888 format

    将保存重要信息,如银行卡密码的文本文件隐藏到ARGB8888的A通道. bitmap.h #ifndef BMP_H #define BMP_H #include <fstream> #i ...

  4. 剑指Offer 50. 数组中重复的数字 (数组)

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  5. 剑指Offer 9. 变态跳台阶 (递归)

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目地址 https://www.nowcoder.com/practice/ ...

  6. 在linux系统安装tomcat后,bin文件下startup.sh启动不

    Linux里的tomcat下的 bin ,没法执行,   可直接到 bin 目录下 ,执行 chmod 777 *  就可以了. [srmdev@mvxl0793 bin]$ chmod 777  * ...

  7. Python全栈之路----常用模块----datetime模块详解

    相比于time模块,datetime模块的接口则更直观,更容易调用. datetime模块定义了下面这几个类: datetime.date:表示日期的类,常用的属性有year,month,day: d ...

  8. Spring 自动装配及其注解

    一.属性自动装配 首先,准备三个类,分别是User,Cat,Dog.其中User属性拥有Cat和Dog对象. package com.hdu.autowire; public class User { ...

  9. cmd运行jar

    https://blog.csdn.net/lemon_tree12138/article/details/44081909 https://www.cnblogs.com/LanTianYou/p/ ...

  10. 初识vue小结

    初识vue 大家都那么热爱他一定有原因,我也特想了解. 我来咯, 首先用vue开发版,用一个标签在head中插入,script标签src属性引入vue文件,就像jquey一样在script,但是放在h ...