1.开发环境

# 获取编译器
sudo mkdir /usr/local/arm
cd /usr/local/arm
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# 修改环境变量
sudo nano /etc/profile# 把它添加在最后保存退出
export PATH=$PATH:/usr/local/arm/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin# 安装相关库
sudo apt-get install lsb-core lib32stdc++6# 重启,验证
arm-linux-gnueabi-gcc -v

结果如下

2.使用u-boot

编译

# 安装必要的工具(不一定足够全,编译过程出现问题进行百度再安装)
sudo apt install gcc python swig python-dev bc device-tree-compiler# 获取u-boot
git clone https://github.com/Lichee-Pi/u-boot.git -b nano-v2018.01# 由于太慢我已经克隆到gitee上了
git clone https://gitee.com/qiushanyue/u-boot.git -b nano-v2018.01# 进入目录设置编译前的默认配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig# 进行可视化配置
sudo apt-get install libncurses5-dev
make ARCH=arm menuconfig# 开始编译 -j是cpu线程数
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12

如果觉得输入ARCH、CROSS_COMPILE 不爽,可以把配置写在顶层Makefile

sudo nano Makefile
# 添加
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-

如下

编译完成,得到 u-boot-sunxi-with-spl.bin ,将该文件烧入TF卡8K偏移处
首先格式化内存卡,使用专用的工具进行格式化
大佬的视频教程(linux下) https://whycan.cn/t_547.html,按照教程进行分区
第0分区时u-boot,第1分区FAT32,存放dtb和linux内核,第2分区为EXT4,存放根文件系统

# 查看sd卡
sudo fdisk -l# 找到内存卡,我的是/dev/sdb,在下面改好
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

插卡启动

3.修改u-boot(为启动linux做准备)

uboot倒计时结束,要启动Linux内核,所以需要修改配置文件使u-boot去执行

/* bootcmd 保存着 uboot 默认命令, uboot 倒计时结束以后就会执行 bootcmd 中的命令 */
/* bootargs 保存着 uboot 传递给 Linux 内核的参数*/
sudo nano /include/configs/suniv.h/* 添加以下代码(mmc 0为TF卡,1是第一分区,文件系统为fat32,把zImage和dtb文件拷入DRAM)*/
#define CONFIG_BOOTCOMMAND  "fatload mmc 0:1 0x80800000 zImage; "  \"fatload mmc 0:1 0x83000000 suniv-f1c100s-licheepi-nano.dtb; " \"bootz 0x80800000 - 0x83000000;"/* 继续添加(linux将使用uart0进行交互,死机5s重启,根文件系统在mmc0(tf卡)第二分区(EXT4),等待 mmc 设备初始化完成以后再挂载,开启读写权限) */
#define CONFIG_BOOTARGS   "console=ttyS0,115200 panic=5 root=/dev/mmcblk0p2 rootwait rw "/* 回到u-boot目录进行编译 */
make ARCH=arm menuconfig
/* 取消勾选 [] Enable a default value for bootcmd */
/* 勾选 [v] Enable boot arguments;*/make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12

将生成的u-boot-sunxi-with-spl.bin文件再烧录到TF卡

4.编译linux内核

/* 获取Linux内核 */
git clone https://github.com/Lichee-Pi/linux.git --depth=1 -b nano-4.14-exp
/* 克隆到gitee上的 */
git clone https://gitee.com/qiushanyue/linux.git --depth=1 -b nano-4.14-exp/* 下载配置文件 */
wget http://nano.lichee.pro/_static/step_by_step/lichee_nano_linux.config/* 修改下载的配置文件名为.config */
mv lichee_nano_linux.config .config/* 可视化配置 */
make ARCH=arm menuconfig/* 编译,出错的话应该是有插件未安装,百度然后apt install */
sudo apt-get install libssl-dev
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12

生成的zImage在 ./arch/arm/boot/zImage,拷贝到TF卡第一分区
生成的dtb文件在 ./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb,拷贝到TF卡第一分区

# 查看挂载的磁盘信息
df
# 结果如下
/dev/sdb2       15214512    43048  14378888   1% /media/qiushan/6e70566c-5537-4463-a35e-b7f7c729feb7
/dev/sdb1          32686     6742     25944  21% /media/qiushan/A26F-2337# 执行命令 -d为强制复制
cp arch/arm/boot/zImage  /media/qiushan/A26F-2337 -d
cp arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb /media/qiushan/A26F-2337 -d

5.根文件系统

使用buildroot

# 安装依赖
apt-get install linux-headers-$(uname -r)# 获取buildroot源码
wget https://buildroot.org/downloads/buildroot-2017.08.tar.gz
tar xvf buildroot-2017.08.tar.gz
cd buildroot-2017.08/# 配置bulidroot
make menuconfig# 下载依赖工具包,下载完之后,解压后复制到"buildroot-2017.08/dl/"下,没有dl文件夹可自行创建。
链接:https://pan.baidu.com/s/1_tBdX9K7fOkH9JdXZ_MdiQ# 编译,不支持多线程(出现问题,继续百度安装插件apt install g++等)
make

根文件系统在 ./output/images/rootfs.tar,解压到第二分区

# 查看挂载的磁盘信息
df
# 结果如下
/dev/sdb2       15214512    43048  14378888   1% /media/qiushan/6e70566c-5537-4463-a35e-b7f7c729feb7
/dev/sdb1          32686     6742     25944  21% /media/qiushan/A26F-2337# 执行命令
tar -xvf  output/images/rootfs.tar -C /media/qiushan/6e70566c-5537-4463-a35e-b7f7c729feb7
sync //同步一下

