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
  what is the magic dd incantation to copy the system from the sd card to the emmc? geokon 12 251 Yesterday, 07:20 PM
Last Post: wdt
  PBP won’t boot from eMMC after Debian update / Tow-Boot installer won’t boot from SD Pino64 21 1,874 05-12-2022, 05:00 AM
Last Post: Pino64
  Broken eMMC boot annahellrothsparent 3 550 04-28-2022, 07:31 AM
Last Post: tophneal
  Fresh Manjaro does not boot from eMMC pentamassiv 6 1,226 03-27-2022, 11:01 AM
Last Post: xNix
  Dual boot Manjaro and Debian? dieselnutjob 3 716 03-26-2022, 07:17 AM
Last Post: dieselnutjob
  Is anyone successfully running guix system on PBP bluekeys 6 3,704 01-20-2022, 03:06 PM
Last Post: bluekeys
  [Manjaro] u-boot won't boot from eMMC with (unbootable) SD card present zackw 0 612 01-10-2022, 03:58 PM
Last Post: zackw
  Fedora 33 to 34 upgrade issues tydeman 2 1,082 12-02-2021, 02:43 AM
Last Post: linuxfreund
  setting up fedora from minimal install pine76 0 590 11-30-2021, 10:47 AM
Last Post: pine76
  u-boot flashing problem dex357 2 1,051 11-27-2021, 04:13 AM
Last Post: dex357

Forum Jump:


Users browsing this thread: 1 Guest(s)