半年没有碰linux了,一直在玩ESP32,把esp32的人脸识别、语音识别、百度AI识别都摸了个遍 ,搞完这些开源出来后,竟然没人喜欢,瞬间就觉得没意思

于是,重新捡起linux开发,我是从全志V3S入门,接着玩全志H3的,先记录下V3S的开发过程

一个完整的linux包含了 u-boot、内核文件、rootfs根文件系统三部分,u-boot就相当于是bootloader,以前玩单片机的都知道,它的功能就是引导一下,到对的地址去执行对的代码,而内核文件就是一个系统的核心,它包含了系统的各种各样的驱动,例如摄像头、麦克风、显示屏等等,而改这些驱动要从dts文件来改,编译会生成dtb文件,最后根文件系统也就是debian啊 ubuntu啊,而可以定制化最轻便的就是buildroot。

废话不多说,来开始入门第一步:

1. 准备工作
    1) 安装Ubuntu16.04LTS(长支持版本),如果用虚拟机请安装vmware15(别的虚拟机都不推荐,泪的教训),  然后安装 vmware tools(不是必须,但是方便文件共享)

2) 安装arm linux 硬件浮点数工具链, 因为V3s支持VFPv4 浮点单元:

sudo apt-get install gcc-arm-linux-gnueabihf

3) 安装git源码管理软件:

sudo apt-get install git

4) 其他支撑软件

2. u-boot
      首先获取u-boot源码:

git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current

如果你需要支持spi flash:

git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-spi-experimental

修改 include/configs/sun8i.h, 使u-boot可以直接从tf卡启动:

#define CONFIG_BOOTCOMMAND   "setenv bootm_boot_mode sec; " \"load mmc 0:1 0x41000000 zImage; "  \"load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; " \"bootz 0x41000000 - 0x41800000;"#define CONFIG_BOOTARGS      "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw  vt.global_cursor_default=0"

然后开始编译uboot:

cd u-boot
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏)ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_480x272LCD_defconfig (通用4.3寸屏)ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig (默认)ARCH=arm make menuconfig执行编译:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make多核编译,避免cpu其他内核打酱油, J后的参数是参与编译的cpu个数:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j3

3. 设备树, Linux
    获取Linux源码:

https://github.com/torvalds/linux/releases/tag/v5.15-rc5

直接来这里下最新的代码

因为是在ubuntu下编译,所以下载tar.gz文件,解压gz文件

把licheepi_zero_defconfig 文件拷贝到对应目录下

生成荔枝派Zero 默认配置文件: CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig


    设备树文件在这个目录下:  arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts

有需要的可以自己修改dts

编译内核:     make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8


    编译设备树: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

编译完了设备树和内核,我们需要做的就是把dtb文件和zImage文件拷贝到TF卡里。

dtb在这个位置:
arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb

4. 根文件系统
        1). 下载最新的buildroot稳定版本
        官方网站:   https://buildroot.org/download.html
        长支持版本:buildroot-2017.02.7.tar.gz
        最新稳定版:buildroot-2017.08.1.tar.gz

2). 配置buildroot 参数, make menuconfig; make

如果不会配置, 就下载下面这个文件,Buildroot/ksdiy.config · Kevincoooool/KS_V3S - 码云 - 开源中国 (gitee.com)

然后把ksdiy.config拷贝到 buidroot目录后改名成成 .config 文件。

3). 执行编译, 生成文件跟文件系统。

5. 烧录TF卡启动盘:  【视频分享】制作荔枝派Zero开发板(全志V3s) TF/SD卡启动盘
    1) 删除TF卡所有分区
    2) 将uboot写入到sd卡8k偏移处(必须8K偏移, brom规定的)。

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8

3) 建立第一个分区,大小32M(可以随意填写), 格式FAT16, 把zImage, sun8i-v3s-licheepi-zero-dock.dtb拷贝到 这个分区
    4) 建立第二个分区,用尽剩余空间,格式ext4, 把buildroot产生的rootfs.tar解压到该分区根目录
        tar xvf output/images/rootfs.tar -C /挂载的tf卡第二个分区目录

