关注分享主机优惠活动
国内外VPS云服务器

在树莓派4B上安装uboot(树莓派4b安装配置)

总结:如果想在树莓派上运行,需要下载官方固件。 4.直接下载文件夹中需要的内容,复制到卡分区。 之前分区的大小和格式就是那个分区,把编译好的分区复制到那里。

2021SC@SDUSC

1.uboot1.1概述。 计算机系统的主要组成

(1)计算机系统是以CPU为中心运行的系统。 典型的计算机系统包括PC(台式机+笔记本)、嵌入式设备(手机、平板、游戏机)、微控制器(电饭锅、空调等家电)。

(2)计算机有很多组件不同的计算机系统有不同的组件。 然而,所有计算机系统都需要三个主要核心组件才能运行:

CPU+外部存储器(闪存/硬盘)+内部存储器(DDR SDRAM/SDRAM/SRAM)

1.2 PC启动流程

(1)简介:典型的PC的BIOS程序安装在PC主板上(主板出厂时已经组装好),操作系统安装在硬盘上。 ,如果断电,存储器将不工作。 另外,如果电源关闭,CPU将无法工作。

(2)开机过程:当PC机开机时,首先运行的是BIOS程序(实际的PC机BIOS是NorFlash)。 BIOS程序负责初始化DDR内存、初始化硬盘以及从硬盘读取操作系统映像。 将其插入DDR,跳转到DDR并运行直到OS启动(OS启动后BIOS无用)

1.3. 典型嵌入式Linux系统启动过程

(1)典型嵌入式系统部署:uboot程序部署到flash(flash可以作为启动设备),操作系统部署到flash(使用flash)。 (在嵌入式系统中代替硬盘使用),断电时存储器不工作。 另外,如果电源关闭,CPU 将无法工作。

(2)启动过程:嵌入式系统上电后第一次运行。运行uboot时,uboot负责初始化DDR、初始化flash、从flash读取OS到DDR、启动OS(OS启动后uboot就没用了)

总结:嵌入式系统和PC机的启动过程几乎相同,只是BIOS现在是uboot,硬盘是flash。

1.4. Android系统启动流程

(1)Android系统启动与Linux系统(上面提到的典型嵌入式系统启动)几乎相同。 几乎相同的意思和之前一模一样,只不过内核启动后会加载根文件系统。

(2)启动可分为两个阶段。 第一阶段是从uboot到启动操作系统。 第二阶段是从启动操作系统到在命令行上加载并运行rootfs。 现在我主要在学习第三阶段。 Android 和 Linux 启动之间的区别在于一个阶段与第二个阶段。

1.5。 总结:uboot 的作用是什么?

(1)uboot 的主要功能是引导操作系统内核。

(2)uboot还负责部署整个计算机系统。

(3)uboot 还包括用于闪存和其他板载硬盘驱动器的驱动程序。

(4)uboot还必须提供一个命令行接口供用户交互。

2.安装uboot

1.格式化SD卡并创建分区

1通过读卡器将SD卡插入计算机并将其连接到Linux系统。 2. 打开命令行(任意位置)。 是)运行 sudo fdisk -l 查找 SD 卡的设备名称(通常为 /dev/sdX)(下图中,红框为 SD 卡的设备号(/dev/sdb)) sudo fdisk Run /dev /sdX(如果上图中设备编号为/dev/sdb,则应运行/dev/sdb),界面如下图,开始对SD卡进行分区,输入“o”返回。输入“p”并回车。 这将列出您的所有分区。 此时不应有任何分区。 键入 n 并按 Enter 键以创建新分区。 键入 p 并 Enter 来引导分区。 新分区将成为主分区。 输入 1 作为分区,然后按 Enter。 分区号为1。 按键盘并按 Enter 键。 默认情况下,在第一个扇区中输入+256M,然后按 Enter。 要设置结束扇区,请输入 t 并按 Enter 键。 然后输入“c”并按Enter键设置分区的文件系统格式。 对于 Fat32,输入“n”并按 Enter 键创建新分区。 对于根分区,输入“p”并按 Enter。 对于新分区,为主分区输入 2,然后按 Enter。 分区数为2。 按键盘上的 Enter 键将设置默认的第一个扇区。 按键盘上的 Enter 键设置默认值。 要退出该扇区,请输入“w”并按 Enter 键写入设置。

