Raspberry Pi 3 support

Michael Tuexen tuexen at fh-muenster.de
Thu Oct 20 15:57:18 UTC 2016


> On 19 Oct 2016, at 02:21, Shawn Webb <shawn.webb at hardenedbsd.org> wrote:
> 
> On Tue, Oct 18, 2016 at 05:01:23PM -0700, Oleksandr Tymoshenko wrote:
>> 
>>> On Oct 18, 2016, at 12:49 PM, Shawn Webb <shawn.webb at hardenedbsd.org> wrote:
>>> 
>>> On Mon, Oct 17, 2016 at 10:06:31AM -0400, Shawn Webb wrote:
>>>> On Mon, Oct 17, 2016 at 12:33:27AM -0600, Ross Alexander wrote:
>>>>> On Fri Oct 14 22:10:56 UTC 2016, Shawn Webb wrote:
>>>>> 
>>>>>> I've documented the steps I took to install FreeBSD on my RPI3:
>>>>>>    https://wiki.freebsd.org/arm64
>>>>>> I hope I didn't miss anything. It's a wiki, so if I did, feel free to
>>>>>> correct it (or let me know and I can correct it, too).
>>>>> 
>>>>> I'm referencing https://wiki.freebsd.org/arm64/rpi3 as it seems
>>>>> to be "the one".  The following notes are meant to be clarifications
>>>>> for people as clueless as myself -
>>>>> 
>>>>> You say: "Download all the files from the boot directory in the
>>>>> official Raspberry Pi firmware repository on GitHub."  I read that as
>>>>> 
>>>>>    newfs_msdos -F 16 /dev/da0s1
>>>>>    mount -t msdosfs /dev/da0s1 /mnt0
>>>>>    cd /mnt0
>>>>>    svn checkout https://github.com/raspberrypi/firmware/trunk/boot/
>>>>>    mv boot/* .
>>>>>    rm -R boot
>>>>> 
>>>>> You say: "Copy $MAKEOBJDIRPREFIX/arm64.aarch64/<svn-checkout-path**>/sys/boot/efi/boot1/boot1.efi
>>>>> to /mnt/EFI/BOOT/bootaa64.efi".  I read that as
>>>>> 
>>>>>    mount -t ufs /dev/da0s2a /mnt1
>>>>>    mkdir -p /mnt0/EFI/BOOT
>>>>>    cp /mnt1/boot/boot1.efi /mnt0/EFI/BOOT/bootaa64.efi
>>>>> 
>>>>> given that /dev/da0s2a is all the stuff from "Building", "World", and
>>>>> "Kernel" sections and a "make -s installworld installkernel distribution
>>>>> KERNCONF=RPI3 DESTDIR=/mnt1 TARGET=arm64 TARGET_ARCH=aarch64".
>>>>> 
>>>>> And hey, guess what: it boots fine :).  No hints as to how many times
>>>>> I got it wrong, though.
>>>> 
>>>> Hey Ross,
>>>> 
>>>> Good catch. What I'll do is add a "prerequisites" section, instructing
>>>> on how and where to download the required files. Then I'll refactor that
>>>> bit to make better sense.
>>> 
>>> Status update for FreeBSD on the RPI3:
>>> 
>>> 1) There is now a sysutils/u-boot-rpi3 port. Thanks Diane Bruce!
>>> 2) Using clang 3.9.0 + lld in base, one can build and install some ports
>>> with a few workarounds. boot1.efi, loader.efi, and the kernel need to
>>> come from a non-clang 3.9.0 branch (HEAD).
>>> 3) jemalloc has issues on the RPI3, can be worked around by disabling
>>> tcache via malloc.conf. Diane Bruce ponders whether this could be
>>> related to locking on arm64.
>>> 4) linking dynamically-loaded executables (via installing ports entries)
>>> has issues
>>> 5) SMP support is being actively worked on by Diane Bruce
>>> 6) I need to update the documentation to use the u-boot-rpi3 port
>>> 7) I need to update the documentation to use crochet now that crochet
>>> supports the rpi3 and we have the u-boot-rpi3 port
>>> 
>>> All this has been documented in more detail at the RP3 wiki page:
>>> 
>>> https://wiki.freebsd.org/arm64/rpi3 <https://wiki.freebsd.org/arm64/rpi3>
>>> 
>>> I'm going to start researching in more detail the jemalloc and dynamic
>>> linking issues this weekend. If someone gets to it sooner than me, then
>>> yay! Otherwise, I'm happy to take a gander.
>>> 
>>> Again, if anyone has any suggestions for the documentation, please let
>>> me know.
>> 
>> Thanks for documenting this stuff, Shawn. Just for your information - 
>> I committed new kernel config that should be used instead of RPI3:
>> GENERIC-UP. I???ve updated wiki page already.
>> 
> 
> Cool! Thanks!
I followed the instructions in the Wiki with the difference that I had to go
via a file image. I successfully installed it on an SD card and booted the
RPI3. The only problem is that it misses an /usr/bin/ld although it has
/usr/bin/cc

Any idea what might went wrong?

Best regards
Michael
> 
> -- 
> Shawn Webb
> Cofounder and Security Engineer
> HardenedBSD
> 
> GPG Key ID:          0x6A84658F52456EEE
> GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89  3D9E 6A84 658F 5245 6EEE

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5367 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20161020/6ee4dc42/attachment.bin>


More information about the freebsd-arm mailing list