diff options
Diffstat (limited to 'cs/Gentoo/Asahi - Gentoo - Wayland setup.md')
| -rw-r--r-- | cs/Gentoo/Asahi - Gentoo - Wayland setup.md | 254 |
1 files changed, 254 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 +``` |
