I have the SD on the host Mac whereas I build on an Ubuntu in a VM. So instead of figuring out how to get my raw SD card to my VM, I used binwalk
instead:
binwalk openwrt-rockchip-armv8-friendlyarm_nanopi-r2s-squashfs-sysupgrade.img
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
132304 0x204D0 device tree image (dtb)
8388608 0x800000 device tree image (dtb)
8393148 0x8011BC CRC32 polynomial table, little endian
9126140 0x8B40FC device tree image (dtb)
33554432 0x2000000 Linux EXT filesystem, blocks count: 4096, image size: 4194304, rev 2.0, ext2 filesystem data, UUID=84173db5-fa99-e35a-95c6-28613cc73cc7, volume name "kernel"
40063984 0x26353F0 MPEG transport stream data
41443328 0x2786000 ELF, 64-bit LSB shared object, version 1 (SYSV)
41609216 0x27AE800 CRC32 polynomial table, little endian
41925395 0x27FBB13 Neighborly text, "neighbor get requestrequest"
41925445 0x27FBB45 Neighborly text, "neighbor get request get request"
41925500 0x27FBB7C Neighborly text, "neighbor get request"
41925769 0x27FBC89 Neighborly text, "neighbor get requestrequest"
41925819 0x27FBCBB Neighborly text, "neighbor get requestest"
41925865 0x27FBCE9 Neighborly text, "neighbor get request"
41925907 0x27FBD13 Neighborly text, "neighbor dump requestbor dump request"
41925965 0x27FBD4D Neighborly text, "neighbor dump request dump request"
41926020 0x27FBD84 Neighborly text, "neighbor dump request attribute in neighbor dump request"
41926097 0x27FBDD1 Neighborly text, "neighbor dump requestequest"
41926139 0x27FBDFB Neighborly text, "neighbor table dump requestbor table dump request"
41926197 0x27FBE35 Neighborly text, "neighbor table dump request neighbor table dump request"
41926261 0x27FBE75 Neighborly text, "neighbor table dump requestork address not specified"
41926440 0x27FBF28 Neighborly text, "Neighbor entry is now dead"
42856736 0x28DF120 Unix path: /dev/vc/0
42941992 0x28F3E28 Ubiquiti partition header, header size: 56 bytes, name: "PARTNAME=%s", base address: 0x74790A00, data size: 23295090 bytes
42947072 0x28F5200 xz compressed data
43057672 0x2910208 Unix path: /lib/firmware/updates/5.4.137
43135789 0x292332D PARity archive data - Index file
43209137 0x29351B1 Copyright string: "Copyright(c) Pierre Ossman"
43238056 0x293C2A8 Unix path: /sys/firmware/devicetree/base
43239953 0x293CA11 Unix path: /sys/firmware/fdt': CRC check failed
43255809 0x2940801 Neighborly text, "neighbor table overflow!app_solicit"
43281696 0x2946D20 Neighborly text, "NeighborSolicits"
43281720 0x2946D38 Neighborly text, "NeighborAdvertisementsErrors"
43284858 0x294797A Neighborly text, "neighbor %.2x%.2x.%pM lost hash_elasticity option has been deprecated and is always %u"
46088192 0x2BF4000 device tree image (dtb)
67108864 0x4000000 Squashfs filesystem, little endian, version 4.0, compression:xz, size: 2569966 bytes, 831 inodes, blocksize: 262144 bytes, created: 2021-07-31 17:21:01
As you can see it's chatty and detects more than there is, but I do see what My problem is: my kernel and squashfs are put at 32M and 64M respectively, so I would always come out a few MB past 64M.
I guess I need to understand what determines where in the image these partitions end up and/or what size they are.
(This is a FriendlyElec Nanopi R2S, based on a Rockchip 3328.)