【Ubuntu系统重启以后串口驱动丢失的问题】

本文介绍了解决Ubuntu系统重启后CH34X串口驱动丢失的问题。通过关闭BIOS中的安全启动模式,确保了重启后系统能正确识别并加载串口设备驱动。

Ubuntu系统重启以后串口驱动丢失的问题

CH34X串口驱动的安装

参考链接: link.
PS:如果提示Permission denied 需要在root权限下运行

重启以后串口驱动丢失的问题

参考上面的链接安装串口驱动程序,插上usb设备后系统能够识别并运行。但是当重启Ubuntu系统后,串口驱动程序丢失,设备无法被识别,打开cutecom提示文件找不到。

  1. lsmod命令无法找到ch34x的驱动程序 ;
  2. 参考上面的链接重新安装驱动也不行;

解决方法

参考LInux下显卡驱动的安装中遇到的问题
重新启动,未显示开机动画前狂按F2进入BIOS,关闭启动选项中的安全启动模式。保存设置并开机,这时候再插上串口设备,输入lsmod可以查看到ch34x的驱动

<think>嗯,用户现在想在Ubuntu系统下使用EC20模块实现远程TCP/IP通信的配置方法。之前我已经给过一个配置指南,涵盖了驱动安装、网络连接、数据传输和问题排查。但用户现在可能希望更具体地针对TCP/IP通信的解决方案,可能需要更详细的步骤或不同的方法。 首先,我需要回顾之前的回答。之前的指南包括驱动检查、APN配置、网络激活以及数据传输示例,比如MQTT和HTTP。但用户现在提到的是TCP/IP通信,可能需要直接使用socket编程或者配置模块的TCP/IP模式。 用户提供的引用中提到了telnet、ssh、netstat、openssl配置,还有NBIoT-BC26模块使用MQTT到云端。这可能暗示用户对安全通信(如SSL/TLS)或不同的协议(如MQTT)感兴趣,但问题明确提到的是TCP/IP,所以可能需要基础TCP连接的方法。 接下来,我需要考虑EC20模块的工作模式。EC20支持多种模式,比如PPP、QMI、MBIM等。在之前的回答中,提到了使用quectel-CM工具进行拨号,这可能是在QMI模式下建立网络连接。然后用户可以通过wwan0接口进行TCP通信。但用户可能需要更直接的配置,比如设置模块为ECM(Ethernet Control Model)模式,这样系统会识别为一个网络接口,直接分配IP,无需拨号。 另外,用户可能需要配置模块的AT指令来建立TCP连接。例如,使用AT+QIOPEN打开一个TCP socket,然后发送数据。这在某些应用场景中可能更直接,尤其是如果用户不想依赖外部工具,而是直接通过串口发送AT指令。 然后需要检查之前的回答是否涵盖了这些方面。之前的回答中提到了AT指令激活PDP上下文,但可能没有详细说明如何建立TCP连接。所以现在需要补充这部分内容,包括使用AT指令配置TCP客户端,设置服务器地址和端口,发送数据等步骤。 另外,引用中提到了OpenSSL配置,用户可能需要安全传输,比如通过TLS加密的TCP连接。这可能需要在应用层实现,比如使用Python的ssl库,或者在模块层面配置TLS,如果EC20支持的话。不过EC20可能需要在AT指令中配置TLS参数,这可能需要查证模块的AT指令手册。 用户的问题还可能涉及到网络调试,比如如何测试TCP连接是否成功。可能需要使用netcat或其他工具进行测试,或者编写简单的Python脚本作为客户端和服务器。 另外,引用4提到使用MQTT服务器和EMQX处理数据,用户可能最终想将数据传到云端,但问题明确是TCP/IP通信,所以可能需要先建立基础的TCP连接,之后再集成到MQTT等协议中。 总结用户的需求:在Ubuntu下配置EC20模块,使其能够通过TCP/IP协议与远程服务器通信。可能的步骤包括: 1. 确保EC20模块正确识别,驱动加载,网络接口可用。 2. 配置模块为合适的模式(如ECM或QMI),获取IP地址。 3. 使用AT指令直接建立TCP连接,或者通过系统网络接口进行socket通信。 4. 测试TCP通信,确保数据可以发送和接收。 5. 考虑安全传输,如TLS加密。 需要检查之前的回答是否覆盖这些点,并补充遗漏的部分。例如,之前的指南中可能没有详细说明如何使用AT指令进行TCP通信,或者如何配置ECM模式。可能需要添加这部分内容,并给出具体的AT指令示例和代码片段。 此外,用户可能需要知道如何检查网络接口状态,使用ping和curl测试连接,以及如何编写简单的TCP客户端脚本。还可能遇到防火墙问题,需要配置iptables或ufw允许流量。 最后,确保回答结构清晰,分步骤说明,并提供实际命令和代码示例,方便用户操作。同时,根据引用中的信息,可能涉及到端口检查(netstat/ss),安全配置(OpenSSL),这些可以作为补充内容,比如在配置TLS时参考openssl的配置。</think>### Ubuntu系统下EC20模块TCP/IP远程通信配置教程 --- #### 一、网络模式选择与驱动配置 1. **设置EC20为ECM模式(推荐)** 通过AT指令将模块配置为`ECM`(Ethernet Control Model),使系统直接识别为网络接口: ```bash sudo screen /dev/ttyUSB0 115200 # 进入AT指令交互界面 AT+QCFG="usbnet",3 # 3=ECM模式,需重启模块生效 AT+CFUN=1,1 # 重启模块 ``` 重启后检查网络接口: ```bash ifconfig -a | grep enx # 通常显示enx<MAC地址>的接口 ``` 2. **QMI模式备用方案** 若需使用QMI模式,需加载`qmi_wwan`驱动并激活连接: ```bash sudo modprobe qmi_wwan sudo apt install libqmi-utils sudo qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode='online' # 激活模块 sudo qmicli -d /dev/cdc-wdm0 --nas-get-signal-strength # 验证信号强度 ``` --- #### 二、TCP/IP通信核心配置 1. **PDP上下文激活** 确保模块已注册网络并激活数据承载: ```bash AT+COPS? # 确认运营商注册(返回"0,0"表示成功) AT+CGACT=1,1 # 激活PDP上下文(需提前配置APN) AT+QIACT? # 检查激活状态(返回+QIACT: 1,1,1,"10.10.10.1") ``` 2. **直接使用AT指令发起TCP连接** EC20支持通过AT指令直接建立TCP连接(原始IP模式): ```bash AT+QIOPEN=1,0,"TCP","remote_server_ip",12345,0,0 # 创建Socket AT+QISEND=0,"Hello TCP Server!" # 发送数据(需等待CONNECT OK响应) AT+QICLOSE=0 # 关闭连接 ``` 3. **系统级TCP通信(推荐)** 通过ECM/QMI模式获取IP后,使用标准网络工具或编程接口: ```python # Python TCP客户端示例 import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(("remote_server_ip", 8080)) sock.send(b"Data from EC20 via TCP") response = sock.recv(1024) sock.close() ``` --- #### 三、安全通信增强(TLS加密) 1. **配置OpenSSL证书(引用[3])** 若需加密通信,需配置CA证书路径: ```bash sudo mkdir /etc/ssl/ec20_certs sudo cp your_ca.crt /etc/ssl/ec20_certs/ # 修改OpenSSL配置(参考引用[3]) sudo nano /etc/ssl/openssl.cnf ``` 修改内容: ```ini [ CA_default ] dir = /etc/ssl/ec20_certs # 指向自定义证书目录 ``` 2. **Python TLS客户端示例** ```python import ssl context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH) context.load_verify_locations("/etc/ssl/ec20_certs/your_ca.crt") with socket.create_connection(("remote_server", 443)) as sock: with context.wrap_socket(sock, server_hostname="remote_server") as ssock: ssock.send(b"Encrypted data via TLS") print(ssock.recv(1024)) ``` --- #### 四、网络调试与验证 1. **端口监听测试(引用[2])** 在远程服务器端使用`netstat`检查端口状态: ```bash netstat -tulnp | grep 8080 # 确认服务端口监听状态 ``` 2. **EC20端连通性测试** ```bash ping remote_server_ip -I enx001122334455 # 指定EC20接口 curl --interface enx001122334455 http://ifconfig.me # 验证公网IP ``` --- #### 五、常见问题处理 1. **TCP连接超时** - 检查防火墙规则:`sudo ufw allow 8080/tcp` - 验证路由表:`ip route show dev enx001122334455` 2. **AT指令响应错误** - 检查波特率匹配:`AT+IPR=115200` - 确认模块固件版本:`AT+QGMR` 3. **数据包丢失** - 优化MTU设置:`sudo ifconfig enx001122334455 mtu 1400` - 启用TCP Keepalive:`AT+QCFG="keepalive",1,60,5` --- ### 相关问题 1. 如何通过EC20模块实现双向实时TCP数据透传? 2. EC20在TCP通信中如何实现断线自动重连? 3. 如何为EC20的TLS通信配置双向证书认证?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值