User:Vokiel/Asus-ProArt-P16-2024
Asus ProArt P-16 H7606 (2404) Installation Log
This page is an installation log of gentoo linux on an Asus ProArt P-16 Ryzen 9 laptop. I won't go into detailed technical explanations in this log. I may drop a number of links which may eventually die and become inaccessible. I will however document everything that I've done, what worked well and what didn't. I will try to log everything in a neutral position as much as possible. I'll set my own requirements, and make my own choices. Some of which will most likely be wrong, so don't take this page as a Guide without asking for multiple opinions on it. If you find some problematic setup, don't hesitate to share it under the Discussions tab.
This is the product string I get from dmidecode:
user $
dmidecode -s system-product-name
ProArt P16 H7606WV_H7606WV
Requirements
- Must not dual boot Windows
- Must use an EFI boot partition on a GPT disk.
- Must run an encrypted production partition with enough space for LVM Snapshots
- Must run an encrypted staging partition with enough space to install new Gentoo layouts
- I need to be able to boot either of the 2 encrypted partitions from grub
- I'll try getting an encryption key on usb thumb drive again.
- Must have a steam library partition with no encryption on ext4
- Could have an opt partition with no encryption on ext4
- Must be able to suspend/hibernate
- Must use the Nvidia proprietary driver
- Could have KDE
- Must have XFCE
- Should use OpenRC
- Should use GRUB 2 with a custom Asus theme
- Should use SDDM with a custom Asus theme
- Should be able to have Steam with 32 bit libs
Custom Live USB Key
The currently available Live USB keys are running a kernel without support for the laptop's WIFI hardware: Mediatek MT7925. This is part of the kernel 6.7, stable gentoo-sources are at 6.6.30 at the moment of this writing. I will need to craft a custom boot key with a masked kernel package.
The following are interesting resources:
Catalyst is a scripting tool with which it's easy to mess up and I ended up messing the configs a couple of time before producing a key that would boot the latest masked kernel. The easy check is to compare the size of the iso with the official one. If it's not roughly the same size, something went wrong
From the Catalyst Guide:
root #
emerge --ask dev-util/catalyst
root #
mkdir -p /var/tmp/catalyst/builds/default
root #
git clone -o upstream https://github.com/gentoo/releng.git
root #
cd /var/tmp/catalyst/builds/default
root #
cd /var/tmp/catalyst
root #
catalyst -s stable
root #
cp ~/releng/releases/specs/amd64/installcd-stage1.spec .
root #
cp ~/releng/releases/specs/amd64/installcd-stage2-minimal.spec .
Next I had to edit the kernel configs, copying the configs from 6.6.30, to add the MT7925 driver
root #
echo "=sys-kernel/gentoo-sources-6.10.4 ~amd64" > /etc/portage/package.accept_keywords/gentoo-sources
root #
emerge --ask sys-kernel/gentoo-sources
root #
cd /usr/src/linux-6.10.4-gentoo
root #
cp ~/releng/releases/kconfig/amd64/amd64-6.6.30.config .
root #
make menuconfig
root #
cp /usr/src/linux-6.10.4-gentoo/.config ~/releng/releases/kconfig/amd64/amd64-6.10.4.config
Next I edited both files:
subarch: amd64
version_stamp: 2024-08-11
target: livecd-stage1
rel_type: default
profile: default/linux/amd64/23.0/no-multilib
snapshot_treeish: f0f83c4ebfd190a5054916ab74fdeed2241b83bf
source_subpath: default/stage3-amd64-openrc-20240804T163558Z
compression_mode: pixz
portage_confdir: /root/releng/releases/portage/isos
livecd/use:
alsa
compile-locales
fbcon
livecd
portaudio
socks5
unicode
xml
livecd/packages:
app-accessibility/brltty
app-accessibility/espeakup
app-admin/hddtemp
app-admin/pwgen
app-admin/syslog-ng
app-arch/unzip
app-crypt/gnupg
app-editors/mg
app-editors/nano
app-misc/livecd-tools
app-misc/screen
app-misc/tmux
app-portage/cpuid2cpuflags
app-portage/mirrorselect
app-text/wgetpaste
dev-debug/strace
media-gfx/fbgrab
media-sound/alsa-utils
net-analyzer/traceroute
net-dialup/mingetty
net-dialup/pptpclient
net-dialup/rp-pppoe
net-fs/cifs-utils
net-fs/nfs-utils
net-irc/irssi
net-misc/chrony
net-misc/dhcpcd
net-misc/iputils
net-misc/ndisc6
net-misc/openssh
net-misc/rdate
net-misc/rsync
net-misc/vconfig
net-proxy/dante
net-proxy/tsocks
net-wireless/b43-fwcutter
net-wireless/iw
net-wireless/wireless-tools
net-wireless/wpa_supplicant
sys-apps/arch-chroot
sys-apps/busybox
sys-apps/cpuid
sys-apps/dmidecode
sys-apps/ethtool
sys-apps/fxload
sys-apps/gptfdisk
sys-apps/hdparm
sys-apps/iproute2
sys-apps/kexec-tools
sys-apps/lshw
sys-apps/memtester
sys-apps/memtest86+
sys-apps/netplug
sys-apps/nvme-cli
sys-apps/pciutils
sys-apps/pcmciautils
sys-apps/pv
sys-apps/sdparm
sys-apps/usbutils
sys-auth/ssh-import-id
sys-block/parted
sys-block/partimage
sys-boot/efibootmgr
sys-firmware/b43-firmware
sys-firmware/ipw2100-firmware
sys-firmware/ipw2200-firmware
sys-fs/bcache-tools
sys-fs/btrfs-progs
sys-fs/cryptsetup
sys-fs/dmraid
sys-fs/dosfstools
sys-fs/e2fsprogs
sys-fs/f2fs-tools
sys-fs/genfstab
sys-fs/jfsutils
sys-fs/lsscsi
sys-fs/lvm2
sys-fs/mac-fdisk
sys-fs/mdadm
sys-fs/multipath-tools
sys-fs/ntfs3g
sys-fs/reiserfsprogs
sys-fs/xfsdump
sys-fs/xfsprogs
sys-kernel/linux-firmware
#force rebuild for USE="(-multilib*)"
sys-libs/glibc
sys-libs/gpm
sys-power/acpid
www-client/links
I've added:
- sys-apps/lshw
- sys-apps/cpuid
subarch: amd64
version_stamp: 2024-08-11
target: livecd-stage2
rel_type: default
profile: default/linux/amd64/23.0/no-multilib
snapshot_treeish: f0f83c4ebfd190a5054916ab74fdeed2241b83bf
source_subpath: default/livecd-stage1-amd64-2024-08-11
portage_confdir: /root/releng/releases/portage/isos
livecd/bootargs: dokeymap
livecd/fstype: squashfs
livecd/iso: install-amd64-minimal-2024-08-11.iso
livecd/type: gentoo-release-minimal
livecd/volid: Gentoo amd64 2024-08-11
boot/kernel: gentoo
boot/kernel/gentoo/sources: gentoo-sources
boot/kernel/gentoo/config: /root/releng/releases/kconfig/amd64/amd64-6.10.4.config
boot/kernel/gentoo/packages: --usepkg n broadcom-sta
livecd/unmerge:
app-admin/eselect
app-admin/eselect-ctags
app-admin/eselect-vi
app-admin/perl-cleaner
app-admin/python-updater
app-arch/cpio
dev-build/libtool
dev-lang/rust-bin
dev-libs/gmp
dev-libs/libxml2
dev-libs/mpfr
dev-python/pycrypto
dev-util/pkgconfig
dev-util/pkgconf
perl-core/PodParser
perl-core/Test-Harness
sys-apps/debianutils
sys-apps/diffutils
sys-apps/groff
sys-apps/man-db
sys-apps/man-pages
sys-apps/memtest86+
sys-apps/miscfiles
sys-apps/sandbox
sys-apps/texinfo
sys-devel/autoconf
sys-devel/autoconf-wrapper
sys-devel/automake
sys-devel/automake-wrapper
sys-devel/binutils
sys-devel/binutils-config
sys-devel/bison
sys-devel/flex
sys-devel/gcc
sys-devel/gcc-config
sys-devel/gettext
sys-devel/gnuconfig
sys-devel/m4
sys-devel/make
sys-devel/patch
sys-libs/db
sys-libs/gdbm
sys-kernel/genkernel
sys-kernel/linux-headers
livecd/empty:
/boot
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
/etc/logrotate.d
/etc/modules.autoload.d
/etc/rsync
/etc/runlevels/single
/etc/skel
/root/.ccache
/tmp
/usr/diet/include
/usr/diet/man
/usr/include
/usr/i?86-gentoo-linux-uclibc
/usr/i?86-pc-linux-uclibc
/usr/lib/X11/config
/usr/lib/X11/doc
/usr/lib/X11/etc
/usr/lib/awk
/usr/lib/ccache
/usr/lib/gcc-config
/usr/lib/nfs
/usr/lib/perl5/site_perl
/usr/lib/portage
/usr/lib64/X11/config
/usr/lib64/X11/doc
/usr/lib64/X11/etc
/usr/lib64/awk
/usr/lib64/ccache
/usr/lib64/gcc-config
/usr/lib64/nfs
/usr/lib64/perl5/site_perl
/usr/lib64/portage
/usr/local
/usr/portage
/usr/share/aclocal
/usr/share/baselayout
/usr/share/binutils-data
/usr/share/consolefonts/partialfonts
/usr/share/consoletrans
/usr/share/dict
/usr/share/doc
/usr/share/emacs
/usr/share/et
/usr/share/gcc-data
/usr/share/genkernel
/usr/share/gettext
/usr/share/glib-2.0
/usr/share/gnuconfig
/usr/share/gtk-doc
/usr/share/i18n
/usr/share/info
/usr/share/lcms
/usr/share/libtool
/usr/share/man
/usr/share/rfc
/usr/share/ss
/usr/share/state
/usr/share/texinfo
/usr/share/unimaps
/usr/share/zoneinfo
/usr/src
/var/cache
/var/empty
/var/lib/portage
/var/log
/var/spool
/var/state
/var/tmp
livecd/rm:
/boot/System*
/boot/initr*
/boot/kernel*
/etc/*-
/etc/*.old
/etc/default/audioctl
/etc/dispatch-conf.conf
/etc/env.d/05binutils
/etc/env.d/05gcc
/etc/etc-update.conf
/etc/hosts.bck
/etc/issue*
/etc/genkernel.conf
/etc/make.conf*
/etc/make.globals
/etc/make.profile
/etc/man.conf
/etc/resolv.conf
/usr/lib*/*.a
/usr/lib*/*.la
/usr/lib*/cpp
/root/.bash_history
/root/.viminfo
/usr/bin/*.static
/usr/bin/fsck.cramfs
/usr/bin/fsck.minix
/usr/bin/mkfs.bfs
/usr/bin/mkfs.cramfs
/usr/bin/mkfs.minix
/usr/bin/addr2line
/usr/bin/ar
/usr/bin/as
/usr/bin/audioctl
/usr/bin/c++*
/usr/bin/cc
/usr/bin/cjpeg
/usr/bin/cpp
/usr/bin/djpeg
/usr/bin/ebuild
/usr/bin/egencache
/usr/bin/emerge
/usr/bin/emerge-webrsync
/usr/bin/emirrordist
/usr/bin/elftoaout
/usr/bin/f77
/usr/bin/g++*
/usr/bin/g77
/usr/bin/gcc*
/usr/bin/genkernel
/usr/bin/gprof
/usr/bin/i?86-gentoo-linux-uclibc-*
/usr/bin/i?86-pc-linux-*
/usr/bin/jpegtran
/usr/bin/ld
/usr/bin/libpng*
/usr/bin/nm
/usr/bin/objcopy
/usr/bin/objdump
/usr/bin/piggyback*
/usr/bin/portageq
/usr/bin/ranlib
/usr/bin/readelf
/usr/bin/size
/usr/bin/strip
/usr/bin/tbz2tool
/usr/bin/xpak
/usr/bin/yacc
/usr/lib*/*.a
/usr/lib*/*.la
/usr/lib*/perl5/site_perl
/usr/lib*/gcc-lib/*/*/libgcj*
/usr/bin/archive-conf
/usr/bin/dispatch-conf
/usr/bin/emaint
/usr/bin/env-update
/usr/bin/etc-update
/usr/bin/fb*
/usr/bin/fixpackages
/usr/bin/quickpkg
/usr/bin/regenworld
/usr/share/consolefonts/1*
/usr/share/consolefonts/7*
/usr/share/consolefonts/8*
/usr/share/consolefonts/9*
/usr/share/consolefonts/A*
/usr/share/consolefonts/C*
/usr/share/consolefonts/E*
/usr/share/consolefonts/G*
/usr/share/consolefonts/L*
/usr/share/consolefonts/M*
/usr/share/consolefonts/R*
/usr/share/consolefonts/a*
/usr/share/consolefonts/c*
/usr/share/consolefonts/dr*
/usr/share/consolefonts/g*
/usr/share/consolefonts/i*
/usr/share/consolefonts/k*
/usr/share/consolefonts/l*
/usr/share/consolefonts/r*
/usr/share/consolefonts/s*
/usr/share/consolefonts/t*
/usr/share/consolefonts/v*
/usr/share/misc/*.old
Next copying the iso to the key:
root #
dd if=/var/tmp/catalyst/builds/default/install-amd64-minimal-2024-08-11.iso of=/dev/sda status=progress
And that was it, booting the key found a kernel module for the Mediatek MT7925 device
Connecting to the Network
Creating the Partitions
EFI Partition
Unstable Partitions
- LUKS Partition
- LVM Partitions
Stable Partitions
- LUKS Partition
- LVM Partitions