licheepi nano 从零开始使用sd卡启动

2024-02-09 00:04

本文主要是介绍licheepi nano 从零开始使用sd卡启动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文目的:licheepi nano从零开始,使用sd卡启动;
某些原因导致需要重新捣鼓uboot,但过程中频繁出错,后悔最初没有记录详细的操作方法,此帖主要为自己出口气,重新记录;

持续完善,最后更新日期:2024/02/08(年二十九)

文章目录

  • 一、u-boot
    • 1、下载编译u-boot的工具链
    • 2、下载u-boot
    • 3、配置u-boot
    • 4、修改suniv.h
    • 5、编译u-boot
    • 6、制作boot.src
  • 二、Linux内核
  • 三、rootfs根文件系统
  • 四、SD卡制作
  • 五、测试
  • 六、总结

一、u-boot

1、下载编译u-boot的工具链

  • 我编译u-boot所使用的工具链是单独的,和编译Linux内核与根文件系统是分开的;
wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz# 解压
tar -vxJf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz

2、下载u-boot

git clone https://gitee.com/LicheePiNano/u-boot.git
# 进入u-boot根目录
cd u-boot
# 查看分支
git branch -a
# 切换到 Nano 分支
git checkout nano-lcd800480

3、配置u-boot

  • 不带spi-flash的板子,请选择 licheepi_nano_defconfig ;
  • 带spi-flash的板子,请选择 f1c100s_nano_uboot_defconfig ;
# 在u-boot根目录下执行
# 建议选择这个
make f1c100s_nano_uboot_defconfig

4、修改suniv.h

  • 注释原有的 CONFIG_BOOTCOMMAND
  • 增加一句 #define CONFIG_BOOTCOMMAND “run distro_bootcmd”
# 在u-boot根目录下执行
vi include/configs/suniv.h 

在这里插入图片描述

  • 修改后,u-boot 启动时会从第一分区读取 boot.scr 文件;

5、编译u-boot

  • 配置交叉编译工具链的环境变量;
# 此次配置只是当前有效,并不是永久生效
# 第三条命令的绝对路径要换成自己的,精确到工具链目录下的bin目录
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
export PATH=$PATH:/home/book/licheePi-f1c100s/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin
  • 在u-boot根目录下执行 make 编译;
# 在u-boot根目录下执行
make -j4
  • 编译完成后,会看到目录下有一个 u-boot-sunxi-with-spl.bin ,这个文件就是我们要的;

6、制作boot.src

# 在u-boot根目录下执行
touch boot.cmd
vi boot.cmd
  • 写入以下内容:
setenv bootargs console=tty0 console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 rw
load mmc 0:1 0x80008000 zImage
load mmc 0:1 0x80C00000 suniv-f1c100s-licheepi-nano.dtb
bootz 0x80008000 - 0x80C00000
  • 使用 u-boot 编译后 tools 目录下的 mkimage 工具可以将 boot.cmd 文件生成为 boot.scr 文件;
# 在u-boot根目录下执行
# arm架构;不压缩;script文件;输入boot.cmd文件;输出boot.scr文件
tools/mkimage -A arm -C none -T script -d boot.cmd boot.scr
  • 生成的 boot.scr 文件就在当前目录下;

二、Linux内核

三、rootfs根文件系统

四、SD卡制作

五、测试

六、总结

参考文章:
1、全志F1C100s使用记录:u-boot & linux & rootfs 编译与烧录测试(基于SD卡)

这篇关于licheepi nano 从零开始使用sd卡启动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/692597

相关文章

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

mybatis中resultMap的association及collectio的使用详解

《mybatis中resultMap的association及collectio的使用详解》MyBatis的resultMap定义数据库结果到Java对象的映射规则,包含id、type等属性,子元素需... 目录1.reusltmap的说明2.association的使用3.collection的使用4.总

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder