502
edits
m (Update the kernel package to a 5.18-rc kernel with PCIe patches) |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{note|This page is a work in progress. If you are not familiar with user-mode QEMU, wait for the | {{note|This page is a work in progress. If you are not familiar with user-mode QEMU, wait for [https://github.com/archlinuxarm/PKGBUILDs/pull/1918 the necessary kernel config changes] to be made.}} | ||
Commands to be run as a normal user are prefixed with <code>$</code>, commands to be run as root are prefixed with <code>#</code>. We assume your target device is <tt>/dev/ | Commands to be run as a normal user are prefixed with <code>$</code>, commands to be run as root are prefixed with <code>#</code>. We assume your target device is <tt>/dev/sdX</tt>, adjust accordingly. | ||
== Partitioning The Block Device == | == Partitioning The Block Device == | ||
Here we assume your block device is <tt>/dev/ | Here we assume your block device is <tt>/dev/sdX</tt>, adjust as needed. | ||
Create a new partition table: | Create a new partition table: | ||
# parted -s /dev/ | # parted -s /dev/sdX mklabel gpt | ||
Create the partitions for loader and u-boot: | Create the partitions for loader and u-boot: | ||
# parted -s /dev/ | # parted -s /dev/sdX mkpart loader 64s 8MiB | ||
# parted -s /dev/ | # parted -s /dev/sdX mkpart uboot 8MiB 16MiB | ||
Create the partition for u-boot's environment: | Create the partition for u-boot's environment: | ||
# parted -s /dev/ | # parted -s /dev/sdX mkpart env 16MiB 32MiB | ||
Create the "efi" boot partition and mark it as bootable: | Create the "efi" boot partition and mark it as bootable: | ||
# parted -s /dev/ | # parted -s /dev/sdX mkpart efi fat32 32MiB 544MiB | ||
# parted -s /dev/ | # parted -s /dev/sdX set 4 boot on | ||
Create the root partition: | Create the root partition: | ||
# parted -s /dev/ | # parted -s /dev/sdX mkpart root ext4 544MiB 100% | ||
=== Creating The File Systems === | === Creating The File Systems === | ||
Line 33: | Line 33: | ||
Now create the file systems for boot and root: | Now create the file systems for boot and root: | ||
# mkfs.vfat -n "efi" /dev/ | # mkfs.vfat -n "efi" /dev/sdX4 | ||
# mkfs.ext4 -L "rootfs" /dev/ | # mkfs.ext4 -L "rootfs" /dev/sdX5 | ||
== Fetching and Flashing U-Boot == | == Fetching and Flashing U-Boot == | ||
Line 48: | Line 48: | ||
Flash idblock.bin and uboot.img: | Flash idblock.bin and uboot.img: | ||
# dd if=artifacts/idblock.bin of=/dev/ | # dd if=artifacts/idblock.bin of=/dev/sdX1 | ||
# dd if=artifacts/uboot.img of=/dev/ | # dd if=artifacts/uboot.img of=/dev/sdX2 | ||
== Fetching The Root File System Tarball == | == Fetching The Root File System Tarball == | ||
Line 71: | Line 71: | ||
== Installing The Root File System == | == Installing The Root File System == | ||
# mount /dev/ | # mount /dev/sdX5 /mnt/alarm-root | ||
# mkdir /mnt/alarm-root/boot | # mkdir /mnt/alarm-root/boot | ||
# mount /dev/ | # mount /dev/sdX4 /mnt/alarm-root/boot | ||
# bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt/alarm-root | # bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt/alarm-root | ||
Line 84: | Line 84: | ||
In <tt>/mnt/alarm-root/etc/fstab</tt>, put the lines | In <tt>/mnt/alarm-root/etc/fstab</tt>, put the lines | ||
PARTUUID=''root-uuid-here'' / ext4 defaults 0 | PARTUUID=''root-uuid-here'' / ext4 defaults 0 1 | ||
PARTUUID=''boot-uuid-here'' /boot vfat defaults 0 | PARTUUID=''boot-uuid-here'' /boot vfat defaults 0 2 | ||
with your UUIDs in place of the placeholder. | with your UUIDs in place of the placeholder. | ||
Line 110: | Line 110: | ||
=== Finishing Touches === | === Finishing Touches === | ||
{{note|Here's where you'd do the part I said was iffy and won't be necessary | {{note|Here's where you'd do the part I said was iffy and won't be necessary once my PR is merged. You'll need an Arch Linux or Manjaro system. If it's not an aarch64 system, you'll also need <tt>qemu-user-static</tt>. | ||
First, get [https://fratti.ch/quartz64/alarm-kernels/linux-aarch64-rc-5.18.rc6-1-aarch64.pkg.tar.zst the linux-aarch64-rc package I patched and built], then copy it somewhere into your mounted root. | |||
Alternatively, patch and build the package yourself by [https://github.com/CounterPillow/PKGBUILDs/commit/622e03ba3753f823ea903bdbbf59c2f400dd2334 using my forked package sources]. | |||
Next, <code>arch-chroot</code> into the mounted root: | Next, <code>arch-chroot</code> into the mounted root: | ||
Line 118: | Line 122: | ||
and install the package | and install the package | ||
<code># pacman -U linux-aarch64-rc-5. | <code># pacman -U linux-aarch64-rc-5.18.rc6-1-aarch64.pkg.tar.zst</code> | ||
Then <code>exit</code> the chroot again once it's done installing. | Then <code>exit</code> the chroot again once it's done installing. | ||
Line 138: | Line 142: | ||
You are now ready to use Arch Linux ARM! Either delete or rename (and move the homedir of) the <code>alarm</code> user, and you're all set. Don't forget to install things like <code>sudo</code> and setting up sudo groups and such. | You are now ready to use Arch Linux ARM! Either delete or rename (and move the homedir of) the <code>alarm</code> user, and you're all set. Don't forget to install things like <code>sudo</code> and setting up sudo groups and such. | ||
[[Category:Quartz64]] [[Category:Guide]] [[Category:Quartz64 Guides]] |
edits