全志V3S Linux 开发过程回记

news/2024/11/7 18:42:44/

半年没有碰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

QQ20171122094600.png

QQ20171122094653.png

如果不会配置, 就下载下面这个文件,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卡第二个分区目录

 

 

 

 


http://www.ppmy.cn/news/180427.html

相关文章

荔枝派 zero(全志V3S)-编译及SD烧录

之前买了个荔枝派,全志的A3S芯片。折腾了两天,写一下编译和SD烧录的过程。 目录 1.直接烧录镜像文件 2.uboot编译 3.kernel编译 4.rootfs编译 5.烧录 6.串口登录 1.直接烧录镜像文件 百度到了一堆的资料,下面是网盘链接 链接&#x…

电网电压及中国TN-S系统学习

目前各国的室内电压大体分为两种:100V~130V,220V~240V两个类型。 100V、110V~130V被归类低压,如美国、日本等以及船上的电压,注重安全;220V~240V被称为高压,其中包括中国的220伏及英国的230伏和很多欧洲国…

k8s(三)、kube-router: K8S BGP直通网络CNI方案

前言 上一篇讲到,k8s使用traefik代理集群内部服务,灵活地注入代理配置的方式,提供7层对外服务(参考:k8s(二)、对外服务)。在本篇,使用kube-router的cni,实现…

RISC-V (CH32V103)与Cortex-M3内核(CH32F103)单片机中断延时测评

最近在学习RISC-V架构的MCU,特地学习了一下“中断处理机制”,对比之前使用过的Cortex-M3内核单片机,研究它们在中断执行和处理上的差异和效率。 样品选择 CH32V103C8T6和CH32F103C8T6 CH32V103C8T6,沁恒微电子的RSIC-V架构32位…

彩色MT9V034摄像头 Bayer转rgb FPGA实现

彩色MT9V034摄像头 Bayer转rgb FPGA实现 1 图像bayer格式介绍 bayer格式是伊士曼柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像。Bayer格式是相机内部的原始数据, 一般后缀名为.raw。 对于彩色图像,一般是三原色数据&#xff0c…

AIC, BIC v.s. Crossvalidation

模型选择的方法有许多,例如 AIC, BIC, Crossvalidation, GCV等等。这 些准则的适用条件有哪些?该如何选择不同的准则? AIC, BIC准则 ref:https://methodology.psu.edu/node/504 ref:https://en.wikipedia.org/wiki/B…

v3S编译大全(uboot 主线linux buildroot)

文章目录 一、github代理下载二、Uboot1.uboot下载2.uboot的基本结构3.uboot配置屏幕4.修改可以从tf卡启动5.配置6.编译6.烧录测试1.进入 fel 模式使用 sunxi-fel 工具烧录1.基本命令2.有两种方式进行程序下载: 2.烧录到TF/SD卡 7.uboot启动信息 三、主线linxu编译与…

RISC-V MCU应用之单片赤菟V307实现八串口服务器

简介 串口服务器,提供串口转网络的功能,将串口转换成TCP/IP协议网络接口,实现串口和网络接口的数据双向透明传输,扩展串口设备的通讯距离。 赤菟V307是搭载沁恒自研RISC-V内核青稞V4F的高性能互联型MCU,主频支持144M…