FreeBSD Desktop for PineBook Pro

Hello!

This forum thread is about FreeBSD on the Pinebook Pro.

I was able to build a custom FreeBSD image running on the Pinebook Pro.
Moreover, in two versions Minimal and Desktop XFCE.

Verified that it boots from eMMC.
Booting from SD card is not guaranteed.

Here are the links to download the boot images.

FreeBSD-aarch64-13.0-RELEASE-Pinebook-Pro-20210420.img.xz

If you are unable to start with an SD card, you are very
would like to have FreeBSD DESKTOP on Pinebook Pro you can.

Option 1.
Block eMMC flash using switch 24 and launch will happen with SD card.

Option 2.
And using any bootable Linux SD card.
Burn FreeBSD image directly to eMMC flash.

Good luck everyone.
 
Last edited:
Hi. Not sure how helpful is that, but:
1. The download speed was so-so but OK. The first image was unavailable for some time today, I managed to wget it later.
2. The card was a 8 GB Hama, class 10. The 13.0 image did not even fit on the card, but I still tried to boot it.
The PineBook Pro never booted with either image, the only reaction is blinking green LED.
Thanks a lot for your work!
 
Hi. Not sure how helpful is that, but:
1. The download speed was so-so but OK. The first image was unavailable for some time today, I managed to wget it later.
2. The card was a 8 GB Hama, class 10. The 13.0 image did not even fit on the card, but I still tried to boot it.
The PineBook Pro never booted with either image, the only reaction is blinking green LED.
Thanks a lot for your work!
Thanks for your feedback.
I really want to understand why only me can do it.

The most important thing for a successful install of my image is what OS you have on the eMMC.
Because first U-boot starts from eMMC and everything depends on it.

If you lock the eMMC switch inside the Pinebook Pro, the SD boot is successful.
Therefore, be sure to report what image you have installed on the eMMC.
I can install it and determine why my image is not loading.
 
Last edited:
I have one and have been using it, my question was whether it would work with the EMMC, or only the microsd.

Also are you saying i'd need to boot from the USB adapter, or can i replace the internal EMMC? (i'd prefer the latter, but whatever works im good with)
 
I have one and have been using it, my question was whether it would work with the EMMC, or only the microsd.

Also are you saying i'd need to boot from the USB adapter, or can i replace the internal EMMC? (i'd prefer the latter, but whatever works im good with)
This adapter is only for eMMC!!!
 
Last edited:
I'm aware of that, and amidst you not understanding my question for the second time of trying to rephrase my question I guess the only way I can know whether replacing the internal emmc works with this written to it by spending a good half hour on doing that, which I was trying to avoid and why I asked if your image worked on emmc and not just the microsd. I've tried installing NetBSD with it written to emmc and it had errors, I assume because it was designed for microsd. I wasnt sure if this would do the same thin.
Yes my image works great on eMMC
 
Last edited:
I flashed your FreeBSD-CURRENT image on the eMMC of my Pinebook Pro, and it is AWESOME! VERY well done, EXCELLENT work!

For those of you who are interested in flashing the eMMC without using a USB<->eMMC adapter: I used gnome-disk-utility on Manjaro SD Card to "Restore" the FreeBSD image to the eMMC.

What was the download speed of the image?
For a few hours today the download site was inaccessible, when it did download it was ~500kb/s or less.

UPDATE: Downloading the most recent image from your site was very quick, 4mb/sec+

How long did the first loading take?
Not long at all, faster than Manjaro loads up on it's first boot.

What does not work?
20210101
:
Networking. I tried WiFi and using a USB-C <-> Ethernet adapter and neither one of them seemed to work, the only network device that shows up is lo0 (Loopback)

Shutdown - poweroff in terminal as root causes the system to hang after "Uptime:" message and does not actually power off

20210110:

No GUI, also shutdown + network problems as above


What works?
Everything else seems to work perfectly. It even boots to a nice XFCE desktop.


Apart from the networking this seems pretty much ready for prime time! Very well done and congratulations SleepWalker, keep up the excellent work and I'll keep doing what i can to test it for you!
 
I flashed your FreeBSD-CURRENT image on the eMMC of my Pinebook Pro, and it is AWESOME! VERY well done, EXCELLENT work!

