Fedora 27 on Pine64
#1
Official Fedora support is nearing the light of day from the good folks on the Fedora ARM team. Note to admins here, it may be time to add a Fedora Sub Forum on this site. :-)

If you are interested in running a pre-release version of Fedora 27 on your Pine64, here's what you need to do at this point in its development. Note, Fedora's philosophy eschews proprietary software as much as possible, so if upstream support isn't yet available, it won't be in Fedora. There's no graphical support yet, so you'll only be able to watch the OS boot on the serial console. On first boot, you can create a user, set the timezone, etc. Then you can log in. From there, once ethernet is established, you can SSH to the board.

Here are the steps as I best understand them. I'll update as needed:

*) Acquire a UART cable for using the serial console. Reference this resource:
http://linux-sunxi.org/Pine64#Serial_port_.2F_UART

*) Obtain one of the daily Fedora builds from Koji. I'd recommend one of either the Minimal or Server builds:
Minimal: https://koji.fedoraproject.org/koji/pack...geID=24072
Server: https://koji.fedoraproject.org/koji/pack...geID=24074
Make sure there's a green check mark by the item you intend to download, as that indicates that it was successfully built that day. Remember: This is pre-release software. Eventually you'll end up with a file named similar to this (the date will be different):
Fedora-Minimal-27-20171026.n.0.aarch64.raw.xz

*) Write the image to your microSD card. Determine the device name to which you'll be writing. /dev/sdb in this example.
Code:
sudo xzcat Fedora-Minimal-27-20171026.n.0.aarch64.raw.xz | dd of=/dev/sdb bs=4M status=progress conv=fsync

*) The Fedora ARM Installer does not yet support Pine64 as a target, so the SPL/U-boot pieces currently need to be written separately to the microSD card. To get the proper images, you can install uboot-images-armv8 from Rawhide. A recent version of this is required. Otherwise there's some ugly manual steps you'll have to do. Just get the recent version, and I won't document the ugly steps. :-) If you do that, the path names you'll need to use are listed in this snippet. 
Code:
sudo dd if=/usr/share/uboot/pine64_plus/sunxi-spl.bin of=/dev/sdb bs=8k seek=1
sudo dd if=/usr/share/uboot/pine64_plus/u-boot.itb of=/dev/sdb bs=8k seek=5
sync
If you don't want to install from Rawhide, pull the uboot-images-armv8 image from here:
https://mirrors.kernel.org/fedora-second...ackages/u/
You can either install from the RPM, or even extract the RPM using CPIO:
https://blog.packagecloud.io/eng/2015/10...-packages/
Either way, adapt the code to write these two files (sunxi-spl.bin & u-boot.itb) to the microSD card.

*) Insert the microSD card into the Pine64 board. Attach the UART cable to the appropriate pins on the Pine64. Plug the USB end of the cable into your 'other' machine. Then you'll need to run a terminal from your other computer. I use:
Code:
screen -L /dev/ttyUSB0 115200

*) Power on the Pine64, and watch the fun. The initial-setup-tui program will run allowing you to set the timezone, create a user, etc.

*) Currently there is a bug that (to my knowledge) has not yet been fixed that prevents you from getting the ethernet port to work. Here is the current workaround. Execute on the Pine once you are logged in. (Or make the change on the microSD card before you boot.) You need to soft link the DTB directory that matches the kernel you will boot.
Code:
sudo ln -s /boot/dtb-4.13.x-xxx.fc27.aarch64 /boot/dtb
Then reboot, and ethernet should work.

Have fun!

Code:
# uname -a
Linux pine 4.13.8-300.fc27.aarch64 #1 SMP Wed Oct 18 15:24:54 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux
#2
Noted, will added Fedora as sub topic.
#3
Just try the new Fedora-Minimal-27-20171105.n.0.aarch64.raw with uboot-images-armv8-2017.11-0.3.rc3.fc28.noarch.rpm and it seems to work well.
But, as you mention, I had to to copy dtbs to /boot/efi folder, uboot search in the first bootable partition.

Thanks for you explanation
#4
Thank's a lot for the infos above!
Let me share an even easier way to install Fedora on the Pine64 using arm-image-installer:

