首页 > 系统相关 >Ubuntu下编译最新版本全志开源FEL模式工具sunxi-tools

Ubuntu下编译最新版本全志开源FEL模式工具sunxi-tools

时间:2023-10-31 15:12:35浏览次数:36  
标签:FEL 全志 编译 Ubuntu 工具 tools make sunxi

1、sunxi-tools介绍

sunxi-tools是一组用于全志SoC系列芯片的开源命令行工具,全志的SoC一般以sun开头,x为数字,以i结尾。对于sun4i,sun5i,sun6,sun8i,sun9i.等等系列都可以使用这个工具。比如手上的这个板子是H616,它的名字是sun50i-H616。

sunxi-tools是一组工具集,这组工具可以用于对全志SoC进行片上程序的封装、FEX和二进制转换、PIO配置、FEL工厂工程模式等等一系列有用的工具。
比如我们这次要用到的这个工具集中的sunxi-fel工具没,我们需要编译一个最新的版本,就需要用到最新的工具包源码,进行一个最新版本的编译。

但是由于下载的编译好的版本貌似并不支持H616的uboot,因此需要编译新一个sunxi-tools版本。

2、构建说明

Ubuntu 18.04需要先安装以下依赖包

 sudo apt install pkg-config libusb-1.0-0-dev zlib1g-dev binutils libfdt-dev
 

接下来拉取代码

git clone https://github.com/linux-sunxi/sunxi-tools.git
 

编译需要使用到libusb-1.0的头文件和库,将会成为sunxi-fel的依赖。
要配置这个库的依赖,可以考虑显性的配置一个变量LIBUSB_CFLAGS
和LIBUSB_LIBS ,不过还是推荐通过pkg-config的去自动编译这个依赖。

3、编译

cd sunxi-tools
 

开始默认的编译

make
 

 

不过推荐参考以下make参数,去编译目标。

  • make tools 可以构建一些有用的工具,和make作用相同。
  • make target-tools 构建工具可以使用交叉编译链进行编译到目标平台上。可以通过指定变量的方式指定交叉编译链前缀,比如make target-tools CROSS_COMPILE=arm-none-eabi-
  • make all 会同时构建以上两种。
  • make install-tools 构建工具和安装到一个指定的文件系统位置上,这个位置可以通过DESTDIRPREFIXBINDIR指定。
  • make misc 构建主机上各种各样的实用工具。例如phoenix_infosunxi-nand-image-builder.

4、工具

1、FEX格式

FEX是全志芯片特有的一种SoC工作参数文件,包含了对外设接口的一切配置参数,包括GPIO、DRAM、显示屏等等各种参数。记录格式是传统INI格式,包含[节],每个[节]下面包含 键 = 值 格式的配置行。
类似

[product]
version = "1.0"
machine = "A10-EVB-V1.2"
 
  • 1
  • 2
  • 3
2、sunxi工具包

sunxi-fexc是一个用于转换fex和二进制描述的文件的程序,可以双向转换fex和bin描述文件。这个工具编译完成后还有两个快捷链接,bin2fex和fex2bin,功能如同链接文件名称。

3、sunxi-pio

操作各种PIO设置,比如GPIO配置等等。
可以用于对PIO寄存器进行dump操作或者通过直接的mmap进行直接硬件访问。
可能用到的不多。

4、sunxi-tools
5、sunxi-fel

这个程序提供了用于和全志SoC进行通讯和控制的脚本接口,除非指定–dev或者–sid,否则工具会访问第一个全志FEL模式的设备。可以通过sunxi-fel --list --verbose 来查看FEL设备列表。

FEL 是一种利用主机USB与全志SoC 的Boot ROM进行通讯的一种低级别手段。被用于最初始的片上编程活动以及设备恢复的手段。

进入FEL模式,根据不同的板子可能有不同的进入方法。有的可以进行boot0或boot1初始化,有的不行。
如果你打算使用FEL模式去获取设备信息,可以考虑选取一种方法初始化到boot1状态。不同的板子可能有好几种方法,包括不限于:

  • 1、如果你的板子上有个专门的按钮,可以通过开机时保持按住这个按钮,可以进入FEL模式
  • 2、有可能通过VOL+或其他按钮在开机时保持按住,进入boot1
  • 3、通过串口控制台UART
    ……
    等等

对于Orange Pi Zero 2 (H616),只要在不插TF卡的状态下,USB连接,既可以进入FEL模式。

在Ubuntu或其他Linux发行版情况下可以通过libusb库直接连接设备。
在Windows上需要Zadig安装WinUSB驱动来实现。
在这里插入图片描述

6、usb-boot

已经废弃的遗留的USB启动程序。

7、fel-pio

可以在FEL模式下启用IO寄存器访问。这个程序不应该直接使用。

8、fel-sdboot

一个用于ARM本地启动代码,用来强制进入FEL模式,可以直接启动到FEL模式而无需按任何按钮。

9、jtag-loop

jtag模式

10、sunxi-bootinfo

从 Allwinner 设备中拉取启动文件(boot0/boot1)

11、meminfo