For those of you who are interested in flashing the eMMC without using a USB<->eMMC adapter:
I used gnome-disk-utility on Manjaro SD Card to "Restore" the FreeBSD image to the eMMC.
Yes, this is a simple and straightforward way.
But those who know how to use the dd command can use it, for example.
xzcat -T0 FreeBSD-aarch64-13.0-DESKTOP-Pinebook-Pro-20210111.img.xz | dd of=/path/to/emmc bs=128m status=progress
What does not work?
20210101
:
Networking. I tried WiFi and using a USB-C <-> Ethernet adapter and neither one of them seemed to work, the only network device that shows up is lo0 (Loopback)
Shutdown - poweroff in terminal as root causes the system to hang after "Uptime:" message and does not actually power off
What works?
Everything else seems to work perfectly. It even boots to a nice XFCE desktop.

Built-in WiFi modules don't work on FreeBSD for ARM SBCs yet, but you can use WiFi USB stick.
That's what I do.
My image has a template for this case.
The /etc/rc.conf file contains these lines.

# USB WiFi
# wlans_rsu0 = "wlan0"
# wlans_rtwn0 = "wlan0"
# ifconfig_wlan0 = "WPA DHCP"

You need to see how your WiFi USB stick is determined
sysctl -n net.wlan.devices

My WiFi USB stick is detected in the system as rsu0, so I remove the comment symbol #, and do so.

# USB WiFi
wlans_rsu0 = "wlan0"
ifconfig_wlan0 = "WPA DHCP"

After that I add the description of my access point and restart the network.

wpa_passphrase ssid passphrase >> /etc/wpa_supplicant.conf
service netif restart
ping google.com

You can read about it here https://wiki.freebsd.org/WiFi/FAQ

PS: FreeBSD DESKTOP image 20210111 supports audio.
Personal thanks to gonzo@freebsd.org for the sound.
https://github.com/gonzoua/freebsd-src


Good luck everyone.
 
Last edited:
20210111
No Internal WiFi - As stated above, built-in WIFI modules not working yet in FreeBSD. Use a USB WiFi adapter.
Shutdown- Options for Shutdown/Reboot in GUI are not selectable, reboot works from console but poweroff from a console causes the system to hang.
Boot Logo - Previous versions would show FreeBSD logo on boot, now not displaying before startup log messages
USB-C - the Pine dock with ethernet/HDMI is not detected, and neither the ethernet/HDMI/additional USBs work. Every USB-C device i tried not detected, no dice.

Do not let this list discourage you from using this build! If you're willing to work with an external wirelesss card then this is basically good enough to use as a daily driver! Keep up the excellent work SleepWalker!
 
with the Pinebook Pro the SD has boot priority over the eMMC so if you're trying to boot an operating system from SD it is not necessary to use switch 24 to disable the eMMC. Boot order for PBP is SD, USB, then eMMC. I would try either a new SD card and/or possibly try using something like Etcher to write the image to the SD and see if that works. I have not tried booting from USB so i'm not sure if that works, but from a cursory glance your boot messages seem totally fine, nothing stands out to me as being particularly wrong.

The PBP is "finnicky" on boot, sometimes it fails to load the proper CPU firmware and causes the boot process to fail or hang. If this happens i just power off the machine and then turn it back on and keep doing that until eventually it "catches". This isn't a FreeBSD problem, it seems to happen with every PBP OS (something to do with uboot maybe?)

If your PBP goes through the boot and stops at that place could it be that it's hanging while trying to start X+XFCE? Can you ctrl-alt-f2 into a console session after it gets to link_elf: symbol backlight_get_info_desc undefined ? (username admin / password admin)
 
I booted the FreeBSD-13.0-CURRENT-arm64-aarch64-ROCKPRO64-20210107-f2b794e1e90-255641.img.xz
from usb following the README of u-boot-pinebookpro-2020.10_1. emmc was enabled and has manjaro.
the dmesg.boot from this experiment is here https://pastebin.com/raw/KQC963sz
 
20210111
No Internal WiFi - As stated above, built-in WIFI modules not working yet in FreeBSD. Use a USB WiFi adapter.
Shutdown- Options for Shutdown/Reboot in GUI are not selectable, reboot works from console but poweroff from a console causes the system to hang.
Software power off does not work yet. Will be corrected in the next image. Then you can add it to XFCE.
Boot Logo - Previous versions would show FreeBSD logo on boot, now not displaying before startup log messages
Yes, this is my mistake, I forgot to insert the file with the FreeBSD logo.
You can try to fix it. Start the console and run the commands.
su -
mount /boot/efi
cp /usr/local/share/u-boot/u-boot-pinebook-pro/splash.bmp /boot/efi
sync
umount /boot/efi
reboot

