荔枝派nano(f1c100s)从零开始TF卡启动(附源码下载)

article/2025/9/21 12:15:35

本文所使用的所有文件都已打包到SDK中,可以直接使用,有些细节我已省略,直接使用我包里的文件即可。

(无需积分,免费下载,里面的东西都来源于官方)

觉得可以的,可以点个赞、点个关注,谢谢。
免费下载SDK链接:https://download.csdn.net/download/m0_55733070/19626284
(记得点个赞,点个关注)
教程已经生成PDF文件,可以下载下来看。
SDK包含的东西
一、安装交叉编译链
安装交叉编译链方法直接使用官方给的方法即可,编译链工具包已经打包到SDK当中。

方法如下

(1)使用命令解压和复制

tar -vxJf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz

sudo cp -r ./gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi /opt/

(2)使用gedit软件打开/bash.bashrc
命令:gedit /etc/bash.bashrc
在文件末尾处,加入
PATH="$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin"
在这里插入图片描述

(3)然后使用命令source /etc/bash.bashrc使其生效
(4)此时可用 arm-linux-gnueabi-gcc -v 进行测试;若普通用户状态下没有成功,通过 sudo su 切换到root用户再尝试;

安装成功后如下:

在这里插入图片描述

二、u-boot的编译
(1)cd 到uboot文件夹,由于我们是从SD启动,所以直接
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig
在这里插入图片描述

执行后生成了 .config文件。

(2)随后我们就可以进行可视化配置了。
make ARCH=arm menuconfig
在这里插入图片描述

(3)取消勾选 [] Enable a default value for bootcmd
勾选 [v] Enable boot arguments;
如下:
在这里插入图片描述

(4)开始编译

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4

编译过程中如果遇到什么错误,请自行百度解决,毕竟各自的错误也不同,不能一一提出。

经过编译后会生成一个u-boot-sunxi-with-spl.bin文件
在这里插入图片描述

这个就是我们后面要用到的,到此,uboot的编译工作已经完成

三、编译linux内核

(1)首先进行配置,配置文件已经放进文件夹中,直接更名即可使用
使用命令: mv lichee_nano_linux.config .config

(2)如果需要裁剪,可以自行进行 make menuconfig 可视化配置,不要的直接下一步。

(3)完成配置后,就可以开始进行编译了
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
在这里插入图片描述

遇到需要确定的,直接狂按回车键!!!

(4)等待编译完成,完成后会在arch->arm->boot文件夹中生成zimage镜像。
在这里插入图片描述

四、编译根文件系统
(根文件系统编译时会下载很多东西,如果下载失败之类的,就重试)
进入准备好的buildroot文件,使用make menuconfig命令进行可视化配置
在这里插入图片描述

进入Target optiongs选项,进行如下配置
在这里插入图片描述

再进入filesystem images选项
在这里插入图片描述

选定需要编译出的镜像方式

在这里插入图片描述

随后可以自己进行自己需要的配置,比如进入Target packages–>Interpreter languages and scripting选项,选中python3选项,安装python3.(注意:选定python前要勾选
Toolchain–>[]enable WCHAR support
)
在这里插入图片描述

选好后,保存,退出。
再执行make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4进行编译

在这里插入图片描述

编译完成后,可以在output/images/文件夹中找到rootfs.tar,这个就是我们需要用到的文件

五、写入SD卡并启动
需要烧录的文件有我们前面编译好的u-boot-sunxi-with-spl.bin文件、image文件、rootfs.tar文件,以及dtb文件。为了方便,可以把编译好的文件拉到一个文件夹里,
其中dtb文件在 linux内核文件夹中的/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb
在这里插入图片描述

写入SD卡时需要用到一个软件GParted,这个软件可以直接在ubuntu软件管理中下载。
在这里插入图片描述

我们要用这个软件对SD卡分区
步骤如下
1.从这里选定插入的SD卡,注意这点,别选错了。

在这里插入图片描述

2.对着SD卡中已有的分区按下鼠标右键,选择卸载,然后删除。
在这里插入图片描述

完成后如下图,注意,这个操作是要保存的,保存后才生效。
在这里插入图片描述

等待保存完成。

4.然后分配区;
对着未分配的分区,右键,选定新建,
第一个分区的配置如下
在这里插入图片描述

第二个如下