写入分区后,格式化。 建议使用256M空间作为启动分区,分区文件系统为Fa​​t32。 接下来,使用分区文件系统 Ext4 作为 root 在剩余空间中创建一个分区。 然后运行命令格式化并保存。 sudo mkfs.vfat /dev/sdX1 sudo mkfs.ext4 /dev/sdX2 SD 卡已完成格式化和分区。

2. 交叉编译 u[k4. ]创建boot.bin并将其移植到SD卡的启动分区。

1. 首先,使用以下命令安装工具包 git、net-tools、vim: sudo apt install git net-tools vim (然后使用命令 sudo apt install XXX ) 2. 您必须安装ARM 64位交叉编译环境。 https://snapshots.linaro.org/gnu-toolchain/ 请从上述网站输入。 下载您想要使用的版本。 但请注意,您需要下载的文件的命名格式为gcc-linaro-版本号-时间-x86_64_aarch64-linux-gnu.tar。 xz。 如下图所示。 下载的是gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz。

将下载的.xz压缩文件放在Linux上,并在同一目录中运行以下命令。 # 创建文件夹 sudo mkdir -p /opt/linaro # 解压到指定文件夹路径 sudo tar [ k4]xvf gcc-linaro-XXX-XXXX.XX-x86_64_aarch64 -linux -gnu.tar -C /opt/linaro (sudo tar -xvf gcc- ]linaro-7.5.0-2019.12-x86_64_aarch64-linux[ k4]gnu. tar -C /opt/linaro) 3. 下载 u-boot 源码并开始编译: git clone https://github.com/u-boot/u -boot.git (It失败的原因是无法连接或者连接中断,请检查你的网络并重复几次)切换u-boot目录并开始编译。 执行cd u-boot,进入u-boot目录。 编译之前首先要安装编译所需的程序 sudo apt install u-boot-tools bison bcmake flex libssl-dev ncurses-* 安装完成后,运行以下两行命令来设置环境。 -XXXX[ k4]x86_64_aarch64-linux-gnu /bin/aarch64-linux-gnu- (XXXX是下载的文件对应的版本号和时间)(如果你想稍后重新编译u-boot,先运行sudo make distclean清理之前编译的文件,然后运行上面的两行命令,注意每次编译都需要运行这两行命令,然后运行以下命令进行配置。配置(rpi_arm64_defconfig位于u-boot/configs目录中。在目录中搜索rpi可以找到试用Raspberry Pi的所有配置。由于我们设置的是64位u-boot ,使用rpi_arm64_defconfig)。通过运行命令开始编译make -j4(只需编译make -j,接下来的四个将使用四个线程编译以提高速度)编译下面的uboot .bin文件是一个程序可以直接在Raspberry Pi 4b上运行

至此,u-boot.bin就编译完成了,如果要运行,需要官方固件。 4.下载固件https://github.com/raspberrypi/firmware 直接下载固件-主控。 所需的固件位于启动文件夹中,并放置 bcm2711-rpi-4-b.dtb、fixup4.dat 和 start4。 将elf复制到SD卡的boot分区(之前的分区大小为256M,格式为fat32),将编译好的u-boot.bin复制到那里。 自己创建config.txt并写入其内容。 enable_uart=1 arm_64bit=1 kernel=u-boot.bin 至此,u-boot已经成功编译移植。

未经允许不得转载:主机频道 » 在树莓派4B上安装uboot(树莓派4b安装配置)

评论 抢沙发

评论前必须登录!