树莓派使用串口启动死机

树莓派配置完一些东西后,重启出现网络连接不上,WIFI连接不上,排查问题

5.903802\] systemd\[1\]: Started systemd-journald.service - Journal Service

树莓派串口启动配置

树莓派4B需要在SD卡的config.txt文件末尾添加

config.txt 复制代码
[all]
# 禁用蓝牙模块,彻底释放 ttyAMA0
dtoverlay=disable-bt
# 启用 GPIO 串口功能
enable_uart=1
# 可选:强制 serial0 映射到 ttyAMA0(部分系统版本需额外添加)
dtoverlay=miniuart-bt
# 添加串口设备节点自动创建配置
udev_rules=1

配合cmdline.txt,实现串口115200连接

cmdline.txt 复制代码
console=serial0,115200 

树莓派4B串口引脚

将SD卡插入树莓派,打开电源,确认TX对GND的电压为3.3V,说明硬件没有问题

关闭电源,使用TTL转USB,波特率115200bsp,打开串口,监听串口,将SD卡插入树莓派,打开电源,抓取日志,日志卡在Started systemd-journald.service

log 复制代码
[    5.830836] systemd[1]: Starting systemd-udev-trigger.service - Coldplug All udev Devices...
[    5.853815] systemd[1]: Mounted dev-mqueue.mount - POSIX Message Queue File System.
[    5.869419] systemd[1]: Mounted run-lock.mount - Legacy Locks Directory /run/lock.
[    5.877695] systemd[1]: Mounted sys-kernel-debug.mount - Kernel Debug File System.
[    5.885812] systemd[1]: Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[    5.893789] EXT4-fs (mmcblk0p2): re-mounted 21724cc6-e5a3-48a1-8643-7917dba3a9fb r/w.
[    5.903802] systemd[1]: Started systemd-journald.service - Journal Service.

往上找发现

log 复制代码
[    5.383708] systemd[1]: Expecting device dev-disk-by\x2dpartuuid-72371ce3\x2d01.device - /dev/disk/by-partuuid/72371ce3-01...
[    5.395106] systemd[1]: Expecting device dev-sda1.device - /dev/sda1...
[    5.401803] systemd[1]: Expecting device dev-ttyAMA0.device - /dev/ttyAMA0...
[    5.409027] systemd[1]: Expecting device dev-zram0.device - /dev/zram0...

可能是我配置/etc/fstab的问题

查找Windows上能修改SD卡中linux文件的工具

1。 Ext2Fsd

免费开源,Windows支持ext4,下载安装后,使用管理员权限运行这个软件,配置文件系统驱动,选择

修改EXT3的配置EX2卷属性,没有反应,操作之后,仍然不能访问,能识别出linux,不能修改其中的文件

丢弃该方法


下载安装 Linux Reader(免费,支持 ext4)

查看文件内容免费,但是仅限于查看文件内容,通过查看内容发现

/etc/fstab 复制代码
proc            /proc           proc    defaults          0       0
PARTUUID=72371ce3-01  /boot/firmware  vfat    defaults          0       2
PARTUUID=72371ce3-02  /               ext4    defaults,noatime  0       1
tmpfs	/var/log	tmpfs	defaults,size=100M,mode=0755	0	0
/dev/sda1	/mnt/backup_disk	ext4	defaults	0	0

应该是最后一行导致的问题,需要将其修改为/dev/sda1 /mnt/backup_disk ext4 defaults,nofail 0 0

下载安装 DiskGenius 免费版,浏览文件,可以看到有/etc/fstab,可以删除,成功了一半,将修改好的fstab导入,失败,需要付费,再找找其他方法

此方法搁置


使用WSL挂载SD卡,修改内容

powershell 复制代码
wsl --install

操作超时

控制面板 -> 程序 -> 程序和功能 -> 在启用或关闭Windows功能中启用Windows虚拟机监控程序平台
wsl --install -d Ubuntu

错误: 0x80072ee2

  1. 检查网络连通性,执行以下命令测试能否访问微软服务器:
cmd 复制代码
# 测试微软公共服务器连通性
ping www.microsoft.com -n 4
# 测试WSL相关服务器连通性
ping wslstorestorage.blob.core.windows.net -n 4
  • 无法访问目标主机
    打开「设置」→「网络和 Internet」→ 找到当前连接的网络(WiFi / 以太网),点击「硬件属性」;
    下拉找到「DNS 服务器分配」,点击「编辑」,选择「手动」,开启「IPv4」;
    输入首选 DNS:8.8.8.8(Google DNS),备用 DNS:114.114.114.114(国内通用 DNS),点击「保存」;
    关闭当前网络连接,重新连接(或执行 ipconfig /flushdns 刷新 DNS 缓存)。
  1. 关闭 Windows Defender 防火墙
  • 打开「控制面板」→「系统和安全」→「Windows Defender 防火墙」;
    点击左侧「关闭或启用 Windows Defender 防火墙」,将「专用网络设置」和「公用网络设置」均设为「关闭防火墙」,点击「确定」;
    (安装完成后务必重新开启防火墙,保障系统安全)。
  • 关闭第三方杀毒软件 / 优化工具暂时退出 360、腾讯电脑管家、火绒等第三方软件(右键托盘图标选择「退出」),避免其拦截网络请求。
  • 检查并关闭异常代理
    打开「设置」→「网络和 Internet」→「代理」,确保「自动检测设置」开启,「使用代理服务器」关闭;
    若使用了 VPN、Clash 等代理工具,暂时退出并断开代理连接(部分代理会导致微软服务器访问超时)。
  1. 重置 Windows 网络栈(修复网络配置损坏)
