Add support for purple-pi-oh
east4ming opened this issue · 42 comments
你好, 我是新人, 希望增加对 purple-pi-oh 的支持.
但是不了解该 board 对应的u-boot 文件(idbloader.bin, u-boot.itb)应该从哪里获取. 请帮忙.
相关资料:
- Purple-Pi-OH Linux SDK编译手册 (yuque.com)
- 源码 Linux SDK 地址: 链接:https://pan.baidu.com/s/1f2Z5MHUJTM7GuDbP0vdVJw?pwd=1234 提取码:1234
谢谢!
https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/documents/README.cn.md
12.11.2 里是编译u-boot的方法。
如果是从已经编译好的ubuntu/debian/armbian中复制的话,一般在/usr/lib/linux-u-boot-xxx里
https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/documents/README.cn.md
12.11.2 里是编译u-boot的方法。 如果是从已经编译好的ubuntu/debian/armbian中复制的话,一般在/usr/lib/linux-u-boot-xxx里
你好, 我选择按照purple-pi-oh官方提供的文档编译u-boot, 编译后输出文件如下, 请问应该选择哪些文件?
$ ls -lrt
-rw-rw-r-- 1 casey casey 972064 9月 7 11:12 u-boot.map
-rwxrwxr-x 1 casey casey 10406240 9月 7 11:12 u-boot
-rw-rw-r-- 1 casey casey 389663 9月 7 11:12 u-boot.sym
-rw-rw-r-- 1 casey casey 202489 9月 7 11:12 System.map
-rwxrwxr-x 1 casey casey 3523398 9月 7 11:12 u-boot.srec
-rwxrwxr-x 1 casey casey 1225496 9月 7 11:12 u-boot-nodtb.bin
-rw-rw-r-- 1 casey casey 1239761 9月 7 11:12 u-boot-dtb.bin
-rw-rw-r-- 1 casey casey 14265 9月 7 11:12 u-boot.dtb
-rw-rw-r-- 1 casey casey 1239768 9月 7 11:12 u-boot-dtb-kern.bin
-rw-rw-r-- 1 casey casey 1370340 9月 7 11:12 u-boot.bin
drwxrwxr-x 10 casey casey 4096 9月 7 11:12 tpl
drwxrwxr-x 13 casey casey 4096 9月 7 11:12 spl
-rw-rw-r-- 1 casey casey 11894 9月 7 11:12 u-boot.cfg.configs
-rw-rw-r-- 1 casey casey 402376 9月 7 11:12 bl31.elf
-rw-rw-r-- 1 casey casey 457112 9月 7 11:12 tee.bin
-rw-rw-r-- 1 casey casey 8192 9月 7 11:12 bl31_0xfdcd0000.bin
-rw-rw-r-- 1 casey casey 8192 9月 7 11:12 bl31_0xfdcce000.bin
-rw-rw-r-- 1 casey casey 40960 9月 7 11:12 bl31_0xfdcc1000.bin
-rw-rw-r-- 1 casey casey 20259 9月 7 11:12 bl31_0x0006a000.bin
-rw-rw-r-- 1 casey casey 7732 9月 7 11:12 bl31_0x00068000.bin
-rw-rw-r-- 1 casey casey 163840 9月 7 11:12 bl31_0x00040000.bin
-rw-rw-r-- 1 casey casey 469440 9月 7 11:12 rk356x_spl_loader_v1.15.112.bin
drwxrwxr-x 2 casey casey 4096 9月 7 11:12 fit
-rw-rw-r-- 1 casey casey 4194304 9月 7 11:12 uboot.img
$ ll fit
-rw-rw-r-- 1 casey casey 2083328 9月 7 11:12 uboot.itb
-rw-rw-r-- 1 casey casey 3010 9月 7 11:12 u-boot.its
build_uboot_arm1804_20230907_111609.logs.txt
附件是编译日志.
这是配置表,一般就这3种组合。
你截图不全,没看到idbloader文件。
编译后 u-boot 目录下所有的 .img 和 .bin 见下, 请问具体是哪个? 谢谢
casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/u-boot$ find . -name "*.bin" -type f
./spl/u-boot-spl.bin
./spl/u-boot-spl-nodtb.bin
./spl/u-boot-spl-dtb.bin
./u-boot-nodtb.bin
./tee.bin
./u-boot-dtb.bin
./bl31_0x0006a000.bin
./examples/standalone/hello_world.bin
./rk356x_spl_loader_v1.15.112.bin
./tools/binman/test/descriptor.bin
./bl31_0x00068000.bin
./bl31_0xfdcc1000.bin
./bl31_0xfdcd0000.bin
./u-boot-dtb-kern.bin
./bl31_0xfdcce000.bin
./tpl/u-boot-tpl.bin
./tpl/u-boot-tpl-nodtb.bin
./bl31_0x00040000.bin
./u-boot.bin
casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/u-boot$ find . -name "*.img" -type f
./uboot.img
看他的文档,就1个文件:uboot.img
使用方法看他的官方文档
好的, 刚刚我又根据purple pi oh官方文档完整的构建一次, 输出结果如下:
casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/IMAGE/IDO-PI-OH3566-V1_20230907.1211_RELEASE_TEST$ tree .
.
├── build_cmd_info
├── IMAGES
│ ├── boot.img
│ ├── MiniLoaderAll.bin
│ ├── misc.img
│ ├── oem.img
│ ├── parameter.txt
│ ├── recovery.img
│ ├── rootfs.ext4
│ ├── rootfs.img
│ ├── uboot.img
│ ├── update.img
│ └── userdata.img
└── PATCHES
└── kernel
└── vmlinux
3 directories, 13 files
casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/IMAGE/IDO-PI-OH3566-V1_20230907.1211_RELEASE_TEST$ du -sh IMAGES/MiniLoaderAll.bin
460K IMAGES/MiniLoaderAll.bin
请帮忙再次确认下.
另外我现在准备提交PR, 请问具体这么操作对吗?
- 在
rockchip
下创建子目录:purple-pi-oh
- 在
purple-pi-oh
目录中上传:uboot.img
(该img需要重命名吗?) - 提交PR.
谢谢!
好的, 刚刚我又根据purple pi oh官方文档完整的构建一次, 输出结果如下:
casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/IMAGE/IDO-PI-OH3566-V1_20230907.1211_RELEASE_TEST$ tree . . ├── build_cmd_info ├── IMAGES │ ├── boot.img │ ├── MiniLoaderAll.bin │ ├── misc.img │ ├── oem.img │ ├── parameter.txt │ ├── recovery.img │ ├── rootfs.ext4 │ ├── rootfs.img │ ├── uboot.img │ ├── update.img │ └── userdata.img └── PATCHES └── kernel └── vmlinux 3 directories, 13 files casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/IMAGE/IDO-PI-OH3566-V1_20230907.1211_RELEASE_TEST$ du -sh IMAGES/MiniLoaderAll.bin 460K IMAGES/MiniLoaderAll.bin请帮忙再次确认下.
另外我现在准备提交PR, 请问具体这么操作对吗?
- 在
rockchip
下创建子目录:purple-pi-oh
- 在
purple-pi-oh
目录中上传:uboot.img
(该img需要重命名吗?)- 提交PR.
谢谢!
你还需要上传那份Miniloader.bin
RK的引导有两种流程,一个是使用官方SDK,另一种是使用Uboot开源代码。前者跑出来的文件和后者跑出来的文件并不相同,但是写入的地址相同。由于官方SDK对文件有所处理,Miniloader.bin需要写入到0x0000,uboot.img写入0x4000。不太清楚目前的rebuild中的rk方案里面有无能写入到0x0000的方案。
你上面那个截图的那些bin文件主要是用来合成usbplug.bin和编译uboot.img,并不是最终成品,不可以直接烧录。
好的, 刚刚我又根据purple pi oh官方文档完整的构建一次, 输出结果如下:
casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/IMAGE/IDO-PI-OH3566-V1_20230907.1211_RELEASE_TEST$ tree . . ├── build_cmd_info ├── IMAGES │ ├── boot.img │ ├── MiniLoaderAll.bin │ ├── misc.img │ ├── oem.img │ ├── parameter.txt │ ├── recovery.img │ ├── rootfs.ext4 │ ├── rootfs.img │ ├── uboot.img │ ├── update.img │ └── userdata.img └── PATCHES └── kernel └── vmlinux 3 directories, 13 files casey@purple-build:~/Downloads/Purple-Pi-OH-sdk/rk356x_linux_sdk/IMAGE/IDO-PI-OH3566-V1_20230907.1211_RELEASE_TEST$ du -sh IMAGES/MiniLoaderAll.bin 460K IMAGES/MiniLoaderAll.bin请帮忙再次确认下.
另外我现在准备提交PR, 请问具体这么操作对吗?
- 在
rockchip
下创建子目录:purple-pi-oh
- 在
purple-pi-oh
目录中上传:uboot.img
(该img需要重命名吗?)- 提交PR.
谢谢!
你还需要上传那份Miniloader.bin
RK的引导有两种流程,一个是使用官方SDK,另一种是使用Uboot开源代码。前者跑出来的文件和后者跑出来的文件并不相同,但是写入的地址相同。由于官方SDK对文件有所处理,Miniloader.bin需要写入到0x0000,uboot.img写入0x4000。不太清楚目前的rebuild中的rk方案里面有无能写入到0x0000的方案。
你上面那个截图的那些bin文件主要是用来合成usbplug.bin和编译uboot.img,并不是最终成品,不可以直接烧录。
已提交, 请帮忙审阅.
谢谢!
单文件方案的u-boot一般是16m大小,你这个文件是4m应该不是正常文件。
你做过测试吗?这个文件的dd写入方法发一下。
单文件方案的u-boot一般是16m大小,你这个文件是4m应该不是正常文件。 你做过测试吗?这个文件的dd写入方法发一下。
Purple-Pi-OH Android/Linux固件及烧录手册
另外 4m u-boot, 我刷过机的, 可以正常开机使用.
另外提供官方的parameter.txt 分区大小供参考:
casey@purple-build:~/Downloads/Purple-Pi-OH-sdk$ cat ./rk356x_linux_sdk/IMAGE/IDO-PI-OH3566-V1_20230907.1211_RELEASE_TEST/IMAGES/parameter.txt
FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3568
MACHINE_ID: 007
MANUFACTURER: RK3568
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),0x00010000@0x00018000(recovery),0x00010000@0x00028000(backup),0x00080000@0x00038000(userdata),0x00040000@0x000B8000(oem),-@0x000F8000(rootfs:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9
现在生成的armbian.img是一个文件,你使用工具写的时候,几个文件选项是怎么选择的
现在生成的armbian.img是一个文件,你使用工具写的时候,几个文件选项是怎么选择的
你好, 这块不太懂, 不清楚具体要回答什么.
我先描述下我之前刷入armbian镜像的过程(比较曲折):
- armbian官方镜像使用ether 直接刷入tf卡
- tf卡插入开发板中, 上电, 开发板默认读取tf中的系统
- 启动后, 运行 armbian-install 命令将系统写入到 eMMC 中.
- 下电. 移除eMMC
- 上电启动. 系统从eMMC 中启动.
把你的官方下载的可以使用的armbian发个地址
我现在的rebuild不支持你这个4m文件的写入方法,如果根据你发的文档,写入这2个文件应该是这2条dd命令。
MiniLoaderAll.bin 可能不需要写入img镜像,在rk工具写入时可以用户自己选择。
# 写入 MiniLoaderAll.bin,从地址 0x00000000 开始
dd if="${bootloader_path}/MiniLoaderAll.bin" of="${loop_new}" conv=fsync,notrunc bs=1K seek=0
# 写入 u-boot,从地址 0x00004000 开始
dd if="${bootloader_path}/uboot.img" of="${loop_new}" conv=fsync,notrunc bs=1M seek=4
在这个地方,添加一个你这个设备的dd方法。
把你的官方下载的可以使用的armbian发个地址
我现在的rebuild不支持你这个4m文件的写入方法,如果根据你发的文档,写入这2个文件应该是这2条dd命令。
MiniLoaderAll.bin 可能不需要写入img镜像,在rk工具写入时可以用户自己选择。
# 写入 MiniLoaderAll.bin,从地址 0x00000000 开始 dd if="${bootloader_path}/MiniLoaderAll.bin" of="${loop_new}" conv=fsync,notrunc bs=1K seek=0 # 写入 u-boot,从地址 0x00004000 开始 dd if="${bootloader_path}/${MAINLINE_UBOOT}" of="${loop_new}" conv=fsync,notrunc bs=1M seek=4
在这个地方,添加一个你这个设备的dd方法。
官方下载的可以使用的armbian: https://www.armbian.com/station-m2/
具体说明如下:
- Station M2: 可以跑完安装流程. 但是网卡发现不了.
- Station P2: 可以跑完安装流程. 但是网卡发现不了.
- Banana pi r2pro: 可以发现 eth1 网卡. 键盘带不起来, 会将其中一个usb2 识别为eth0, 因此跑不完安装流程.
把你的官方下载的可以使用的armbian发个地址
我现在的rebuild不支持你这个4m文件的写入方法,如果根据你发的文档,写入这2个文件应该是这2条dd命令。
MiniLoaderAll.bin 可能不需要写入img镜像,在rk工具写入时可以用户自己选择。
# 写入 MiniLoaderAll.bin,从地址 0x00000000 开始 dd if="${bootloader_path}/MiniLoaderAll.bin" of="${loop_new}" conv=fsync,notrunc bs=1K seek=0 # 写入 u-boot,从地址 0x00004000 开始 dd if="${bootloader_path}/uboot.img" of="${loop_new}" conv=fsync,notrunc bs=1M seek=4
在这个地方,添加一个你这个设备的dd方法。
可以指导我一下吗? 关于"在这个地方,添加一个你这个设备的dd方法。", 请问具体的 elif
判断语句应该怎么写?
改一下把-o参数删了
-o discard,compress=zstd:6
-o discard
把你的官方下载的可以使用的armbian发个地址
我现在的rebuild不支持你这个4m文件的写入方法,如果根据你发的文档,写入这2个文件应该是这2条dd命令。
MiniLoaderAll.bin 可能不需要写入img镜像,在rk工具写入时可以用户自己选择。
# 写入 MiniLoaderAll.bin,从地址 0x00000000 开始 dd if="${bootloader_path}/MiniLoaderAll.bin" of="${loop_new}" conv=fsync,notrunc bs=1K seek=0 # 写入 u-boot,从地址 0x00004000 开始 dd if="${bootloader_path}/uboot.img" of="${loop_new}" conv=fsync,notrunc bs=1M seek=4
在这个地方,添加一个你这个设备的dd方法。
已添加, 请审阅.
ophub/amlogic-s9xxx-armbian@68b4f46
改一下把-o参数删了 -o discard,compress=zstd:6 -o discard
请问这个是为了解决什么问题, 我没有太明白.
把你的官方下载的可以使用的armbian发个地址
我现在的rebuild不支持你这个4m文件的写入方法,如果根据你发的文档,写入这2个文件应该是这2条dd命令。
MiniLoaderAll.bin 可能不需要写入img镜像,在rk工具写入时可以用户自己选择。
# 写入 MiniLoaderAll.bin,从地址 0x00000000 开始 dd if="${bootloader_path}/MiniLoaderAll.bin" of="${loop_new}" conv=fsync,notrunc bs=1K seek=0 # 写入 u-boot,从地址 0x00004000 开始 dd if="${bootloader_path}/uboot.img" of="${loop_new}" conv=fsync,notrunc bs=1M seek=4
在这个地方,添加一个你这个设备的dd方法。
miniloader对应的是idbloader,需要写入到img。工具内选择的是usbloader
6.MAINLINE_UBOOT 7.BOOTLOADER_IMG
uboot.img MiniLoaderAll.bin
dd if="${bootloader_path}/${BOOTLOADER_IMG}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=64 2>/dev/null
dd if="${bootloader_path}/${MAINLINE_UBOOT}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=16384 2>/dev/null
@13584452567
上面的2个文件,这么填写适用现在的dd位置?
6.MAINLINE_UBOOT 7.BOOTLOADER_IMG uboot.img MiniLoaderAll.bin
dd if="${bootloader_path}/${BOOTLOADER_IMG}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=64 2>/dev/null dd if="${bootloader_path}/${MAINLINE_UBOOT}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=16384 2>/dev/null
@13584452567
上面的2个文件,这么填写适用现在的dd位置?
根据他发的链接内的那份手册上来看,miniloader需要写在0x0000,并不适用目前的0x40地址。还是需要添加一个引导写入方式。
写入之后不太清楚官方sdk跑出来的bootloader能否识别到内核,这个需要等编译出来之后才能测试。
奇怪的是官方关于boot的wiki上面写的从0x40开始才是SPL,不清楚指南上为什么是0x00
(如果可以的话,最好还是想办法用主线uboot编译而不是用官方sdk)
6.MAINLINE_UBOOT 7.BOOTLOADER_IMG uboot.img MiniLoaderAll.bin
dd if="${bootloader_path}/${BOOTLOADER_IMG}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=64 2>/dev/null dd if="${bootloader_path}/${MAINLINE_UBOOT}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=16384 2>/dev/null
@13584452567
上面的2个文件,这么填写适用现在的dd位置?根据他发的链接内的那份手册上来看,miniloader需要写在0x0000,并不适用目前的0x40地址。还是需要添加一个引导写入方式。
写入之后不太清楚官方sdk跑出来的bootloader能否识别到内核,这个需要等编译出来之后才能测试。
奇怪的是官方关于boot的wiki上面写的从0x40开始才是SPL,不清楚指南上为什么是0x00
(如果可以的话,最好还是想办法用主线uboot编译而不是用官方sdk)
我看了ophub的uboot编译文档, 确实看不懂如何操作. 你们可以帮忙构建uboot吗? 有需要用到的源码我可以提供.
谢谢!
6.MAINLINE_UBOOT 7.BOOTLOADER_IMG uboot.img MiniLoaderAll.bin
dd if="${bootloader_path}/${BOOTLOADER_IMG}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=64 2>/dev/null dd if="${bootloader_path}/${MAINLINE_UBOOT}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=16384 2>/dev/null
@13584452567
上面的2个文件,这么填写适用现在的dd位置?根据他发的链接内的那份手册上来看,miniloader需要写在0x0000,并不适用目前的0x40地址。还是需要添加一个引导写入方式。
写入之后不太清楚官方sdk跑出来的bootloader能否识别到内核,这个需要等编译出来之后才能测试。
奇怪的是官方关于boot的wiki上面写的从0x40开始才是SPL,不清楚指南上为什么是0x00
(如果可以的话,最好还是想办法用主线uboot编译而不是用官方sdk)
我看了ophub的uboot编译文档, 确实看不懂如何操作. 你们可以帮忙构建uboot吗? 有需要用到的源码我可以提供.
谢谢!
可否把u-boot目录压缩一份上传文叔叔,然后把链接发给我?
如果可以的话,kernel/arm64/rockchip/boot/dts/目录下对应设备的dts文件也发一份。
(百度网盘下载实在折磨人……)
这个官方sdk里面有安卓系统,linux系统。你安装官方的安卓系统,adb进去,把分区表的前16mb给dd备份出来。这个16 M的bootloader 文件可能直接使用到armbian,和贝壳云那样使。
sudo dd if=/dev/sdX1 of=android_partition.img bs=1M count=16
命令的sdX1改成你安卓的lsblk看到的盘符。of的位置找个可以写入的地方。可以参考文档12.11.1.1的adb方法,但导出bootloader 用上面发的命令导出完整的前16mb
https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/documents/README.cn.md
这么导出来前16mb的bootloader 文件可以用贝壳云的方法写入img文件试试。
dd if="${bootloader_path}/${BOOTLOADER_IMG}" of="${loop_new}" conv=fsync,notrunc bs=512 skip=64 seek=64 2>/dev/null
6.MAINLINE_UBOOT 7.BOOTLOADER_IMG uboot.img MiniLoaderAll.bin
dd if="${bootloader_path}/${BOOTLOADER_IMG}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=64 2>/dev/null dd if="${bootloader_path}/${MAINLINE_UBOOT}" of="${loop_new}" conv=fsync,notrunc bs=512 seek=16384 2>/dev/null
@13584452567
上面的2个文件,这么填写适用现在的dd位置?根据他发的链接内的那份手册上来看,miniloader需要写在0x0000,并不适用目前的0x40地址。还是需要添加一个引导写入方式。
写入之后不太清楚官方sdk跑出来的bootloader能否识别到内核,这个需要等编译出来之后才能测试。
奇怪的是官方关于boot的wiki上面写的从0x40开始才是SPL,不清楚指南上为什么是0x00
(如果可以的话,最好还是想办法用主线uboot编译而不是用官方sdk)我看了ophub的uboot编译文档, 确实看不懂如何操作. 你们可以帮忙构建uboot吗? 有需要用到的源码我可以提供.
谢谢!可否把u-boot目录压缩一份上传文叔叔,然后把链接发给我?
如果可以的话,kernel/arm64/rockchip/boot/dts/目录下对应设备的dts文件也发一份。
(百度网盘下载实在折磨人……)
Download link: https://wetransfer.com/downloads/170afe28fcca70848adbc741c226db8f20230908125024/58ffa54bbc37321bc67c0c3608a7dc0320230908125050/7061d0
2 items
dts.tgz
920 KB
u-boot.tgz
71 MB
你好, 我刷入了anroid, 并用adb root; adb shell
进去了; 但是里边没有lsblk
命令, 我用其他命令看了一下硬盘设备, 请问应该 dd
哪一个?
rk3566_r:/dev # df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 979M 820K 978M 1% /dev
tmpfs 979M 0 979M 0% /mnt
/dev/block/mmcblk2p11 11M 144K 11M 2% /metadata
/dev/block/dm-0 933M 930M 2.8M 100% /
/dev/block/dm-2 291M 290M 908K 100% /vendor
/dev/block/dm-4 588K 584K 4.0K 100% /odm
/dev/block/dm-3 203M 203M 632K 100% /product
/dev/block/dm-1 118M 117M 380K 100% /system_ext
tmpfs 979M 0 979M 0% /apex
tmpfs 979M 264K 978M 1% /linkerconfig
/dev/block/mmcblk2p10 356M 112K 356M 1% /cache
/dev/block/dm-5 10G 28M 10G 1% /data
tmpfs 979M 0 979M 0% /data_mirror
/dev/fuse 10G 28M 10G 1% /mnt/user/0/emulated
rk3566_r:/dev # lsblk
/system/bin/sh: lsblk: inaccessible or not found
127|rk3566_r:/dev # fdisk -l
/system/bin/sh: fdisk: inaccessible or not found
127|rk3566_r:/dev # blkid
/dev/block/zram0: UUID="d701e229-7ca6-4b00-b666-21bcc2b457a2" TYPE="swap"
/dev/block/mmcblk2p10: UUID="f4d2c73a-3228-4de3-a1b0-0eb76ac1f8fe" TYPE="ext4"
/dev/block/mmcblk2p11: UUID="bed0be14-48bb-4df2-a37d-98a2398c5fe4" TYPE="ext4"
rk3566_r:/dev # cat /proc/partitions
major minor #blocks name
1 0 8192 ram0
1 1 8192 ram1
1 2 8192 ram2
1 3 8192 ram3
1 4 8192 ram4
1 5 8192 ram5
1 6 8192 ram6
1 7 8192 ram7
1 8 8192 ram8
1 9 8192 ram9
1 10 8192 ram10
1 11 8192 ram11
1 12 8192 ram12
1 13 8192 ram13
1 14 8192 ram14
1 15 8192 ram15
254 0 1002052 zram0
179 0 15267840 mmcblk2
179 1 4096 mmcblk2p1
179 2 4096 mmcblk2p2
179 3 4096 mmcblk2p3
179 4 4096 mmcblk2p4
179 5 4096 mmcblk2p5
179 6 1024 mmcblk2p6
179 7 40960 mmcblk2p7
179 8 98304 mmcblk2p8
179 9 393216 mmcblk2p9
179 10 393216 mmcblk2p10
179 11 16384 mmcblk2p11
179 12 1024 mmcblk2p12
179 13 3186688 mmcblk2p13
179 14 11112416 mmcblk2p14
253 0 956808 dm-0
253 1 120676 dm-1
253 2 298268 dm-2
253 3 208348 dm-3
253 4 612 dm-4
253 5 11112416 dm-5
# 查看下设备是否能识别
adb devices
# 备份到合适的路径
dd if=/dev/block/mmcblk2 of=/data/local/mmcblk2.img bs=1M count=16
# 下载到电脑C盘根目录
adb pull /data/local/mmcblk2.img C:\
# 查看下设备是否能识别 adb devices # 备份到合适的路径 dd if=/dev/block/bootdevice/by-name/misc of=/data/local/misc.img bs=1M count=16 dd if=/dev/block/bootdevice/by-name/system of=/data/local/system-part.img bs=1M count=16 # 下载到电脑C盘根目录 adb pull /data/local/xxxxxx.img C:\
目录结构和你描述的不一样, 应该选择哪个?
rk3566_r:/dev/block/by-name # ls -al
total 0
drwxr-xr-x 2 root root 380 2023-09-09 12:49 .
drwxr-xr-x 6 root root 1240 2023-09-09 12:49 ..
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 backup -> /dev/block/mmcblk2p9
lrwxrwxrwx 1 root root 21 2023-09-09 12:49 baseparameter -> /dev/block/mmcblk2p12
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 boot -> /dev/block/mmcblk2p7
lrwxrwxrwx 1 root root 21 2023-09-09 12:49 cache -> /dev/block/mmcblk2p10
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 dtbo -> /dev/block/mmcblk2p5
lrwxrwxrwx 1 root root 21 2023-09-09 12:49 metadata -> /dev/block/mmcblk2p11
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 misc -> /dev/block/mmcblk2p4
lrwxrwxrwx 1 root root 18 2023-09-09 12:49 mmcblk2 -> /dev/block/mmcblk2
lrwxrwxrwx 1 root root 23 2023-09-09 12:49 mmcblk2boot0 -> /dev/block/mmcblk2boot0
lrwxrwxrwx 1 root root 23 2023-09-09 12:49 mmcblk2boot1 -> /dev/block/mmcblk2boot1
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 recovery -> /dev/block/mmcblk2p8
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 security -> /dev/block/mmcblk2p1
lrwxrwxrwx 1 root root 21 2023-09-09 12:49 super -> /dev/block/mmcblk2p13
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 trust -> /dev/block/mmcblk2p3
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 uboot -> /dev/block/mmcblk2p2
lrwxrwxrwx 1 root root 21 2023-09-09 12:49 userdata -> /dev/block/mmcblk2p14
lrwxrwxrwx 1 root root 20 2023-09-09 12:49 vbmeta -> /dev/block/mmcblk2p6
dd if=/dev/block/mmcblk2 of=/data/local/mmcblk2.img bs=1M count=16
dd if=/dev/block/mmcblk2 of=/data/local/mmcblk2.img bs=1M count=16
mmcblk2.img
你看一下贝壳云的那条配置信息,参考添加一个,打包一下试试
u-boot可以放在本地~/build-armbian/u-boot/rockchip/盒子board
你看一下贝壳云的那条配置信息,参考添加一个,打包一下试试
u-boot可以放在本地~/build-armbian/u-boot/rockchip/盒子board
好的, PR也更新了. 本地我也在试了.
你看一下贝壳云的那条配置信息,参考添加一个,打包一下试试
u-boot可以放在本地~/build-armbian/u-boot/rockchip/盒子board
本地打包报错, 请帮忙看一下:
$ sudo ./rebuild -b purple-pi-oh -k 6.1.52
[ STEPS ] Welcome to Rebuild Armbian!
[ INFO ] Server running on Ubuntu: [ Release: jammy / Host: x86_64 ]
[ STEPS ] Start Initializing Variables...
[ STEPS ] Start searching for Armbian file...
[ INFO ] Armbian rebuild file: [ Armbian_23.08.0-trunk_6.1.52.img ], Version: [ 23.08.0 ]
[ STEPS ] Start downloading dependency files...
[ INFO ] u-boot download completed.
[ INFO ] firmware download completed.
[ STEPS ] Start querying the latest kernel version...
[ INFO ] (1.1) Auto query the latest kernel version for [ specific - 6.1.1 ]
jq: error (at <stdin>:1): Cannot iterate over null (null)
[ INFO ] (1.1) [ specific - 6.1.1 ] is latest kernel.
[ STEPS ] Start downloading the kernel files...
[ INFO ] (1.1) [ specific - 6.1.1 ] Kernel download from [ https://github.com/ophub/kernel/releases/download/kernel_stable/6.1.1.tar.gz ]
首页里,安装依赖,错误是本地编译环境缺少jq.
把这个设备的dtb文件发一个,我给你打包下
本地测试方法:
# 先安装环境依赖,并克隆源码到本地
sudo apt-get update
sudo apt-get -y install $(curl -fsSL https://is.gd/depend_ubuntu2204_armbian)
git clone https://github.com/ophub/amlogic-s9xxx-armbian
# 添加armbian原文件并解压待用
cd amlogic-s9xxx-armbian
mkdir -p build/output/images
cd build/output/images
wget https://github.com/ophub/amlogic-s9xxx-armbian/releases/download/Armbian_jammy_save_2023.09/Armbian_23.08.0-trunk_6.1.52.img.gz
gzip -d Armbian_23.08.0-trunk_6.1.52.img.gz
# 添加u-boot和dtb,修改model文件添加自定义配置
cd ../../../
mkdir -p build-armbian/u-boot/rockchip/purple-pi-oh
# 把你的bootloader文件放进去purple-pi-oh目录
# 把你的dtb文件放在build-armbian/armbian-files/platform-files/rockchip/bootfs/dtb/rockchip目录
# 复制贝壳云(rk3328)的那行配置,修改 build-armbian/armbian-files/common-files/etc/model_database.conf 增加一行你的设备,其中的dtb名字和u-boot名字和上面你放的2个文件同名,board名字写对
# 编译armbian文件
sudo ./rebuild -b purple-pi-oh(你在model文件里添加的board名字)
# 生成的文件在build/output/images
首页里,安装依赖,错误是本地编译环境缺少jq. 把这个设备的dtb文件发一个,我给你打包下
https://we.tl/t-a53Y6jVHR4
purple-pi-oh 的 dtb: ido-pi-oh3566-v1.dtb
本地测试方法:
# 先安装环境依赖,并克隆源码到本地 sudo apt-get update sudo apt-get -y install $(curl -fsSL https://is.gd/depend_ubuntu2204_armbian) git clone https://github.com/ophub/amlogic-s9xxx-armbian # 添加armbian原文件并解压待用 cd amlogic-s9xxx-armbian mkdir -p build/output/images cd build/output/images wget https://github.com/ophub/amlogic-s9xxx-armbian/releases/download/Armbian_jammy_save_2023.09/Armbian_23.08.0-trunk_6.1.52.img.gz gzip -d Armbian_23.08.0-trunk_6.1.52.img.gz # 添加u-boot和dtb,修改model文件添加自定义配置 cd ../../../ mkdir -p build-armbian/u-boot/rockchip/purple-pi-oh # 把你的bootloader文件放进去purple-pi-oh目录 # 把你的dtb文件放在build-armbian/armbian-files/platform-files/rockchip/bootfs/dtb/rockchip目录 # 修改 build-armbian/armbian-files/common-files/etc/model_database.conf 增加一行你的设备,其中的dtb名字和u-boot名字和上面你放的2个文件同名,board名字写对 # 编译armbian文件 sudo ./rebuild -b purple-pi-oh(你在model文件里添加的board名字) # 生成的文件在build/output/images
跑完了 rebuild
结果如下:
$ sudo ./rebuild -b purple-pi-oh -k 6.1.52
[ STEPS ] Welcome to Rebuild Armbian!
[ INFO ] Server running on Ubuntu: [ Release: jammy / Host: x86_64 ]
[ STEPS ] Start Initializing Variables...
[ STEPS ] Start searching for Armbian file...
[ INFO ] Armbian rebuild file: [ Armbian_23.08.0-trunk_6.1.52.img ], Version: [ 23.08.0 ]
[ STEPS ] Start downloading dependency files...
[ INFO ] firmware download completed.
[ STEPS ] Start querying the latest kernel version...
[ INFO ] (1.1) Auto query the latest kernel version for [ specific - 6.1.1 ]
[ INFO ] (1.1) [ specific - 6.1.52 ] is latest kernel. (这里之前跑不通, 写死为 6.1.52 了)
[ STEPS ] Start downloading the kernel files...
[ INFO ] (1.1) [ specific - 6.1.52} ] Kernel download from [ https://github.com/ophub/kernel/releases/download/kernel_stable/6.1.52.tar.gz ]
[ INFO ] All [ 6 ] kernel files are sha256sum checked to be complete.
[ INFO ] [ 1 ] lists of Armbian board: [ purple-pi-oh ]
[ INFO ] ROOTFS type: [ ext4 ]
[ INFO ] Kernel Repo: [ ophub/kernel ], Kernel Usage: [ ]
[ INFO ] Server space usage before starting to compile:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 251G 16G 223G 7% /
[ STEPS ] Start building Armbian...
(1.1) Start building Armbian [ purple-pi-oh - stable/6.1.52 ]. Remaining space is 222G.
[🌿] (1/7) Extract armbian files.
[🌿] (2/7) Make new armbian image.
[🌿] (3/7) Copy the Armbian files.
[🌿] (4/7) Replace kernel files.
[🌿] (5/7) Refactor bootfs files.
[🌿] (6/7) Refactor rootfs files.
[🌿] (7/7) Clear temporary files.
(1.1) Armbian build successfully.
[ STEPS ] Server space usage after compilation:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 251G 17G 222G 7% /
[ SUCCESS ] All process completed successfully.
输出结果为:
$ ll build/output/images/
-rw-r--r-- 1 root root 750421837 9月 10 11:58 Armbian_23.08.0_rockchip_purple-pi-oh_jammy_6.1.52_server_2023.09.10.img.gz
解压为img后, 刚试了下用 rkdevtool 烧写, 报错:
现在在尝试用ether 写入tf卡. 写入后tf卡插到purple-pi-oh, 上电, 启动失败.
@ophub @13584452567 嗨, 请问有进展吗? 谢谢
@ophub @13584452567 两位大神, 帮帮忙吧. 有哪儿需要我做的, 我随时都可以响应的. 谢谢了
@ophub @13584452567 两位大神, 请帮帮忙吧. 真的需要你们的支持. 谢谢!
我没使用过这个多文件的系统,不了解怎么写入他的u-boot。现在的镜像是单文件的。