# Installing FreeBSD on Allwinner H3 (Orange Pi Lite)



## 123rfou809 (Nov 27, 2019)

Hello everyone!

I am a new member of the community and I'm really interested in getting a BSD server running on an Orange Pi Lite (Allwinner H3) to learn more about it.

I come from a Linux background, and I'm a little confused on how to install BSD. I've seen many pages here that tell you "how to install" it but to be honest it all goes over my head and it is unclear which image to use and how to write it properly (it is not just a simple Etcher write?) Can anyone tell me how to install it on an SD card to be used on an H3 in English?

Thanks in advance.


----------



## T-Daemon (Nov 27, 2019)

123rfou809 said:


> I am a new member of the community and I'm really interested in getting a BSD server running on an Orange Pi Lite (Allwinner H3) to learn more about it.


Reading the Handbook and FAQ would be a good starting point



123rfou809 said:


> ... it is unclear which image to use ...


From the FreeBSD wiki page   FreeBSD on Allwinner (sunxi) systems armv7 would be the right image. Since the Orange Pi is not listed I would try FreeBSD-12.1-RELEASE-arm-armv7-GENERICSD.img.xz  from https://download.freebsd.org/ftp/releases/arm/armv7/ISO-IMAGES/12.1/



123rfou809 said:


> ... how to write it properly (it is not just a simple Etcher write?) Can anyone tell me how to install it on an SD card to be used on an H3


How to write with Etcher I can't say, but from linux for example: After unxz(1) the compressed image `dd if=FreeBSD-12.1-RELEASE-arm-armv7-GENERICSD.img of=/dev/da0 bs=1m conv=sync`
Change /dev/da0 according to the system inserted SD card's device name, and double check it's the correct device.

After the image is written on SD card insert it in the Orange Pi and boot.


----------



## 123rfou809 (Nov 27, 2019)

Thanks a lot T-Daemon , that's exactly what I was looking for! I'm going to try this and get back here with the results.


----------



## 123rfou809 (Nov 27, 2019)

Unfortunately it did not boot. Is there a way to debug the process? Or find out where the issue is coming from?


----------



## 123rfou809 (Nov 27, 2019)

For the sake of documentation, I tried Rasbpberry-pi armv6, generics armv7, and raspberry pi 2 armv7. None worked.


----------



## 123rfou809 (Dec 5, 2019)

I made some progress, but I need some help. I wrote the genericSD version of the 13.0-CURRENT image to the sd card, and then applied a board-specific u-boot to it, and it started booting, but I got the panic shown below:


