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.
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.