Difference between revisions of "Quartz64 Installing Arch Linux ARM"

Jump to navigation Jump to search
m
Update the kernel package to a 5.18-rc kernel with PCIe patches
(Add instructions for packaging the thing yourself due to the current scare)
m (Update the kernel package to a 5.18-rc kernel with PCIe patches)
(7 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 5.16 kernel release. Right now there's still an iffy step left: installing a custom kernel package to get it booting. This will no longer be necessary with Linux 5.16.}}
{{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/sdb</tt>, adjust accordingly.
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/sdb</tt>, adjust as needed.
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/sdb mklabel gpt
  # 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/sdb unit s mkpart loader 64 8MiB
  # parted -s /dev/sdX mkpart loader 64s 8MiB
  # parted -s /dev/sdb unit s mkpart uboot 8MiB 16MiB
  # 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/sdb unit s mkpart env 16MiB 32MiB
  # 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/sdb unit s mkpart efi fat32 32MiB 544MiB
  # parted -s /dev/sdX mkpart efi fat32 32MiB 544MiB
  # parted -s /dev/sdb set 4 boot on
  # parted -s /dev/sdX set 4 boot on


Create the root partition:
Create the root partition:


  # parted -s /dev/sdb unit s mkpart root ext4 544MiB 100%
  # 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/sdb4
  # mkfs.vfat -n "efi" /dev/sdX4
  # mkfs.ext4 -L "rootfs" /dev/sdb5
  # 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/sdb1
  # dd if=artifacts/idblock.bin of=/dev/sdX1
  # dd if=artifacts/uboot.img of=/dev/sdb2
  # 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/sdb5 /mnt/alarm-root
  # mount /dev/sdX5 /mnt/alarm-root
  # mkdir /mnt/alarm-root/boot
  # mkdir /mnt/alarm-root/boot
  # mount /dev/sdb4 /mnt/alarm-root/boot
  # 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      0
  PARTUUID=''root-uuid-here''  /      ext4    defaults        0      1
  PARTUUID=''boot-uuid-here''  /boot  vfat    defaults        0      1
  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 with 5.16 anymore. 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>.  
{{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://overviewer.org/~pillow/up/e96363af01/linux-aarch64-rc-5.16.rc4-1-aarch64.pkg.tar.zst the linux-aarch64-rc package I patched and built], then copy it somewhere into your mounted root.
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/archlinuxarm/PKGBUILDs/tree/master/core/linux-aarch64-rc getting the package sources] and [https://gist.github.com/CounterPillow/310273c9632f25c436fb4fdfa0128068 patching the package (in this case also for cross-compilation)].
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 122: Line 122:
and install the package
and install the package


<code># pacman -U linux-aarch64-rc-5.16.rc4-1-aarch64.pkg.tar.zst</code>
<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 142: 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]]
502

edits

Navigation menu