Windows 连接Linux 设备主要有两种方式,我会从硬件接线到命令操作逐步骤拆解,每个命令都结合嵌入式场景举例说明:
- 串口调试连接:兜底基础方式,无网络也能连,适合首次调试、看启动日志、配置网络
- SSH 网络连接:日常主力方式,网速快、支持传文件,适合日常查看状态、开发调试
一、方式 1:串口连接(新手入门必学,兜底方案)
1. 硬件与软件准备
表格
| 物品 | 说明 |
|---|---|
| Linux 开发板 + 电源适配器 | 供电开机(以飞凌 OK6254-C为例,基于 TI AM62xx ARM 芯片) |
| USB 串口线 | 一根 Type-C/USB 线直接连电脑,无需额外接线;如果是自制板,需要 USB 转 TTL 模块(3.3V 电平,TX-RX 交叉接线) |
| Windows 电脑 | 操作端 |
| 串口驱动 | 例如板载串口一般是 CH340 芯片,去沁恒官网下载 CH340 驱动安装,重启电脑生效 |
| 终端软件 | 推荐MobaXterm 免费版,全能工具,后续 SSH 也能用;也可选 Putty、SecureCRT |
2. 前置:确认串口 COM 号
- 把开发板的调试串口用 USB 线连到电脑
- 右键「此电脑」→「管理」→「设备管理器」→「端口 (COM 和 LPT)」
- 能看到
USB-SERIAL CH340 (COMx),比如COM3,记住这个 COM 号,后面配置要用。
3. 串口连接步骤(MobaXterm 举例)
- 打开 MobaXterm,点击左上角「Session」→ 选择「Serial」(串口模式)
- 按嵌入式 Linux 标准参数配置(固定值,配错会乱码 / 无输出):
表格
配置项 值 为什么这么设 Serial port 选择你刚才的 COM 号,比如 COM3指定电脑上的串口号,选错连不上 Speed (baud rate) 115200嵌入式 Linux 调试串口的标准波特率,错了会输出乱码 Data bits 8数据位 8 位,标准配置 Stop bits 1停止位 1 位 Parity None无校验位 Flow control None必须关闭硬件流控,不然会出现无输入输出的问题 - 点击「OK」,就打开了空白的串口终端窗口
- 给开发板上电,终端会立刻滚动内核启动日志,等待 10-30 秒系统启动完成
- 出现登录提示符后,输入用户名密码(OK62xx 默认一般是
root/root,具体看开发板手册),回车后出现root@ok6254:~#就代表登录成功。
新手常见坑排查
- 上电后终端完全没输出:检查 COM 号是否正确、线有没有插反(TX 接 RX、RX 接 TX)、流控是否关闭、波特率是否正确
- 输出全是乱码:100% 是波特率 / 数据位配置错误,改成
115200 8N1即可 - 能看输出但不能输入:检查流控是否关闭,或者串口线的 TX 引脚没接好
二、方式 2:SSH 网络连接(日常操作主力方案)
串口适合调试,但传输慢、不能传文件;配置好网络后,日常都用 SSH 连接,操作体验和本地 Linux 一致。
前置条件
- 已经通过串口登录开发板
- 开发板和电脑在同一个局域网(都连同一个路由器 / 交换机,或者网线直连)
- 你已经知道开发板的 IP 地址
步骤 1:串口下获取开发板 IP
串口登录后,输入命令:
ip addr在输出中找到eth0(有线网卡)的部分,inet后面的地址就是 IP,比如:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 7a:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0这里开发板的 IP 就是192.168.1.100。
如果没自动获取到 IP,手动临时配置 IP(重启失效):
bash
运行
ip addr add 192.168.1.100/24 dev eth0
步骤 2:SSH 连接(MobaXterm 举例)
- 打开 MobaXterm,点击「Session」→ 选择「SSH」
- 配置连接信息:
表格
配置项 填写示例 说明 Remote host 192.168.1.100填开发板的 IP 地址 Port 22SSH 默认端口,嵌入式 Linux 一般都是 22 Specify username 勾选,填 root指定登录用户名 - 点击「OK」,第一次连接会弹出密钥确认窗口,点击「Accept」即可
- 输入密码(比如
root),回车后出现root@ok6254:~#就登录成功了。
Windows 也可以不用装软件:按
Win+R输入cmd打开命令提示符,直接输入ssh root@192.168.1.100回车输密码即可,只是没有文件传输功能。
新手常见坑排查
- 连接超时 / 连不上:先在 Windows 的 cmd 里
ping 192.168.1.100,ping 不通说明网络不通,检查网线、IP 是否同网段、防火墙是否拦截 - 连接被拒绝:开发板没开启 SSH 服务,OK62xx 默认一般开启
dropbear或sshd,串口下用ps aux | grep ssh能看到进程就是开了
三、连接后:查看设备状态的常用命令(嵌入式场景专属)
下面所有命令都可以在串口 / SSH 终端里执行,我会按「查看维度」分类,每个命令都逐成分拆解 + 状态说明 + 实际举例,完全贴合 OK62xx 嵌入式场景。
(一)系统基础信息:确认设备身份与版本
1.uname -a查看内核与 CPU 架构
作用:快速确认系统内核版本、CPU 架构,确认你连的是目标设备。举例输入:
uname -a典型输出:
Linux ok6254 5.10.168-g3a9b7c2d #1 SMP PREEMPT Tue Jul 2 10:00:00 CST 2024 aarch64 GNU/Linux逐成分拆解说明:
uname:命令名,打印系统内核信息-a:选项,all 的缩写,显示全部信息- 输出对应设备状态:
ok6254:设备主机名5.10.168-xxx:Linux 内核版本,是 TI 官方 SDK 的标准版本aarch64:CPU 架构,ARM64 位,对应 AM62xx 的 Cortex-A53 核心
2.cat /proc/cpuinfo查看 CPU 详细硬件信息
作用:确认 CPU 核心数、型号,验证硬件是否正常识别。举例输入:
cat /proc/cpuinfo关键输出解读:
processor : 0 model name : ARMv8 Processor rev 4 (v8l) ... processor : 3拆解说明:
cat:命令,输出文件内容/proc/cpuinfo:参数,内核提供的虚拟文件,存放 CPU 硬件信息(嵌入式所有硬件信息都在/proc目录下)- 对应状态:AM62xx 是 4 核 Cortex-A53,所以
processor有 0-3 共 4 个,代表 4 个核心都正常启动了。
(二)运行状态:CPU、内存、系统负载
1.uptime查看运行时长与系统负载
作用:1 秒快速看设备连续运行了多久、CPU 忙不忙,嵌入式设备看稳定性必用。举例输入:
uptime典型输出:
10:30:00 up 2 days, 5:10, 1 user, load average: 0.12, 0.08, 0.05逐成分状态解读:
10:30:00:当前系统时间up 2 days, 5:10:设备已经连续运行 2 天 5 小时 10 分钟,嵌入式设备长期运行不重启是基本要求1 user:当前有 1 个用户登录(就是你)load average: 0.12, 0.08, 0.05:过去 1 分钟、5 分钟、15 分钟的系统平均负载- 4 核 CPU 的话,负载值小于 4 就是正常,小于 1 代表设备非常空闲
2.free -h查看内存使用状态
作用:嵌入式内存资源宝贵,排查内存泄漏、程序占用过高必用。举例输入:
free -h典型输出:
total used free shared buff/cache available Mem: 981M 120M 750M 5.2M 111M 820M Swap: 0B 0B 0B逐成分拆解说明:
free:命令名,查看内存使用情况-h:选项,human-readable,人性化显示单位(M/G),不用自己换算字节- 关键状态解读:
total: 981M:总内存,1GB 的物理内存,内核和显存预留了一部分,所以显示 981Mavailable: 820M:实际可用内存(包含缓存可释放的部分,这个数值最有参考价值)Swap: 0B:交换分区,嵌入式设备一般不开启 Swap(读写 Flash 会损耗寿命)
3.top实时监控 CPU 与进程占用
作用:相当于 Windows 的任务管理器,实时看哪个程序占 CPU / 内存最多,排查性能问题。举例输入:
top界面关键信息解读:
top - 10:35:00 up 2 days, 5:15, 1 user, load average: 0.10, 0.07, 0.04 Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.1 us, 1.0 sy, 0.0 ni, 96.5 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st MiB Mem : 981.2 total, 745.3 free, 120.5 used, 115.4 buff/cache拆解说明:
%Cpu(s)里的96.5 id:CPU 空闲率 96.5%,代表当前 CPU 非常空闲us:用户态程序占用的 CPU 比例(你的应用程序主要占这部分)sy:内核态驱动占用的 CPU 比例Tasks: 78 total:系统总共有 78 个进程,嵌入式系统进程数一般较少- 操作快捷键:按
q退出;按P按 CPU 使用率排序;按M按内存使用率排序
(三)存储状态:eMMC/SD 卡空间查看
嵌入式设备的存储一般是 eMMC 或 SD 卡,空间有限,写满会导致系统崩溃、日志无法写入。
1.df -h查看磁盘分区使用情况
作用:看每个分区总大小、用了多少、剩多少,是日常巡检必用命令。举例输入:
df -h典型输出:
Filesystem Size Used Avail Use% Mounted on /dev/root 7.3G 1.2G 5.8G 17% / devtmpfs 480M 0 480M 0% /dev tmpfs 491M 0 491M 0% /dev/shm tmpfs 197M 1.2M 196M 1% /run逐成分拆解说明:
df:命令名,disk free 的缩写,查看磁盘剩余空间-h:人性化单位显示- 关键状态解读:
/dev/root:根文件系统分区(eMMC/SD 卡的系统主分区)Size 7.3G:分区总大小 7.3GBUsed 1.2G:已用 1.2GBUse% 17%:占用率 17%,非常健康,一般超过 80% 就要警惕Mounted on /:挂载在根目录,是系统的核心分区
2.du -sh /opt查看指定目录的大小
作用:统计某个目录(比如你的应用程序、日志目录)占用了多少空间。举例输入:查看/opt目录(一般放应用程序)的总大小
du -sh /opt输出示例:
890M /opt拆解说明:
du:命令名,disk usage,统计目录 / 文件占用空间-s:选项,summary,只显示总大小,不罗列子目录-h:人性化单位/opt:参数,要统计的目标目录
(四)网络状态:网卡、连通性、端口
1.ip addr查看所有网卡的 IP 与状态
作用:排查网络问题第一步,确认网卡有没有启用、IP 对不对。举例输入:
ip addr关键输出解读:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 7a:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0eth0:有线以太网接口state UP:网卡已启用、网线连接正常;如果是DOWN就是没插网线 / 网卡没起来inet 192.168.1.100/24:IPv4 地址,子网掩码 24 位link/ether:网卡的 MAC 物理地址
2.ping -c 4 www.baidu.com测试网络连通性
作用:测试网络通不通、DNS 解析是否正常、延迟高不高。举例输入:测试能不能访问百度,发 4 个包自动停止
ping -c 4 www.baidu.com典型输出:
PING www.baidu.com (14.215.177.38): 56 data bytes 64 bytes from 14.215.177.38: seq=0 ttl=52 time=20.5 ms 64 bytes from 14.215.177.38: seq=1 ttl=52 time=19.8 ms 64 bytes from 14.215.177.38: seq=2 ttl=52 time=20.1 ms 64 bytes from 14.215.177.38: seq=3 ttl=52 time=20.3 ms --- www.baidu.com ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 19.8/20.2/20.5 ms拆解说明:
ping:命令名,网络连通性测试-c 4:选项,count,发送 4 个数据包后自动停止;不加这个参数 Linux 默认会一直 ping,需要按Ctrl+C手动停止0% packet loss:丢包率 0,网络完全正常time=20ms:网络延迟 20 毫秒,局域网一般 < 1ms
3.netstat -tlnp查看监听的端口与服务
作用:确认你的服务(比如 web、数据库、自定义应用)有没有正常启动、端口有没有打开。举例输入:
netstat -tlnp典型输出:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 890/sshd tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1200/nginx拆解说明:
netstat:命令名,网络状态统计-tlnp:4 个选项合并:-t:只查看 TCP 协议-l:只显示正在监听的端口(服务端端口)-n:用数字显示 IP 和端口,不解析域名,速度更快-p:显示占用端口的进程 PID 和程序名称
- 状态解读:
0.0.0.0:22:SSH 服务的 22 端口在所有 IP 上监听,进程是sshd,PID 是 8900.0.0.0:8080:Nginx 网页服务的 8080 端口在监听
精简版系统可能没有
netstat,用ss -tlnp替代,功能和用法完全一致。
(五)嵌入式专属:外设与硬件节点查看
嵌入式开发最常确认的就是「外设有没有被系统识别、驱动有没有加载成功」,所有硬件设备都会以文件形式存在于/dev目录下。
1.ls /dev/tty*查看所有串口设备
作用:确认硬件串口、USB 串口模块有没有被系统识别。举例输入:
ls /dev/tty*典型输出:
/dev/tty /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 /dev/ttyUSB0状态解读:
ttyS0 ~ ttyS3:AM62xx 芯片自带的 4 路硬件串口ttyUSB0:外接的 USB 转串口设备(比如 4G 模块、串口传感器),出现这个代表 USB 串口驱动加载成功
2.lsusb查看 USB 设备
作用:确认 U 盘、USB 摄像头、WiFi 网卡、4G 模块等 USB 设备有没有被系统识别。举例输入:
lsusb典型输出:
Bus 001 Device 003: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub状态解读:识别到了一个 Realtek 品牌的 USB WiFi 网卡,驱动正常加载。
3.dmesg查看内核日志,排查硬件驱动问题
作用:嵌入式调试神器,所有硬件驱动的加载过程、报错信息都会存在内核日志里,外设不识别优先查这个。举例:查看和 eth0 网卡相关的内核日志
dmesg | grep eth0典型输出:
[ 2.345678] eth0: TI CPSW Ethernet driver version 1.0 [ 2.456789] eth0: Link is Up - 100Mbps/Full - flow control rx/tx [ 2.567890] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready拆解说明:
dmesg:命令名,打印内核环形缓冲区的日志| grep eth0:管道符 + 过滤,只保留包含eth0的日志行- 状态解读:网卡驱动加载成功,网线连接正常,协商为 100Mbps 全双工模式
技巧:
dmesg | tail可以看最后 20 行内核日志,快速查看最近的硬件报错。