全志V3S Linux 开发过程回记

4 篇文章 13 订阅
博主分享了半年未接触Linux后重新开始的开发经历,从u-boot、内核到根文件系统,详细介绍了在Ubuntu环境下为全志V3S开发Linux系统的过程。涉及u-boot的源码获取、配置修改和编译,Linux内核的下载、设备树修改及编译,以及根文件系统Buildroot的下载、配置和编译。最后提到了烧录TF卡的步骤。
摘要由CSDN通过智能技术生成

半年没有碰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卡第二个分区目录

 

 

 

 

### 回答1: 全志V3S是一款基于ARM Cortex-A7架构的嵌入式处理器,支持Linux操作系统。编译V3SLinux系统需要以下步骤: 1. 准备交叉编译工具链,可以使用arm-linux-gcc等工具链。 2. 下载V3SLinux内核源码,可以从全志官网或GitHub上获取。 3. 配置内核源码,包括选择适合的配置文件、配置内核选项等。 4. 进行编译,生成内核镜像文件和设备树文件。 5. 将内核镜像文件和设备树文件烧录到V3S开发板上,启动系统。 需要注意的是,编译Linux系统需要一定的Linux基础知识和编译经验,建议先学习相关知识再进行操作。 ### 回答2: 全志v3s是一种单板计算机芯片,它可以在嵌入式系统中使用。在嵌入式系统中,操作系统通常使用的是Linux。要在全志v3s芯片上运行Linux系统,需要先进行Linux编译。下面介绍全志v3s Linux编译的详细步骤和注意事项: 1. 设置编译环境 在编译Linux系统之前,需要准备好编译环境。建议使用Ubuntu 16.04 LTS或18.04 LTS作为编译环境。并保证已安装好必要的工具和软件包,例如:Git、GCC、GDB、Binutils、Make等。 同时,需要用到构建工具,如build-essential、u-boot-tools、binfmt-support、qemu-user-static等。 2. 下载源码 在准备好编译环境后,需要下载全志v3sLinux内核源码和rootfs文件系统。全志官网提供了Linux内核源码的下载,也可以从开源社区中获取。 3. 构建内核和文件系统 下载好源码之后,首先需要构建内核。这个过程中需要使用交叉编译工具,可以在其它电脑上先交叉编译准备好内核;也可以在v3s开发板上自己进行编译。做好交叉编译后,就可以在开发板上完成内核编译。 为了完成文件系统的编译,需要使用Yocto Project。可以把它看作是一款朴素的构建系统,用于生成一个完整的 Linux 系统映像。Yocto Project是Linux基金会的一个开源项目,是底层嵌入式系统和产品的构建框架。 4. 烧录系统 使用烧录软件将编译好的内核和文件系统烧录到全志v3s芯片中。Linux可预安装到闪存中,而启动可以通过自动清除烧录启动等功能实现。 总之编译全志v3s Linux是一项复杂而不容易的任务,需要开发者具备丰富的嵌入式系统和Linux的相关知识和经验。有了整理好的步骤和工具,以及良好的参考文档和社区支持,开发人员可以较为容易地完成全志v3s Linux系统的编译和调试。 ### 回答3: 全志v3s是一款基于ARM Cortex-A7架构的单板机,主要用于物联网、嵌入式和AI领域。在使用全志v3s进行开发时,可以选择使用Linux操作系统作为开发平台来编译应用程序和驱动程序。下面将从准备工作、环境搭建、编译流程以及常见问题等四个方面来介绍全志v3s Linux编译。 一、准备工作 在开始编译前,我们需要进行几项准备工作,包括: 1.下载全志v3s开发板的原始代码 2.安装交叉编译环境 3.下载编译工具链 二、环境搭建 在准备工作完成后,我们需要搭建开发环境,包括: 1.设置环境变量 2.配置交叉编译工具链 3.选择交叉编译平台 三、编译流程 在设置好环境后,我们可以开始编译应用程序或驱动程序。基本的编译流程如下: 1.检查Makefile文件是否存在和正确 2.运行make命令进行编译 3.检查编译结果是否正确 四、常见问题 在进行编译过程中,可能会出现以下几个问题: 1.依赖库文件缺失问题 2.交叉编译工具链版本问题 3.编译环境配置问题 针对这些问题,我们可以通过以下方法进行解决: 1.下载相应依赖库文件 2.安装符合要求的交叉编译工具链版本 3.重新配置编译环境 总的来说,全志v3s Linux编译需要进行准备工作、环境搭建、编译流程等一系列步骤。在具体操作时,需要注意每一个步骤的细节和规范。同时,在遇到常见问题时,需要采用相应的解决方法,以保证编译的成功率和质量。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值