将上位机程序从PC的window系统迁移至Intel NUC的无桌面版ubuntu系统
问题一 网口失效
问题描述:NUC关机状态下,将网口与路由器连接,网络指示灯闪烁;NUC开机后,网络指示灯熄灭,使用ping命令,既ping不通百度,也ping不同本地ip。
经排查,NUC开机后,需要执行命令使能网口,才可以正常使用。如果NUC 的网络端口为enp86s0,则应执行以下命令:
ifconfig enp86s0 up
关闭网口,则执行以下命令
ifconfig enp86s0 down
修改配置文件,将ip设置为动态ip
vim /etc/netplan/00-installer-config.yaml
将yaml文件的内容改为
network:
ethernets:
enp86s0: # 有线网口的值,使用ifconfig -a 查看,根据实际情况进行修改
dhcp4: true
version: 2
执行reboot命令,重新启动。
问题二 修改串口
问题描述:Windows下的串口名称为COM0~COMX,而Linux下的串口名称为/dev/ttyUSB0-USB*。需要对应上。
使用串口设备的时候系统会随机分配设备名称,为了使用串口通信的时候不改代码,可以对其进行绑定。
执行以下命令,查看自己设备的dVendor和idProduct
lsusb
输出结果如下所示:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 016: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse.
Bus 001 Device 004: ID 8087:0033 Intel Corp.
Bus 001 Device 002: ID 026d:0002
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
如上图所示,串口ID为1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter Bus,即dVendor为1a86,idProduct为7523。
创建一个脚本文件
touch usb_rename.sh
vim usb_rename.sh
在脚本文件中输入如下内容:
echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="2303", MODE:="7523", GROUP:="dialout", SYMLINK+="stm32base"' >/etc/udev/rules.d/usb_rename.rules
service udev reload
sleep 2
service udev restart
执行以下命令,运行脚本
sudo sh usb_rename.sh
此时,对设备进行拔插操作,运行一下命令
$ ls -l /dev |grep ttyUSB
结果如下所示:
lrwxrwxrwx 1 root root 7 7月 31 21:21 **stm32base -> ttyUSB0**
crwxrwxrwx 1 root dialout 188, 0 7月 31 21:21 ttyUSB0
python中的程序修改如下:
ser = serial.Serial( # 下面这些参数根据情况修改
port='/dev/ttyUSB0', # 串口值
baudrate=921600, # 波特率
timeout=0.001
)
文章描述了在将上位机程序从Windows迁移到IntelNUC的无桌面版Ubuntu系统时遇到的网络接口和串口配置问题。针对网络接口失效,解决方案是通过执行特定的ifconfig命令和修改netplan配置文件来启用和禁用网络。对于串口名称不一致的问题,通过lsusb命令识别设备ID,然后创建脚本重命名设备并绑定到特定的符号链接,确保Python程序中的串口通信不受设备重新插入的影响。

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