全志V3S Linux 开发过程回记相关推荐

  1. 全志v3s linux 编译,全志 V3S 编译运行 xboot 笔记

    全志 V3S 编译运行 xboot 笔记 目录 1. 目的 2. 环境准备 3. 下载 3.1 fel 模式进入 3.2 sunxi-fel 工具的使用 3.3 烧录 4. 串口打印 5. 总结 1. ...

  2. 全志v3s linux 编译,全志V3S 编译运行xboot笔记

    全志V3S 编译运行xboot笔记 [toc] 1.目的 现在手上有一块V3S的板子,想将其用起来.现在来记录一下这个过程.记录一下荔枝派zero的使用流程. 2.环境准备 首先需要clone代码 g ...

  3. QCA7000/QCA7005基于全志V3S Linux系统驱动移植

    使用硬件: 荔枝派V3S Lichee Pi Zero with Dock QCA7000HomePlugGreen PHY模块 开发环境: Ubuntu18.04.6 LTS buildroot:2 ...

  4. 荔枝派Zero | 全志V3s 开发教程(一) 烧录系统镜像的方法以及如何烧录主线Linux系统镜像

    荔枝派Zero | 全志V3s 开发教程(一) 荔枝派Zero的开发教程: http://zero.lichee.pro/系统开发/type.html 刚开始尝试编译Camdroid官方SDK,最终浪 ...

  5. 全志v3s学习笔记(5)——主线Linux编译与烧录

    一.安装交叉编译环境 交叉编译环境跟uboot使用的一样. 参考:arm-linux-gnueabihf 交叉编译工具链安装 二.下载linux源码 # 默认是zero-4.10.y分支: git c ...

  6. 全志v3s学习笔记(1)——基础简介及资料

    资料: 荔枝派资料下载站 荔枝派Zero 用户指南 荔枝派github 荔枝派中文论坛 荔枝派Zero指南-看云 坑网 开发环境分类: (参考:Zero的开发环境分类) 1.Camdriod 官方SD ...

  7. 全志V3s学习记录(1)资料汇总

    文章目录 一.相关网站论坛 二.开发环境分类 2.1 Camdriod官方SDK 2.2 主线Uboot + Bsp内核 2.3 主线Uboot + 主线Linux 三.芯片资源介绍 3.1 Lich ...

  8. 全志V3S开发板LED驱动

    全志V3S开发板LED驱动 本文用的是全志开发板,在此开发板环境是店家提供,之前看了一片文章是利用编译内核的方式得到.ko文件,本文采用韦东山老师的方式make并且点亮LED. 1.由于v3ssdk目 ...

  9. 编译全志V3S(荔枝派zero)整个系统流程及后续故障答疑使用技巧等

    全志V3S(荔枝派zero)学习 购买到的硬件 声明一下用的主线Uboot + 主线linux,如果你是小白不幸买到了本产品建议弃坑既浪费时间,又浪费生命,香橙派树莓派是你更好的选择 Uboot 编译 ...

最新文章

  1. 春节充电 | 送你10本机器学习和数据科学必读书(附PDF下载)
  2. 修改MOSS2007内容查询部件实现自定义格式显示
  3. Smarty s02
  4. org.apache.jasper.JasperException: Unable to co...
  5. websocket 西部数码php_网页实时聊天之PHP实现websocket
  6. java什么是同步_什么是同步?什么是互斥?
  7. [Java]一步一步学 Web
  8. Ubuntu8.10下迁移SVN版本库到新增的SAS硬盘
  9. struts2实现文件上传
  10. 是时候让打字更“快舒”了-小鹤双拼
  11. APICloud平台使用融云模块实现音视频通话实践经验总结分享
  12. Emulex光纤卡lpfc配置文件的修改
  13. 数据挖掘项目——Airbnb 新用户的民宿预定结果预测
  14. Vue+OpenLayers学习系列(九)Vue+OpenLayers小案例(长度测量、面积测量、坐标定位、坐标获取)
  15. 【Unity云消散】理论基础:实现边缘光
  16. 【CVPR 2021】pixelNeRF: Neural Radiance Fields from One or Few Images
  17. 公钥私钥及ssh公钥无密码登录
  18. JavaScript 引用数据类型
  19. 宽带访问安全:电缆访问和 xDSL 线路--网络大典
  20. 【自然语言处理基础技能(NLP)】朴素贝叶斯

热门文章

  1. 智能写作,让GPT-3来辅助你写作|Mixlab智能产品
  2. 多个pdf文件合并为一个pdf文件
  3. Python scapy抓包程序
  4. 我记不住的那些vim操作
  5. WCF从理论到实践(3):八号当铺之黑色契约
  6. MySQL(关系型数据库管理系统)
  7. 大一上半学期基础C语言程序(四则运算,日期求天数,阶乘....)
  8. 素拓网站部署经验分享
  9. 记一次记忆深刻的springcloudgateway网关调优
  10. 都说喜欢文字的女人都是孤独的,她们怕孤独,却又喜欢孤独