原贴在这里https://bbs.aw-ol.com/topic/2338/mangopi-dual-t113-%E4%B8%BB%E7%BA%BF%E5%86%85%E6%A0%B8%E7%BC%96%E8%AF%91%E8%AE%B0%E5%BD%95感谢Evlers大佬的付出。
需要注意的是:本篇是基于所用的引导的是AWboot 而非传统的uboot-spl方式,并且是该AWboot是专为T113-S3而构建的引导。
1 . 配置AWboot编译环境 AWboot需要用到arm-none-eabi-的交叉编译工具,我这里使用到的是 gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 下载地址:https://developer.arm.com/downloads/-/gnu-rm 接下来配置编译环境
# 解压tar -vxjf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2# 创建目录sudo mkdir /usr/local/arm-none-eabi# 进入解压目录下cd gcc-arm-none-eabi-10.3-2021.10-x86_64-linux/# 将该目录下的所有文件复制到新建的目录下sudo cp -rd * /usr/local/arm-none-eabi/# 最后需要添加该工具链的环境变量使其可以在任何目录下执行,打开/etc/profile文件sudo nano /etc/profile# 在文件末尾添加以下内容PATH=$PATH:/usr/local/arm-linux-gcc/bin# 添加完毕,使路径立即生效可以使用如下命令source /etc/profile# 接下来在终端输入 arm-none-eabi-#按两次tab键进行验证2 . 编译AWboot
# 下拉 awbootgit clone https://github.com/szemzoa/awbootcd awboot# 制作编译工具cd toolsgcc mksunxi.c -o mksunxi# 修改 Makefile 中的 /bin/expr 为 /usr/bin/expr@/usr/bin/expr `/bin/cat .build_revision` + 1 > .build_revision# 编译 awbootmake如果文件夹下awboot下生成了:awboot-boot-sd.bin则表示工作正常了。
3 . 修改串口配置 AWboot 默认使用UART5作为串口调试,但是因为墨云的板子使用的是UART3,所以需要进行一些调整,好在代码比较简单,进行如下修改: 修改awboot目录下的board.cs文件,修改如图 需要注意base参数可以通过t113-s3用户手册查询到 0x02500c00 为UART3 的地址 还有就是对awboot/linux/sun8i-t113.dtsi、awboot/linux/sun8i-t113-snailpi-dual.dts 的修改 主要是增加UART3 设备树配置和 BootArgs的配置,就是类似Uboot中BootArgs的配置: 修改细微处较多,这里直接给文件吧
awboot_sun8i-t113.zip awboot/linux/sun8i-t113.dtsi 中pio节点下增加
uart3_pb6_pins: uart3-pb6-pins {pins = "PB6", "PB7";function = "uart3";};awboot/linux/sun8i-t113-snailpi-dual.dts最后增加
&uart3 {pinctrl-0 = ;pinctrl-names = "default";status = "okay";};修改 aliases
aliases {//ethernet0 = &rtl8189f;mmc0 = &mmc0;serial1 = &uart1;serial3 = &uart3;//serial5 = &uart5;};修改chosen (这个地方就是用来指定类似uboot中bootargs的地方)
chosen {stdout-path = "serial3:115200n8";/*bootargs = "mem=128M cma=72M root=/dev/mmcblk0p2 rw init=/sbin/init rootwait earlyprintk=sunxi-uart,0x02500c00 console=tty0 console=ttyS5,115200";*/bootargs = "mem=128M cma=64M root=/dev/mmcblk0p2 rw init=/sbin/init rootwait console=tty0 console=ttyS3,115200 earlyprintk=sunxi-uart,0x02500c00";};最后一个就是类似uboot指定zimage和设备树的地方因为该项目是特定版本,所以只是单纯的指定名称,不用指定要写入内存的位置。
写入TF卡:
sudo dd if=awboot-boot-sd.bin of=/dev/sdb bs=1024 seek=8最后是执行结果本篇结束
内核部分可以先看前面的原贴,墨云稍后更新。
最近编辑记录 twzy (2022-12-06 16:46:53)