cmd 复制代码
# 重置Winsock目录
netsh winsock reset
# 重置TCP/IP协议
netsh int ip reset
# 刷新DNS缓存
ipconfig /flushdns
# 释放IP地址
ipconfig /release
# 重新获取IP地址
ipconfig /renew

重启电脑后,再次尝试执行 wsl --install -d Ubuntu。

此方法无效,舍弃


手动安装 WSL

  1. 手动下载 WSL 内核更新包
    访问微软官方下载地址:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
    下载后双击安装,按提示下一步完成安装(无需额外配置)。
  2. 手动下载 Ubuntu 镜像访问微软应用商店或 Ubuntu 官方镜像地址:
  • 微软应用商店:搜索「Ubuntu」,直接点击「安装」(访问不了,失败);
  • 官方镜像(备用):https://cloud-images.ubuntu.com/wsl/,下载对应版本(如 22.04 LTS)的 .tar.gz 镜像文件。
  1. 手动导入并部署 Ubuntu
    新建一个文件夹用于存放 Ubuntu 系统(如 D:\WSL\Ubuntu);
    以管理员身份打开 CMD,执行以下命令导入镜像:
cmd 复制代码
# 格式:wsl --import <分发版名称> <安装路径> <镜像文件路径>
wsl --import Ubuntu D:\WSL\Ubuntu D:\Downloads\ubuntu-22.04-wsl.tar.gz
  1. 检查 WSL 组件是否启用(系统配置缺失,未使用到)
    若以上步骤无效,可能是 WSL 相关系统组件未启用:
    以管理员身份打开 CMD,执行以下命令启用组件:
cmd 复制代码
# 启用适用于Linux的Windows子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启电脑后,设置 WSL2 为默认版本:wsl --set-default-version 2,再次尝试在线安装或手动安装。

挂载SD卡

查看 SD 卡设备名:

复制代码
root@DESKTOP-23IJ4FU:/mnt/c/Users/lnh# lsblk
lsblk: failed to access sysfs directory: /sys/dev/block: No such file or directory

检查当前 WSL 版本(确认是否为 WSL1)

复制代码
wsl -l -v

WSL1:基于 Windows 翻译层实现,没有完整的 Linux 内核和虚拟硬件架构,sysfs、proc 等部分虚拟文件系统不完整或未挂载,执行 lsblk 必然报错;

WSL2:基于轻量级虚拟机实现,拥有完整的 Linux 内核和虚拟硬件,sysfs 正常挂载,lsblk 可正常使用;

将 WSL1 切换为 WSL2(核心解决方法)

  • (可选)先停止当前运行的 WSL 分发版:wsl --terminate Ubuntu
  • 执行切换命令(将 Ubuntu 切换为 WSL2):wsl --set-version Ubuntu 2
  • (可选)设置 WSL2 为默认版本(后续新建 / 导入的分发版均为 WSL2):wsl --set-default-version 2
  • 重新进入 Ubuntu,执行 lsblk 验证:
cmd 复制代码
- # 重新进入Ubuntu
wsl -d Ubuntu
# 执行lsblk
lsblk

root@DESKTOP-23IJ4FU:/mnt/c/Users/lnh# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS

sda 8:0 0 256G 0 disk

sdb 8:16 0 256G 0 disk /

没有SD卡

查找/mnt下的目录

root@DESKTOP-23IJ4FU:/mnt/c/Users/lnh# ls -al /mnt

total 8

drwxr-xr-x 7 root root 4096 Dec 22 01:54 .

drwxr-xr-x 19 root root 4096 Dec 22 01:54 ...

drwxrwxrwx 1 root root 512 Dec 22 01:27 c

drwxrwxrwx 1 root root 4096 Dec 22 01:31 d

drwxrwxrwx 1 root root 4096 Dec 22 01:27 e

drwxrwxrwx 1 root root 4096 Dec 22 01:27 f

drwxrwxrwt 2 root root 40 Dec 22 01:54 wsl

没有SD卡的G或者H目录,应该是文件损坏了,重新烧录系统吧

相关推荐
先知后行。4 小时前
常见元器件
单片机·嵌入式硬件
恒锐丰小吕5 小时前
屹晶微 EG2302 600V耐压、低压启动、带SD关断功能的高性价比半桥栅极驱动器技术解析
嵌入式硬件·硬件工程
Free丶Chan6 小时前
dsPIC系列-1:dsPIC33点灯 [I/O、RCC、定时器]
单片机·嵌入式硬件
v先v关v住v获v取7 小时前
塔式立体车库5张cad+设计说明书+三维图
科技·单片机·51单片机
恒锐丰小吕8 小时前
屹晶微 EG2106D 600V耐压、半桥MOS/IGBT驱动芯片技术解析
嵌入式硬件·硬件工程
Ghost Face...8 小时前
U-Boot与PMON:配置与设备树解析对比
linux·单片机·嵌入式硬件
冲,干,闯9 小时前
操作MCU内存
单片机·嵌入式硬件
猫猫的小茶馆9 小时前
【ARM】从零封装STM32标准库
汇编·arm开发·stm32·单片机·嵌入式硬件·架构