USB-C - the Pine dock with ethernet/HDMI is not detected, and neither the ethernet/HDMI/additional USBs work. Every USB-C device i tried not detected, no dice.
I don't have PINEBOOK Pro USB-C Docking Deck yet, I just ordered it yesterday :)
I will test another Docking Deck.
I have practically no USB-C devices yet, I know that USD-C SSD does not work. This is true.
Do not let this list discourage you from using this build! If you're willing to work with an external wirelesss card then this is basically good enough to use as a daily driver! Keep up the excellent work SleepWalker!
Of course I will continue to publish my custom builds because I use Pinebook Pro myself.
And I want to get the maximum hardware support.

But I can only make them better with your help.

I really want to have a way not only of what does not work, a list of what you have checked and it works.

Thanks for the feedback, you can ask me stupid questions through the system of private messages. :)

PS:
A huge request to everyone who publishes posts here -
"Please format your posts so that it is convenient for visitors to read them, use the preview button before sending, you can edit already published posts using the Edit button"
 
I tried from an usb memory stick instead, my sd-card was dying.
https://pastebin.com/raw/PVh29GvN it ends with link_elf: symbol backlight_get_info_desc undefined.
I looked at your boot log. And where is the log of u-boot itself.
I understand you have a console cable!
Submit a complete log, with messages u-boot.
If you have blocked eMMC and did not insert sd card, where did u-boot from USB start from?
Or do you have u-boot in SPI flash?

It is not written here that USB is generally interrogated when u-boot starts.
So it is not my u-boot that works for you, which one and where does it start from?

The first thing my u-boot does is draw the FreeBSD logo on the screen, if there is no logo, it’s not my u-boot !!!
 
I looked at your boot log. And where is the log of u-boot itself.
I understand you have a console cable!
Submit a complete log, with messages u-boot.
If you have blocked eMMC and did not insert sd card, where did u-boot from USB start from?
Or do you have u-boot in SPI flash?

It is not written here that USB is generally interrogated when u-boot starts.
So it is not my u-boot that works for you, which one and where does it start from?

The first thing my u-boot does is draw the FreeBSD logo on the screen, if there is no logo, it’s not my u-boot !!!
Thanks. unfortunately I do not have an consolecable. I removed the usb stick and read /var/run/dmesg.boot
I might have u-boot in SPI flash. I'll do some more research. I've also got myself some new sd-cards..
 
SUCCESS!! THANKS. New sd-card. Copied splash.bmp to efi partion as noted above. and BLOCKED EMMC.
Thanks again!
 
Need networking with this build, but have no USB wifi adapter? It's very easy to enable Tethering on this build, as if_urndis is loaded into the kernel at boot.

Step 1) connect your phone and enable tethering
Step 2) open terminal and run ifconfig to verify that the PineBookPro finds your device (mine shows up as ue0)
Step 4) enable the interface by running ifconfig ue0 up
Step 5) collect an IP address over DHCP by running dhclient ue0
Step 6) enjoy networking using your tethered phone! Remember to change ue0 in those commands to your interface if the name is different. Remember that lo0 is a loopback device that is always present and is NOT the network interface you are trying to configure for networking.
 
Is it only me or is me or is the internal microphone very low as if it misses a mic boost setting?
tested with arecord.
And a question for SleepWalker, do you have a repo with the kernel and/or your patches, if one wants to try to hack along?
Thanks.
 
I'm aware of that, and amidst you not understanding my question for the second time of trying to rephrase my question I guess the only way I can know whether replacing the internal emmc works with this written to it by spending a good half hour on doing that, which I was trying to avoid and why I asked if your image worked on emmc and not just the microsd. [...]
With all respect, dear Samuel, whereas I was able to understand your post after reading it twice and some minutes of careful re-examination of my limited vocabulary, please be aware that here on the forum there are many members participating who are non-native english speakers and thus would you mind to restrict the length of your sentences to a count of words below some reasonable number which you could also quickly estimate by keeping the number of lines of one sentence below three which would mean it is far easier to get the point without reading all through to the end of the post even for non-native english speakers and I think that's a good thing, isn't it?
 
Is it only me or is me or is the internal microphone very low as if it misses a mic boost setting?
tested with arecord.
Answering my self here
sysctl dev.es8316codec.0.recsrc: 1
uses internal mic. No driver issues. Sorry about the *noise*..
 
Back
Top