Code:
#Download the Fedora Minimal image
sudo dnf install uboot-images-armv8 fedora-arm-installer
sudo fedora-arm-image-installer --image=Fedora-Minimal-27-1.6.aarch64.raw.xz --target=pine64_plus --media=/dev/sdb

The dtb symlink issue, which is mentioned above, is still present. However, the instructions above are misleading, because
the symlink should link to /dtb-4.1x.x-xxx.fc27.aarch64 (with / being the boot partition). So best create it like this:

Code:
cd /boot
sudo ln -s dtb-4.1x.x-xxx.fc27.aarch64 dtb

Remember to do the symlink fixup whenever a new kernel is being installed.
#5
This looks good, have to try that...
Come have a chat in the Pine IRC channel >>
#6
No editing function for my post found, therefore I add the link to the official Fedora download page for alternative architectures here:

https://alt.fedoraproject.org/alt/

As the Pine64 has an aarch64/arm64 CPU take the "Fedora Minimal" image from the "ARM aarch64 Architecture" section.
#7
(01-29-2018, 03:35 AM)cmuellner Wrote: No editing function for my post found, therefore I add the link to the official Fedora download page for alternative architectures here:

https://alt.fedoraproject.org/alt/

As the Pine64 has an aarch64/arm64 CPU take the "Fedora Minimal" image from the "ARM aarch64 Architecture" section.

Looks like editing functions are disabled until third post.
You can find me on IRC, Discord and Twitter


#8
(01-29-2018, 03:35 AM)cmuellner Wrote: No editing function for my post found, therefore I add the link to the official Fedora download page for alternative architectures here:

https://alt.fedoraproject.org/alt/

As the Pine64 has an aarch64/arm64 CPU take the "Fedora Minimal" image from the "ARM aarch64 Architecture" section.

Success!  I was able to get Fedora 28 Workstation to run on my Pine A64!

I used the method described by @cmuellner using Fedora running on a Dell laptop:

Code:
# Install the fedora-arm-image-installer and Fedora uboot-images-armv8 package
sudo dnf install uboot-images-armv8 fedora-arm-installer

# Install downloaded Fedora 28 Workstation image to SD card
sudo fedora-arm-image-installer --image=Fedora-Workstation-28-1.1.aarch64.raw.xz --target=pine64_plus --media=/dev/mmcblk0

I confirmed that the `ln` link to the DTB file was no longer needed.  That was the good news.  The bad news was that there was a bug in the U-Boot used that caused Fedora to only occasionally complete the boot.  The bug in U-Boot caused an erroneous `hd0` error to occur while GRUB was loading Fedora.  

After trying several SD cards and doing research on how U-Boot and Grub work, I found that this was a KNOWN ISSUE with Fedora 28.  Unfortunately the "Intermittent Boot Errors for Pine 64" didn't show up in any of my Google searches.

https://fedoraproject.org/wiki/Common_F2...oot_errors

Apparently the Allwinner A64 ARM chip has a timer issue where the last 11 bits of the timer value will erroneously be either all zero or one bits.  This can cause time to jump forward and worse go backwards which can mess up timeout and other code.

Code was added to both U-Boot and the Linux kernel to detect this and ignore these erroneous values.

For U-Boot you need uboot-tools-2018.03-6.fc28

I performed a `dnf upgrade uboot-tools` and then ran `update-uboot` to update my SD card.