这是一个设备端工具,可以读取寄存器信息并且打印所有需要添加到uboot的设备支持。这个工具要求静态编译,以便也可用于Android系统。

12、script-extractor

设备端工具,用于读取RAM中魔法地址0x4300000中的script.bin数据并且保存到文件中,这个工具需要静态编译,可用于Android设备中。不过要注意的是这个文件只能用于基于FEX的内核中,在基于主线内核的设备树没有任何作用。

13、phoenix-info

读取通过 phoenixcard工具创建的SD卡镜像信息并且从隐藏分区中释放嵌入式启动代码和固件文件,不过对于LiveSuit 的镜像没有用。

14、sunxi-nand-part

sunxi-nand-part 是专门为sunxi 的NAND设备重新分区的工具。应当以设备的架构交叉编译,而且需要对内核打一个特别的补丁,为将整个NAND作为一个块设备暴露使用。

4、运行uboot

通过以下命令可以在开发板上运行我们编译好的uboot

./sunxi-fel uboot u-boot-sunxi-with-spl.bin
 
  • 1

参考文献:
1.Sunxi-tools
2.BROM
3.FEL/USBBoot
4.Github:sunxi-tools
5.FEL
6.LiveSuit images

 

标签:FEL,全志,编译,Ubuntu,工具,tools,make,sunxi
From: https://www.cnblogs.com/zxdplay/p/17800270.html

相关文章

  • Ubuntu20.04 开机启动服务
    1、编写开机自启脚本1cd/etc/systemd/system2sudovimhello.service脚本内容:[Unit]Description=hello[Service]Type=simpleExecStart=/mnt/data1/hello/loongRestart=always[Install]WantedBy=multi-user.target2、启动sudosystemctlstarthello.service......
  • Ubuntu18.04安装mysql5.7.27
    步骤如下:1.获取mysql-apt-config工具wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.11-1_all.deb2.安装config工具第一项点进去选择5.7(默认是8.0)dpkg-imysql-apt-config_0.8.11-1_all.deb3.更新源sudoapt-getupdate4.安装mysqksudoapt-getinstallmysql-server......
  • Ubuntu安装8188fu驱动
    ##https://github.com/kelebek333/rtl8188fuREADMERTL8188FUdriverforLinuxkernel4.15.x~6.5.x(LinuxMint,UbuntuorDebianDerivatives)info:rtl8188fusupportwillbeaddtortl8xxxumoduleofLinuxkernel. https://patchwork.kernel.org/project/linu......
  • 三步释放 Vmware 中 Ubuntu 系统占用的空间
    1.清除缓存删除Vmwaretools产生的缓冲文件文件位置:用户目录下.cache/vmware/drag_and_drop,这个路径下的文件都可以删除。为了在windows和ubuntu之间拷贝数据方便,在vmware上安装vmwaretools,之后会在用户目录下的.cache/vmware/drag_and_drop/路径下创建一些缓存区目......
  • 【全志R128外设模块配置】USB外设功能配置
    USB外设功能配置USB功能简介USB功能模块包括了USBHost,USBDevice和OTG功能。USBHost目前已经支持上的功能有:MassStorage,UVC。USBDevice目前已经支持上的功能有:ADB,UAC。OTG主要用作Host与Device的切换,如当板子通过USB线连接到USB主机(PC)上时,此时OTG是......
  • 记一次ubuntu服务器挂载磁盘挂载操作记录
    操作背景:服务器重启后,/OPT目录下的数据全部不见了。排查是数据盘没有成功挂载导致。推断之前是临时挂载,未配置到挂载信息配置文件导致。操作目的:配置挂载信息,以后重启也会自动挂载。开始配置:查看设备UUID使用命令:blkid查看设备:/dev/vdb或者使用命令:ls-l/dev/disk/by-uuid......
  • Ubuntu 服务器 /var/log/messages 文件没内容
    记录以下Ubuntu服务器的messages日志文件问题的处理我的服务器版本是Ubuntu22.04。默认是没有开启系统运行日志记录的,这一点无疑是个巨大的安全隐患,系统出了问题都无从查起。第一步开启/var/log/messages日志文件配置#vim/etc/rsyslog.d/50-default.conf...*.=info;*.=......
  • ubuntu根盘扩容
    查看扩容前的磁盘容量root@fhj:~#df-h文件系统容量已用可用已用%挂载点udev3.9G03.9G0%/devtmpfs793M2.0M791M1%/run/dev/sda198G85G8.2G92%/tmpfs3.9G03.9G0%/dev/s......
  • Ubuntu Lamp环境
    安装更新Ubnutu服务器sudoaptupdatesudoaptupgrade安装ApacheWeb服务器sudoaptinstallapache2检查ApacheWeb状态sudosystemctlstatusapache2配置Apache环境设置防火墙设置[可选]查看可用应用程序配置文件sudoufwapplist列出配置文件及包含规则......
  • Ubuntu 系统管理篇
    账户管理sudo //一般用户,有时需要用户自己的密码su//切换root用户权限,输入后需要rootpassword确认sudosu//临时申请root权限文件管理访问权限Linux文件访问权限Linux文件所属用户及用户组cd传送cd..///回到当前目......