![]() |
|
Can't boot any operating system other than Fedora after following the nullr0ute guide - Printable Version +- PINE64 (https://forum.pine64.org) +-- Forum: Pinebook Pro (https://forum.pine64.org/forumdisplay.php?fid=111) +--- Forum: Linux on Pinebook Pro (https://forum.pine64.org/forumdisplay.php?fid=114) +--- Thread: Can't boot any operating system other than Fedora after following the nullr0ute guide (/showthread.php?tid=14566) |
Can't boot any operating system other than Fedora after following the nullr0ute guide - TDC_PBP - 08-01-2021 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-the-pinebook-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! RE: Can't boot any operating system other than Fedora after following the nullr0ute guide - TangoZuluTango - 10-09-2021 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/bashOnce 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 partedWe 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 vimNow 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/fstabFollowing 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
passwdFinially, 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.cfgGrub 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. |