2018-12-24

Using the Fedora operating system on a Beaglebone Black

Setup the operating system

This is basically an experiment, Fedora runs but there is a lot of work that needs to be completed compared to the work that has already been done by the community with the official Debian image.

The official way to install the Fedora Arm image onto a SD card can be found here, Fedora Arm Wiki. This is all done from a PC. Basically it boils down to downloading the image from here, Fedora Arm Images. You will then need a machine running Fedora with the fedora-arm-installer. To install the installer.

sudo dnf install fedora-arm-installer

Assuming you are wanting to install the server image and the SD card is sdb you would then run the following from the directory containg the image.

sudo arm-image-installer --image=Fedora-Server-armhfp-29-1.2-sda.raw.xz --target=am335x_boneblack --media=/dev/sdb

Now you can insert the SD card into the Beaglebone Black and boot. As the Fedora Wiki says, you will need a monitor and keyboard connected to the Beaglebone Black using this method.

Or, you can download my prebuilt server image, burn the image to a SD card using any operating system and a progran such as Etcher. My pre-built can be downloaded from here, Pre-Built Image. The username for this image is fedora, the user and root password both are fedora. It will be a good idea to change these if you are exsposing the board to the internet.

Either way you install, you will want to expand the root partition to fill the SD card. This is easy using GPARTED. With the SD card still inserted in your PC, you will see three partitions on the SD card, the / partition is the one to expand.

To run Fedora on the Beaglebone Black you will need to run from the SD card. You can do this by holding down on the Boot Button during power up. or you can configure your hardware to automatically boot from the SD card.

To disable booting from the eMMC you will need to boot once by holding down the Boot Button with the SD card inserted. One booted, switch to root by issuing su. The run the command lsblk. This will return something like

[fedora@localhost ~]# lsblk                                                                                                                                     
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT                                                                                                               
mmcblk1      179:0    0   3.7G  0 disk                                                                                                                          
├─mmcblk1p1  179:1    0    96M  0 part                                                                                                                          
└─mmcblk1p2  179:2    0   3.6G  0 part                                                                                                                          
mmcblk1boot0 179:8    0     1M  1 disk                                                                                                                          
mmcblk1boot1 179:16   0     1M  1 disk                                                                                                                          
mmcblk0      179:24   0   7.4G  0 disk                                                                                                                          
├─mmcblk0p1  179:25   0    76M  0 part /boot/efi                                                                                                                
├─mmcblk0p2  179:26   0   489M  0 part /boot                                                                                                                    
└─mmcblk0p3  179:27   0   2.3G  0 part /                                                                                                                        
zram0        252:0    0 232.7M  0 disk [SWAP] 

From here we see the eMMC as mmcblk1 as the eMMC is only 4GB. The SD card I am using is 8GB. Now we can use fdisk to disable booting from the eMMC. Below is a run through of using fdisk. You will want to type m to see all of the available commands, we are only using a to toggle the boot flag.

[fedora@localhost ~]# fdisk /dev/mmcblk1
Welcome to fdisk (util-linux 2.27.1).                                           
Changes will remain in memory only, until you decide to write them.             
Be careful before using the write command.                                      

Command (m for help): a                                                         
Partition number (1,2, default 2): 1                                            

The bootable flag on partition 1 is disabled now.                               

Command (m for help): w                                                         
The partition table has been altered.                                           
Calling ioctl() to re-read partition table.                                     
Re-reading the partition table failed.: Device or resource busy                 

The kernel still uses the old table. The new table will be used at the next reb.

[fedora@localhost ~]# sync
[fedora@localhost ~]# reboot

Now the Beaglebone Black board will only boot from a SD card, doing so without using the Boot Button.