```
WARNING: Some AP's failed to start
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
arc4random: WARNING: initial seeding bypassed the cryptographic random device because it was not yet seeded and the knob 'bypass_before_seeding' was enabled.
panic: Built bad topology at 0xc0ab4a34.  CPU mask (f) != (1)
cpuid = 0
time = 1
KDB: stack backtrace:
db_trace_self() at db_trace_self
         pc = 0xc05d329c  lr = 0xc007a5c0 (db_trace_self_wrapper+0x30)
         sp = 0xc0e14c98  fp = 0xc0e14db0
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
         pc = 0xc007a5c0  lr = 0xc02b1130 (vpanic+0x164)
         sp = 0xc0e14db8  fp = 0xc0e14dd8
         r4 = 0x00000100  r5 = 0xc0b1b920
         r6 = 0xc073aab8  r7 = 0x00000000
vpanic() at vpanic+0x164
         pc = 0xc02b1130  lr = 0xc02b0efc (doadump)
         sp = 0xc0e14de0  fp = 0xc0e14de4
         r4 = 0xc0ab4a34  r5 = 0xc0e14e0a
         r6 = 0x00800001  r7 = 0x00000000
         r8 = 0x02400000  r9 = 0xc0b1bdf4
        r10 = 0xc0b18a40
doadump() at doadump
         pc = 0xc02b0efc  lr = 0xc03125e8 ($a.2+0x3f0)
         sp = 0xc0e14dec  fp = 0xc0e14e30
         r4 = 0xc0b18a40  r5 = 0xc0e14de4
         r6 = 0xc02b0efc r10 = 0xc0e14dec
$a.2() at $a.2+0x3f0
         pc = 0xc03125e8  lr = 0xc02e5c0c (sched_setup+0x10)
         sp = 0xc0e14e38  fp = 0xc0e14e60
         r4 = 0xc2291a84  r5 = 0xc0a9e5d4
         r6 = 0x00800001  r7 = 0x00000000
         r8 = 0x02400000  r9 = 0xc0b1b90c
        r10 = 0xc0b1b8fc
sched_setup() at sched_setup+0x10
         pc = 0xc02e5c0c  lr = 0xc024ae9c (mi_startup+0x2a4)
         sp = 0xc0e14e68  fp = 0xc0e14e90
         r4 = 0xc2291a84  r5 = 0xc0a9e5d4
         r6 = 0x00800001  r7 = 0x00000000
         r8 = 0x02400000  r9 = 0xc0b1b90c
        r10 = 0xc0b1b8fc
mi_startup() at mi_startup+0x2a4
         pc = 0xc024ae9c  lr = 0xc00002c4 (_start+0x144)
         sp = 0xc0e14e98  fp = 0x00000000
         r4 = 0xc00003f8  r5 = 0xc0b78000
         r6 = 0x00000000  r7 = 0x00c52078
         r8 = 0xc0d4b000  r9 = 0x58f3a180
        r10 = 0x00000000
_start() at _start+0x144
         pc = 0xc00002c4  lr = 0xc00002c4 (_start+0x144)
         sp = 0xc0e14e98  fp = 0x00000000
KDB: enter: panic
[ thread pid 0 tid 100000 ]
Stopped at      kdb_enter+0x58: ldrb    r15, [r15, r15, ror r15]!
db>
```

Has anyone encountered this before?


----------



## JohnnySorocil (Feb 24, 2020)

Not familiar with your exact problem but I was able to boot 12.1-RELEASE and 13.0-CURRENT on similar board (Orange Pi Zero, Allwinner H2+ which is H3 without some features).


----------



## MG (Feb 25, 2020)

JohnnySorocil said:


> Not familiar with your exact problem but I was able to boot 12.1-RELEASE and 13.0-CURRENT on similar board (Orange Pi Zero, Allwinner H2+ which is H3 without some features).



How did you do it? I'm desperately trying to build an image with crochet. I both a have a Zero and a One but never managed to build a working image from source, and can't find one online either. I tried 12.1 and HEAD, only need wired network.


----------



## Criosphinx (Feb 25, 2020)

I've been running FreeBSD 12 on a OrangePi One for a while now.

I assume you that have installed the bootloader for it sysutils/u-boot-orangepi-one and followed the instructions from the release announcement
You will not get a console through the HDMI port, you have to either connect to the serial console with an adapter or through ssh.


> For convenience for those without console access to the      system, a freebsd user with a password of      freebsd is available by default for ssh(1)      access.  Additionally, the root user password is      set to root, which it is strongly recommended to      change the password for both users after gaining access to      the system.



If it doesn't not work I would first try with another SD card.


----------



## MG (Feb 25, 2020)

I have class 10 SD-cards that run Debian and Armbian on both boards. Currently I got as far as seeing the FreeBSD bootmenu on the OPI One, which gets dumped through the kernel init output. After that, all freezes on "kernel args (null)". Which kernel configuration and which dts file are required?


----------



## JohnnySorocil (Feb 26, 2020)

MG said:


> How did you do it? I'm desperately trying to build an image with crochet. I both a have a Zero and a One but never managed to build a working image from source, and can't find one online either. I tried 12.1 and HEAD, only need wired network.