Code:
[johnma@mypine64 ~]$ cat /etc/*release
Fedora release 28 (Twenty Eight)
NAME=Fedora
VERSION="28 (Workstation Edition)"
ID=fedora
VERSION_ID=28
PLATFORM_ID="platform:f28"
PRETTY_NAME="Fedora 28 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:28"
HOME_URL="https://fedoraproject.org/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=28
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=28
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation
Fedora release 28 (Twenty Eight)
Fedora release 28 (Twenty Eight)
[johnma@mypine64 ~]$ uname -a
Linux mypine64 4.16.3-301.fc28.aarch64 #1 SMP Mon Apr 23 21:45:59 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
[johnma@mypine64 ~]$
#9
(08-06-2018, 11:07 AM)heatfanjohn Wrote:
(01-29-2018, 03:35 AM)cmuellner Wrote: No editing function for my post found, therefore I add the link to the official Fedora download page for alternative architectures here:

https://alt.fedoraproject.org/alt/

As the Pine64 has an aarch64/arm64 CPU take the "Fedora Minimal" image from the "ARM aarch64 Architecture" section.

Success!  I was able to get Fedora 28 Workstation to run on my Pine A64!

I used the method described by @cmuellner using Fedora running on a Dell laptop:

Code:
# Install the fedora-arm-image-installer and Fedora uboot-images-armv8 package
sudo dnf install uboot-images-armv8 fedora-arm-installer

# Install downloaded Fedora 28 Workstation image to SD card
sudo fedora-arm-image-installer --image=Fedora-Workstation-28-1.1.aarch64.raw.xz --target=pine64_plus --media=/dev/mmcblk0

I confirmed that the `ln` link to the DTB file was no longer needed.  That was the good news.  The bad news was that there was a bug in the U-Boot used that caused Fedora to only occasionally complete the boot.  The bug in U-Boot caused an erroneous `hd0` error to occur while GRUB was loading Fedora.  

After trying several SD cards and doing research on how U-Boot and Grub work, I found that this was a KNOWN ISSUE with Fedora 28.  Unfortunately the "Intermittent Boot Errors for Pine 64" didn't show up in any of my Google searches.

https://fedoraproject.org/wiki/Common_F2...oot_errors

Apparently the Allwinner A64 ARM chip has a timer issue where the last 11 bits of the timer value will erroneously be either all zero or one bits.  This can cause time to jump forward and worse go backwards which can mess up timeout and other code.

Code was added to both U-Boot and the Linux kernel to detect this and ignore these erroneous values.

For U-Boot you need uboot-tools-2018.03-6.fc28

I performed a `dnf upgrade uboot-tools` and then ran `update-uboot` to update my SD card.


Code:
[johnma@mypine64 ~]$ cat /etc/*release
Fedora release 28 (Twenty Eight)
NAME=Fedora
VERSION="28 (Workstation Edition)"
ID=fedora
VERSION_ID=28
PLATFORM_ID="platform:f28"
PRETTY_NAME="Fedora 28 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:28"
HOME_URL="https://fedoraproject.org/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=28
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=28
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation
Fedora release 28 (Twenty Eight)
Fedora release 28 (Twenty Eight)
[johnma@mypine64 ~]$ uname -a
Linux mypine64 4.16.3-301.fc28.aarch64 #1 SMP Mon Apr 23 21:45:59 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
[johnma@mypine64 ~]$

Thanks on sharing the good info and experience Smile
#10
(08-08-2018, 12:03 AM)tllim Wrote: Thanks on sharing the good info and experience Smile

Ugh, I just found out that there currently isn't any MALI GPU support in Fedora for the A64 chip ...

It's confusing to me on how to add that support to Fedora.  Too many new names for me: UMP, SimpleFB, LIMA Driver, MESA, LIMA-MESA ...

I'm not sure what's the best way to go.

Sad


Possibly Related Threads…
Thread Author Replies Views Last Post
  Fedora 32/CentOS 8 Pine A64+ Images wideawake 2 5,336 10-02-2020, 11:38 AM
Last Post: mathiraj
  Programming languages support under PINE64 baryluk 6 12,016 09-23-2020, 11:46 PM
Last Post: Phillip Bell
  Manjaro arm on pine64+ roel 2 5,766 10-19-2019, 05:13 AM
Last Post: roel
  +PINEBOOK Fedora 30 on Pinebook sdgathman 0 3,306 08-14-2019, 11:41 AM
Last Post: sdgathman
  Volumio for PINE64 Released mikelangeloz 11 24,024 03-22-2019, 09:25 AM
Last Post: llungster
  I2S Audio patches for Pine64+ uploaded to GitHub ramstadt 1 3,947 01-19-2019, 11:31 AM
Last Post: ramstadt
  Pine64: Minimal SDL config Max11 3 5,827 01-04-2019, 03:47 PM
Last Post: Max11
  Official build procedure of ayufan pine64 r.tanaka 0 3,052 08-21-2018, 10:54 PM
Last Post: r.tanaka
  DKMS on kernel 3.10.107-pine64 obrienmd 5 8,366 06-21-2018, 05:45 PM
Last Post: evilbunny
  Gentoo for pine64 - longsleep kernel incoherent 0 3,572 12-09-2017, 08:14 AM
Last Post: incoherent

Forum Jump:


Users browsing this thread: 1 Guest(s)