summaryrefslogtreecommitdiff
path: root/cs/Gentoo
diff options
context:
space:
mode:
authornic <ra@afu.re>2025-07-26 21:44:22 -0400
committernic <ra@afu.re>2025-07-26 21:44:22 -0400
commit20ece96f9065dc683b81344ff177005757c6fc3a (patch)
tree67e0d4ec5423c6cff90683e622a8e0e2b150e09b /cs/Gentoo
parentd60cb39b456d6d33edaa5a7a40dc018139adcff6 (diff)
Auto from nzxt - Sat 26 Jul 2025 09:44:22 PM EDT
Diffstat (limited to 'cs/Gentoo')
-rw-r--r--cs/Gentoo/Asahi - Gentoo - Wayland setup.md254
-rw-r--r--cs/Gentoo/Installation.md1
-rw-r--r--cs/Gentoo/index.md9
3 files changed, 264 insertions, 0 deletions
diff --git a/cs/Gentoo/Asahi - Gentoo - Wayland setup.md b/cs/Gentoo/Asahi - Gentoo - Wayland setup.md
new file mode 100644
index 0000000..87955ee
--- /dev/null
+++ b/cs/Gentoo/Asahi - Gentoo - Wayland setup.md
@@ -0,0 +1,254 @@
+
+curl https://alx.sh | sh
+
+
+
+# From gentoo livecd
+
+net-setup
+ifconfig
+lsblk
+
+fdisk /dev/nvmeX
+- 512M EFI
+- 130GB Root
+
+mkfs.fat -F32 /dev/nvmeEFI
+mkfs.btrfs -f /dev/nvmeRoot
+
+mount /dev/nvmeRoot /mnt/gentoo
+mkdir -p /mnt/gentoo/boot/
+mount /dev/nvmeEFI /mnt/gentoo/boot/
+
+> vendorfw ?
+
+wget stage3
+tar xpvf stage3-X.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo
+
+nano /mnt/gentoo/etc/portage/make.conf
+```
+# vim: set language=bash;
+CHOST="aarch64-unknown-linux-gnu"
+
+# Optimization flags.
+COMMON_FLAGS="-march=armv8.5-a+fp16+simd+crypto+i8mm -mtune=native -O2 -pipe"
+CFLAGS="${COMMON_FLAGS}"
+CXXFLAGS="${COMMON_FLAGS}"
+FCFLAGS="${COMMON_FLAGS}"
+FFLAGS="${COMMON_FLAGS}"
+RUSTFLAGS="-C target-cpu=native"
+
+LC_MESSAGES=C
+
+MAKEOPTS="-j(nproc)" *************
+EMERGE_DEFAULT_OPTS="--jobs 3"
+ACCEPT_LICENSE="linux-fw-redristribuable no-source-code"
+
+GENTOO_MIRRORS="" ???????????????
+VIDEO_CARDS="asahi" ????????????
+
+# Keep a newline at the end! Important!
+```
+
+> ? necessary ?
+
+cp -r /boot /mnt/gentoo
+cp -r /usr/lib/modules /mnt/gentoo/usr/lib
+cp -r /usr/lib/firmware /mnt/gentoo/usr/lib
+
+> ? The --make-rslave operations are needed for systemd support later in the installation.
+
+mount --types proc /proc /mnt/gentoo/proc
+mount --rbind /sys /mnt/gentoo/sys
+mount --make-rslave /mnt/gentoo/sys
+mount --rbind /dev /mnt/gentoo/dev
+mount --make-rslave /mnt/gentoo/dev
+mount --bind /run /mnt/gentoo/run
+mount --make-slave /mnt/gentoo/run
+
+
+chroot /mnt/gentoo /bin/bash
+source /etc/profile
+
+emerge-webrsync
+emerge --sync
+
+emerge -1 sys-apps/portage
+
+eselect profile
+
+emerge -av dev-vcs/git
+git clone https://github.com/chadmed/asahi-gentoosupport
+cd asahi-gentoosupport
+./install.sh
+
+```
+set -e
+
+install_overlay() {
+ echo "Installing the Asahi Overlay. For more information, visit"
+ echo "https://github.com/chadmed/asahi-overlay/"
+ echo
+
+ emerge -q eselect-repository
+ eselect repository enable asahi
+ emaint sync -r asahi
+ echo "The Asahi overlay has been installed."
+}
+
+install_meta() {
+ echo "We will now install the Asahi metapackage with some sane"
+ echo "defaults to get you started. This step will:"
+ echo " * Emerge rust-bin (you can switch to the compiled rust later)"
+ echo " * Add VIDEO_CARDS=\"asahi\" to /etc/portage/make.conf"
+ echo " * Emerge the Asahi metapackage"
+ echo " * Emerge the Asahi dist-kernel (you may switch to asahi-sources later)"
+ echo " * Unpack the Asahi firmware"
+ echo " * Update m1n1 and U-Boot"
+ read -sp "Press Enter to continue..."
+
+ [ ! -d /etc/portage/package.mask ] && mkdir /etc/portage/package.mask
+ cp resources/package.mask /etc/portage/package.mask/asahi
+ [ ! -d /etc/portage/package.use ] && mkdir /etc/portage/package.use
+ cp resources/package.use /etc/portage/package.use/asahi
+ [ ! -d /etc/portage/package.license ] && mkdir /etc/portage/package.license
+ echo "sys-kernel/linux-firmware linux-fw-redistributable no-source-code" > /etc/portage/package.license/firmware
+ echo "VIDEO_CARDS=\"asahi\"" >> /etc/portage/make.conf
+
+ emerge -q1 dev-lang/rust-bin
+ emerge -q sys-apps/asahi-meta virtual/dist-kernel:asahi sys-kernel/linux-firmware
+ asahi-fwupdate
+ update-m1n1
+}
+
+install_grub() {
+ echo "Installing GRUB."
+ echo "GRUB_PLATFORMS=\"efi-64\"" >> /etc/portage/make.conf
+ emerge -q grub:2
+ grub-install --boot-directory=/boot/ --efi-directory=/boot/ --removable
+ grub-mkconfig -o /boot/grub/grub.cfg
+ echo "GRUB has been installed."
+}
+
+
+if [[ $(whoami) != "root" ]]; then
+ echo "You must run this script as root."
+ exit 1
+fi
+
+if [[ ! -d /boot/vendorfw ]]; then
+ echo "We use ESP-as-boot. Please mount the Asahi ESP to /boot before"
+ echo "continuing. This is absolutely essential for the system"
+ echo "to function correctly."
+ exit 1
+fi
+
+
+echo "This script automates the setup and configuration of Apple Silicon"
+echo "specific tooling for Gentoo Linux. Please mount the ESP to /boot."
+echo
+echo "NOTE: This script will install linux-firmware automatically. It is not"
+echo "possible to run these machines properly without binary blobs. Please make"
+echo "sure you understand this, and agree to the linux-fw-redistributable and"
+echo "no-source-code licenses before continuing."
+echo
+read -sp "Press Enter to continue..."
+
+
+install_overlay
+
+install_meta
+
+install_grub
+
+echo "This script will now exit. Continue setting up your machine as per the"
+echo "Gentoo Handbook, skipping the steps related to setting up the kernel or"
+echo "GRUB as these have been done for you. Don't forget to add /boot to your"
+echo "fstab!"
+```
+
+lsblk
+blkid
+
+nano /etc/fstab
+```
+# /etc/fstab: static file system information.
+#
+#
+# <fs> <mountpoint> <type> <opts> <dump/pass>
+UUID=XXXX-XXXX /boot vfat defaults,noatime 0 2
+UUID=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx / btrfs subvol=/@,defaults,noatime,autodefrag,compress=zstd 0 0
+```
+
+ls /usr/share/zoneinfo
+echo "US/Eastern" > /etc/timezone
+emerge --config sys-libs/timezone-data
+
+nano /etc/[locale.gen](locale.gen)
+locale-gen
+eselect locale list
+eselect locale set x
+
+env-update && source /etc/profile
+
+emerge -av sys-fs/dosfstools
+
+echo 'dev-lang/rust' >> /etc/portage/package.mask
+
+>?
+emerge -avuND @world - or not because not runninf update-m1n1 again before reboot ...
+OPENRC?
+>?
+
+exit
+
+umount -l /mnt/gentoo/dev{/shm,/pts,}
+umount -R /mnt/gentoo
+
+reboot
+
+
+
+# USERLAND
+
+## setup sudo
+emerge app-admin/sudo
+visudo
+```
+# Allow members of group sudo to execute any command without any password
+%sudo ALL=(ALL:ALL) ALL
+%sudo ALL=NOPASSWD: ALL
+```
+
+## Add User
+useradd -m -G users,wheel,audio,sudo ??? $USER
+passwd $USER
+
+> choose Cron pkg
+
+## ZSH
+emerge app-shells/zsh app-shells/zsh-completions app-shells/gentoo-zsh-completions app-shells/zsh-syntax-highlighting
+chsh -s /bin/zsh
+
+## EIX
+emerge app-portage/eix
+eix-update
+
+## using git to sync repos instead of rsync - /var/db/repos/gentoo
+vim /etc/portage/repos.conf/gentoo.conf
+```
+[DEFAULT]
+main-repo = gentoo
+
+[gentoo]
+location = /var/db/repos/gentoo
+sync-type = git
+sync-uri = https://gitweb.gentoo.org/repo/sync/gentoo.git
+auto-sync = yes
+sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
+sync-openpgp-key-refresh-retry-count = 40
+sync-openpgp-key-refresh-retry-overall-timeout = 1200
+sync-openpgp-key-refresh-retry-delay-exp-base = 2
+sync-openpgp-key-refresh-retry-delay-max = 60
+sync-openpgp-key-refresh-retry-delay-mult = 4
+```
diff --git a/cs/Gentoo/Installation.md b/cs/Gentoo/Installation.md
index 99057be..5805c5a 100644
--- a/cs/Gentoo/Installation.md
+++ b/cs/Gentoo/Installation.md
@@ -37,6 +37,7 @@ mkdir --parents /mnt/gentoo/etc/portage/repos.conf
## using git to sync repos instead of rsync - /var/db/repos/gentoo
vim /mnt/gentoo/etc/portage/repos.conf/[gentoo.conf](gentoo.conf)
+
# Chroot
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
diff --git a/cs/Gentoo/index.md b/cs/Gentoo/index.md
index 2eefb8f..139af81 100644
--- a/cs/Gentoo/index.md
+++ b/cs/Gentoo/index.md
@@ -1,9 +1,18 @@
+[[Asahi - Gentoo - Wayland setup]]
+
+
+
+
+# Xorg
[[Installation]]
[[Userland]]
+
+
+
[[Custom Ebuild Repo]]