插卡启动!!!

从零开始 荔枝派nano TF卡启动相关推荐

  1. 荔枝派Nano TF卡运行Linux全流程

    目录 前言 一.安装依赖 二.从u-boot启动 1.安装交叉编译链 2.编译u-boot 三.主线Linux编译 四.设备树添加电阻屏节点 五.根文件系统编译 后记 前言 最近入坑了搭载10元超便宜 ...

  2. 荔枝派nano初体验-windows写入镜像到TF卡启动

    荔枝派nano是一个很小的系统,搭载全志F1C100S芯片,具有ddr内存,支持tf,flash启动. 本人在了解荔枝派的特点之后,在淘宝上找到了一个57块钱的荔枝派nano,一般价格都是在85左右, ...

  3. 基于荔枝派Nano学习Buildroot的构建过程

    文章目录 0. 声明 1. 前言 2. 开发环境以及工具准备 2.1 主机系统 2.2 编译工具链 3. 构建系统Buildroot 3.1 工程配置 (1)首次构建工具链的情况 (2)使用外部工具链 ...

  4. 自制F1C200S demo板(四、TF卡启动)

    思来想去,发现使用SIPFLASH也不是百分百完美,也终于明白为何最小demo板要首推TF卡启动了. 主要是现在想学Linux驱动,但使用SPIFLASH就需要用uboot和kernel两个同时打包为 ...

  5. 荔枝派 Nano 全志 F1C100s 编译运行 Linux 笔记

    首先是荔枝派的官方文档,写的不是很细,应当说我们必须明确几点: 出厂时 SPI Flash 自带了一个 U-Boot+Linux Kernel(出厂的时候可能烧过了),可直接拿来用.如果希望自己烧固件 ...

  6. 荔枝派nano上手笔记(一)移植Uboot

    在放假前就买了荔枝派nano和zero这俩块小板子,打算寒假上手玩一下,但是赶放假看了看官方的文档发现那时的水平还不太能玩的动,那时对Linux基本不太熟悉,只会一些简单的操作,经过了快一个月的学习, ...

  7. 荔枝派 Nano 全志 F1C100s 编译运行 Linux ubuntu并升级gcc

    首先是荔枝派的官方文档,写的不是很细,应当说我们必须明确几点: 出厂时 SPI Flash 自带了一个 U-Boot+Linux Kernel(出厂的时候可能烧过了),可直接拿来用.如果希望自己烧固件 ...

  8. Jetson-nano:制作TF卡启动

    旧Nano可以直接导入镜像至TF卡,然后插入卡槽即可启动系统. 但目前旧的英伟达已经停止生产底板,现在市面上都是带emmc的核心板,底板是由其他厂商进行扩容自行生产的,因为官方自带的emmc只有16G ...

  9. 玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路

    玩转RT-Thread之荔枝派Nano(全志F1C100S) 一.新手上路 --作者:燕十三(flyingcys) blog:http://blog.csdn.net/flyingcys --荔枝派n ...

最新文章

  1. 我被编程语言PUA了!用互联网黑话写代码,每天都在“赋能”变量
  2. 打一针就可修复受损心脏,“癌症克星”CAR-T跨界疗法登上Science封面
  3. python教程哪个版本好-tensorflow用python哪个版本更好?
  4. linux水滴怎么抓包,tcpdump 抓包
  5. 实现JNI的另一种方法:使用RegisterNatives方法传递和使用Java自定义类 (转)
  6. ARP解决方法/工具+真假ARP防范区别方法+ARP终极解决方案
  7. 【Java】Java-ShutDownHook-优雅关闭系统资源
  8. 搞清楚模数、数模转换中的AGND和DGND
  9. 中国湿地沼泽分类分布/自然保护区分布
  10. 第三次作业_03功能测试
  11. 堆栈c语言 矩形填色,堆栈涂色官方版下载|堆栈涂色安卓版v0.1下载 - 一游网手机游戏...
  12. 华为OD社招Java岗面经,已OFFER
  13. unity,射手游戏
  14. 完全卸载 HP 打印机
  15. mysql replicator_聊聊rocketmq-mysql的Replicator
  16. 连接计算机名提示输入网络凭据,Win10访问局域网共享文件时提示输入网络凭据如何解决...
  17. linux桌面怎么解压tar文件,Linux中tar解压缩命令详解-tar文件怎么打开
  18. 解决maven库中没有Oracle jdbc驱动的问题Cannot resolve com.oracle:ojdbc14:10.2.0.1.0
  19. 20169218 2016-2017-2 《网络攻防实践》第二周学习总结
  20. html怎么设计为中文字体,CSS font-family中文字体设置方法

热门文章

  1. Android_(传感器)获取手机中的传感器
  2. 基于python实现车辆测速两种的方法
  3. 智能运维AIOps能力成熟度模型
  4. 米家共享显示服务器错误,米家摄像头云服务器
  5. 大胆预测:它将成为5G最核心干将
  6. 判断闰年的方法Linux,判断闰年的3种方法(判断+范围输出)
  7. 阿里云Docker Registry 操作指南
  8. 欧几里德算法与皮克定理
  9. html如何将div斜切,如何使div左右倾斜
  10. java百万级别excel导出(easyExcel),java在线视频观看