Can't boot any operating system other than Fedora after following the nullr0ute guide
#1
Question 
Hello,

Could somebody please help me to boot an operating system on my Pinebook Pro other than Fedora? After following this guide (https://nullr0ute.com/2021/05/fedora-on-...ebook-pro/), I successfully installed U-Boot to my PBP's SPI flash. I love Fedora, but I would really like to have the option to boot another OS from MicroSD or USB without having to zero out the SPI flash (and thus rendering my Fedora install unbootable). I really don't know where to begin, so any help would be appreciated!
  Reply
#2
I am using Tow-Boot rather than the Fedora uboot used in nullr0ute[/url]'s guide.



I have not tested this and I don't know enough about uboot to know if it would work on that, maybe it would?




Tow-Boot does work with Fedora, but it's important to note 
these modifications to the EFI system partition are required to get it to boot.



The following installs [url=https://github.com/SvenKiljan/archlinuxarm-pbp]SvenKiljan's ArchLinuxARM on the SD card (/dev/mmcblk1) starting from an existing Fedora install.




So, from the existing install we want to get a viable arch image (in this case we'll use SvenKiljan's) we could install from and then chroot into it.


Code:
curl -OL https://github.com/SvenKiljan/archlinuxarm-pbp/releases/latest/download/ArchLinuxARM-pbp-latest.tar.gz

mkdir /tmp/arch

bsdtar -xpf ArchLinuxARM-pbp-latest.tar.gz -C /tmp/arch

mount --bind /tmp/arch /tmp/arch/
cd /tmp/arch/
\cp /etc/resolv.conf etc
mount -t proc /proc proc
mount --make-rslave --rbind /sys sys
mount --make-rslave --rbind /dev dev
mount --make-rslave --rbind /run run
chroot /tmp/arch/ /bin/bash



Once we are in the arch image we can begin the install as normal. I prefer to use parted, which is not included in this image, so lets grab it.


Code:
pacman-key --init
pacman-key --populate archlinuxarm
pacman-key --populate archlinuxarm-pbp

pacman -S parted


We can then setup the disks as desired, in this case I want to have ArchLinuxARM on an sd card at /dev/mmcblk1 and we will go with a basis UEFI parition scheme with a 100mib /boot/efi parition and everything else as /


Code:
parted -a optimal /dev/mmcblk1
GNU Parted 3.4
Using /dev/mmcblk1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/mmcblk1 will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) unit mib
(parted) mkpart primary fat32 1 101
(parted) name 1 esp
(parted) mkpart primary ext4 101 -1
(parted) name 2 rootfs
(parted) set 1 boot on
(parted) quit
Information: You may need to update /etc/fstab.



We can then format the partitions, mount them, and use pacstrap to install ArchLinuxARM.


Code:
mkfs.fat -F 32 -n efi-boot /dev/mmcblk1p1
mkfs.ext4 /dev/mmcblk1p2 -L rootfs

mount /dev/mmcblk1p2 /mnt/
mkdir /mnt/boot
mkdir /mnt/boot/efi
mount /dev/mmcblk1p1 /mnt/boot/efi

pacstrap /mnt base base-devel ap6256-firmware libdrm-pinebookpro linux-manjaro pinebookpro-audio pinebookpro-post-install vim



Now we want to generate the fstab file and chroot into the new system


Code:
genfstab -U /mnt >> /mnt/etc/fstab

arch-chroot /mnt/



Because this is a chroot install from Fedora my fstab file was a bit messed up, so it's probably wise to go in and ensure there's nothing in there that shouldn't be.



Code:
vim /etc/fstab



Following the Arch install guide, we can now setup out localization and I want to ensue I have internet and can login after reboot, so I install dhcpcd and set the root password.


Code:
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
hwclock --systohc

vim /etc/locale.gen
locale-gen
vim /etc/locale.conf #LANG=en_US.UTF-8

pacman -S dhcpcd

passwd



Finially, we want to install grub so we can boot.



Code:
pacman -S grub

grub-install --efi-directory=/boot/efi --removable
grub-mkconfig -o /boot/grub/grub.cfg



Grub doesn't seem to correctly detect the install, and I don't really know enough about grub to figure out why so I just edited /boot/grub/grub.cfg and added my own boot entry.


Code:
vim /boot/grub/grub.cfg

### BEGIN /etc/grub.d/10_linux ###
menuentry "Arch Linux Arm" {
  search --label --set=root rootfs
  linux /boot/Image root=/dev/disk/by-label/rootfs console=tty0 rw
  initrd /boot/initramfs-linux.img
}
### END /etc/grub.d/10_linux ###




From here, you should be able to exit both the chroots, unmount everything, and reboot.






This general process can probably be used on other distros.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Is anyone successfully running guix system on PBP bluekeys 6 2,124 01-20-2022, 03:06 PM
Last Post: bluekeys
  [Manjaro] u-boot won't boot from eMMC with (unbootable) SD card present zackw 0 64 01-10-2022, 03:58 PM
Last Post: zackw
  Fedora 33 to 34 upgrade issues tydeman 2 407 12-02-2021, 02:43 AM
Last Post: linuxfreund
  setting up fedora from minimal install pine76 0 199 11-30-2021, 10:47 AM
Last Post: pine76
  u-boot flashing problem dex357 2 389 11-27-2021, 04:13 AM
Last Post: dex357
  Kernel panic on boot with danielt's Debian installer hjalfi 11 3,759 07-09-2021, 08:52 AM
Last Post: moonwalkers
  PostmarketOS - Why swap file not on at boot? stozi 3 1,293 06-24-2021, 12:27 AM
Last Post: craftyguy
  Official openSUSE: U-Boot, dtb and graphics Jojonintendo 1 971 06-12-2021, 08:38 AM
Last Post: Jojonintendo
  Some little things to help Fedora users ccunix 0 673 05-22-2021, 06:32 AM
Last Post: ccunix
  Boot problems jessef 11 1,706 05-16-2021, 11:13 AM
Last Post: djhnsn

Forum Jump:


Users browsing this thread: 1 Guest(s)