I didn't try yet to build my own images, "GENERICSD" works for me.
For my Orange Pi Zero I tried with:

ftp://ftp1.freebsd.org/pub/FreeBSD...1/FreeBSD-12.1-RC2-arm-armv7-GENERICSD.img.xz

ftp://ftp1.freebsd.org/pub/FreeBSD...T-arm-armv7-GENERICSD-20200220-r358133.img.xz


```
pkg install u-boot-orangepi-zero
doas dd if=./FreeBSD*.img of=/dev/mmcsd0 bs=1M conv=sync
dd if=/usr/local/share/u-boot/u-boot-orangepi-zero/u-boot-sunxi-with-spl.bin of=/dev/mmcsd0 bs=1024 seek=8 conv=sync
```

They will work and use dtb/sun8i-h2-plus-orangepi-zero.dtb IIRC.
Some thing won't work (I2C, USBs and sound out on expansion board, UARTs other than UART0) but it will definitely.
I was amazed actually pretty with experience - a few months before it was different - you need to patch and build your own u-boot which won't work, then you download one built by manu which will work. Then all mess with built-in devices tree vs Linux... OpenBSD a few months before also required finding the right device tree, but FreeBSD since 12.1 works mostly out of the box


----------



## MG (Feb 27, 2020)

Thx, it works with serial output on a OPI Zero 512. Never actually tried this, I was thinking the u-boot.img from the sysutils/u-boot-orangepi... ports was supposed to be the required file to write to the card, as crochet uses this file by default in the Orangepi-One setup.sh script.
Now I'm going to try a manual buildworld again...


----------



## alfa (Aug 8, 2020)

Hi everyone, here is Step by step guide about installing Freebsd 13.0  on orange pi one(H3)





_View: https://youtu.be/QqD6RXI89tg_


----------



## ipizhenko (Oct 28, 2020)

Hi, I've got Orange Pi Plus (the model which is no longer manufactured, as I understand, since it is no longer on the website, but has the same Allwinner H3 as many other available models). Interesting, it has SATA controller on it. Anyway, I'd like to run FreeBSD on it. I've tried to do with above video, but there is no u-boot customization package for the Orange Pi Plus. I've looked at u-boot sources in the original GitLab repo, and seems like there are all required source DTB files for the Orange Pi Plus. Is there any instructions how to build own u-boot customization package like those ones already in the FreeBSD repos? I want to try building it for my Orange Pi Plus.


----------



## alfa (Jan 16, 2021)

ipizhenko said:


> Hi, I've got Orange Pi Plus (the model which is no longer manufactured, as I understand, since it is no longer on the website, but has the same Allwinner H3 as many other available models). Interesting, it has SATA controller on it. Anyway, I'd like to run FreeBSD on it. I've tried to do with above video, but there is no u-boot customization package for the Orange Pi Plus. I've looked at u-boot sources in the original GitLab repo, and seems like there are all required source DTB files for the Orange Pi Plus. Is there any instructions how to build own u-boot customization package like those ones already in the FreeBSD repos? I want to try building it for my Orange Pi Plus.


orangepi plus defconfig file is here orangepi_plus_defconfig for making u-boot image
clone uboot then
make orangepi_plus_defconfig 
make


----------



## garywb (Jun 22, 2021)

alfa: How do we get access to the video? It keeps indicating that it is private even though I'm signed in to the forum.


----------



## Vull (Jun 23, 2021)

garywb said:


> alfa: How do we get access to the video? It keeps indicating that it is private even though I'm signed in to the forum.


If you mean the video in post #13, that video has been made private on youtube, by the person who uploaded it to youtube. Post #13 was made on Aug 8, 2020, when the youtube link was presumably still publicly viewable.


----------



## alfa (Jun 27, 2021)

garywb said:


> alfa: How do we get access to the video? It keeps indicating that it is private even though I'm signed in to the forum.


Did you ask him for reactivation?


----------

