如何给一个无操作系统的ARM开发板安装Linux【嵌入式】

大辰同学_7992

大辰同学_7992

2026-01-03

821人浏览

原创

需通过交叉编译工具链编译U-Boot和Linux内核,烧录引导程序,部署内核镜像与设备树,构建ext4根文件系统并挂载,最后用串口调试验证启动流程。

如何给一个无操作系统的arm开发板安装linux【嵌入式】

如果您拥有一块无操作系统的ARM开发板,需要为其安装Linux系统,则需通过交叉编译、引导加载程序配置及根文件系统部署等步骤完成。以下是具体实施方法:

一、准备交叉编译工具链与内核源码

ARM开发板无法直接在本机编译Linux内核,必须使用适配目标架构的交叉编译工具链。该工具链用于在x86主机上生成可在ARM处理器运行的二进制代码。

1、下载适用于目标ARM架构(如arm64或arm)的预编译工具链,例如linux-gnu-gcc>或。

2、解压工具链至/opt/toolchains/目录,并将bin子目录添加至PATH环境变量。

3、从kernel.org获取与开发板硬件兼容的稳定版Linux内核源码(如linux-6.6.y),解压至工作目录。

4、执行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- xxx_defconfig命令,加载开发板对应的默认配置(如rk3399-evb-aio-dram-4g_defconfig)。

二、编译并烧录U-Boot引导程序

U-Boot是ARM平台最常用的引导加载程序,负责初始化硬件、加载内核镜像与设备树。其必须先于Linux内核部署到开发板的启动介质中。

1、获取与开发板型号匹配的U-Boot源码(如Rockchip官方U-Boot仓库或NXP i.MX分支)。

2、执行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_rk3399_defconfig配置编译选项。

3、运行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-生成u-boot.bin和idbloader.img(若为Rockchip平台)。

4、使用厂商提供的烧录工具(如RKDevTool、Flash Tool或imx_usb_loader)将生成的引导镜像写入eMMC或SD卡指定扇区(如0x0起始位置)。

三、构建并部署Linux内核镜像

内核镜像需以适合U-Boot加载的格式(如Image或zImage)生成,并配合设备树二进制文件(.dtb)一同部署,确保硬件资源被正确识别。

1、进入内核源码目录,执行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)编译生成arch/arm64/boot/Image。

2、执行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs生成对应开发板的.dtb文件(如rk3399-evb.dtb)。

Linux Omniscient
Linux Omniscient

>全知全能技能Linux版。

下载

3、将Image与.dtb文件复制至SD卡FAT32分区的boot/目录下,或eMMC的指定boot分区中。

4、确认U-Boot环境变量中bootcmd指向正确的内核路径与设备树路径,例如ext4load mmc 0:1 ${kernel_addr_r} /boot/Image; ext4load mmc 0:1 ${fdt_addr_r} /boot/rk3399-evb.dtb。

四、制作并挂载根文件系统

根文件系统提供Linux运行所需的基本命令、库文件与设备节点,必须与内核ABI兼容,并以U-Boot可挂载的格式组织(如ext4、initramfs或squashfs)。

1、使用debootstrap(Debian系)或buildroot生成最小化根文件系统,指定ARCH=arm64及对应发行版代号(如bookworm)。

2、将生成的rootfs目录使用sudo mkfs.ext4 -L rootfs rootfs.img制作为ext4镜像,并用sudo mount -o loop rootfs.img /mnt挂载后拷贝必要文件。

3、在挂载点内创建/dev、/proc、/sys等基础目录,并确保/init存在且具备可执行权限。

4、卸载镜像后,将其写入SD卡第二分区或eMMC数据分区,并在U-Boot中设置bootargs包含root=/dev/mmcblk0p2 rootwait参数。

五、通过串口调试验证启动流程

串口终端是观察ARM开发板启动全过程的关键通道,可用于定位U-Boot未加载、内核崩溃或根文件系统挂载失败等问题。

1、使用USB转TTL模块连接开发板UART0引脚(TX、RX、GND),波特率设为115200(部分平台为1500000)。

2、在PC端使用minicom或screen打开串口设备(如/dev/ttyUSB0),复位开发板观察U-Boot打印信息。

3、若U-Boot正常运行但卡在“Starting kernel ...”,检查Image是否为arm64架构、设备树是否匹配、内存地址是否越界。

4、若内核解压完成但停在“VFS: Unable to mount root fs”,确认root=参数中的设备节点存在、文件系统类型正确、镜像完整性无误。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4570

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3833

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

3153

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7830

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

7462

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

4233

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3705

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3959

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习