在这里插入图片描述

分配好后,记得保存。

完成分区操作后,结果如下
在这里插入图片描述

此时,分区操作已经完成,接下来就是烧录步骤了。

5.我们先查看我们的sda在系统中的挂载,可以直接在刚才的软件中看,如下图,我的挂载点是 /dev/sda
在这里插入图片描述

首先我们要烧录的是uboot文件,cd到u-boot-sunxi-with-spl.bin文件所在的文件夹,使用如下命令进行烧录,其中/dev/sda是我们上一步查看的挂载点,每个人都可能不同,请自己更改。
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sda bs=1024 seek=8
在这里插入图片描述

然后使用df命令查看sd的挂载信息
命令: df|grep ‘sd’

我电脑的挂载信息如图,其中 /media/mo/BOOT 和 /media/mo/rootfs 就是sd卡的分区情况。

拿到信息后,我们就可以拷贝文件到sd卡上了,首先cd到存放文件的文件夹
在这里插入图片描述

先拷贝zimage 和dtb
命令:
(请注意,自己的分区挂载,我的是/media/mo/BOOT)
cp zImage /media/mo/BOOT -d
cp suniv-f1c100s-licheepi-nano.dtb /media/mo/BOOT
再将rootfs文件解压到rootfs分区
命令:sudo tar -xvf rootfs.tar -C /media/mo/rootfs

完成以上步骤后,我们可以看到sd卡两个分区的情况
在这里插入图片描述
在这里插入图片描述

这样子,我们就大功告成啦!!!!
现在启动

在这里插入图片描述

启动成功了,直接输入 root就能登陆了

在这里插入图片描述


http://chatgpt.dhexx.cn/article/Z80Dp72M.shtml

相关文章

全志F1C100s使用记录:u-boot linux rootfs 编译与烧录测试(基于SD卡)

文章目录 目的基础准备硬件准备开发环境 制作toolchain和rootfs设置编译工具链 u-boot & linux编译u-bootboot.scrlinux 测试程序文件烧录分区设置分块烧录 上电测试系统镜像制作镜像文件使用镜像文件 可能会遇到的问题SDK数据包总结 目的 这篇文章中将测试在 F1C100s 中运…

【f1c200s/f1c100s】RGB接口 LCD驱动适配

【f1c200s/f1c100s】RGB接口 LCD驱动适配 RGB模式介绍F1C200s/F1C100s RGB LCD驱动适配设备树修改源码修改结果 RGB模式介绍 RGB 模式就是我们通过说的 RGB 屏,以 RGB(TTL 信号)并行数据线传输,广泛的应用于 5 寸及以上的 TFT-LC…

全志F1C100s入坑与填坑 uboot Linux Kernel 与buildroot

全志F1C100s 入手了几块全志的板子准备玩一玩随便记录一下!! 如图 是一块荔枝派 Nano 从sipeed官网可得如下介绍 官网传送门-----》 sipeed Nano 硬件参数# 硬件参数 CPU: 全志 F1C100s, ARM 926EJS , 最高 900MHz 内存&#xf…

全志F1C100S声卡驱动探究

如果有问题,请加QQ群 891339868 进行交流 最近刚上手全志的F1C100S这个片子,听一下音乐,本来想着挺简单,内核配置一下驱动就OK,谁知道上来就一闷棍,主线内核不支持内置声卡,经过多方面的研究&am…

【f1c200s/f1c100s】全志f1c200s开发板设计(含原理图和PCB)

f1c200s开发板设计 芯片特征开发板包含资源 开发板如图所示,模仿树莓派取了一个mango-pi的名字,haha~。 硬件主要参考了荔枝派nano和正点原子开发板。经过测试,全部功能正常。 芯片特征 全志F1C200s与F1C100s的区别为F1C200s含有64M SIP RA…

全志F1C100s使用记录:资料索引与基础说明

文章目录 前言资料来源u-boot & linux基础特性启动过程FEL模式电路设计 前言 最早接触到F1C100s是前两年的一个文章,里面使用F1C100s制作了一张可以运行Linux的名片,就是下图这个。下图上实际电路部分就占用角落一点点面积,当时觉得蛮有…

MySql 内连接与外连接 作用和 区别

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。 外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。 左外连接:左边表数据行全部保留…

php左内连接,内连接和外连接的区别是什么

