Cross-Compiling to ARM64 & .IMG

Code:
SRCBRANCH="base/releng/12.1@r363030"

The added the line above to "RPI3.conf", then ran the release.sh command.

The RPI3 image was created in the /scratch directory, but after I flash it to the RPI3, it boots up fine until I get to the login screen, then everything becomes unresponsive. I am trying a different revision of 12.1
 
Both build complete, but I think GrowthFS is causing this problem on both images created, how can I stop GrowthFS from initiating?
 
I need a USB SDcard adapter for this, and it might work. It would also be easier to boot the mounted SD Card in the VM I am now running on my machine too. :oops::rolleyes:
 
I too have been fighting a cross compile (host is amd64, target is arm64) 12.2 RELEASE PI3 build image of my own.

Source
URL: https://svn.freebsd.org/base/releng/12.2
Revision: 367493

Method 1 - I made a command line buildworld (GENERIC) with arm64 according to the manual and lots of blogs and Installed to the ufs partition of the disk image. I copied /etc and /boot conf files to the ufs partition of my pi3 image from the 12.2 release pi3 image. I copied the msdos partion from the 12.2 release pi3 image to my pi3 image.
Method 2 - I used crochet with my own u-boot-rpi3-2020.10 and rpi-firmware-120200723 built in poudriere. I had to replace the uboot.bin & EFI/BOOT/bootaa64.efi files of the crochet build with the files from the 12.2 release pi3 image.

Results - no network plugged in at boot up
make Method 1 - closest I came was dmesg output up to where the keyboard driver was being configured, and the next line would have been the loop back "lo0: link state changed to up" message, but it just hung.

crochet Method 2 - I got a working system, but the beetsie boot menu displayed scrambled characters (maybe because it was configured with no color??).
 
I am coming up on a full year since trying. I am focusing on using release.sh assuming that will be supported more readily. I modified the release.sh to checkout a specific src commit and to use pkg if the ports were not enabled. I managed to build an image file from release.sh 13.0-Release p4, src git commit 940681634ee17, and the msdosfs files from pkg u-boot-rpi-arm64-2021.07 and rpi-firmware-1.20210303.g20210303. However, my image would not boot unless I replaced u-boot.bin with a copy from the aarch64-RPI SD card image. All other msdosfs files matched between my release.sh build and the SD card image.

Does anyone know why the u-boot.bin file from u-boot-rpi-arm64-2021.07 does not work? Remember, all other msdosfs files from pkg on my build match the msdosfs files from the SD card image.
I next tried allowing release.sh to build u-boot and get necessary msdosfs files from ports. My ports build image did not work, even after replacing the ports built u-boot.bin with the SD card image. I did not do a comparison of the remaining msdosfs files.

Does anyone know if the ports u-boot-rpi-arm64 or rpi-firmware require configuring before building or why it may not be working for me?

Has anyone been successful at building a working u-boot.bin from ports or used release.sh to produce a 100% working SD image for sh release.sh -c arm64/RPI?

The runtime error at SD image boot time on my RPI3B+ SD card, is a once "Missing environment variable pxeuuid" followed by a repeated "Missing environment variable bootfile". Booting eventually gives up and drops to the u-boot prompt.
 
Update - Good news! I was successful at building my own u-boot.bin from ports on the base system, outside of the release build directory. I used the ports all-depends-list target to generate a list of dependencies (removing the u-boot related packages), and installed the dependencies from packages. Returning to ports sysutils/u-boot-rpi-arm64, I issued a build and install, which put u-boot-rpi-arm64-2020.10 into /usr/local/share/u-boot/u-boot-rpi-arm64/u-boot.bin. I then replaced the non-working u-boot.bin from my release.sh build with my ports build in the release.sh built .img file (mount the img file with mdconfig, then mount the msdos partition, you can replace the u-boot.bin file at that point). I burned the SD card and it worked in my Pi3B+. Now, to get the release.sh process to create a working u-boot.bin, and to get familiar enough to not have to use release.sh (rebuilds everything from scratch, one thing nice about Crochet is that it would re-use, I just need to figure out how to do the same with release).
 
I noticed in the dependencies list for u-boot-rpi-arm64, perl5.32. In the packages, perl5 cannot be referenced in this way. It must be referenced as perl5-5.32 or as perl5. My pkg listing also had perl5.30 and perl5.34. If u-boot mus have perl5.32, then the dependency needs to be changed to perl5 or perl5-5.32.
 
Back
Top