全志v3s linux 编译,全志v3s学习笔记(2)——u-boot编译与烧录

一、编译

1、安装交叉编译环境

2、获取uboot(不同版本uboot)

//普通

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-experimental1

2

3

4

3、编译uboot

cd u-boot

//不同屏幕不同配置(配置文件在configs文件夹下)--------------------------------------

//默认

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig

//4.3寸屏

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_480x272LCD_defconfig

//5寸屏

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig

//配置和编译-----------------------------------------------------------------------

make ARCH=arm menuconfig

time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log1

2

3

4

5

6

7

8

9

10

11

12

13

二、烧录

1、进入 fel 模式使用 sunxi-fel 工具烧录

//检查是否可以探测到芯片信息:

sudo sunxi-fel -l

//确认是否成功进入fel模式:

sudo sunxi-fel ver1

2

3

4

9c17cbbd1b92d5432182570b4391a058.png

有两种方式进行程序下载:

烧录到RAM中去执行,以 uboot file-with-spl形式进行(单次运行,测试时个人推荐)

sudo sunxi-fel uboot u-boot-sunxi-with-spl.bin

//或者执行烧录地址

sudo sunxi-fel -p write 0x40000000 u-boot-sunxi-with-spl.bin

sudo sunxi-fel exec 0x400000001

2

3

4

5

烧录到 spi-flash (开机自启)

sunxi-fel -p spiflash-write 0 u-boot-sunxi-with-spl.bin1

注意:如果烧录到 spi-flash ,需要修改 include/configs/sun8i.h ,从flash引导系统

uboot启动信息:

U-Boot SPL 2017.01-rc2-00057-g32ab1804cd (Jan 16 2021 - 12:28:54)

DRAM: 64 MiB

Trying to boot from FEL

U-Boot 2017.01-rc2-00057-g32ab1804cd (Jan 16 2021 - 12:28:54 +0800) Allwinner Technology

CPU: Allwinner V3s (SUN8I 1681)

Model: Lichee Pi Zero

DRAM: 64 MiB

MMC: SUNXI SD/MMC: 0

Card did not respond to voltage select!

*** Warning - MMC init failed, using default environment

In: serial@01c28000

Out: serial@01c28000

Err: serial@01c28000

Net: No ethernet found.

starting USB...

No controllers found

Hit any key to stop autoboot: 0

Card did not respond to voltage select!

starting USB...

No controllers found

USB is stopped. Please issue 'usb start' first.

starting USB...

No controllers found

No ethernet found.

missing environment variable: pxeuuid

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/00000000

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/0000000

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/000000

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/00000

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/0000

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/000

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/00

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/0

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/default-arm-sunxi

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/default-arm

No ethernet found.

missing environment variable: bootfile

Retrieving file: pxelinux.cfg/default

No ethernet found.

Config file not found

starting USB...

No controllers found

No ethernet found.

No ethernet found.

=>1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

2、烧录到TF/SD卡

TF卡中的系统镜像一般分为三个区:

boot区或者引导区 - 该部分没有文件系统而是直接将二进制的bootloader(uboot)文件直接写入。

linux内核区 - fat文件系统,存放linux内核、内核参数文件还有设备数dtb文件。

rootfs分区 - 用来存放根文件系统和用户数据等,一般是ext4文件分区格式。

//插入TF卡前后查询,确认设备名称

ls /dev/sd*

//删除TF/SD的分区信息

sudo dd if=/dev/zero of=/dev/sdb bs=512K count=1

//烧录到TF卡(`u-boot-sunxi-with-spl.bin`在uboot根目录下)

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

2

3

4

5

6

7

8

02ef8dbc0ba4b8abe773f22aa7b6e44e.png

6da2457cf484b174053124cae4d74fb4.png

uboot启动信息:

U-Boot 2017.01-rc2-00057-g32ab1804cd-dirty (Jan 16 2021 - 22:48:52 +0800) Allwinner Technology

CPU: Allwinner V3s (SUN8I 1681)

Model: Lichee Pi Zero

DRAM: 64 MiB

MMC: SUNXI SD/MMC: 0

*** Warning - bad CRC, using default environment

Setting up a 480x272 lcd console (overscan 0x0)

dotclock: 10000kHz = 10000kHz: (1 * 3MHz * 20) / 6

In: serial@01c28000

Out: serial@01c28000

Err: serial@01c28000

Net: No ethernet found.

starting USB...

No controllers found

Hit any key to stop autoboot: 0

** Invalid partition 1 **

** Invalid partition 1 **

=>1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

三、启动成功后显示界面:

1、直接烧录到RAM启动(USB):

292c3ba75185a3d1ba2d16a8d4edbb0d.png

2、烧录到TF启动:

注意TF卡要插在靠近USB的那个接口:

0d33c4c183566b539d0f4babb7a1a708.png

文章来源: blog.csdn.net,作者:丨匿名用户丨,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/p1279030826/article/details/112672535

### 回答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编译需要进行准备工作、环境搭建、编译流程等一系列步骤。在具体操作时,需要注意每一个步骤的细节和规范。同时,在遇到常见问题时,需要采用相应的解决方法,以保证编译的成功率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值