内连接和外连接的区别:1、连接结果不同,内连接的连接结果仅包含符合连接条件的行,而外连接的连接结果包含了符合连接条件的行;2、注意事项不同,内连接需要注意区分在嵌套查询时使用的any以及all的区别,外连…

Mysql内连接和外连接的区别

内连接 简单来说:就是根据交集的部分来链接到一条完整的数据,以此来完成查询 以两张表相同的部分来链接上两张表的数据,而不是说,内连接查询的就是交集的部分,那样查询出来的不就是表的id信息了或者仅仅是关联的信息 …

mysql内连接和左连接的区别_MySQL连接查询 内连接和外连接的区别

展开全部 内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。 外连62616964757a686964616fe78988e69d8331333363393638接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连…

mysql内外三种连接,mysql内连接和外连接的区别

以下面两张表为例来看一下内连接与外连接的区别: 一、内连接( 最常用 ) 定义:仅将两个表中满足连接条件的行组合起来作为结果集。 关键词:INNER JOINselect * from employees e inner join department d on e.employee_id d.department_id …

Sql 中内连接、外连接、全连接、交叉连接的区别

外连接(out join) 外连接分为外左连接(left outer join)和外右连接(right outer join) 注释:left outer join 与 left join 等价, 一般写成left join right outer join 与 right join等价,一般写成right join 左连接&#xf…

谈谈你对计算机的发展,结合您目前对计算机的认识,请您谈谈对计算机发展趋势的看法。...

计算机从出现至今,经历了机器语言、程序语言、简单操作系统和Linux、Macos、BSD、Windows等现代操作系统四代,运行速度也得到了极大的提升,第四代计算机的运算速度已经达到几十亿次每秒。 计算机也由原来的仅供军事科研使用发展到人人拥有&am…

对计算机科学与技术专业课程的认识,计算机科学与技术专业课程

计算机科学与技术专业课程计算机科学与技术专业课程 二、课程简介 TOP 1.数字逻辑电路: “数字逻辑”是计算机专业本科生的一门主要课程,具有自身的理论体系和很强的实践性。它是计算机组成原理的主要先导课程之一,是计算机应用专业关于计算机系统结构方面的主干课程之一。…

计算机网络技术的专业认识,计算机网络技术课程学习后的自我认识

计算机网络技术课程学习后的自我认识 随着计算机、多媒体、现代通讯网络为代表的信息技术的迅猛发展,信息技术已经渗透到了教育领域,在教育领域中引起了一场深刻的变化。小编是YJBYS小编整理的计算机网络技术课程学习后的自我认识,欢迎阅读 信…

计算机专业认识和规划,计算机科学与技术专业认识与规划

计算机科学与技术专业认识与规划 专业认识与规划专业认识与规划对于这个专业的学生,它要求学生的英语水平,数学水平很高。最主要的是,它的专业课程很多,很复杂,很累人,它需要你付出很多的努力,…

对计算机网络的认识论文800,对计算机的认识论文

为毕业生写对计算机的认识论文提供对计算机的认识论文范文参考,涵盖硕士、大学本科毕业论文范文和职称论文范文,包括论文选题、开题报告、文献综述、任务书、参考文献等,是优秀免费对计算机的认识论文网站。 对计算机软件属性和保护方式的认识 摘要&…

JS取整,取余

1、取整 // 丢弃小数部分,保留整数部分 parseInt(5/2)  // 2 2.向上取整 // 向上取整,有小数就整数部分加1 Math.ceil(5/2)  // 3 3.向下取整 // 向下取整,丢弃小数部分 Math.floor(5/2)  // 2 4四舍五入 // 四舍五入 Math.round(5/2)  // 3 5 取余 // 取余 6…

JS中的求余和求模

在JS中有两个操作符,求余和求模,它们本质上并没有区别,但仍有一些差异,今天就给大家区分一下它们 求余 符号:% 写法:a % b 求余:a % b ,表示为a rem b,相当于 a - n * …

js数据取整,取余,保留小数,数据脱敏等的一些处理方式

一个经典的解决四舍五入问题后js保留两位小数的方法: 1.四舍五入保留2位小数(若第二位小数为0,则保留一位小数) function keepTwoDecimal(num) {var result parseFloat(num);if (isNaN(result)) {alert(传递参数错误&#xff0…