0

0

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

月夜之吻

月夜之吻

发布时间:2026-01-03 08:20:03

|

681人浏览过

|

来源于php中文网

原创

需通过交叉编译工具链编译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)。

Shoping购物网源码
Shoping购物网源码

该系统采用多层模式开发,这个网站主要展示女装的经营,更易于网站的扩展和后期的维护,同时也根据常用的SQL注入手段做出相应的防御以提高网站的安全性,本网站实现了购物车,产品订单管理,产品展示,等等,后台实现了动态权限的管理,客户管理,订单管理以及商品管理等等,前台页面设计精致,后台便于操作等。实现了无限子类的添加,实现了动态权限的管理,支持一下一个人做的辛苦

下载

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中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1345

2023.06.21

如何安装LINUX
如何安装LINUX

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

700

2023.06.29

linux find
linux find

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

294

2023.06.30

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

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

773

2023.07.05

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

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

571

2023.07.06

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

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

545

2023.07.20

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

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

296

2023.07.20

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

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

374

2023.07.25

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Git 教程
Git 教程

共21课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号