在Linux环境下点亮开发板通常指让开发板成功运行Linux系统,并实现基本的输入输出功能(如串口日志显示、HDMI画面输出等),整个过程涉及硬件准备、系统镜像烧录、启动配置及调试等环节,以下是详细步骤说明。
硬件准备
在开始操作前,需确保以下硬件设备准备就绪:
- 开发板:如树莓派、香橙派、全志T系列、瑞芯微RK系列等,需明确其架构(ARMv7、ARM64等)和启动方式(SD卡、eMMC、SPI Flash等)。
- 存储介质:根据开发板启动要求选择,如高速SD卡(Class 10以上,建议16GB以上)、eMMC模块或SPI Flash芯片。
- 电源:匹配开发板输入电压(如5V/2A、12V/1.5A),确保电流稳定,避免供电不足导致启动失败。
- 调试工具:
- 串口模块:USB转TTL串口模块(如CH340、FT232),用于连接开发板UART引脚,获取启动日志(波特率通常为115200 8N1)。
- 显示设备:HDMI显示器(可选,若需图形界面)或VGA转接器(部分开发板支持)。
- 连接线材:Micro-USB/USB-C电源线、HDMI线、杜邦线(用于串口连接)。
获取Linux系统镜像
开发板的Linux系统镜像需根据其架构和厂商推荐选择,常见来源包括:
- 官方开源系统:如树莓派Raspberry Pi OS(基于Debian)、香橙派Armbian(基于Debian/Ubuntu)、全志官方提供的Debian镜像等。
- 第三方定制系统:如Buildroot(轻量级嵌入式Linux)、Yocto Project(可裁剪Linux发行版),适合需要高度定制化的场景。
- 社区镜像:如Linaro提供的ARM优化版Ubuntu,适用于性能要求较高的开发板。
以下为常见开发板及推荐镜像示例:
开发板型号 | 架构 | 推荐镜像来源 | 备注 |
---|---|---|---|
树莓派4B | ARMv8 | 官方网站(raspberrypi.org) | Raspberry Pi OS 64-bit |
香橙派Zero 2W | ARMv7 | armbian.com | Armbian Ubuntu 22.04 LTS |
全志H616 | ARMv7 | t-firefly.com(火迹官方) | Debian 11 |
瑞芯微RK3568 | ARM64 | rockchip.com.cn(瑞芯微官网) | Debian 11 |
烧录系统镜像到存储介质
根据存储介质类型(SD卡/eMMC),选择对应的烧录工具和方法:
SD卡烧录(通用方法)
- Windows工具:使用BalenaEtcher、Win32DiskImager。
步骤:插入SD卡,打开工具,选择下载的镜像文件,目标设备选择SD卡,点击“Flash”开始烧录,等待提示“Flash Complete”。
- Linux/macOS工具:使用
dd
命令(需谨慎,避免误操作磁盘)。- 步骤:通过
lsblk
查看SD卡设备名(如/dev/sdb
),执行命令:dd if=路径/镜像.img of=/dev/sdb bs=4M status=progress && sync
注:
of
参数后接SD卡设备名(非分区名,如/dev/sdb
而非/dev/sdb1
)。
- 步骤:通过
eMMC烧录(部分开发板支持)
若开发板板载eMMC且支持USB启动模式(如通过USB-Type口连接电脑),可按以下步骤操作:
- 方法1:通过U-Boot烧录
- 将开发板进入U-Boot模式(通常长按按键或短接BOOT引脚上电)。
- 通过串口连接,执行U-Boot命令:
usb start # 初始化USB fatload usb 0 0x81000000 system.img # 加载镜像到内存地址 nand erase 0x0 0x800000 # 擦除eMMC分区(地址需根据开发板调整) nand write 0x81000000 0x0 0x800000 # 写入镜像 reset # 重启开发板
- 方法2:厂商工具烧录
部分厂商提供专用烧录工具(如全志的sunxi-fel
、瑞芯微的AndroidTool
),需根据开发板手册操作。
启动配置与调试
镜像烧录完成后,将存储介质插入开发板,连接串口和电源,进入启动调试阶段:
串口连接与日志查看
- 使用杜邦线连接串口模块与开发板UART引脚(通常为TX、RX、GND,注意电平匹配,3.3V或5V)。
- 在电脑端打开串口工具(Windows:PuTTY、XShell;Linux/macOS:
minicom
、screen
),设置波特率115200,数据位8,停止位1,无校验,无流控。 - 上电后,观察串口输出日志,重点关注以下信息:
- U-Boot启动信息(如
U-Boot 2021.07
、DRAM: 1GB
),判断硬件初始化是否成功。 - 内核启动信息(如
Linux version 5.15.0
、Boot console
),检查内核是否加载成功。 - 文件系统挂载信息(如
[ 5.123456] VFS: Mounted root (ext4 filesystem) readonly.
),确认根文件系统是否正常挂载。
- U-Boot启动信息(如
显示配置(可选)
若需通过HDMI输出显示画面,需确保:
- 开发板HDMI接口连接正常,显示器输入信号匹配。
- 内核已加载显示驱动(如全志的
de
、瑞芯微的rgx
),可通过串口日志查看[drm]
相关输出。 - 若显示异常(如黑屏、分辨率错误),需修改设备树(Device Tree)中的显示配置,或通过U-Boot临时调整启动参数(如
video=HDMI-A-1:1920x1080@60
)。
网络配置
启动后,若需网络连接(如更新系统、远程调试),可配置有线或无线网络:
- 有线网络:通过网线连接路由器,默认使用DHCP自动获取IP,若需静态IP,编辑
/etc/network/interfaces
(Debian/Ubuntu)或/etc/sysconfig/network-scripts/ifcfg-eth0
(CentOS)。 - 无线网络:若开发板支持Wi-Fi,使用
iwconfig
扫描网络,通过wpa_passphrase
连接加密网络,或使用NetworkManager
图形化管理(如安装nm-applet
)。
常见问题排查
若启动失败,可通过串口日志定位问题,常见场景及解决方案如下:
-
串口无输出:
- 检查串口模块连接(TX/RX交叉连接,GND共地)。
- 确认开发板启动模式是否正确(如是否从SD卡启动,检查Boot引脚跳线)。
- 尝试更换电源,确保供电稳定(部分开发板启动电流较大,电源不足会导致无输出)。
-
内核启动失败(Kernel Panic):
- 检查设备树文件(
.dtb
)是否与开发板匹配,可通过U-Boot命令fdt addr
加载正确的dtb。 - 确认根文件系统分区是否正确,
bootargs
中的root=
参数需指向实际分区(如/dev/mmcblk0p2
)。
- 检查设备树文件(
-
文件系统挂载失败:
- 检查镜像分区表是否正确(如GPT或MBR),可通过
fdisk -l
查看(需将SD卡插入电脑)。 - 确认文件系统类型是否被内核支持(如ext4需内核开启
EXT4_FS
选项)。
- 检查镜像分区表是否正确(如GPT或MBR),可通过
相关问答FAQs
Q1:开发板启动后黑屏,但串口有正常日志输出,如何解决?
A:这种情况通常与显示配置相关,首先通过串口进入系统,执行ls /dev/dri
检查设备节点是否存在;若不存在,需重新编译内核并开启显示驱动,若设备节点存在,可尝试手动设置分辨率:在/boot/boot.ini
(U-Boot环境变量)或/boot/cmdline.txt
中添加video=HDMI-A-1:1920x1080@60
(根据显示器实际分辨率调整),重启开发板即可,若仍无法解决,可能是HDMI接口硬件故障,需检查接口是否氧化或接触不良。
Q2:如何修改Linux启动参数(如禁用某个驱动或调整根文件系统位置)?
A:修改启动参数可通过两种方式实现:
- 临时修改(U-Boot命令行):启动时按任意键进入U-Boot菜单,使用
setenv bootargs '新参数'
修改bootargs
,执行saveenv
保存后重启,禁用串台驱动可添加console=ttyS0,115200 console=tty1
,将根文件系统改为root=/dev/mmcblk0p3 rootfstype=ext4
。 - 永久修改(系统文件):若系统已正常启动,编辑
/boot/uEnv.txt
(部分开发板)或/boot/extlinux/extlinux.conf
,修改APPEND
行中的参数,保存后重启即可,注意修改前备份原文件,避免参数错误导致无法启动。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/35028.html