Abuse filter log

From Gentoo Wiki
Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to:navigation Jump to:search
Details for log entry 5,092

09:39, 6 May 2025: Bugalo (talk | contribs) triggered filter 30, performing the action "edit" on User:Bugalo/MSI MPG x870E Edge TI Wifi AMD 9950x3d. Actions taken: Disallow; Filter description: Disable writing internal wiki links as external besides required links. If absolutely necessary, use wiki.g.o as a workaround. (examine)

Changes made in edit

 
=== AMD Graphics ===
 
=== AMD Graphics ===
 
Note:  
 
Note:  
 +
 +
https://wiki.gentoo.org/wiki/AMDGPU
 +
https://linux-hardware.org/?id=pci%3A1002-13c0-1043-8877
 +
https://wiki.gentoo.org/wiki/Radeon
 +
https://wiki.archlinux.org/title/AMDGPU
  
  

Action parameters

VariableValue
Edit count of the user (user_editcount)
473
Name of the user account (user_name)
'Bugalo'
Age of the user account (user_age)
167331454
Page ID (page_id)
386488
Page namespace (page_namespace)
2
Page title (without namespace) (page_title)
'Bugalo/MSI MPG x870E Edge TI Wifi AMD 9950x3d'
Full page title (page_prefixedtitle)
'User:Bugalo/MSI MPG x870E Edge TI Wifi AMD 9950x3d'
Action (action)
'edit'
Edit summary/reason (summary)
'/* AMD Graphics */ '
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
'{{WIP|author=Bugalo}} == Summary == This document will serve as a guide on how to install Gentoo on the MSI MPG x870E Edge TI Wifi motherboard with an AMD 9950x3d CPU and the following configuration: * Single {{c|Gentoo}} boot, in [[Handbook:AMD64/Installation/Disks#Using_UEFI|{{c|UEFI}}]] with [[Handbook:AMD64/Installation/Disks#GPT|{{c|GPT}}]] mode, using [[GRUB|{{c|GRUB2}}]] as a boot loader. * [[ZFS|{{c|ZFS}}]] on all partitions, except the [[EFI_System_Partition|{{c|ESP}}]], including root, with native transparent compression and encryption. Deduplication will not be configured: *# {{c|Mirrored Zpools}} for all system partitions. Those will be located in two 4TB [[NVMe|{{c|NVMe}}]] hard drives. * [[GNOME|{{c|GNOME}}]] with [[systemd|{{c|systemd}}]] profile. == Installation == === Preparing the Ubuntu Live Environment === # Create an Ubuntu bootable USB using, for example using [[UNetbootin|{{c|UNetbootin}}]]. # Plug the USB and boot the PC. # Access the ''One-time boot menu'' of the {{c|BIOS}} by pressing {{Key|F2}}. # Choose the appropriate entry to boot from the live USB. # In the {{c|GRUB}} menu, choose ''Try Ubuntu without installing''. # Connect to the internet, through either a wireless<ref>[https://help.ubuntu.com/stable/ubuntu-help/net-wireless-connect.html Connect to a wireless network], [https://help.ubuntu.com/ Official Ubuntu Documentation]. Retrieved on January 22nd, 2020.</ref> or wired network<ref>[https://help.ubuntu.com/stable/ubuntu-help/net-wired-connect.html Connect to a wired (Ethernet) network], [https://help.ubuntu.com/ Official Ubuntu Documentation]. Retrieved on January 22nd, 2020.</ref>. # Upgrade Ubuntu to use the latest {{c|ZFS}} modules availabe. {{RootCmd|apt-get update |apt-get upgrade}} # Verify that {{c|ZFS}} is loaded {{Cmd|dmesg {{!}} grep -i zfs |output=<pre>[ 9.658459] ZFS: Loaded module v0.8.1-1ubuntu12, ZFS pool version 5000, ZFS filesystem version 5 </pre>}} # Create a folder for the Gentoo install. {{RootCmd|mkdir /mnt/gentoo }} # Install the text editor of your choice, e.g. [[Vim|{{c|Vim}}]]. {{RootCmd|apt-get install vim }} {{Important|This guide uses {{c|Vim}} as a text editor. Feel free to substitute it by your preferred editor.}} === Create the ZFS layout === All the partitions of the system will use the {{c|ZFS}} [[Filesystem|{{c|filesystem}}]]. {{c|ZFS}} allows the use of whole disks, without partitioning, to install the different parts of the system. In this case, the whole disk would be a {{c|ZFS pool}}, and we would create different {{c|ZFS datasets}} in it that would be conceptually similar to traditional partitions, but they don't need to have a fixed predetermined size. However, the choice of {{c|GRUB2}} as a boot manager requires partitioning the disk, i.e a {{c|ZFS pool}} needs to be created in a partition, not in the whole disk. {{c|GRUB2}} cannot currently reside in a {{c|ZFS pool}} with advanced features activated, such as encryption<ref>[https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation ZFS: GRUB-compatible pool creation], [https://wiki.archlinux.org/ ArchWiki]. Retrieved on January 22nd, 2020.</ref>. In order to satisfy both requirements of using {{c|GRUB2}} as a {{c|boot loader}} and having the system residing in {{c|ZFS}} with native encryption, we need to create a {{c|ZFS pool}} compatible with {{c|GRUB2}}. Furthermore, a [[FAT|{{c|FAT}}]] formatted [[EFI_System_Partition|{{c|EFI System Partition}}]] needs to be created. # Open {{c|GParted}}. # Select the device <code>/dev/nvme0n1</code>. # Go to Device / Create Partition Table ... / gpt / Apply. # Select the device <code>/dev/nvme1n1</code>. # Go to Device / Create Partition Table ... / gpt / Apply. # Delete any partition of the {{c|NVMe}} drives <code>/dev/nvme0n1</code> and <code>/dev/nvme1n1</code>. # Create two new partitions, <code>/dev/nvme0n1p1</code> and <code>/dev/nvme1n1p1</code>, in the unallocated space, formatted in {{c|FAT32}}, named "EFI system partition" and "EFI system partition 2" respectively, with labels ESP and ESP_2, of 128MB, and with flags "boot" and "esp". # Create two unformatted partitions, <code>/dev/nvme0n1p2</code> and <code>/dev/nvme1n1p2</code>, in the unallocated space, named Gentoo-Boot and Gentoo-Boot-2, of around 1GB. # Create two unformatted partitions, <code>/dev/nvme0n1p3</code> and <code>/dev/nvme1n1p3</code>, in the unallocated space, named Gentoo-Root and Gentoo-Root-2, occupying the remaining space. # ''Apply all operations'' and exit. # Create a {{c|mirror ZFS pool}}, with all {{c|GRUB}}'s unsupported features disabled, in <code>/dev/nvme0n1p2</code> and <code>/dev/nvme1n1p2</code>. {{RootCmd|zpool create -d -o feature@allocation_classes{{=}}enabled \ <pre> -o feature@async_destroy=enabled \ </pre><pre> -o feature@bookmarks=enabled \ </pre><pre> -o feature@embedded_data=enabled \ </pre><pre> -o feature@empty_bpobj=enabled \ </pre><pre> -o feature@enabled_txg=enabled \ </pre><pre> -o feature@extensible_dataset=enabled \ </pre><pre> -o feature@filesystem_limits=enabled \ </pre><pre> -o feature@hole_birth=enabled \ </pre><pre> -o feature@large_blocks=enabled \ </pre><pre> -o feature@lz4_compress=enabled \ </pre><pre> -o feature@project_quota=enabled \ </pre><pre> -o feature@resilver_defer=enabled \ </pre><pre> -o feature@spacemap_histogram=enabled \ </pre><pre> -o feature@spacemap_v2=enabled \ </pre><pre> -o feature@userobj_accounting=enabled \ </pre><pre> -o feature@zpool_checkpoint=enabled \ </pre><pre> -f -o ashift=12 \ </pre><pre> -o autotrim=on \ </pre><pre> -o cachefile=/tmp/zpool.cache \ </pre><pre> -O aclinherit=passthrough \ </pre><pre> -O acltype=posixacl \ </pre><pre> -O atime=off \ </pre><pre> -O canmount=off \ </pre><pre> -O devices=off \ </pre><pre> -O mountpoint=/ \ </pre><pre> -O normalization=formD \ </pre><pre> -O xattr=sa \ </pre><pre> -R /mnt/gentoo \ </pre><pre> bpool mirror /dev/nvme0n1p2 /dev/nvme1n1p2</pre>}} # Create a {{c|mirror ZFS pool}}, for the Gentoo system, in <code>/dev/nvme0n1p3</code> and <code>/dev/nvme1n1p3</code>. {{RootCmd|zpool create -f -o ashift{{=}}12 \ <pre> -o autotrim=on \ </pre><pre> -o cachefile=/tmp/zpool.cache \ </pre><pre> -O acltype=posixacl \ </pre><pre> -O aclinherit=passthrough \ </pre><pre> -O atime=off \ </pre><pre> -O canmount=off \ </pre><pre> -O devices=off \ </pre><pre> -O dnodesize=auto \ </pre><pre> -O mountpoint=/ \ </pre><pre> -O normalization=formD \ </pre><pre> -O xattr=sa \ </pre><pre> -R /mnt/gentoo \ </pre><pre> rpool mirror /dev/nvme0n1p3 /dev/nvme1n1p3</pre>}}{{Important|Note that most native encryption {{c|ZFS}} guides encrypt the root {{c|ZFS pool}}<ref>Richard Laager. [https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS Debian Buster Root on ZFS], [https://github.com/ GitHub], December 27th, 2019. Retrieved on January 23rd, 2020.</ref>. However, this forces all its child pools and datasets to be encrypted and with the same algorithm<ref>numinit. [https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/ ZoL 0.8.0 encryption: don't encrypt the pool root!], [https://www.reddit.com/ Reddit], May, 2019. Retrieved on January 23rd, 2020.</ref>. Thus, here ''rpool'' will be left unencrypted, while encryption will be applied to its children.}} # The status and properties of the pools created above can be checked with the following commands:{{RootCmd|zpool status |output=<pre> pool: bpool </pre><pre> state: ONLINE</pre><pre>status: Some supported features are not enabled on the pool. The pool can</pre><pre> still be used, but some features are unavailable.</pre><pre>action: Enable all features using 'zpool upgrade'. Once this is done,</pre><pre> the pool may no longer be accessible by software that does not support</pre><pre> the features. See zpool-features(5) for details.</pre><pre> scan: none requested</pre><pre>config:</pre></br><pre> NAME STATE READ WRITE CKSUM</pre><pre> bpool ONLINE 0 0 0</pre><pre> nvme0n1p4 ONLINE 0 0 0</pre></br><pre>errors: No known data errors</pre></br><pre> pool: rpool</pre><pre> state: ONLINE</pre><pre> scan: none requested</pre><pre>config:</pre></br><pre> NAME STATE READ WRITE CKSUM</pre><pre> rpool ONLINE 0 0 0</pre><pre> nvme0n1p5 ONLINE 0 0 0</pre></br><pre>errors: No known data errors</pre>}} {{RootCmd|zfs get all bpool |zfs get all rpool}} # Create the {{c|ZFS dataset }} where {{c|GRUB2}} will reside: {{RootCmd|zfs create -o canmount{{=}}off -o compression{{=}}gzip-9 -o mountpoint{{=}}none bpool/BOOT |zfs create -o canmount{{=}}noauto -o compression{{=}}gzip-9 -o dnodesize{{=}}legacy -o mountpoint{{=}}/mnt/gentoo/boot bpool/BOOT/gentoo}}{{Important|The [[wikipedia:LZ4_(compression_algorithm)|{{c|LZ4}}]] compression algorithm is generally favored over [[wikipedia:Gzip|{{c|Gzip}}]], due to its good balance between compression ratio and computational power required<ref>Patrick Kennedy. [https://www.servethehome.com/the-case-for-using-zfs-compression/ The Case For Using ZFS Compression], [https://www.servethehome.com/ Serve The Home], January 2nd, 2018. Retrieved on January 23rd, 2020.</ref>. However, this guide uses <code>gzip-9</code> as compression algorithm, offering the highest compression level at a higher computational cost. This is due to the availability of a powerful {{c|CPU}} in the system.}}{{Warning|At the time of writing this paragraph, Grub does not support booting from a zfs pool compressed with zstd.}}{{Warning|Setting here the parameter <code>dnodesize</code> to anything other than <code>legacy</code> will result in the following error<ref>populationless. [https://github.com/zfsonlinux/zfs/issues/8538 Cannot set 'bootfs' property when 'dnodesize' is set to anything but legacy #8538], [https://github.com/ GitHub], March 27th, 2019. Retrieved on January 23rd, 2020.</ref>: {{GenericCmd|<pre>cannot set property for 'bpool': operation not supported on this type of pool</pre>}}}} # Create the {{c|ZFS dataset }} where {{c|root}} will reside: {{RootCmd|zfs create -o canmount{{=}}off -o compression{{=}}zstd-19 -o encryption{{=}}aes-256-gcm -o keyformat{{=}}passphrase -o keylocation{{=}}prompt -o mountpoint{{=}}none rpool/ROOT |zfs create -o canmount{{=}}noauto -o compression{{=}}zstd-19 -o encryption{{=}}aes-256-gcm -o keyformat{{=}}passphrase -o keylocation{{=}}prompt -o mountpoint{{=}}/mnt/gentoo rpool/ROOT/gentoo}}{{Important|The default mode of operation of {{c|ZFS}} native encryption is [[wikipedia:CCM_mode|aes-256-ccm]]. However, [[wikipedia:Galois/Counter_Mode|aes-256-gcm]] is generally preferred<ref>Laplacian. [https://crypto.stackexchange.com/questions/6842/how-to-choose-between-aes-ccm-and-aes-gcm-for-storage-volume-encryption/19446#19446 How to choose between AES-CCM and AES-GCM for storage volume encryption], [https://crypto.stackexchange.com/ Cryptography Stack Exchange], October 2nd, 2014. Retrieved on January 23rd, 2020.</ref>.}}{{Important|According to various benchmarks, zstd should provide similar or higher compression levels than gzip, but with higher compression and decompression speed.}} # Create the {{c|ZFS dataset }} where {{c|home}} will reside: {{RootCmd|zfs create -o compression{{=}}zstd-19 -o encryption{{=}}aes-256-gcm -o keyformat{{=}}passphrase -o mountpoint{{=}}/mnt/gentoo/home rpool/ROOT/home}} # Mount all the {{c|ZFS datasets }}: {{Warning|At the time of writing this paragraph, mounting the datasets with <code>zfs mount</code> will result in a double preffix (see <ref>Patrick Kennedy. [https://github.com/openzfs/zfs/issues/1078#issuecomment-984056749], [https://github.com/openzfs/zfs/issues/1078#issuecomment-984056749], November 5th, 2012. Retrieved on May 5th, 2025.</ref>) and [[ZFS#Chroot|{{c|ZFS Chroot}}]]. Use <code>mount -t zfs</code> instedad.}} {{RootCmd|zfs set mountpoint{{=}}/ rpool |zfs set mountpoint{{=}}/ rpool/ROOT/gentoo |zfs set mountpoint{{=}}/home rpool/ROOT/home |zfs set mountpoint{{=}}/ bpool |zfs set mountpoint{{=}}/boot bpool/BOOT/gentoo |mount -t zfs -o zfsutil rpool/ROOT/gentoo /mnt/gentoo |mkdir /mnt/gentoo/home |mount -t zfs -o zfsutil rpool/ROOT/home /mnt/gentoo/home |mkdir /mnt/gentoo/boot |mount -t zfs -o zfsutil bpool/BOOT/gentoo /mnt/gentoo/boot}} # Check that the {{c|ZFS}} layout is correct: {{RootCmd|zfs list -t all}} # Set the {{c|ZFS dataset}} used for booting: {{RootCmd|zpool set bootfs{{=}}bpool/BOOT/gentoo bpool}} Check that the <code>bootfs</code> property has been properly set: {{RootCmd|zpool get bootfs bpool}} === Install the Gentoo base system === This section will closely follow [[Handbook:AMD64|Gentoo's AMD64 Handbook]], with adjustments where appropriate. # Verify that the date and time of the system is correct. If not, [[Handbook:AMD64/Installation/Stage#Setting_the_date_and_time|fix it]]:{{RootCmd|date |output=<pre>Thu Jan 23 23:35:23 CET 2020</pre>}} # Choose a stage tarball: <code>desktop systemd 64-bit stage tarball</code>. # Move to the root installation directory:{{RootCmd|cd /mnt/gentoo/}} # Find the name of the latest amd64 systemd stage3 at http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3-amd64-systemd.txt and download it: {{RootCmd|wget https://gentoo.osuosl.org/releases/amd64/autobuilds/20250502T162426Z/stage3-amd64-desktop-systemd-20250502T162426Z.tar.xz}} {{Note|Modify the name of the stage3 file appropriately.}} {{Tip|The downloaded stage3 file can be [[Handbook:AMD64/Installation/Stage#Verifying_and_validating|verified]].}} # Unpack the stage3 tarball: {{RootCmd|tar xpvf stage3-*.tar.xz --xattrs-include{{=}}'*.*' --numeric-owner}} # Edit [[:/etc/portage/make.conf|make.conf]] to configure: #* The [[Handbook:AMD64/Installation/Stage#Configuring_compile_options|compile options]] to [[GCC_optimization|optimize]] compiled code, including the [[CPU_FLAGS_X86]]<ref>[https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/x86-Options.html x86 Options], [https://gcc.gnu.org/ GCC, the GNU Compiler Collection], October 2nd, 2014. Retrieved on January 24th, 2020.</ref>. #* The global [[Handbook:Parts/Working/USE|{{c|USE}}]] variable to specify [[Handbook:AMD64/Installation/Base#Configuring_the_USE_variable|system-wide package support]]. #* The [[Handbook:AMD64/Installation/Base#Optional:_Configuring_the_ACCEPT_LICENSE_variable|{{c|ACCEPT_LICENSE}}]] variable to select the [[Project:Licenses|license]] group automatically accepted. {{RootCmd|vim /mnt/gentoo/etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>CPU_FLAGS_X86</var>, <var>USE</var> and <var>ACCEPT_LICENSE</var> variables for systemwide support|lang=bash|1= ... USE="..." CPU_FLAGS_X86="adcx aes avx avx2 bmi bmi2 clflushopt fsgsbase f16c fma fma3 mmx mmxext movbe pclmul popcnt prefetchw rdrnd rdseed sse sse2 sse3 sse4_1 sse4_2 ssse3 xsavec xsaves" ... ACCEPT_LICENSE="*" ...}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Configure the Gentoo ebuild repository: {{RootCmd|mkdir --parents /mnt/gentoo/etc/portage/repos.conf|cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf}} # Copy the DNS info: {{RootCmd|cp --dereference /etc/resolv.conf /mnt/gentoo/etc/}} # Mount the necessary filesystems: {{RootCmd|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}} # Copy the {{Path|zpool.cache}} to the installation directory: {{RootCmd|mkdir -p /mnt/gentoo/etc/zfs |cp /tmp/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache }} # Copy {{Path|/etc/hostid}}, [[Genkernel|{{c|genkernel}}]] will later complain if it does not exist<ref>Thomas Deutschmann. [https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=4e46cfcd6f50560a9e8c31163663940a99875e0c ZFS: Change hostid handling], [https://gitweb.gentoo.org/ Gentoo Git Repositories], March 27th, 2019. Retrieved on January 24th, 2020.</ref>: {{RootCmd|cp /etc/hostid /mnt/gentoo/etc/hostid}} # [[Chroot|{{c|Chroot}}]] into the new environment: {{RootCmd|chroot /mnt/gentoo /bin/bash |source /etc/profile |export PS1{{=}}"(chroot) ${PS1}"}} # Update the Gentoo [[Ebuild_repository|{{c|ebuild repository}}]]: {{RootCmd|prompt=(chroot) root #|emerge --sync --quiet |eselect news list |eselect news read |eselect news purge}} # Choose the appropriate [[Profile_(Portage)|{{c|portage profile}}]]: {{RootCmd|prompt=(chroot) root #|eselect profile list |eselect profile set default/linux/amd64/23.0/desktop/gnome/systemd}} # Select fast [[GENTOO_MIRRORS|mirrors]] available for source code download, by using [[Mirrorselect|mirrorselect]]: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|app-portage/mirrorselect}} |mirrorselect -s4 -b10 -D}} # [[Portage|Emerge]] [[Vim]] to be used as a [[Text_editor|text editor]]: {{RootCmd|prompt=(chroot) root #|echo "{{Package|app-editors/vim}} ~amd64" >> /etc/portage/package.accept_keywords/vim |echo "{{Package|app-editors/vim-core}} ~amd64" >> /etc/portage/package.accept_keywords/vim-core |echo "{{Package|app-editors/gvim}} ~amd64" >> /etc/portage/package.accept_keywords/gvim |emerge --ask {{Package|app-editors/vim}} {{Package|app-editors/gvim}}}} # Set the timezone and reconfigure the {{Package|sys-libs/timezone-data}}: {{RootCmd|prompt=(chroot) root #|ls /usr/share/zoneinfo |echo "Europe/Madrid" > /etc/timezone |emerge --config {{Package|sys-libs/timezone-data}}}} # Configure the [[Localization/Guide|locales]] to use, at leaset, one [[UTF-8]] locale: #* Edit {{Path|/etc/locale.gen}}: {{RootCmd|prompt=(chroot) root #|vim /etc/locale.gen}} and uncomment the line referencing <code>en_US.UTF-8 UTF-8</code>: {{FileBox|filename=/etc/locale.gen |title=Adding an UTF-8 locale|1=... en_US.UTF-8 UTF-8 ...}} #* Generate the locales: {{RootCmd|prompt=(chroot) root #|locale-gen |eselect locale list |eselect locale set en_US.utf8}} #* Reload the environment: {{RootCmd|prompt=(chroot) root #|env-update && source /etc/profile && export PS1{{=}}"(chroot) ${PS1}"}} # Unmask the latest versions of {{Package|sys-fs/zfs}} and {{Package|sys-fs/zfs-kmod}}: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-fs/zfs}} ~amd64" >> /etc/portage/package.accept_keywords/zfs |echo "{{Package|sys-fs/zfs-kmod}} ~amd64" >> /etc/portage/package.accept_keywords/zfs-kmod}} {{Note|[https://zfsonlinux.org/ ZFSOnLinux] is under very active development, and the latest versions provide bug fixes and implement new interesting features, e.g zfs-0.8.0 introduced native encryption, support for {{c|TRIM}} in [[SSD|SSDs]], etc<ref name="zfs-0.8.0">Brian Behlendorf. [https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.8.0 zfs-0.8.0], [https://github.com/ GitHub], May 23rd, 2019. Retrieved on January 25th, 2020.</ref>.}} {{Important|Versions of {{Package|sys-fs/zfs}} lower than 0.8.0 depend on {{Package|sys-kernel/spl}}. However, as of version 0.8.0, this dependency has been removed.<ref name="zfs-0.8.0"/>.}} # Unmask the latest versions of {{Package|sys-boot/grub}} and add {{c|ZFS}} support: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-boot/grub}} ~amd64" >> /etc/portage/package.accept_keywords/grub |echo "{{Package|sys-boot/grub}} libzfs" > /etc/portage/package.use/grub}} # Update the [[World_set_(Portage)|{{c|world set}}]]: {{RootCmd|prompt=(chroot) root #|emerge -auvDN @world}} === Configuring, building and installing the Linux kernel === # Unmask a suitable [[Kernel|{{c|kernel}}]] version: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-kernel/gentoo-sources}} ~amd64" >> /etc/portage/package.accept_keywords/gentoo-sources}} {{Warning|At the time of writing this, {{c|ZFS}} 2.3.2 is not compatible with kernel versions 6.15.0 and above. Mask the incompatible kernel versions: {{RootCmd|prompt=(chroot) root #|echo ">{{=}}{{Package|sys-kernel/gentoo-sources}}-6.15.0" >> /etc/portage/package.mask/gentoo-sources}}}} # Emerge {{Package|sys-kernel/gentoo-sources}} with the <code>experimental</code> USE flag to expose the <code>AMD Zen 5</code> processor family type: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-kernel/gentoo-sources}} experimental" >> /etc/portage/package.use/gentoo-sources}} # Install the [[Kernel|{{c|kernel}}]] and [[Genkernel|{{c|genkernel}}]]: {{RootCmd|prompt=(chroot) root #|emerge -auvDN {{Package|sys-kernel/gentoo-sources}} {{Package|sys-kernel/genkernel}}}} # Add compression support to {{Package|sys-apps/kmod}} in order to be able to load compressed modules: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-apps/kmod}} lzma zlib" >> /etc/portage/package.use/kmod |emerge -auvDN {{Package|sys-apps/kmod}}}} # [[Kernel/Gentoo_Kernel_Configuration_Guide|Configure the {{c|kernel}}]]: {{RootCmd|prompt=(chroot) root #|eselect kernel list |eselect kernel set 2 |cd /usr/src/linux |make menuconfig}} #* {{Anchor|Kernel_firmware}}Enable [[Linux_firmware|{{c|Firmware}}]] loading support: {{KernelBox|title=Enable support for Linux firmware|1=Device Drivers ---> Generic Driver Options ---> Firmware loader ---> -*- Firmware loading facility () Build named firmware blobs into the kernel binary [*] Enable compressed firmware support [*] Enable XZ-compressed firmware support [*] Enable ZSTD-compressed firmware support}} #* Gentoo-specific configuration options: {{KernelBox|title=Gentoo-specific configuration options|1=Gentoo Linux ---> [*] Gentoo Linux support [*] Linux dynamic and persistent device naming (userspace devfs) support [*] Select options required by Portage features Support for init systems, system and service managers ---> [ ] OpenRC, runit and other script based systems and managers [*] systemd}} #* Architecture specific kernel configuration: {{KernelBox|title=Selecting processor types and features|1=Processor type and features ---> [*] Support x2apic [*] AMD ACPI2Platform devices support [*] Supported processor vendors ---> [*] Support AMD processors [*] Machine Check / overheating reporting [*] AMD MCE features Processor family (Core 2/newer Xeon) ---> (X) AMD Zen 5 Performance monitoring ---> <*> Intel/AMD rapl performance events <*> AMD Processor Power Reporting Mechanism <*> AMD Uncore performance events [ ] AMD Zen3 Branch Sampling support Power management and ACPI options ---> CPU Frequency scaling ---> Default CPUFreq governor (schedutil) ---> -*- AMD Processor P-State driver <*> ACPI Processor P-States driver [*] Legacy cpb sysfs knob support for AMD CPUs < > AMD Opteron/Athlon64 PowerNow! <*> AMD frequency sensitivity feedback powersave bias Device Drivers ---> Generic Driver Options ---> Firmware loader ---> [*] Firmware loading facility (amd-ucode/microcode_amd_fam19h.bin) External firmware blobs to build into the kernel binary (/lib/firmware) Firware blobs root directory [*] Hardware Monitoring support ---> <*> AMD Family 10h+ temperature sensor [*] IOMMU Hardware Support ---> [*] AMD IOMMU support Binary Emulations ---> [*] IA32 Emulation}} #* Enable {{c|Hyper-Threading}} support: {{KernelBox|title=Configuration for multi-processing support|1=Processor type and features ---> [*] Symmetric multi-processing support [*] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support}} {{KernelBox|title=Power management for multi-processor systems|1=Power management and ACPI options ---> [*] ACPI (Advanced Configuration and Power Interface) Support}} #* Various chipset drivers: {{KernelBox|title=Additional chipset drivers|1=Device Drivers ---> I2C support ---> I2C Hardware Bus Support ---> <*> Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC) [*] Pin Controllers ---> [*] AMD GPIO pin control [*] GPIO Support ---> Memory mapped GPIO drivers ---> <*> AMD Promontory GPIO support [*] X86 Platform Specific Device Drivers ---> <*> AMD SoC PMC driver <*> AMD 3D V-Cache Performance Optimizer Driver [*] AMD Wifi RF Band mitigations (WBRF) [*] Cryptographic API ---> [*] Hardware crypto devices ---> [*] Support for AMD Secure Processor [*] Cryptographic Coprocessor device <*> Encryption and hashing offload support <*> Secure Processor device driver <*> Platform Security Processor (PSP) device }} #* Enable {{c|SATA}} support, needed if using a {{c|SATA}} hard drive; {{c|SCSI}}, needed for {{c|SATA}} devices, {{c|USB}} external hard drives and optical drives, etc.: {{KernelBox|title=Configuration options for SCSI support |1=Device Drivers ---> SCSI device support ---> -*- SCSI device support <*> SCSI disk support <*> SCSI CDROM support <*> SCSI generic support [ ] SCSI low-level drivers ---> <*> Serial ATA and Parallel ATA drivers (libata) ---> [*] ATA ACPI Support [*] SATA Port Multiplier support <*> AHCI SATA support (ahci) [*] ATA BMDMA support [*] ATA SFF support (for legacy IDE and PATA) < > Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix) < > AMD/NVidia PATA support}} #* Enable [[NVMe|{{c|NVMe}}]] device support: {{KernelBox|title=Configuration for NVMe support|1=Device Drivers ---> NVME Support ---> <*> NVM Express block device [*] NVMe multipath support [*] NVMe hardware monitoring <M> NVM Express over Fabrics FC host driver <M> NVM Express over Fabrics TCP host driver}} #* Enable compressed kernel modules: {{Warning|I have {{c|not}} been able to boot from a {{c|ZFS}} system with compressed modules enabled, although it should be entirely possible. Use at your own risk.}} {{KernelBox|title=Enable module compression|1=[*] Enable loadable module support ---> [*] Compress modules on installation Compression algorithm (XZ) ---> ( ) GZIP (X) XZ}} #* Enable [[Device_file|{{c|devtmpfs}}]] support: {{KernelBox|title=Enabling devtmpfs support|1=Device Drivers ---> Generic Driver Options ---> [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs}} #* Enable support for the [[Filesystem|{{c|filesystems}}]] used: {{KernelBox|title=Selecting necessary file systems|1=File systems ---> < > Second extended fs support < > The Extended 3 (ext3) filesystem <*> The Extended 4 (ext4) filesystem [*] Use ext4 for ext2 file systems < > Reiserfs support < > JFS filesystem support < > XFS filesystem support < > GFS2 file system support < > Btrfs filesystem support < > NILFS2 file system support < > F2FS file system support DOS/FAT/NT Filesystems ---> <*> MSDOS fs support <*> VFAT (Windows-95) fs support <*> exFAT filesystem support <*> NTFS Read-Write file system support [*] activate support of external compressions lzx/xpress Pseudo Filesystems ---> -*- /proc file system support -*- Tmpfs virtual memory file system support (former shm fs)}} #* {{Anchor|Kernel_FUSE}}Enable support for [[Filesystem_in_Userspace|{{c|FUSE}}]]: {{KernelBox|title=Enable support for FUSE|1=File systems ---> <*> FUSE (Filesystem in Userspace) support}} #* Enable {{c|GPT}} support: {{KernelBox|title=Enable support for GPT|1=-*- Enable the block layer ---> Partition Types ---> [*] Advanced partition selection [*] EFI GUID Partition support}} #* Enable {{c|UEFI}} support: {{KernelBox|title=Enable support for UEFI|1=Processor type and features ---> [*] EFI runtime service support [*] EFI stub support [*] EFI mixed-mode support Firmware Drivers ---> EFI (Extensible Firmware Interface) Support ---> <*> EFI Variable Support via sysfs}} #* {{Anchor|Kernel_USB}}Configure [[USB]] support: {{KernelBox|title=Configuration for USB Host Controller Devices|1=Device Drivers ---> SCSI device support ---> *** SCSI support type (disk, tape, CD-ROM) *** <*> SCSI disk support < > SCSI tape support <*> SCSI CDROM support <*> SCSI generic support [*] USB support ---> -*- Support for Host-side USB *** USB Host Controller Drivers *** <*> xHCI HCD (USB 3.0) support <*> EHCI HCD (USB 2.0) support <*> OHCI HCD (USB 1.1) support < > UHCI HCD (most Intel and VIA) support <*> USB Mass Storage support <*> Unified support for USB4 and Thunderbolt ---> }} #* Configure [[USB/Guide|USB]] support for input devices: {{KernelBox|title=Configuration for USB input devices |1=Device Drivers ---> HID support ---> -*- HID bus support [*] Battery level reporting for HID devices <*> Generic HID driver USB HID support ---> <*> USB HID transport layer}} #* Enable {{c|USB Type-C}} and {{c|Thunderbolt}} support: {{KernelBox|title=PCI Hotplugging|1=Device Drivers ---> [*] PCI support ---> --- PCI support [*] PCI Express Port Bus support [*] PCI Express Hotplug driver [*] Support for PCI Hotplug ---> [*] ACPI PCI Hotplug driver}} #* Enable {{c|USB}} audio: {{KernelBox|title=Enable support for <var>SND_USB_AUDIO</var>|1=Device Drivers --> <*> Sound card support --> --- Sound card support <*> Advanced Linux Sound Architecture ---> [*] USB sound devices ---> <*> USB Audio/MIDI driver}} #* {{Anchor|Kernel_systemd}}Enable [[Systemd|{{c|systemd}}]] support: {{KernelBox|title=Enable support for Linux firmware|1=General setup ---> -*- Control Group support ---> --- Control Group support -*- Support for eBPF programs attached to cgroups -*- Namespaces support ---> --- Namespaces support -*- Network namespace [*] Checkpoint/restore support [ ] Enable deprecated sysfs features to support old userspace tools [*] Configure standard kernel features (expert users) ---> --- Configure standard kernel features (expert users) -*- open by fhandle syscalls -*- Enable eventpoll support -*- Enable signalfd() system call -*- Enable timerfd() system call BPF subsystem ---> -*- Enable bpf() system call Processor type and features ---> [*] EFI runtime service support General architecture-dependent options ---> -*- Enable seccomp to safely compute untrusted bytecode Device Drivers ---> Firmware Drivers ---> -*- Export DMI identification via sysfs to userspace Generic Driver Options ---> [*] Support for uevent helper () path to uevent helper -*- Maintain a devtmpfs filesystem to mount at /dev Firmware loader ---> -*- Enable the firmware sysfs fallback mechanism -*- Enable the block layer ---> --- Enable the block layer -*- Block layer SG support v4 helper lib Partition Types ---> [*] Advanced partition selection [*] EFI GUID Partition support IO Schedulers ---> <*> BFQ I/O scheduler [*] BFQ hierarchical scheduling support (NEW) -*- Networking support ---> --- Networking support Networking options ---> -*- The IPv6 protocol ---> [*] Unix domain sockets File systems ---> -*- Inotify support for userspace -*- Kernel automounter support (supports v3, v4 and v5) Pseudo filesystems ---> -*- /proc file system support -*- sysfs file system support -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes Gentoo Linux ---> Support for init systems, system and service managers ---> [ ] OpenRC, runit and other script based systems and managers [*] systemd}} #* {{Anchor|Kernel_Intel_graphics}}Configure the [[Intel|Intel graphics]]: {{KernelBox|title=Configuration for Intel graphics|1=<pre> Device Drivers ---></pre><pre> Generic Driver Options ---></pre><pre> Firmware loader ---></pre><pre> -*- Firmware loading facility</pre><pre> (i915/kbl_dmc_ver1_04.bin) Build named firmware blobs into the kernel binary</pre><pre> (/lib/firmware) Firmware blobs root directory</pre><pre> Graphics support ---></pre><pre> <*> /dev/agpgart (AGP Support) ---></pre><pre> --- /dev/agpgart (AGP Support)</pre><pre> < > AMD Opteron/Athlon64 on-CPU GART support</pre><pre> <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support</pre><pre> < > SiS chipset support</pre><pre> < > VIA chipset support</pre><pre> [ ] VGA Arbitration</pre><pre> [ ] Laptop Hybrid Graphics - GPU switching support</pre><pre> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---></pre><pre> --- Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)</pre><pre> [*] Enable legacy fbdev support for your modesetting driver</pre><pre> [ ] Allow to specify an EDID data set instead of probing for it</pre><pre> I2C encoder or helper chips ---></pre><pre> < > Chrontel ch7006 TV encoder</pre><pre> < > Silicon Image sil164 TMDS transmitter</pre><pre> < > NXP Semiconductors TDA998X HDMI encoder</pre><pre> < > NXP Semiconductors TDA9950/TDA998X HDMI CEC </pre><pre> ARM devices ----</pre><pre> < > ATI Radeon</pre><pre> < > AMD GPU</pre><pre> < > Nouveau (NVIDIA) cards</pre><pre> <*> Intel 8xx/9xx/G3x/G4x/HD Graphics</pre><pre> [ ] Enable alpha quality support for new Intel hardware by default</pre><pre> < > Virtual GEM provider</pre><pre> < > Virtual KMS (EXPERIMENTAL)</pre><pre> < > DRM driver for VMware Virtual GPU</pre><pre> < > Intel GMA5/600 KMS Framebuffer</pre><pre> < > DisplayLink</pre><pre> < > AST server chips</pre><pre> < > Kernel modesetting driver for MGA G200 server engines</pre><pre> < > Cirrus driver for QEMU emulated device</pre><pre> < > QXL virtual GPU</pre><pre> < > DRM Support for bochs dispi vga interface (qemu stdvga)</pre><pre> Display Panels ----></pre><pre> < > Raspberry Pi 7-inch touchscreen pane</pre><pre> Display Interface Bridges ----></pre><pre> < > Analogix ANX78XX bridge</pre><pre> < > ETNAVIV (DRM support for Vivante GPU IP cores)</pre><pre> [ ] Enable legacy drivers (DANGEROUS) ----></pre><pre> --- Enable legacy drivers (DANGEROUS)</pre><pre> < > 3dfx Banshee/Voodoo3+</pre><pre> < > ATI Rage 128</pre><pre> < > Intel I810</pre><pre> < > Matrox g200/g400</pre><pre> < > SiS video cards</pre><pre> < > Via unichrome video cards</pre><pre> < > Savage video cards</pre><pre> Frame buffer Devices ---></pre><pre> -*- Support for frame buffer devices ---></pre><pre> --- Support for frame buffer devices</pre><pre> *** Frame buffer hardware drivers ***</pre><pre> [*] Simple framebuffer support</pre><pre> Backlight & LCD device support ---></pre><pre> Console display driver support ---></pre><pre> [*] Bootup logo ---></pre>}} #* {{Anchor|Kernel_Xorg}}Configure the [[Xorg|{{c|Xorg}}]] support: {{KernelBox|title=Enabling evdev in the kernel|1=Device Drivers ---> Input device support ---> <*> Event interface}} {{KernelBox|title=Disable legacy framebuffer support and enable basic console FB support|1=Device Drivers ---> Graphics support ---> Frame Buffer Devices ---> -*- Support for frame buffer devices ---> --- Support for frame buffer devices *** Frame buffer hardware drivers *** ## (Disable all other drivers, including VGA, Intel, NVIDIA, and ATI) [*] Simple framebuffer support Console display driver support ---> [*] Framebuffer Console Support}} #* {{Anchor|Kernel_Wifi}}Configure the [[Wifi|{{c|Wifi}}]] support: {{KernelBox|title=Enabling IEEE 802.11 support|1=<pre>-*- Networking support ---></pre><pre> --- Networking support</pre><pre> -*- Wireless ---></pre><pre> --- Wireless</pre><pre> <*> cfg80211 - wireless configuration API</pre><pre> [ ] nl80211 testmode command</pre><pre> [ ] enable developer warnings</pre><pre> [ ] cfg80211 certification onus</pre><pre> [*] enable powersave by default</pre><pre> [ ] cfg80211 DebugFS entries</pre><pre> [ ] support CRDA</pre><pre> [ ] cfg80211 wireless extensions compatibility</pre><pre> <*> Generic IEEE 802.11 Networking Stack (mac80211)</pre><pre> [*] Minstrel</pre><pre> Default rate control algorithm (Minstrel) ---></pre><pre> (X) Minstrel</pre><pre> [ ] Enable mac80211 mesh networking (pre-802.11s) support</pre><pre> -*- Enable LED triggers</pre><pre> [ ] Export mac80211 internals in DebugFS</pre><pre> [ ] Trace all mac80211 debug messages</pre><pre> [ ] Select mac80211 debugging features ----</pre>}} {{KernelBox|title=Configure the iwlwifi module|1=<pre> Device Drivers ---></pre><pre> [*] Network device support ---></pre><pre> --- Network device support</pre><pre> [*] Wireless LAN ---></pre><pre> --- Wireless LAN</pre><pre> [ ] mac80211-based legacy WDS support</pre><pre> [ ] ADMtek devices</pre><pre> [ ] Atheros/Qualcomm devices</pre><pre> [ ] Atmel devices</pre><pre> [ ] Broadcom devices</pre><pre> [ ] Cisco devices</pre><pre> [*] Intel devices</pre><pre> < > Intel PRO/Wireless 2100 Network Connection</pre><pre> < > Intel PRO/Wireless 2200BG and 2915ABG Network Connection</pre><pre> < > Intel Wireless WiFi 4965AGN (iwl4965)</pre><pre> < > Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)</pre><pre> <M> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)</pre><pre> < > Intel Wireless WiFi DVM Firmware support</pre><pre> <M> Intel Wireless WiFi MVM Firmware support</pre><pre> [ ] Enable broadcast filtering</pre><pre> Debugging Options ---></pre><pre> [ ] Enable full debugging output in the iwlwifi driver</pre><pre> [*] iwlwifi device access tracing</pre><pre> [ ] Intersil devices</pre><pre> [ ] Marvell devices</pre><pre> [ ] MediaTek devices</pre><pre> [ ] Ralink devices</pre><pre> [ ] Realtek devices</pre><pre> [ ] Redpine Signals Inc devices</pre><pre> [ ] STMicroelectronics devices</pre><pre> [ ] Texas Instrument devices</pre><pre> [ ] ZyDAS devices</pre><pre> [ ] Quantenna wireless cards support</pre><pre> < > Aviator/Raytheon 2.4GHz wireless support</pre><pre> < > Planet WL3501 PCMCIA cards</pre><pre> < > Simulated radio testing tool for mac80211</pre><pre> < > Wireless RNDIS USB support</pre><pre> < > Wifi wrapper for ethernet drivers</pre><pre>-*- Cryptographic API ---></pre><pre> --- Cryptographic API</pre><pre> *** Ciphers ***</pre><pre> -*- AES cipher algorithms</pre><pre> <*> AES cipher algorithms (AES-NI)</pre>}} #* {{Anchor|Kernel_Networkmanager}}Enable [[NetworkManager|{{c|NetworkManager}}]] support: {{KernelBox|title=Enabling NetworkManager support|1=-*- Networking support ---> --- Networking support Networking options ---> <*> Packet socket -*- Wireless ---> --- Wireless <*> cfg80211 - wireless configuration API [*] cfg80211 wireless extensions compatibility}} #* {{Anchor|Kernel_Hardware_Clock}}Enable [[System_time#Hardware_clock|{{c|hardware clock}}]] support: {{KernelBox|title=Necessary kernel options for a hardware clock|1=Device Drivers ---> [*] Real Time Clock ---> --- Real Time Clock *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** <*> PC-style 'CMOS'}}{{KernelBox|title=Letting the kernel sync the system clock|1=Device Drivers ---> [*] Real Time Clock ---> --- Real Time Clock [*] Set system time from RTC on startup and resume (rtc0) RTC used to set the system time [*] Set the RTC time based on NTP synchronization (rtc0) RTC used to synchronize NTP adjustment *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** <*> PC-style 'CMOS'}} #* {{Anchor|Kernel_Microcode}}Enable [[Microcode|{{c|CPU microcode}}]] for the [[Intel_microcode|{{c|Intel CPU}}]] loading support: {{KernelBox|title=Configuring the kernel to support Intel microcode loading|1=<pre> General setup ---></pre><pre> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support</pre></br><pre> Processor type and features ---></pre><pre> [*] CPU microcode loading support</pre><pre> [*] Intel microcode loading support</pre><pre> [ ] AMD microcode loading support</pre><pre> [ ] Ancient loading interface (DEPRECATED)</pre>}} #* {{Anchor|Kernel_NTFS}}Enable [[NTFS|{{c|NTFS}}]] read and write support: {{KernelBox|title=Enable built-in NTFS filesystem reading support|1=<pre> File systems ---></pre><pre> DOS/FAT/NT Filesystems ---></pre><pre> <*> NTFS file system support</pre><pre> [ ] NTFS write support</pre>}} {{KernelBox|title=Enabling NTFS over FUSE using NTFS-3G|1=<pre> File systems ---></pre><pre> <*> FUSE (Filesystem in Userspace) support</pre>}} #* {{Anchor|Kernel_tmpfs}}Enable [[Tmpfs|{{c|tmpfs}}]] support: {{KernelBox|title=Enable tmpfs support|1=File systems ---> Pseudo filesystems ---> -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes}} #* {{Anchor|Kernel_audio}}Enable [[ALSA|{{c|ALSA}}]] and [[PulseAudio|{{c|PulseAudio}}]] sound support: {{KernelBox|title=Enable ALSA support|1=<pre> General setup ---></pre><pre> -*- System V IPC</pre></br><pre> Device Drivers ---></pre><pre> <*> Sound card support</pre><pre> --- Sound card support</pre><pre> <*> Advanced Linux Sound Architecture ---></pre><pre> --- Advanced Linux Sound Architecture</pre><pre> [*] PCI sound devices ---></pre><pre> HD-Audio ---></pre><pre> <*> HD Audio PCI</pre><pre> <*> Build Realtek HD-audio codec support</pre><pre> <*> Build HDMI/DisplayPort HD-audio codec support</pre><pre> -*- Enable generic HD-audio codec parser</pre>}} {{KernelBox|title=Enable PulseAudio support|1=<pre> General setup ---></pre><pre> Timers subsystem ---></pre><pre> [*] High Resolution Timer Support</pre></br><pre> Device Drivers ---></pre><pre> <*> Sound card support ---></pre><pre> --- Sound card support</pre><pre> <*> Advanced Linux Sound Architecture ---></pre><pre> (2048) Pre-allocated buffer size for HD-audio driver</pre></br><pre> File systems ---></pre><pre> Pseudo filesystems ---></pre><pre> -*- Tmpfs virtual memory file system support (former shm fs)</pre><pre> -*- Tmpfs POSIX Access Control Lists</pre>}} #* {{Anchor|Kernel_VM}}Enable [[QEMU|{{c|QEMU and KVM}}]] support: {{KernelBox|title=Enabling QEMU and KVM support|1=<pre>[*] Virtualization ---></pre><pre> --- Virtualization ---></pre><pre> <*> Kernel-based Virtual Machine (KVM) support</pre><pre> <*> KVM for Intel processors support</pre><pre> < > KVM for AMD processors support</pre><pre> <*> Host kernel accelerator for virtio net</pre><pre>-*- Networking support ---></pre><pre> --- Networking support</pre><pre> Networking options ---></pre><pre> -*- The IPv6 protocol ---></pre><pre> <*> 802.1d Ethernet Bridging</pre><pre> Device Drivers ---></pre><pre> [*] Network device support ---></pre><pre> --- Network device support</pre><pre> [*] Network core driver support</pre><pre> <*> Universal TUN/TAP device driver support</pre><pre> Kernel hacking ---></pre><pre> Compile-time checks and compiler options ---></pre><pre> -*- Debug Filesystem</pre><pre></pre><pre></pre><pre></pre><pre></pre>}} # Prepare the kernel for module compilation: {{RootCmd|prompt=(chroot) root #|make modules_prepare}} # Compile the kernel: {{RootCmd|prompt=(chroot) root #|make -j32}} # Install the kernel modules: {{RootCmd|prompt=(chroot) root #|make modules_install}} # Modify <code>installkernel</code> to boot from <code>grub</code>: {{RootCmd|prompt=(chroot) root #|echo "sys-kernel/installkernel grub -systemd" >> /etc/portage/package.use/installkernel |emerge --ask installkernel}} # Install the kernel: {{RootCmd|prompt=(chroot) root #|make install}} # Install {{Package|sys-fs/zfs}} and {{Package|sys-fs/zfs-kmod}}: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|sys-fs/zfs}}}} # Rebuild the installed [[Kernel_Modules|{{c|modules}}]]: {{RootCmd|prompt=(chroot) root #|emerge --ask @module-rebuild}} # Use [[Genkernel|{{c|genkernel}}]] to generate an [[Initramfs|{{c|initramfs}}]]: {{RootCmd|prompt=(chroot) root #|genkernel initramfs --firmware --kernel-config{{=}}/usr/src/linux/.config --keymap --makeopts{{=}}-j32 --mountboot --no-clean --zfs}} {{Note|Notice that native {{c|ZFS}} encryption is used for this system, rather than [[Dm-crypt|{{c|LUKS}}]], and thus the lack of the <code>--luks</code> option in the {{c|genkernel}} invacation.}} === Install Firmware === # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_firmware|above]], to enable {{c|firmware}} loading support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Update the Linux kernel|below]]. # Install the [[Linux_firmware|{{c|firmware}}]]: {{RootCmd|prompt=(chroot) root #|emerge -auvDN {{Package|sys-kernel/linux-firmware}}}} # Add support for individual selection of firmware files to {{Package|sys-kernel/linux-firmware}}: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-kernel/linux-firmware}} savedconfig" >> /etc/portage/package.use/linux-firmware}} # Comment everything in {{Path|/etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy}} except the actual firmware files needed by the system: {{RootCmd|prompt=(chroot) root #|vim /etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy}} {{Note|Currently loaded firmware can be assessed by {{Cmd|dmesg {{!}} grep -i firmware}}}} {{Tip|A working {{Path|linux-firmware-ddmmyyyy}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/etc/portage/savedconfig/sys-kernel here].}} # Re-emerge {{Package|sys-kernel/linux-firmware}}: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|sys-kernel/linux-firmware}}}} === Configure fstab === With the use of {{c|ZFS}}, modifying the [[Fstab|fstab]] file is not strictly needed. However, by editing {{Path|/etc/fstab}}, an easy way to mount {{Path|/boot}} and {{Path|/boot/efi}} will be provided (note the <code>noauto</code> option. # Edit {{Path|/etc/fstab}}: {{RootCmd|prompt=(chroot) root #|vim /etc/fstab}} {{FileBox|filename=/etc/fstab|title=Mounting rules for {{Path|/boot}} and {{Path|/boot/efi}}|1=... /dev/nvme0n1p1 /boot/efi vfat noauto,noatime 1 2 bpool/BOOT/gentoo /boot zfs noauto,nodev,relatime 1 2 ...}} {{Tip|A working {{Path|fstab}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/fstab here].}} === Configure the Network === # Set the computer's name: {{RootCmd|prompt=(chroot) root #|echo 'hostname{{=}}"foo"' > /etc/conf.d/hostname}} # Install a {{c|DHCP}} client: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|net-misc/dhcpcd}}}} # Install wireless networking tools: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|net-wireless/iw}} {{Package|net-wireless/wpa_supplicant}}}} === Install systemd === # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_systemd|above]], to enable {{c|systemd}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|systemd}} support: {{RootCmd|prompt=(chroot) root #|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for systemd support|1=... USE="...systemd..." ...}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system with {{c|systemd}} support: {{RootCmd|prompt=(chroot) root #|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Create {{Path|/etc/mtab}} as a symlink to {{Path|/proc/self/mounts}}: {{RootCmd|prompt=(chroot) root #|ln -sf /proc/self/mounts /etc/mtab}} # Create a machine ID: {{RootCmd|prompt=(chroot) root #|systemd-machine-id-setup}} # Create a hostname: {{RootCmd|prompt=(chroot) root #|hostnamectl set-hostname foo}} # Enable the services needed to mount {{c|ZFS}} filesystems automatically: {{RootCmd|prompt=(chroot) root #|systemctl enable zfs.target |systemctl enable zfs-import-cache |systemctl enable zfs-mount |systemctl enable zfs-import.target |systemctl enable zfs-import-scan}} # Create a service to import {{Path|/boot}} automatically and enable it: {{RootCmd|prompt=(chroot) root #|vim /etc/systemd/system/zfs-import-bpool.service}} {{FileBox|filename=/etc/systemd/system/zfs-import-bpool.service|title=Systemd service to automatically import {{Path|/boot}}|1=[Unit] DefaultDependencies=no Before=zfs-import-scan.service Before=zfs-import-cache.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/sbin/zpool import -N -o cachefile=none bpool [Install] WantedBy=zfs-import.target}} {{Tip|A working {{Path|zfs-import-bpool.service}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/systemd/system/zfs-import-bpool.service here].}} {{RootCmd|prompt=(chroot) root #|systemctl enable zfs-import-bpool.service}} # Create a service to mount {{Path|/home}} automatically and enable it: {{RootCmd|prompt=(chroot) root #|vim /etc/systemd/system/zfskey-home.service}} {{FileBox|filename=/etc/systemd/system/zfskey-home.service|title=Systemd service to automatically import {{Path|/home}}|1=[Unit] Description=Load rpool/ROOT/home encryption keys Before=systemd-user-sessions.service Before=zfs-mount.service After=zfs-import.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/bash -c 'systemd-ask-password "Encrypted ZFS password for rpool/ROOT/home" --no-tty |zfs load-key rpool/ROOT/home' [Install] WantedBy=zfs-mount.service}} {{Tip|A working {{Path|zfskey-home.service}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/systemd/system/zfskey-home.service here].}} {{RootCmd|prompt=(chroot) root #|systemctl enable zfskey-home.service}} === Install GRUB === This guide uses [[GRUB]] as a boot loader. # Edit [[:/etc/portage/make.conf|make.conf]] to install {{c|GRUB2}} for the <code>efi-64</code> platform: {{RootCmd|prompt=(chroot) root #|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>GRUB_PLATFORMS</var> variable for EFI-64 platform|1=... GRUB_PLATFORMS="efi-64" ...}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Mount the [[EFI_System_Partition|{{c|EFI System Partition}}]] partition: {{RootCmd|prompt=(chroot) root #|mkdir /boot/efi |mount /boot/efi}} # Emerge {{Package|sys-boot/grub}} and {{Package|sys-boot/os-prober}} to allow {{c|GRUB2}} to detect Windows 10: {{RootCmd|prompt=(chroot) root #|emerge -auvDN {{Package|sys-boot/grub}} {{Package|sys-boot/os-prober}}}} # Get {{c|GRUB}} to probe the {{Path|/boot}} partition: {{RootCmd|prompt=(chroot) root #|grub-probe /boot|output=zfs}} {{Warning|The above command {{c|must}} return <code>ZFS</code>, if not, something is wrong and the system will not boot.}} # Add parameters to the kernel command line in order to boot from a {{c|ZFS}} partition: {{RootCmd|prompt=(chroot) root #|vim /etc/default/grub}} {{FileBox|filename=/etc/default/grub|title=Setting the <var>GRUB_CMDLINE_LINUX</var> variable to boot from ZFS|1=... GRUB_CMDLINE_LINUX="dozfs real_root=ZFS=rpool/ROOT/gentoo" ...}} {{Tip|A working {{Path|/etc/default/grub}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/default/grub here].}} # Create the {{Path|/boot/grub}} directory: {{RootCmd|prompt=(chroot) root #|mkdir /boot/grub}} # Generate the {{c|GRUB}} configuration file: {{RootCmd|prompt=(chroot) root #|grub-mkconfig -o /boot/grub/grub.cfg}} # Check that the configuration file includes instructions to load the {{c|ZFS}} module: {{RootCmd|prompt=(chroot) root #|grep 'insmod zfs' /boot/grub/grub.cfg |output=insmod zfs}} # Install the bootloader: {{RootCmd|prompt=(chroot) root #|grub-install --target{{=}}x86_64-efi --efi-directory{{=}}/boot/efi --bootloader-id{{=}}Gentoo --recheck --no-floppy}} # Check if the {{c|ZFS}} module for {{c|GRUB}} has been installed: {{RootCmd|prompt=(chroot) root #|ls /boot/grub/*/zfs.mod |output=/boot/grub/x86_64-efi/zfs.mod}} # Unmount the boot partitions: {{RootCmd|prompt=(chroot) root #|umount /boot/efi |umount /boot}} # Allow {{Path|bpool/BOOT/gentoo}} to be managed by legacy tools, such as {{c|GRUB}} and the {{Path|/etc/fstab}}: {{RootCmd|prompt=(chroot) root #|zfs set mountpoint{{=}}legacy bpool/BOOT/gentoo}} === User Accounts === # Secure the {{c|root}} account with a strong password: {{RootCmd|prompt=(chroot) root #|passwd}} # Create a regular user: {{RootCmd|prompt=(chroot) root #|useradd -m -G audio,cdrom,portage,usb,users,video,wheel -s /bin/bash foo |passwd foo}} === First ZFS snapshot === Create a first {{c|ZFS snapshot}}. If anythong goes wrong afterwards, it will serve as a backup of a the freshly installed system. # Create a snapshot of the boot filesystem: {{RootCmd|zfs snapshot bpool/BOOT/gentoo@install}} # Create a snapshot of the root filesystem: {{RootCmd|zfs snapshot rpool/ROOT/gentoo@install}} # Create a snapshot of the home filesystem: {{RootCmd|zfs snapshot rpool/ROOT/home@install}} {{Tip|The following commands can be used to manage snapshots: #* Create: {{RootCmd|zfs snapshot bpool/BOOT/gentoo@install}} #* List: {{RootCmd|zfs list -t all}} #* Rollback: {{RootCmd|zfs rollback bpool/BOOT/gentoo@install}} #* Clone: {{RootCmd|zfs clone bpool/BOOT/gentoo@install bpool/BOOT/gentoo@install_backup}} #* Rename: {{RootCmd|zfs rename bpool/BOOT/gentoo@install_backup bpool/BOOT/gentoo@original_install}} #* Destroy: {{RootCmd|zfs destroy bpool/BOOT/gentoo@install}}}} === Rebooting === # Exit the {{c|chroot}} environment: {{RootCmd|prompt=(chroot) root #|exit}} # Unmount all mounted partitions: {{RootCmd|cd |umount -l /mnt/gentoo/{dev,sys,proc,run} |umount -R /mnt/gentoo/home |umount -R /mnt/gentoo}} # Change the mountpoint of the {{c|ZFS filesystems}}: {{RootCmd|zfs set mountpoint{{=}}/ rpool/ROOT/gentoo |zfs set mountpoint{{=}}/home rpool/ROOT/home}} # Reboot into the Gentoo environment: {{RootCmd|reboot}} # Remove the downloaded {{c|stage3}} files: {{RootCmd|rm /stage3-amd64-systemd-20191223.tar.bz2}} # If {{c|systemd}} gives errors regarding the locales, run: {{RootCmd|localectl set-locale LANG{{=}}en_US.UTF-8}} === FUSE === # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_FUSE|above]], to enable {{c|FUSE}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Install the userspace {{c|FUSE}} tools: {{RootCmd|emerge --ask {{Package|sys-fs/fuse}}}} === Sudo === # Enable the <code>offensive</code> {{c|USE}} flag to get funny replies when typing in wrong passwords: {{RootCmd|echo “{{Package|app-admin/sudo}} offensive” >> /etc/portage/package.use/sudo}} # Install [[Sudo|{{c|sudo}}]]: {{RootCmd|emerge -auvDN {{Package|app-admin/sudo}}}} # Grant administrator privileges to all the users of the <code>wheel</code> group by editing the {{Path|/etc/sudoers}} file: {{RootCmd|visudo}} {{FileBox|filename=/etc/sudoers|title=Modify administrator privileges|1=<pre>...</pre><pre>wheel ALL=(ALL) ALL</pre><pre>...</pre>}} # Enable bash completion with sudo: {{RootCmd|echo "complete -cf sudo" >> $HOME/.bashrc}} # Allow X applications to be run with sudo: {{Cmd|xhost local:root}} === AMD Graphics === Note: Configure the drivers for the Intel Graphics Chip. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Intel_graphics|above]], to enable the Intel graphics support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to globally enable Intel graphics support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>VIDEO_CARDS</var> variable for Intel support|1=<pre>...</pre><pre>VIDEO_CARDS="intel i965 iris"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system to reinstall packages with Intel graphics support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # If needed, force {{c|Xorg}} to load the modesetting driver: {{RootCmd|vim /etc/X11/xorg.conf.d/20-modesetting.conf}} {{FileBox|filename=/etc/X11/xorg.conf.d/20-modesetting.conf|title=Force modesetting DDX|<pre>Section "Device"</pre><pre> Identifier "Intel Graphics"</pre><pre> Driver "modesetting"</pre><pre> Option "AccelMethod" "glamor"</pre><pre> Option "DRI" "3"</pre><pre>EndSection</pre>}} # Install the Intel userland GPU tools: {{RootCmd|echo "{{Package|x11-apps/igt-gpu-tools}} ~amd64" >> /etc/portage/package.accept_keywords/igt-gpu-tools}} === Xorg === Configure the [[Xorg|{{c|Xorg}}]] X server. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Xorg|above]], to enable {{c|Xorg}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|Xorg}} support and set the drivers for input devices: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for X support and configure <var>INPUT_DEVICES</var>|1=<pre>...</pre><pre>USE="...X..."</pre><pre>...</pre><pre>INPUT_DEVICES="libinput"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Install {{c|Xorg}}: {{RootCmd|emerge -auvDN {{Package|x11-base/xorg-server}}}} # Update the environment settings and source the profile: {{RootCmd|env-update && source /etc/profile}} # Install packages to test if the {{c|X server}} is working: {{RootCmd|emerge --ask {{Package|x11-wm/twm}} {{Package|x11-terms/xterm}}}} # Install package to test if the 3D acceleration is working: {{RootCmd|emerge --ask {{Package|x11-apps/mesa-progs}}}} # Test if the {{c|X server}} is working: {{Cmd|startx}} # Test if the 3D acceleration is working: {{Cmd|glxinfo {{!}} grep rendering|output=<pre>direct rendering: Yes</pre>}} {{Cmd|glxgears}} # Exit the X environment: {{Cmd|exit}} # Remove the packages installed for testing: {{RootCmd|emerge -Cav {{Package|x11-wm/twm}} {{Package|x11-terms/xterm}} {{Package|x11-apps/mesa-progs}}}} # Update the system to reinstall packages with {{c|X}} support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} === Wifi === Configure the [[Wifi|{{c|Wifi}}]] adapter. # Identify the {{c|Wifi}} adapter: {{RootCmd|dmesg {{!}} grep -i -E '3b:00.0{{!}}wlan{{!}}iwl{{!}}80211'|output=<pre>Detected Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW), REV=0x340</pre>}} # According to this table<ref name="iwlwifi_firmware"/>: #* The module required to control this adapter is [[Iwlwifi|iwlmvm]]. #* The lowest Linux kernel compatible is 5.1+ (current stable kernels, 4.19.*, are not compatible). # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Wifi|above]], to enable {{c|Wifi}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. === NetworkManager === Configure [[NetworkManager|{{c|NetworkManager}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Networkmanager|above]], to enable {{c|NetworkManager}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|NetworkManager}} support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for NetworkManager support|1=<pre>...</pre><pre>USE="...networkmanager..."</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system to reinstall packages with {{c|NetworkManager}} support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Enable {{c|NetworkManager}} to be started at boot time: {{RootCmd|systemctl enable NetworkManager}} === GNOME Light === Install the [[GNOME/Guide|{{c|GNOME}}]] [[Desktop_environment|{{c|desktop environment}}]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|GNOME}} support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for GNOME support|1=<pre>...</pre><pre>USE="...gnome gtk gtk3 -kde -gt5 systemd wayland X..."</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Emerge {{c|GNOME Light}}: {{RootCmd|emerge -auvDN {{Package|gnome-base/gnome-light}}}} # Update the environment variables and reload the environment {{RootCmd|env-update && source /etc/profile}} # Verify that the <code>plugdev</code> group exists and add each {{c|GNOME}} user to it: {{RootCmd|getent group plugdev|output=<pre>plugdev:x:272:</pre>}} {{RootCmd|gpasswd -a foo plugdev |gpasswd -a root plugdev}} # Enable [[GNOME/GDM|{{c|GDM}}]] on boot: {{RootCmd|systemctl enable gdm.service}} # Install GNOME tweaks and shell extensions for {{c|GNOME 3}} customization: {{RootCmd|emerge -auvDN {{Package|gnome-extra/gnome-tweaks}} {{Package|gnome-extra/gnome-shell-extensions}}}} # Provide admin privileges in system dialogs to the users in the wheel group: {{RootCmd|vim /etc/polkit-1/rules.d/49-wheel.rules}} {{FileBox|title=Administrator wheel group|filename=/etc/polkit-1/rules.d/49-wheel.rules|<pre>polkit.addAdminRule(function(action, subject) {</pre><pre> return ["unix-group:wheel"];</pre><pre>});</pre>}} # Allow the {{c|root}} user to launch X window applications: {{Cmd|vim ~/.bashrc}} {{FileBox|title=X windows as root|filename=/home/foo/.bashrc|<pre># Allow root to launch x window applications:</pre><pre>xhost local:root</pre>}} # Enable [[GNOME/GDM#Enable_tap_to_click_in_GDM|tap to click]] in [[GNOME/GDM|{{c|GDM}}]]: {{Cmd|xhost +SI:localuser:gdm|sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}} === GNOME === From the {{c|GNOME}} packages not installed by {{c|GNOME Light}}, install those that are really needed. # Install {{Package|gnome-extra/gnome-system-monitor}}: {{RootCmd|emerge -auvDN {{Package|gnome-extra/gnome-system-monitor}}}} # Install {{Package|sys-block/gparted}}: {{RootCmd|echo "{{Package|sys-block/gparted}} ~amd64" >> /etc/portage/package.accept_keywords/gparted |emerge -auvDN {{Package|sys-block/gparted}}}} === Chromium === Install the [[Chromium|{{c|Chromium}}]] web browser. # Unmask the latest Chromium ebuild: {{RootCmd|echo “{{Package|www-client/chromium}} ~amd64” >> /etc/portage/package.accept_keywords/chromium}} # Emerge Chromium: {{RootCmd|emerge -auvDN {{Package|www-client/chromium}}}} # Open Chromium in incognito mode by default: {{RootCmd|cp /usr/share/applications/chromium-browser-chromium.desktop ~/.local/share/applications/|vim ~/.local/share/applications/chromium-browser-chromium.desktop}} {{FileBox|title=Launcher for Chromium in incognito mode|filename=/home/foo/.local/share/applications/chromium-browser-chromium.desktop|<pre>...</pre><pre>Exec=chromium-browser --incognito %U</pre><pre>...</pre>}} # Enable click-to-install {{c|GNOME}} Shell Extensions through Chromium: #* Install the required browser [https://chrome.google.com/webstore/detail/gphhapmejobijbbhgpjhcjognlahblep add-on] through the Chrome store. #* Emerge the backend: {{RootCmd|emerge -auvDN {{Package|gnome-extra/chrome-gnome-shell}}}} === Firefox === Install the [[Firefox|{{c|Firefox}}]] web browser. # Unmask the latest Firefox ebuild: {{RootCmd|echo “{{Package|www-client/firefox}} ~amd64” >> /etc/portage/package.accept_keywords/firefox}} # Emerge Firefox: {{RootCmd|emerge -auvDN {{Package|www-client/firefox}}}} # Open Firefox in incognito mode by default: {{RootCmd|cp /usr/share/applications/firefox.desktop ~/.local/share/applications/|vim ~/.local/share/applications/firefox.desktop}} {{FileBox|title=Launcher for Firefox in incognito mode|filename=/home/foo/.local/share/applications/firefox.desktop|<pre>...</pre><pre>Exec=firefox --private-window %u</pre><pre>...</pre>}} # Enable click-to-install {{c|GNOME}} Shell Extensions through Firefox: #* Install the required browser [https://addons.mozilla.org/firefox/addon/gnome-shell-integration/ add-on] through Add-ons for Firefox. #* Emerge the backend: {{RootCmd|emerge -auvDN {{Package|gnome-extra/chrome-gnome-shell}}}} === Hardware Clock === Configure [[System_time#Hardware_clock|{{c|Hardware Clock}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Hardware_Clock|above]], to enable {{c|Hardware Clock}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Check that the {{c|Hardware Clock}} is in use: {{Cmd|timedatectl {{!}} grep "RTC time"}} # Configure {{c|GNOME}} automatically update the {{c|Hardware Clock}} from online servers: gnome-control-center > Details > Date & Time > Automatic Date & Time (set on). === Localization === Change some [[Localization/Guide|language specific settings]]. # Modify the keyboard layout for the console: {{RootCmd|localectl list-keymaps |localectl set-keymap es |localectl {{!}} grep "VC Keymap"| output=<pre> VC Keymap: es</pre>}} # Modify the keyboard layout for the X server: {{RootCmd|localectl list-x11-keymap-layouts |localectl set-x11-keymap es |localectl {{!}} grep "X11 Layout"| output=<pre> X11 Layout: es</pre>}} # Edit [[:/etc/portage/make.conf|make.conf]] to enable systemwide localization: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>LINGUAS</var> and <var>L11N</var> variables for systemwide localization|1=<pre>...</pre><pre>LINGUAS="en es es_ES"</pre><pre>L10N="en es es-es"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system with with systemwide localization: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} === Loading of CPU microcode === [[Microcode|{{c|CPU microcode}}]] for the [[Intel_microcode|{{c|Intel CPU}}]] will be loaded by GRUB at boot time. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Microcode|above]], to enable {{c|CPU microcode}} loading support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Install the microcode firmware package and the manipulation tool: {{RootCmd|echo "{{Package|sys-firmware/intel-microcode}} hostonly" >> /etc/portage/package.use/intel-microcode |emerge -auvDN {{Package|sys-firmware/intel-microcode}} {{Package|sys-apps/iucode_tool}}}} # Mount the {{Path|/boot}} and {{Path|/boot/efi}} partitions: {{RootCmd|mount /boot |mount /boot/efi}} # Manually generate the microcode cpio archive: {{RootCmd|iucode_tool -S --write-earlyfw{{=}}/boot/early_ucode.cpio /lib/firmware/intel-ucode/*|output=<pre>iucode_tool: system has processor(s) with signature 0x000906ed</pre><pre>iucode_tool: Writing selected microcodes to: /boot/early_ucode.cpio</pre>}} {{Note|{{c|GRUB2}} will automatically try to load any file named {{Path|/boot/early_ucode.cpio}}.}} # Regenerate the {{c|GRUB}} configuration file: {{RootCmd|grub-mkconfig -o /boot/grub/grub.cfg}} # After reboot, check that the microcode has been loaded: {{RootCmd|dmesg {{!}} grep microcode |output=<pre>[ 0.000000] microcode: microcode updated early to revision 0xca, date = 2019-10-03</pre><pre>[ 2.623235] microcode: sig=0x906ed, pf=0x20, revision=0xca</pre><pre>[ 2.623592] microcode: Microcode Update Driver: v2.2.</pre>}} {{RootCmd|grep microcode /proc/cpuinfo |output=<pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre>}} === USB support === Configure [[USB/Guide|support]] for [[USB|{{c|USB}}]] devices. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_USB|above]], to enable {{c|USB}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Install the [[Usbutils|{{c|usbutils}}]] to be able to query the {{c|USB}} interfaces: {{RootCmd|emerge -auvDN {{Package|sys-apps/usbutils}}}} === NTFS support === Configure [[NTFS|{{c|NTFS}}]] read and write support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_NTFS|above]], to enable in-kernel {{c|NTFS}} read and {{c|FUSE}} write support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Enable {{c|USE}} flags as needed: {{RootCmd|echo "{{Package|sys-fs/ntfs3g}} ntfsdecrypt suid" >> /etc/portage/package.use/ntfs3g}} # Emerge {{Package|sys-fs/ntfs3g}}: {{RootCmd|emerge -auvDN {{Package|sys-fs/ntfs3g}}}} === tmpfs support === Configure [[Tmpfs|{{c|tmpfs}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_tmpfs|above]], to enable {{c|tmpfs}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # {{c|Systemd}} will automatically mount {{Path|/tmp}} as {{c|tmpfs}}. Place [[Portage_TMPDIR_on_tmpfs|{{c|portage's tmpdir}}]] inside {{Path|/tmp}}: {{RootCmd|vim /mnt/gentoo/etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>PORTAGE_TMPDIR</var> variable for tmpfs use|1=<pre>...</pre><pre>PORTAGE_TMPDIR="/tmp"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Mount as [[Tmpfs|{{c|tmpfs}}]] any other appropriate directory, by using {{Path|/etc/fstab}}: {{RootCmd|vim /etc/fstab}} {{FileBox|filename=/etc/fstab|title=Mounting rules for tmpfs directories|1=<pre>...</pre><pre>tmpfs /var/lock tmpfs rw,nodev,nosuid,size=2G 0 0</pre><pre>...</pre>}} {{Tip|A working {{Path|fstab}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/fstab here].}} === ALSA and PulseAudio support === Configure [[ALSA|{{c|ALSA}}]] and [[PulseAudio|{{c|PulseAudio}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_audio|above]], to enable {{c|ALSA}} and {{c|PulseAudio}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|ALSA}} and {{c|PulseAudio}} support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for ALSA and PulseAudio support|1=<pre>...</pre><pre>USE="...alsa...pulseaudio..."</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system to reinstall packages with {{c|ALSA}} and {{c|PulseAudio}} support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Emerge {{Package|media-sound/alsa-utils}}: {{RootCmd|emerge -auvDN {{Package|media-sound/alsa-utils}}}} # Add <var>ffmpeg</var> support to {{Package|media-plugins/alsa-plugins}} and emerge it: {{RootCmd|echo "{{Package|media-plugins/alsa-plugins}} ffmpeg" >> /etc/portage/package.use/alsa-plugins|emerge -auvDN {{Package|media-plugins/alsa-plugins}}}} === External Monitors === in [[GNOME|{{c|GNOME}}]] [[Wayland|{{c|Wayland}}]], when using an external non-{{c|HiDPI}} monitor, it will be scaled, by default, as the laptop's screen, and this will make either the windows too big in the external monitor, or too small in the laptop's screen. In order to allow a different scaling in each screen: # Open {{c|GNOME}}'s dconf-editor. # Go to <code>/org/gnome/mutter/experimental-features</code>. # Disable "Use default value". # write custom value: <code>['scale-monitor-framebuffer', 'x11-randr-fractional-scaling']</code>. === QEMU/KVM === [[QEMU|{{c|QEMU}} and {{c|KVM}}]]. # Edit .conf. # Edit USE # {{RootCmd|emerge -auvDN {{Package|app-emulation/qemu}}}} # {{RootCmd|gpasswd -a foo kvm}} # {{RootCmd|emerge -auvDN {{Package|gnome-extra/gnome-boxes}}}} #* Apply patch or it will not compile. === ZFS automatic snapshots === {{Package|sys-fs/zfs-auto-snapshot}} provides scripts used to rotate periodic snapshots through [[Cron|{{c|cron}}]] jobs. # Install {{Package|sys-process/cronie}} and {{Package|sys-fs/zfs-auto-snapshot}}: {{RootCmd |emerge -auvDN {{Package|sys-process/cronie}} {{Package|sys-fs/zfs-auto-snapshot}} && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Disable the default cron job that would create a frequent snapshot each 15 minutes: {{RootCmd|rm /etc/cron.d/zfs-auto-snapshot}} # Enable and start the cronie systemd service: {{RootCmd|systemctl enable cronie.service |systemctl start cronie.service |systemctl status cronie.service}} # Set the <code>com.sun:auto-snapshot</code> property to <code>true</code> for each {{c|zpool}} of interest: {{RootCmd|zfs set com.sun:auto-snapshot{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot{{=}}true rpool/ROOT/home}} # Enable the desired periodic auto-snaphot jobs on each pool: {{RootCmd|zfs set com.sun:auto-snapshot:hourly{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot:daily{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot:weekly{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot:monthly{{=}}true bpool/BOOT/gentoo}} {{RootCmd|zfs set com.sun:auto-snapshot:hourly{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot:daily{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot:weekly{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot:monthly{{=}}true rpool/ROOT/gentoo}} {{RootCmd|zfs set com.sun:auto-snapshot:hourly{{=}}true rpool/ROOT/home |zfs set com.sun:auto-snapshot:daily{{=}}true rpool/ROOT/home |zfs set com.sun:auto-snapshot:weekly{{=}}true rpool/ROOT/home |zfs set com.sun:auto-snapshot:monthly{{=}}true rpool/ROOT/home}} # Modify the cron jobs as needed: {{RootCmd|vim /etc/cron.hourly/zfs-auto-snapshot |vim /etc/cron.daily/zfs-auto-snapshot |vim /etc/cron.weekly/zfs-auto-snapshot |vim /etc/cron.monthly/zfs-auto-snapshot}} === To Do... === Check the firmware used by rtl8153 [[Linux_firmware]] https://wiki.archlinux.org/index.php/Intel_graphics#Enable_GuC_/_HuC_firmware_loading https://gist.github.com/Brainiarc7/aa43570f512906e882ad6cdd835efe57 === Update the Linux kernel === {{RootCmd|mount /boot |mount /boot/efi |emerge --sync |emerge -auvDN {{Package|sys-kernel/gentoo-sources}} |emerge --depclean |emerge @preserved-rebuild |revdep-rebuild |eselect kernel list |eselect kernel set 2}} {{RootCmd|cd /usr/src/linux |cp /usr/src/linux-`uname -r`/.config /usr/src/linux/ |make syncconfig |make modules_prepare |make -j16 |make modules_install |make install |emerge --ask @module-rebuild |genkernel initramfs --firmware --kernel-config{{=}}/usr/src/linux/.config --keymap --makeopts{{=}}-j16 --mountboot --no-clean --zfs |grub-mkconfig -o /boot/grub/grub.cfg}} {{RootCmd|eclean-kernel -pn 2|eclean-kernel -n 2}} === Removal of old kernels === {{RootCmd|mount /boot |mount /boot/efi |emerge -Cav {{=}}{{Package|sys-kernel/gentoo-sources}}-X.Y.Z |emerge --depclean |emerge @preserved-rebuild |revdep-rebuild}} {{RootCmd|rm -r /usr/src/linux-X.Y.Z |rm -r /lib/modules/X.Y.Z |rm /boot/config-X.Y.Z-gentoo |rm /boot/initramfs-X.Y.Z-gentoo.img |rm /boot/System.map-X.Y.Z-gentoo |rm /boot/vmlinuz-X.Y.Z-gentoo |grub-mkconfig -o /boot/grub/grub.cfg}} == Troubleshooting == === Gparted reporting the whole disk as a single Zpool === At the time of writing this, {{c|GParted}} reports the whole disk as a single {{c|Zpool}} when any of its partitions is formatted with {{c|ZFS}}<ref>[https://gitlab.gnome.org/GNOME/gparted/issues/14 zfs partition wrongly shows occupying the whole disk], [https://gitlab.gnome.org/GNOME GNOME GitLab]. Retrieved on April 7th, 2020.</ref>. This is not happening in other disk utilities such as {{c|GNOME Disks}}, {{c|parted}} or {{c|fdisk}}. This is due to a bug of the {{c|blkid}} utility, in its stable version, which wrongly reports the disk type. Updating {{Package|sys-apps/util-linux}} to its latest version fixes this problem: {{RootCmd|echo "{{=}}{{Package|sys-apps/util-linux}}-2.35.1-r1 ~amd64" >> /etc/portage/package.accept_keywords/util-linux |emerge -auvDN {{Package|sys-apps/util-linux}} && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} == See also == * {{See also|Handbook:AMD64}} * {{See also|UEFI_Dual_boot_with_Windows_7/8}} * {{See also|Sakaki%27s_EFI_Install_Guide}} * {{See also|Dell_XPS_15_9560}} * {{See also|User:Monsieurp/Gentoo_Linux_on_ZFS}} * {{See also|ZFS}} == External resources == * https://github.com/bugalo/gentoo_dell_xps_15_7590 * https://wiki.archlinux.org/index.php/Dell_XPS_15_7590 * https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS * https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation * https://www.funtoo.org/ZFS_as_Root_Filesystem * https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/ * https://wiki.archlinux.org/index.php/ZFS * https://github.com/zfsonlinux/zfs/issues/8810 * https://github.com/HankB/Linux_ZFS_Root/tree/master/Debian * https://wiki.archlinux.org/index.php/ZFS#Native_encryption == References == {{reflist}}'
New page wikitext, after the edit (new_wikitext)
'{{WIP|author=Bugalo}} == Summary == This document will serve as a guide on how to install Gentoo on the MSI MPG x870E Edge TI Wifi motherboard with an AMD 9950x3d CPU and the following configuration: * Single {{c|Gentoo}} boot, in [[Handbook:AMD64/Installation/Disks#Using_UEFI|{{c|UEFI}}]] with [[Handbook:AMD64/Installation/Disks#GPT|{{c|GPT}}]] mode, using [[GRUB|{{c|GRUB2}}]] as a boot loader. * [[ZFS|{{c|ZFS}}]] on all partitions, except the [[EFI_System_Partition|{{c|ESP}}]], including root, with native transparent compression and encryption. Deduplication will not be configured: *# {{c|Mirrored Zpools}} for all system partitions. Those will be located in two 4TB [[NVMe|{{c|NVMe}}]] hard drives. * [[GNOME|{{c|GNOME}}]] with [[systemd|{{c|systemd}}]] profile. == Installation == === Preparing the Ubuntu Live Environment === # Create an Ubuntu bootable USB using, for example using [[UNetbootin|{{c|UNetbootin}}]]. # Plug the USB and boot the PC. # Access the ''One-time boot menu'' of the {{c|BIOS}} by pressing {{Key|F2}}. # Choose the appropriate entry to boot from the live USB. # In the {{c|GRUB}} menu, choose ''Try Ubuntu without installing''. # Connect to the internet, through either a wireless<ref>[https://help.ubuntu.com/stable/ubuntu-help/net-wireless-connect.html Connect to a wireless network], [https://help.ubuntu.com/ Official Ubuntu Documentation]. Retrieved on January 22nd, 2020.</ref> or wired network<ref>[https://help.ubuntu.com/stable/ubuntu-help/net-wired-connect.html Connect to a wired (Ethernet) network], [https://help.ubuntu.com/ Official Ubuntu Documentation]. Retrieved on January 22nd, 2020.</ref>. # Upgrade Ubuntu to use the latest {{c|ZFS}} modules availabe. {{RootCmd|apt-get update |apt-get upgrade}} # Verify that {{c|ZFS}} is loaded {{Cmd|dmesg {{!}} grep -i zfs |output=<pre>[ 9.658459] ZFS: Loaded module v0.8.1-1ubuntu12, ZFS pool version 5000, ZFS filesystem version 5 </pre>}} # Create a folder for the Gentoo install. {{RootCmd|mkdir /mnt/gentoo }} # Install the text editor of your choice, e.g. [[Vim|{{c|Vim}}]]. {{RootCmd|apt-get install vim }} {{Important|This guide uses {{c|Vim}} as a text editor. Feel free to substitute it by your preferred editor.}} === Create the ZFS layout === All the partitions of the system will use the {{c|ZFS}} [[Filesystem|{{c|filesystem}}]]. {{c|ZFS}} allows the use of whole disks, without partitioning, to install the different parts of the system. In this case, the whole disk would be a {{c|ZFS pool}}, and we would create different {{c|ZFS datasets}} in it that would be conceptually similar to traditional partitions, but they don't need to have a fixed predetermined size. However, the choice of {{c|GRUB2}} as a boot manager requires partitioning the disk, i.e a {{c|ZFS pool}} needs to be created in a partition, not in the whole disk. {{c|GRUB2}} cannot currently reside in a {{c|ZFS pool}} with advanced features activated, such as encryption<ref>[https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation ZFS: GRUB-compatible pool creation], [https://wiki.archlinux.org/ ArchWiki]. Retrieved on January 22nd, 2020.</ref>. In order to satisfy both requirements of using {{c|GRUB2}} as a {{c|boot loader}} and having the system residing in {{c|ZFS}} with native encryption, we need to create a {{c|ZFS pool}} compatible with {{c|GRUB2}}. Furthermore, a [[FAT|{{c|FAT}}]] formatted [[EFI_System_Partition|{{c|EFI System Partition}}]] needs to be created. # Open {{c|GParted}}. # Select the device <code>/dev/nvme0n1</code>. # Go to Device / Create Partition Table ... / gpt / Apply. # Select the device <code>/dev/nvme1n1</code>. # Go to Device / Create Partition Table ... / gpt / Apply. # Delete any partition of the {{c|NVMe}} drives <code>/dev/nvme0n1</code> and <code>/dev/nvme1n1</code>. # Create two new partitions, <code>/dev/nvme0n1p1</code> and <code>/dev/nvme1n1p1</code>, in the unallocated space, formatted in {{c|FAT32}}, named "EFI system partition" and "EFI system partition 2" respectively, with labels ESP and ESP_2, of 128MB, and with flags "boot" and "esp". # Create two unformatted partitions, <code>/dev/nvme0n1p2</code> and <code>/dev/nvme1n1p2</code>, in the unallocated space, named Gentoo-Boot and Gentoo-Boot-2, of around 1GB. # Create two unformatted partitions, <code>/dev/nvme0n1p3</code> and <code>/dev/nvme1n1p3</code>, in the unallocated space, named Gentoo-Root and Gentoo-Root-2, occupying the remaining space. # ''Apply all operations'' and exit. # Create a {{c|mirror ZFS pool}}, with all {{c|GRUB}}'s unsupported features disabled, in <code>/dev/nvme0n1p2</code> and <code>/dev/nvme1n1p2</code>. {{RootCmd|zpool create -d -o feature@allocation_classes{{=}}enabled \ <pre> -o feature@async_destroy=enabled \ </pre><pre> -o feature@bookmarks=enabled \ </pre><pre> -o feature@embedded_data=enabled \ </pre><pre> -o feature@empty_bpobj=enabled \ </pre><pre> -o feature@enabled_txg=enabled \ </pre><pre> -o feature@extensible_dataset=enabled \ </pre><pre> -o feature@filesystem_limits=enabled \ </pre><pre> -o feature@hole_birth=enabled \ </pre><pre> -o feature@large_blocks=enabled \ </pre><pre> -o feature@lz4_compress=enabled \ </pre><pre> -o feature@project_quota=enabled \ </pre><pre> -o feature@resilver_defer=enabled \ </pre><pre> -o feature@spacemap_histogram=enabled \ </pre><pre> -o feature@spacemap_v2=enabled \ </pre><pre> -o feature@userobj_accounting=enabled \ </pre><pre> -o feature@zpool_checkpoint=enabled \ </pre><pre> -f -o ashift=12 \ </pre><pre> -o autotrim=on \ </pre><pre> -o cachefile=/tmp/zpool.cache \ </pre><pre> -O aclinherit=passthrough \ </pre><pre> -O acltype=posixacl \ </pre><pre> -O atime=off \ </pre><pre> -O canmount=off \ </pre><pre> -O devices=off \ </pre><pre> -O mountpoint=/ \ </pre><pre> -O normalization=formD \ </pre><pre> -O xattr=sa \ </pre><pre> -R /mnt/gentoo \ </pre><pre> bpool mirror /dev/nvme0n1p2 /dev/nvme1n1p2</pre>}} # Create a {{c|mirror ZFS pool}}, for the Gentoo system, in <code>/dev/nvme0n1p3</code> and <code>/dev/nvme1n1p3</code>. {{RootCmd|zpool create -f -o ashift{{=}}12 \ <pre> -o autotrim=on \ </pre><pre> -o cachefile=/tmp/zpool.cache \ </pre><pre> -O acltype=posixacl \ </pre><pre> -O aclinherit=passthrough \ </pre><pre> -O atime=off \ </pre><pre> -O canmount=off \ </pre><pre> -O devices=off \ </pre><pre> -O dnodesize=auto \ </pre><pre> -O mountpoint=/ \ </pre><pre> -O normalization=formD \ </pre><pre> -O xattr=sa \ </pre><pre> -R /mnt/gentoo \ </pre><pre> rpool mirror /dev/nvme0n1p3 /dev/nvme1n1p3</pre>}}{{Important|Note that most native encryption {{c|ZFS}} guides encrypt the root {{c|ZFS pool}}<ref>Richard Laager. [https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS Debian Buster Root on ZFS], [https://github.com/ GitHub], December 27th, 2019. Retrieved on January 23rd, 2020.</ref>. However, this forces all its child pools and datasets to be encrypted and with the same algorithm<ref>numinit. [https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/ ZoL 0.8.0 encryption: don't encrypt the pool root!], [https://www.reddit.com/ Reddit], May, 2019. Retrieved on January 23rd, 2020.</ref>. Thus, here ''rpool'' will be left unencrypted, while encryption will be applied to its children.}} # The status and properties of the pools created above can be checked with the following commands:{{RootCmd|zpool status |output=<pre> pool: bpool </pre><pre> state: ONLINE</pre><pre>status: Some supported features are not enabled on the pool. The pool can</pre><pre> still be used, but some features are unavailable.</pre><pre>action: Enable all features using 'zpool upgrade'. Once this is done,</pre><pre> the pool may no longer be accessible by software that does not support</pre><pre> the features. See zpool-features(5) for details.</pre><pre> scan: none requested</pre><pre>config:</pre></br><pre> NAME STATE READ WRITE CKSUM</pre><pre> bpool ONLINE 0 0 0</pre><pre> nvme0n1p4 ONLINE 0 0 0</pre></br><pre>errors: No known data errors</pre></br><pre> pool: rpool</pre><pre> state: ONLINE</pre><pre> scan: none requested</pre><pre>config:</pre></br><pre> NAME STATE READ WRITE CKSUM</pre><pre> rpool ONLINE 0 0 0</pre><pre> nvme0n1p5 ONLINE 0 0 0</pre></br><pre>errors: No known data errors</pre>}} {{RootCmd|zfs get all bpool |zfs get all rpool}} # Create the {{c|ZFS dataset }} where {{c|GRUB2}} will reside: {{RootCmd|zfs create -o canmount{{=}}off -o compression{{=}}gzip-9 -o mountpoint{{=}}none bpool/BOOT |zfs create -o canmount{{=}}noauto -o compression{{=}}gzip-9 -o dnodesize{{=}}legacy -o mountpoint{{=}}/mnt/gentoo/boot bpool/BOOT/gentoo}}{{Important|The [[wikipedia:LZ4_(compression_algorithm)|{{c|LZ4}}]] compression algorithm is generally favored over [[wikipedia:Gzip|{{c|Gzip}}]], due to its good balance between compression ratio and computational power required<ref>Patrick Kennedy. [https://www.servethehome.com/the-case-for-using-zfs-compression/ The Case For Using ZFS Compression], [https://www.servethehome.com/ Serve The Home], January 2nd, 2018. Retrieved on January 23rd, 2020.</ref>. However, this guide uses <code>gzip-9</code> as compression algorithm, offering the highest compression level at a higher computational cost. This is due to the availability of a powerful {{c|CPU}} in the system.}}{{Warning|At the time of writing this paragraph, Grub does not support booting from a zfs pool compressed with zstd.}}{{Warning|Setting here the parameter <code>dnodesize</code> to anything other than <code>legacy</code> will result in the following error<ref>populationless. [https://github.com/zfsonlinux/zfs/issues/8538 Cannot set 'bootfs' property when 'dnodesize' is set to anything but legacy #8538], [https://github.com/ GitHub], March 27th, 2019. Retrieved on January 23rd, 2020.</ref>: {{GenericCmd|<pre>cannot set property for 'bpool': operation not supported on this type of pool</pre>}}}} # Create the {{c|ZFS dataset }} where {{c|root}} will reside: {{RootCmd|zfs create -o canmount{{=}}off -o compression{{=}}zstd-19 -o encryption{{=}}aes-256-gcm -o keyformat{{=}}passphrase -o keylocation{{=}}prompt -o mountpoint{{=}}none rpool/ROOT |zfs create -o canmount{{=}}noauto -o compression{{=}}zstd-19 -o encryption{{=}}aes-256-gcm -o keyformat{{=}}passphrase -o keylocation{{=}}prompt -o mountpoint{{=}}/mnt/gentoo rpool/ROOT/gentoo}}{{Important|The default mode of operation of {{c|ZFS}} native encryption is [[wikipedia:CCM_mode|aes-256-ccm]]. However, [[wikipedia:Galois/Counter_Mode|aes-256-gcm]] is generally preferred<ref>Laplacian. [https://crypto.stackexchange.com/questions/6842/how-to-choose-between-aes-ccm-and-aes-gcm-for-storage-volume-encryption/19446#19446 How to choose between AES-CCM and AES-GCM for storage volume encryption], [https://crypto.stackexchange.com/ Cryptography Stack Exchange], October 2nd, 2014. Retrieved on January 23rd, 2020.</ref>.}}{{Important|According to various benchmarks, zstd should provide similar or higher compression levels than gzip, but with higher compression and decompression speed.}} # Create the {{c|ZFS dataset }} where {{c|home}} will reside: {{RootCmd|zfs create -o compression{{=}}zstd-19 -o encryption{{=}}aes-256-gcm -o keyformat{{=}}passphrase -o mountpoint{{=}}/mnt/gentoo/home rpool/ROOT/home}} # Mount all the {{c|ZFS datasets }}: {{Warning|At the time of writing this paragraph, mounting the datasets with <code>zfs mount</code> will result in a double preffix (see <ref>Patrick Kennedy. [https://github.com/openzfs/zfs/issues/1078#issuecomment-984056749], [https://github.com/openzfs/zfs/issues/1078#issuecomment-984056749], November 5th, 2012. Retrieved on May 5th, 2025.</ref>) and [[ZFS#Chroot|{{c|ZFS Chroot}}]]. Use <code>mount -t zfs</code> instedad.}} {{RootCmd|zfs set mountpoint{{=}}/ rpool |zfs set mountpoint{{=}}/ rpool/ROOT/gentoo |zfs set mountpoint{{=}}/home rpool/ROOT/home |zfs set mountpoint{{=}}/ bpool |zfs set mountpoint{{=}}/boot bpool/BOOT/gentoo |mount -t zfs -o zfsutil rpool/ROOT/gentoo /mnt/gentoo |mkdir /mnt/gentoo/home |mount -t zfs -o zfsutil rpool/ROOT/home /mnt/gentoo/home |mkdir /mnt/gentoo/boot |mount -t zfs -o zfsutil bpool/BOOT/gentoo /mnt/gentoo/boot}} # Check that the {{c|ZFS}} layout is correct: {{RootCmd|zfs list -t all}} # Set the {{c|ZFS dataset}} used for booting: {{RootCmd|zpool set bootfs{{=}}bpool/BOOT/gentoo bpool}} Check that the <code>bootfs</code> property has been properly set: {{RootCmd|zpool get bootfs bpool}} === Install the Gentoo base system === This section will closely follow [[Handbook:AMD64|Gentoo's AMD64 Handbook]], with adjustments where appropriate. # Verify that the date and time of the system is correct. If not, [[Handbook:AMD64/Installation/Stage#Setting_the_date_and_time|fix it]]:{{RootCmd|date |output=<pre>Thu Jan 23 23:35:23 CET 2020</pre>}} # Choose a stage tarball: <code>desktop systemd 64-bit stage tarball</code>. # Move to the root installation directory:{{RootCmd|cd /mnt/gentoo/}} # Find the name of the latest amd64 systemd stage3 at http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3-amd64-systemd.txt and download it: {{RootCmd|wget https://gentoo.osuosl.org/releases/amd64/autobuilds/20250502T162426Z/stage3-amd64-desktop-systemd-20250502T162426Z.tar.xz}} {{Note|Modify the name of the stage3 file appropriately.}} {{Tip|The downloaded stage3 file can be [[Handbook:AMD64/Installation/Stage#Verifying_and_validating|verified]].}} # Unpack the stage3 tarball: {{RootCmd|tar xpvf stage3-*.tar.xz --xattrs-include{{=}}'*.*' --numeric-owner}} # Edit [[:/etc/portage/make.conf|make.conf]] to configure: #* The [[Handbook:AMD64/Installation/Stage#Configuring_compile_options|compile options]] to [[GCC_optimization|optimize]] compiled code, including the [[CPU_FLAGS_X86]]<ref>[https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/x86-Options.html x86 Options], [https://gcc.gnu.org/ GCC, the GNU Compiler Collection], October 2nd, 2014. Retrieved on January 24th, 2020.</ref>. #* The global [[Handbook:Parts/Working/USE|{{c|USE}}]] variable to specify [[Handbook:AMD64/Installation/Base#Configuring_the_USE_variable|system-wide package support]]. #* The [[Handbook:AMD64/Installation/Base#Optional:_Configuring_the_ACCEPT_LICENSE_variable|{{c|ACCEPT_LICENSE}}]] variable to select the [[Project:Licenses|license]] group automatically accepted. {{RootCmd|vim /mnt/gentoo/etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>CPU_FLAGS_X86</var>, <var>USE</var> and <var>ACCEPT_LICENSE</var> variables for systemwide support|lang=bash|1= ... USE="..." CPU_FLAGS_X86="adcx aes avx avx2 bmi bmi2 clflushopt fsgsbase f16c fma fma3 mmx mmxext movbe pclmul popcnt prefetchw rdrnd rdseed sse sse2 sse3 sse4_1 sse4_2 ssse3 xsavec xsaves" ... ACCEPT_LICENSE="*" ...}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Configure the Gentoo ebuild repository: {{RootCmd|mkdir --parents /mnt/gentoo/etc/portage/repos.conf|cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf}} # Copy the DNS info: {{RootCmd|cp --dereference /etc/resolv.conf /mnt/gentoo/etc/}} # Mount the necessary filesystems: {{RootCmd|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}} # Copy the {{Path|zpool.cache}} to the installation directory: {{RootCmd|mkdir -p /mnt/gentoo/etc/zfs |cp /tmp/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache }} # Copy {{Path|/etc/hostid}}, [[Genkernel|{{c|genkernel}}]] will later complain if it does not exist<ref>Thomas Deutschmann. [https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=4e46cfcd6f50560a9e8c31163663940a99875e0c ZFS: Change hostid handling], [https://gitweb.gentoo.org/ Gentoo Git Repositories], March 27th, 2019. Retrieved on January 24th, 2020.</ref>: {{RootCmd|cp /etc/hostid /mnt/gentoo/etc/hostid}} # [[Chroot|{{c|Chroot}}]] into the new environment: {{RootCmd|chroot /mnt/gentoo /bin/bash |source /etc/profile |export PS1{{=}}"(chroot) ${PS1}"}} # Update the Gentoo [[Ebuild_repository|{{c|ebuild repository}}]]: {{RootCmd|prompt=(chroot) root #|emerge --sync --quiet |eselect news list |eselect news read |eselect news purge}} # Choose the appropriate [[Profile_(Portage)|{{c|portage profile}}]]: {{RootCmd|prompt=(chroot) root #|eselect profile list |eselect profile set default/linux/amd64/23.0/desktop/gnome/systemd}} # Select fast [[GENTOO_MIRRORS|mirrors]] available for source code download, by using [[Mirrorselect|mirrorselect]]: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|app-portage/mirrorselect}} |mirrorselect -s4 -b10 -D}} # [[Portage|Emerge]] [[Vim]] to be used as a [[Text_editor|text editor]]: {{RootCmd|prompt=(chroot) root #|echo "{{Package|app-editors/vim}} ~amd64" >> /etc/portage/package.accept_keywords/vim |echo "{{Package|app-editors/vim-core}} ~amd64" >> /etc/portage/package.accept_keywords/vim-core |echo "{{Package|app-editors/gvim}} ~amd64" >> /etc/portage/package.accept_keywords/gvim |emerge --ask {{Package|app-editors/vim}} {{Package|app-editors/gvim}}}} # Set the timezone and reconfigure the {{Package|sys-libs/timezone-data}}: {{RootCmd|prompt=(chroot) root #|ls /usr/share/zoneinfo |echo "Europe/Madrid" > /etc/timezone |emerge --config {{Package|sys-libs/timezone-data}}}} # Configure the [[Localization/Guide|locales]] to use, at leaset, one [[UTF-8]] locale: #* Edit {{Path|/etc/locale.gen}}: {{RootCmd|prompt=(chroot) root #|vim /etc/locale.gen}} and uncomment the line referencing <code>en_US.UTF-8 UTF-8</code>: {{FileBox|filename=/etc/locale.gen |title=Adding an UTF-8 locale|1=... en_US.UTF-8 UTF-8 ...}} #* Generate the locales: {{RootCmd|prompt=(chroot) root #|locale-gen |eselect locale list |eselect locale set en_US.utf8}} #* Reload the environment: {{RootCmd|prompt=(chroot) root #|env-update && source /etc/profile && export PS1{{=}}"(chroot) ${PS1}"}} # Unmask the latest versions of {{Package|sys-fs/zfs}} and {{Package|sys-fs/zfs-kmod}}: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-fs/zfs}} ~amd64" >> /etc/portage/package.accept_keywords/zfs |echo "{{Package|sys-fs/zfs-kmod}} ~amd64" >> /etc/portage/package.accept_keywords/zfs-kmod}} {{Note|[https://zfsonlinux.org/ ZFSOnLinux] is under very active development, and the latest versions provide bug fixes and implement new interesting features, e.g zfs-0.8.0 introduced native encryption, support for {{c|TRIM}} in [[SSD|SSDs]], etc<ref name="zfs-0.8.0">Brian Behlendorf. [https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.8.0 zfs-0.8.0], [https://github.com/ GitHub], May 23rd, 2019. Retrieved on January 25th, 2020.</ref>.}} {{Important|Versions of {{Package|sys-fs/zfs}} lower than 0.8.0 depend on {{Package|sys-kernel/spl}}. However, as of version 0.8.0, this dependency has been removed.<ref name="zfs-0.8.0"/>.}} # Unmask the latest versions of {{Package|sys-boot/grub}} and add {{c|ZFS}} support: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-boot/grub}} ~amd64" >> /etc/portage/package.accept_keywords/grub |echo "{{Package|sys-boot/grub}} libzfs" > /etc/portage/package.use/grub}} # Update the [[World_set_(Portage)|{{c|world set}}]]: {{RootCmd|prompt=(chroot) root #|emerge -auvDN @world}} === Configuring, building and installing the Linux kernel === # Unmask a suitable [[Kernel|{{c|kernel}}]] version: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-kernel/gentoo-sources}} ~amd64" >> /etc/portage/package.accept_keywords/gentoo-sources}} {{Warning|At the time of writing this, {{c|ZFS}} 2.3.2 is not compatible with kernel versions 6.15.0 and above. Mask the incompatible kernel versions: {{RootCmd|prompt=(chroot) root #|echo ">{{=}}{{Package|sys-kernel/gentoo-sources}}-6.15.0" >> /etc/portage/package.mask/gentoo-sources}}}} # Emerge {{Package|sys-kernel/gentoo-sources}} with the <code>experimental</code> USE flag to expose the <code>AMD Zen 5</code> processor family type: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-kernel/gentoo-sources}} experimental" >> /etc/portage/package.use/gentoo-sources}} # Install the [[Kernel|{{c|kernel}}]] and [[Genkernel|{{c|genkernel}}]]: {{RootCmd|prompt=(chroot) root #|emerge -auvDN {{Package|sys-kernel/gentoo-sources}} {{Package|sys-kernel/genkernel}}}} # Add compression support to {{Package|sys-apps/kmod}} in order to be able to load compressed modules: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-apps/kmod}} lzma zlib" >> /etc/portage/package.use/kmod |emerge -auvDN {{Package|sys-apps/kmod}}}} # [[Kernel/Gentoo_Kernel_Configuration_Guide|Configure the {{c|kernel}}]]: {{RootCmd|prompt=(chroot) root #|eselect kernel list |eselect kernel set 2 |cd /usr/src/linux |make menuconfig}} #* {{Anchor|Kernel_firmware}}Enable [[Linux_firmware|{{c|Firmware}}]] loading support: {{KernelBox|title=Enable support for Linux firmware|1=Device Drivers ---> Generic Driver Options ---> Firmware loader ---> -*- Firmware loading facility () Build named firmware blobs into the kernel binary [*] Enable compressed firmware support [*] Enable XZ-compressed firmware support [*] Enable ZSTD-compressed firmware support}} #* Gentoo-specific configuration options: {{KernelBox|title=Gentoo-specific configuration options|1=Gentoo Linux ---> [*] Gentoo Linux support [*] Linux dynamic and persistent device naming (userspace devfs) support [*] Select options required by Portage features Support for init systems, system and service managers ---> [ ] OpenRC, runit and other script based systems and managers [*] systemd}} #* Architecture specific kernel configuration: {{KernelBox|title=Selecting processor types and features|1=Processor type and features ---> [*] Support x2apic [*] AMD ACPI2Platform devices support [*] Supported processor vendors ---> [*] Support AMD processors [*] Machine Check / overheating reporting [*] AMD MCE features Processor family (Core 2/newer Xeon) ---> (X) AMD Zen 5 Performance monitoring ---> <*> Intel/AMD rapl performance events <*> AMD Processor Power Reporting Mechanism <*> AMD Uncore performance events [ ] AMD Zen3 Branch Sampling support Power management and ACPI options ---> CPU Frequency scaling ---> Default CPUFreq governor (schedutil) ---> -*- AMD Processor P-State driver <*> ACPI Processor P-States driver [*] Legacy cpb sysfs knob support for AMD CPUs < > AMD Opteron/Athlon64 PowerNow! <*> AMD frequency sensitivity feedback powersave bias Device Drivers ---> Generic Driver Options ---> Firmware loader ---> [*] Firmware loading facility (amd-ucode/microcode_amd_fam19h.bin) External firmware blobs to build into the kernel binary (/lib/firmware) Firware blobs root directory [*] Hardware Monitoring support ---> <*> AMD Family 10h+ temperature sensor [*] IOMMU Hardware Support ---> [*] AMD IOMMU support Binary Emulations ---> [*] IA32 Emulation}} #* Enable {{c|Hyper-Threading}} support: {{KernelBox|title=Configuration for multi-processing support|1=Processor type and features ---> [*] Symmetric multi-processing support [*] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support}} {{KernelBox|title=Power management for multi-processor systems|1=Power management and ACPI options ---> [*] ACPI (Advanced Configuration and Power Interface) Support}} #* Various chipset drivers: {{KernelBox|title=Additional chipset drivers|1=Device Drivers ---> I2C support ---> I2C Hardware Bus Support ---> <*> Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC) [*] Pin Controllers ---> [*] AMD GPIO pin control [*] GPIO Support ---> Memory mapped GPIO drivers ---> <*> AMD Promontory GPIO support [*] X86 Platform Specific Device Drivers ---> <*> AMD SoC PMC driver <*> AMD 3D V-Cache Performance Optimizer Driver [*] AMD Wifi RF Band mitigations (WBRF) [*] Cryptographic API ---> [*] Hardware crypto devices ---> [*] Support for AMD Secure Processor [*] Cryptographic Coprocessor device <*> Encryption and hashing offload support <*> Secure Processor device driver <*> Platform Security Processor (PSP) device }} #* Enable {{c|SATA}} support, needed if using a {{c|SATA}} hard drive; {{c|SCSI}}, needed for {{c|SATA}} devices, {{c|USB}} external hard drives and optical drives, etc.: {{KernelBox|title=Configuration options for SCSI support |1=Device Drivers ---> SCSI device support ---> -*- SCSI device support <*> SCSI disk support <*> SCSI CDROM support <*> SCSI generic support [ ] SCSI low-level drivers ---> <*> Serial ATA and Parallel ATA drivers (libata) ---> [*] ATA ACPI Support [*] SATA Port Multiplier support <*> AHCI SATA support (ahci) [*] ATA BMDMA support [*] ATA SFF support (for legacy IDE and PATA) < > Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix) < > AMD/NVidia PATA support}} #* Enable [[NVMe|{{c|NVMe}}]] device support: {{KernelBox|title=Configuration for NVMe support|1=Device Drivers ---> NVME Support ---> <*> NVM Express block device [*] NVMe multipath support [*] NVMe hardware monitoring <M> NVM Express over Fabrics FC host driver <M> NVM Express over Fabrics TCP host driver}} #* Enable compressed kernel modules: {{Warning|I have {{c|not}} been able to boot from a {{c|ZFS}} system with compressed modules enabled, although it should be entirely possible. Use at your own risk.}} {{KernelBox|title=Enable module compression|1=[*] Enable loadable module support ---> [*] Compress modules on installation Compression algorithm (XZ) ---> ( ) GZIP (X) XZ}} #* Enable [[Device_file|{{c|devtmpfs}}]] support: {{KernelBox|title=Enabling devtmpfs support|1=Device Drivers ---> Generic Driver Options ---> [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs}} #* Enable support for the [[Filesystem|{{c|filesystems}}]] used: {{KernelBox|title=Selecting necessary file systems|1=File systems ---> < > Second extended fs support < > The Extended 3 (ext3) filesystem <*> The Extended 4 (ext4) filesystem [*] Use ext4 for ext2 file systems < > Reiserfs support < > JFS filesystem support < > XFS filesystem support < > GFS2 file system support < > Btrfs filesystem support < > NILFS2 file system support < > F2FS file system support DOS/FAT/NT Filesystems ---> <*> MSDOS fs support <*> VFAT (Windows-95) fs support <*> exFAT filesystem support <*> NTFS Read-Write file system support [*] activate support of external compressions lzx/xpress Pseudo Filesystems ---> -*- /proc file system support -*- Tmpfs virtual memory file system support (former shm fs)}} #* {{Anchor|Kernel_FUSE}}Enable support for [[Filesystem_in_Userspace|{{c|FUSE}}]]: {{KernelBox|title=Enable support for FUSE|1=File systems ---> <*> FUSE (Filesystem in Userspace) support}} #* Enable {{c|GPT}} support: {{KernelBox|title=Enable support for GPT|1=-*- Enable the block layer ---> Partition Types ---> [*] Advanced partition selection [*] EFI GUID Partition support}} #* Enable {{c|UEFI}} support: {{KernelBox|title=Enable support for UEFI|1=Processor type and features ---> [*] EFI runtime service support [*] EFI stub support [*] EFI mixed-mode support Firmware Drivers ---> EFI (Extensible Firmware Interface) Support ---> <*> EFI Variable Support via sysfs}} #* {{Anchor|Kernel_USB}}Configure [[USB]] support: {{KernelBox|title=Configuration for USB Host Controller Devices|1=Device Drivers ---> SCSI device support ---> *** SCSI support type (disk, tape, CD-ROM) *** <*> SCSI disk support < > SCSI tape support <*> SCSI CDROM support <*> SCSI generic support [*] USB support ---> -*- Support for Host-side USB *** USB Host Controller Drivers *** <*> xHCI HCD (USB 3.0) support <*> EHCI HCD (USB 2.0) support <*> OHCI HCD (USB 1.1) support < > UHCI HCD (most Intel and VIA) support <*> USB Mass Storage support <*> Unified support for USB4 and Thunderbolt ---> }} #* Configure [[USB/Guide|USB]] support for input devices: {{KernelBox|title=Configuration for USB input devices |1=Device Drivers ---> HID support ---> -*- HID bus support [*] Battery level reporting for HID devices <*> Generic HID driver USB HID support ---> <*> USB HID transport layer}} #* Enable {{c|USB Type-C}} and {{c|Thunderbolt}} support: {{KernelBox|title=PCI Hotplugging|1=Device Drivers ---> [*] PCI support ---> --- PCI support [*] PCI Express Port Bus support [*] PCI Express Hotplug driver [*] Support for PCI Hotplug ---> [*] ACPI PCI Hotplug driver}} #* Enable {{c|USB}} audio: {{KernelBox|title=Enable support for <var>SND_USB_AUDIO</var>|1=Device Drivers --> <*> Sound card support --> --- Sound card support <*> Advanced Linux Sound Architecture ---> [*] USB sound devices ---> <*> USB Audio/MIDI driver}} #* {{Anchor|Kernel_systemd}}Enable [[Systemd|{{c|systemd}}]] support: {{KernelBox|title=Enable support for Linux firmware|1=General setup ---> -*- Control Group support ---> --- Control Group support -*- Support for eBPF programs attached to cgroups -*- Namespaces support ---> --- Namespaces support -*- Network namespace [*] Checkpoint/restore support [ ] Enable deprecated sysfs features to support old userspace tools [*] Configure standard kernel features (expert users) ---> --- Configure standard kernel features (expert users) -*- open by fhandle syscalls -*- Enable eventpoll support -*- Enable signalfd() system call -*- Enable timerfd() system call BPF subsystem ---> -*- Enable bpf() system call Processor type and features ---> [*] EFI runtime service support General architecture-dependent options ---> -*- Enable seccomp to safely compute untrusted bytecode Device Drivers ---> Firmware Drivers ---> -*- Export DMI identification via sysfs to userspace Generic Driver Options ---> [*] Support for uevent helper () path to uevent helper -*- Maintain a devtmpfs filesystem to mount at /dev Firmware loader ---> -*- Enable the firmware sysfs fallback mechanism -*- Enable the block layer ---> --- Enable the block layer -*- Block layer SG support v4 helper lib Partition Types ---> [*] Advanced partition selection [*] EFI GUID Partition support IO Schedulers ---> <*> BFQ I/O scheduler [*] BFQ hierarchical scheduling support (NEW) -*- Networking support ---> --- Networking support Networking options ---> -*- The IPv6 protocol ---> [*] Unix domain sockets File systems ---> -*- Inotify support for userspace -*- Kernel automounter support (supports v3, v4 and v5) Pseudo filesystems ---> -*- /proc file system support -*- sysfs file system support -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes Gentoo Linux ---> Support for init systems, system and service managers ---> [ ] OpenRC, runit and other script based systems and managers [*] systemd}} #* {{Anchor|Kernel_Intel_graphics}}Configure the [[Intel|Intel graphics]]: {{KernelBox|title=Configuration for Intel graphics|1=<pre> Device Drivers ---></pre><pre> Generic Driver Options ---></pre><pre> Firmware loader ---></pre><pre> -*- Firmware loading facility</pre><pre> (i915/kbl_dmc_ver1_04.bin) Build named firmware blobs into the kernel binary</pre><pre> (/lib/firmware) Firmware blobs root directory</pre><pre> Graphics support ---></pre><pre> <*> /dev/agpgart (AGP Support) ---></pre><pre> --- /dev/agpgart (AGP Support)</pre><pre> < > AMD Opteron/Athlon64 on-CPU GART support</pre><pre> <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support</pre><pre> < > SiS chipset support</pre><pre> < > VIA chipset support</pre><pre> [ ] VGA Arbitration</pre><pre> [ ] Laptop Hybrid Graphics - GPU switching support</pre><pre> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---></pre><pre> --- Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)</pre><pre> [*] Enable legacy fbdev support for your modesetting driver</pre><pre> [ ] Allow to specify an EDID data set instead of probing for it</pre><pre> I2C encoder or helper chips ---></pre><pre> < > Chrontel ch7006 TV encoder</pre><pre> < > Silicon Image sil164 TMDS transmitter</pre><pre> < > NXP Semiconductors TDA998X HDMI encoder</pre><pre> < > NXP Semiconductors TDA9950/TDA998X HDMI CEC </pre><pre> ARM devices ----</pre><pre> < > ATI Radeon</pre><pre> < > AMD GPU</pre><pre> < > Nouveau (NVIDIA) cards</pre><pre> <*> Intel 8xx/9xx/G3x/G4x/HD Graphics</pre><pre> [ ] Enable alpha quality support for new Intel hardware by default</pre><pre> < > Virtual GEM provider</pre><pre> < > Virtual KMS (EXPERIMENTAL)</pre><pre> < > DRM driver for VMware Virtual GPU</pre><pre> < > Intel GMA5/600 KMS Framebuffer</pre><pre> < > DisplayLink</pre><pre> < > AST server chips</pre><pre> < > Kernel modesetting driver for MGA G200 server engines</pre><pre> < > Cirrus driver for QEMU emulated device</pre><pre> < > QXL virtual GPU</pre><pre> < > DRM Support for bochs dispi vga interface (qemu stdvga)</pre><pre> Display Panels ----></pre><pre> < > Raspberry Pi 7-inch touchscreen pane</pre><pre> Display Interface Bridges ----></pre><pre> < > Analogix ANX78XX bridge</pre><pre> < > ETNAVIV (DRM support for Vivante GPU IP cores)</pre><pre> [ ] Enable legacy drivers (DANGEROUS) ----></pre><pre> --- Enable legacy drivers (DANGEROUS)</pre><pre> < > 3dfx Banshee/Voodoo3+</pre><pre> < > ATI Rage 128</pre><pre> < > Intel I810</pre><pre> < > Matrox g200/g400</pre><pre> < > SiS video cards</pre><pre> < > Via unichrome video cards</pre><pre> < > Savage video cards</pre><pre> Frame buffer Devices ---></pre><pre> -*- Support for frame buffer devices ---></pre><pre> --- Support for frame buffer devices</pre><pre> *** Frame buffer hardware drivers ***</pre><pre> [*] Simple framebuffer support</pre><pre> Backlight & LCD device support ---></pre><pre> Console display driver support ---></pre><pre> [*] Bootup logo ---></pre>}} #* {{Anchor|Kernel_Xorg}}Configure the [[Xorg|{{c|Xorg}}]] support: {{KernelBox|title=Enabling evdev in the kernel|1=Device Drivers ---> Input device support ---> <*> Event interface}} {{KernelBox|title=Disable legacy framebuffer support and enable basic console FB support|1=Device Drivers ---> Graphics support ---> Frame Buffer Devices ---> -*- Support for frame buffer devices ---> --- Support for frame buffer devices *** Frame buffer hardware drivers *** ## (Disable all other drivers, including VGA, Intel, NVIDIA, and ATI) [*] Simple framebuffer support Console display driver support ---> [*] Framebuffer Console Support}} #* {{Anchor|Kernel_Wifi}}Configure the [[Wifi|{{c|Wifi}}]] support: {{KernelBox|title=Enabling IEEE 802.11 support|1=<pre>-*- Networking support ---></pre><pre> --- Networking support</pre><pre> -*- Wireless ---></pre><pre> --- Wireless</pre><pre> <*> cfg80211 - wireless configuration API</pre><pre> [ ] nl80211 testmode command</pre><pre> [ ] enable developer warnings</pre><pre> [ ] cfg80211 certification onus</pre><pre> [*] enable powersave by default</pre><pre> [ ] cfg80211 DebugFS entries</pre><pre> [ ] support CRDA</pre><pre> [ ] cfg80211 wireless extensions compatibility</pre><pre> <*> Generic IEEE 802.11 Networking Stack (mac80211)</pre><pre> [*] Minstrel</pre><pre> Default rate control algorithm (Minstrel) ---></pre><pre> (X) Minstrel</pre><pre> [ ] Enable mac80211 mesh networking (pre-802.11s) support</pre><pre> -*- Enable LED triggers</pre><pre> [ ] Export mac80211 internals in DebugFS</pre><pre> [ ] Trace all mac80211 debug messages</pre><pre> [ ] Select mac80211 debugging features ----</pre>}} {{KernelBox|title=Configure the iwlwifi module|1=<pre> Device Drivers ---></pre><pre> [*] Network device support ---></pre><pre> --- Network device support</pre><pre> [*] Wireless LAN ---></pre><pre> --- Wireless LAN</pre><pre> [ ] mac80211-based legacy WDS support</pre><pre> [ ] ADMtek devices</pre><pre> [ ] Atheros/Qualcomm devices</pre><pre> [ ] Atmel devices</pre><pre> [ ] Broadcom devices</pre><pre> [ ] Cisco devices</pre><pre> [*] Intel devices</pre><pre> < > Intel PRO/Wireless 2100 Network Connection</pre><pre> < > Intel PRO/Wireless 2200BG and 2915ABG Network Connection</pre><pre> < > Intel Wireless WiFi 4965AGN (iwl4965)</pre><pre> < > Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)</pre><pre> <M> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)</pre><pre> < > Intel Wireless WiFi DVM Firmware support</pre><pre> <M> Intel Wireless WiFi MVM Firmware support</pre><pre> [ ] Enable broadcast filtering</pre><pre> Debugging Options ---></pre><pre> [ ] Enable full debugging output in the iwlwifi driver</pre><pre> [*] iwlwifi device access tracing</pre><pre> [ ] Intersil devices</pre><pre> [ ] Marvell devices</pre><pre> [ ] MediaTek devices</pre><pre> [ ] Ralink devices</pre><pre> [ ] Realtek devices</pre><pre> [ ] Redpine Signals Inc devices</pre><pre> [ ] STMicroelectronics devices</pre><pre> [ ] Texas Instrument devices</pre><pre> [ ] ZyDAS devices</pre><pre> [ ] Quantenna wireless cards support</pre><pre> < > Aviator/Raytheon 2.4GHz wireless support</pre><pre> < > Planet WL3501 PCMCIA cards</pre><pre> < > Simulated radio testing tool for mac80211</pre><pre> < > Wireless RNDIS USB support</pre><pre> < > Wifi wrapper for ethernet drivers</pre><pre>-*- Cryptographic API ---></pre><pre> --- Cryptographic API</pre><pre> *** Ciphers ***</pre><pre> -*- AES cipher algorithms</pre><pre> <*> AES cipher algorithms (AES-NI)</pre>}} #* {{Anchor|Kernel_Networkmanager}}Enable [[NetworkManager|{{c|NetworkManager}}]] support: {{KernelBox|title=Enabling NetworkManager support|1=-*- Networking support ---> --- Networking support Networking options ---> <*> Packet socket -*- Wireless ---> --- Wireless <*> cfg80211 - wireless configuration API [*] cfg80211 wireless extensions compatibility}} #* {{Anchor|Kernel_Hardware_Clock}}Enable [[System_time#Hardware_clock|{{c|hardware clock}}]] support: {{KernelBox|title=Necessary kernel options for a hardware clock|1=Device Drivers ---> [*] Real Time Clock ---> --- Real Time Clock *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** <*> PC-style 'CMOS'}}{{KernelBox|title=Letting the kernel sync the system clock|1=Device Drivers ---> [*] Real Time Clock ---> --- Real Time Clock [*] Set system time from RTC on startup and resume (rtc0) RTC used to set the system time [*] Set the RTC time based on NTP synchronization (rtc0) RTC used to synchronize NTP adjustment *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** <*> PC-style 'CMOS'}} #* {{Anchor|Kernel_Microcode}}Enable [[Microcode|{{c|CPU microcode}}]] for the [[Intel_microcode|{{c|Intel CPU}}]] loading support: {{KernelBox|title=Configuring the kernel to support Intel microcode loading|1=<pre> General setup ---></pre><pre> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support</pre></br><pre> Processor type and features ---></pre><pre> [*] CPU microcode loading support</pre><pre> [*] Intel microcode loading support</pre><pre> [ ] AMD microcode loading support</pre><pre> [ ] Ancient loading interface (DEPRECATED)</pre>}} #* {{Anchor|Kernel_NTFS}}Enable [[NTFS|{{c|NTFS}}]] read and write support: {{KernelBox|title=Enable built-in NTFS filesystem reading support|1=<pre> File systems ---></pre><pre> DOS/FAT/NT Filesystems ---></pre><pre> <*> NTFS file system support</pre><pre> [ ] NTFS write support</pre>}} {{KernelBox|title=Enabling NTFS over FUSE using NTFS-3G|1=<pre> File systems ---></pre><pre> <*> FUSE (Filesystem in Userspace) support</pre>}} #* {{Anchor|Kernel_tmpfs}}Enable [[Tmpfs|{{c|tmpfs}}]] support: {{KernelBox|title=Enable tmpfs support|1=File systems ---> Pseudo filesystems ---> -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes}} #* {{Anchor|Kernel_audio}}Enable [[ALSA|{{c|ALSA}}]] and [[PulseAudio|{{c|PulseAudio}}]] sound support: {{KernelBox|title=Enable ALSA support|1=<pre> General setup ---></pre><pre> -*- System V IPC</pre></br><pre> Device Drivers ---></pre><pre> <*> Sound card support</pre><pre> --- Sound card support</pre><pre> <*> Advanced Linux Sound Architecture ---></pre><pre> --- Advanced Linux Sound Architecture</pre><pre> [*] PCI sound devices ---></pre><pre> HD-Audio ---></pre><pre> <*> HD Audio PCI</pre><pre> <*> Build Realtek HD-audio codec support</pre><pre> <*> Build HDMI/DisplayPort HD-audio codec support</pre><pre> -*- Enable generic HD-audio codec parser</pre>}} {{KernelBox|title=Enable PulseAudio support|1=<pre> General setup ---></pre><pre> Timers subsystem ---></pre><pre> [*] High Resolution Timer Support</pre></br><pre> Device Drivers ---></pre><pre> <*> Sound card support ---></pre><pre> --- Sound card support</pre><pre> <*> Advanced Linux Sound Architecture ---></pre><pre> (2048) Pre-allocated buffer size for HD-audio driver</pre></br><pre> File systems ---></pre><pre> Pseudo filesystems ---></pre><pre> -*- Tmpfs virtual memory file system support (former shm fs)</pre><pre> -*- Tmpfs POSIX Access Control Lists</pre>}} #* {{Anchor|Kernel_VM}}Enable [[QEMU|{{c|QEMU and KVM}}]] support: {{KernelBox|title=Enabling QEMU and KVM support|1=<pre>[*] Virtualization ---></pre><pre> --- Virtualization ---></pre><pre> <*> Kernel-based Virtual Machine (KVM) support</pre><pre> <*> KVM for Intel processors support</pre><pre> < > KVM for AMD processors support</pre><pre> <*> Host kernel accelerator for virtio net</pre><pre>-*- Networking support ---></pre><pre> --- Networking support</pre><pre> Networking options ---></pre><pre> -*- The IPv6 protocol ---></pre><pre> <*> 802.1d Ethernet Bridging</pre><pre> Device Drivers ---></pre><pre> [*] Network device support ---></pre><pre> --- Network device support</pre><pre> [*] Network core driver support</pre><pre> <*> Universal TUN/TAP device driver support</pre><pre> Kernel hacking ---></pre><pre> Compile-time checks and compiler options ---></pre><pre> -*- Debug Filesystem</pre><pre></pre><pre></pre><pre></pre><pre></pre>}} # Prepare the kernel for module compilation: {{RootCmd|prompt=(chroot) root #|make modules_prepare}} # Compile the kernel: {{RootCmd|prompt=(chroot) root #|make -j32}} # Install the kernel modules: {{RootCmd|prompt=(chroot) root #|make modules_install}} # Modify <code>installkernel</code> to boot from <code>grub</code>: {{RootCmd|prompt=(chroot) root #|echo "sys-kernel/installkernel grub -systemd" >> /etc/portage/package.use/installkernel |emerge --ask installkernel}} # Install the kernel: {{RootCmd|prompt=(chroot) root #|make install}} # Install {{Package|sys-fs/zfs}} and {{Package|sys-fs/zfs-kmod}}: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|sys-fs/zfs}}}} # Rebuild the installed [[Kernel_Modules|{{c|modules}}]]: {{RootCmd|prompt=(chroot) root #|emerge --ask @module-rebuild}} # Use [[Genkernel|{{c|genkernel}}]] to generate an [[Initramfs|{{c|initramfs}}]]: {{RootCmd|prompt=(chroot) root #|genkernel initramfs --firmware --kernel-config{{=}}/usr/src/linux/.config --keymap --makeopts{{=}}-j32 --mountboot --no-clean --zfs}} {{Note|Notice that native {{c|ZFS}} encryption is used for this system, rather than [[Dm-crypt|{{c|LUKS}}]], and thus the lack of the <code>--luks</code> option in the {{c|genkernel}} invacation.}} === Install Firmware === # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_firmware|above]], to enable {{c|firmware}} loading support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Update the Linux kernel|below]]. # Install the [[Linux_firmware|{{c|firmware}}]]: {{RootCmd|prompt=(chroot) root #|emerge -auvDN {{Package|sys-kernel/linux-firmware}}}} # Add support for individual selection of firmware files to {{Package|sys-kernel/linux-firmware}}: {{RootCmd|prompt=(chroot) root #|echo "{{Package|sys-kernel/linux-firmware}} savedconfig" >> /etc/portage/package.use/linux-firmware}} # Comment everything in {{Path|/etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy}} except the actual firmware files needed by the system: {{RootCmd|prompt=(chroot) root #|vim /etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy}} {{Note|Currently loaded firmware can be assessed by {{Cmd|dmesg {{!}} grep -i firmware}}}} {{Tip|A working {{Path|linux-firmware-ddmmyyyy}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/etc/portage/savedconfig/sys-kernel here].}} # Re-emerge {{Package|sys-kernel/linux-firmware}}: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|sys-kernel/linux-firmware}}}} === Configure fstab === With the use of {{c|ZFS}}, modifying the [[Fstab|fstab]] file is not strictly needed. However, by editing {{Path|/etc/fstab}}, an easy way to mount {{Path|/boot}} and {{Path|/boot/efi}} will be provided (note the <code>noauto</code> option. # Edit {{Path|/etc/fstab}}: {{RootCmd|prompt=(chroot) root #|vim /etc/fstab}} {{FileBox|filename=/etc/fstab|title=Mounting rules for {{Path|/boot}} and {{Path|/boot/efi}}|1=... /dev/nvme0n1p1 /boot/efi vfat noauto,noatime 1 2 bpool/BOOT/gentoo /boot zfs noauto,nodev,relatime 1 2 ...}} {{Tip|A working {{Path|fstab}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/fstab here].}} === Configure the Network === # Set the computer's name: {{RootCmd|prompt=(chroot) root #|echo 'hostname{{=}}"foo"' > /etc/conf.d/hostname}} # Install a {{c|DHCP}} client: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|net-misc/dhcpcd}}}} # Install wireless networking tools: {{RootCmd|prompt=(chroot) root #|emerge --ask {{Package|net-wireless/iw}} {{Package|net-wireless/wpa_supplicant}}}} === Install systemd === # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_systemd|above]], to enable {{c|systemd}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|systemd}} support: {{RootCmd|prompt=(chroot) root #|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for systemd support|1=... USE="...systemd..." ...}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system with {{c|systemd}} support: {{RootCmd|prompt=(chroot) root #|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Create {{Path|/etc/mtab}} as a symlink to {{Path|/proc/self/mounts}}: {{RootCmd|prompt=(chroot) root #|ln -sf /proc/self/mounts /etc/mtab}} # Create a machine ID: {{RootCmd|prompt=(chroot) root #|systemd-machine-id-setup}} # Create a hostname: {{RootCmd|prompt=(chroot) root #|hostnamectl set-hostname foo}} # Enable the services needed to mount {{c|ZFS}} filesystems automatically: {{RootCmd|prompt=(chroot) root #|systemctl enable zfs.target |systemctl enable zfs-import-cache |systemctl enable zfs-mount |systemctl enable zfs-import.target |systemctl enable zfs-import-scan}} # Create a service to import {{Path|/boot}} automatically and enable it: {{RootCmd|prompt=(chroot) root #|vim /etc/systemd/system/zfs-import-bpool.service}} {{FileBox|filename=/etc/systemd/system/zfs-import-bpool.service|title=Systemd service to automatically import {{Path|/boot}}|1=[Unit] DefaultDependencies=no Before=zfs-import-scan.service Before=zfs-import-cache.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/sbin/zpool import -N -o cachefile=none bpool [Install] WantedBy=zfs-import.target}} {{Tip|A working {{Path|zfs-import-bpool.service}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/systemd/system/zfs-import-bpool.service here].}} {{RootCmd|prompt=(chroot) root #|systemctl enable zfs-import-bpool.service}} # Create a service to mount {{Path|/home}} automatically and enable it: {{RootCmd|prompt=(chroot) root #|vim /etc/systemd/system/zfskey-home.service}} {{FileBox|filename=/etc/systemd/system/zfskey-home.service|title=Systemd service to automatically import {{Path|/home}}|1=[Unit] Description=Load rpool/ROOT/home encryption keys Before=systemd-user-sessions.service Before=zfs-mount.service After=zfs-import.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/bash -c 'systemd-ask-password "Encrypted ZFS password for rpool/ROOT/home" --no-tty |zfs load-key rpool/ROOT/home' [Install] WantedBy=zfs-mount.service}} {{Tip|A working {{Path|zfskey-home.service}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/systemd/system/zfskey-home.service here].}} {{RootCmd|prompt=(chroot) root #|systemctl enable zfskey-home.service}} === Install GRUB === This guide uses [[GRUB]] as a boot loader. # Edit [[:/etc/portage/make.conf|make.conf]] to install {{c|GRUB2}} for the <code>efi-64</code> platform: {{RootCmd|prompt=(chroot) root #|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>GRUB_PLATFORMS</var> variable for EFI-64 platform|1=... GRUB_PLATFORMS="efi-64" ...}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Mount the [[EFI_System_Partition|{{c|EFI System Partition}}]] partition: {{RootCmd|prompt=(chroot) root #|mkdir /boot/efi |mount /boot/efi}} # Emerge {{Package|sys-boot/grub}} and {{Package|sys-boot/os-prober}} to allow {{c|GRUB2}} to detect Windows 10: {{RootCmd|prompt=(chroot) root #|emerge -auvDN {{Package|sys-boot/grub}} {{Package|sys-boot/os-prober}}}} # Get {{c|GRUB}} to probe the {{Path|/boot}} partition: {{RootCmd|prompt=(chroot) root #|grub-probe /boot|output=zfs}} {{Warning|The above command {{c|must}} return <code>ZFS</code>, if not, something is wrong and the system will not boot.}} # Add parameters to the kernel command line in order to boot from a {{c|ZFS}} partition: {{RootCmd|prompt=(chroot) root #|vim /etc/default/grub}} {{FileBox|filename=/etc/default/grub|title=Setting the <var>GRUB_CMDLINE_LINUX</var> variable to boot from ZFS|1=... GRUB_CMDLINE_LINUX="dozfs real_root=ZFS=rpool/ROOT/gentoo" ...}} {{Tip|A working {{Path|/etc/default/grub}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/default/grub here].}} # Create the {{Path|/boot/grub}} directory: {{RootCmd|prompt=(chroot) root #|mkdir /boot/grub}} # Generate the {{c|GRUB}} configuration file: {{RootCmd|prompt=(chroot) root #|grub-mkconfig -o /boot/grub/grub.cfg}} # Check that the configuration file includes instructions to load the {{c|ZFS}} module: {{RootCmd|prompt=(chroot) root #|grep 'insmod zfs' /boot/grub/grub.cfg |output=insmod zfs}} # Install the bootloader: {{RootCmd|prompt=(chroot) root #|grub-install --target{{=}}x86_64-efi --efi-directory{{=}}/boot/efi --bootloader-id{{=}}Gentoo --recheck --no-floppy}} # Check if the {{c|ZFS}} module for {{c|GRUB}} has been installed: {{RootCmd|prompt=(chroot) root #|ls /boot/grub/*/zfs.mod |output=/boot/grub/x86_64-efi/zfs.mod}} # Unmount the boot partitions: {{RootCmd|prompt=(chroot) root #|umount /boot/efi |umount /boot}} # Allow {{Path|bpool/BOOT/gentoo}} to be managed by legacy tools, such as {{c|GRUB}} and the {{Path|/etc/fstab}}: {{RootCmd|prompt=(chroot) root #|zfs set mountpoint{{=}}legacy bpool/BOOT/gentoo}} === User Accounts === # Secure the {{c|root}} account with a strong password: {{RootCmd|prompt=(chroot) root #|passwd}} # Create a regular user: {{RootCmd|prompt=(chroot) root #|useradd -m -G audio,cdrom,portage,usb,users,video,wheel -s /bin/bash foo |passwd foo}} === First ZFS snapshot === Create a first {{c|ZFS snapshot}}. If anythong goes wrong afterwards, it will serve as a backup of a the freshly installed system. # Create a snapshot of the boot filesystem: {{RootCmd|zfs snapshot bpool/BOOT/gentoo@install}} # Create a snapshot of the root filesystem: {{RootCmd|zfs snapshot rpool/ROOT/gentoo@install}} # Create a snapshot of the home filesystem: {{RootCmd|zfs snapshot rpool/ROOT/home@install}} {{Tip|The following commands can be used to manage snapshots: #* Create: {{RootCmd|zfs snapshot bpool/BOOT/gentoo@install}} #* List: {{RootCmd|zfs list -t all}} #* Rollback: {{RootCmd|zfs rollback bpool/BOOT/gentoo@install}} #* Clone: {{RootCmd|zfs clone bpool/BOOT/gentoo@install bpool/BOOT/gentoo@install_backup}} #* Rename: {{RootCmd|zfs rename bpool/BOOT/gentoo@install_backup bpool/BOOT/gentoo@original_install}} #* Destroy: {{RootCmd|zfs destroy bpool/BOOT/gentoo@install}}}} === Rebooting === # Exit the {{c|chroot}} environment: {{RootCmd|prompt=(chroot) root #|exit}} # Unmount all mounted partitions: {{RootCmd|cd |umount -l /mnt/gentoo/{dev,sys,proc,run} |umount -R /mnt/gentoo/home |umount -R /mnt/gentoo}} # Change the mountpoint of the {{c|ZFS filesystems}}: {{RootCmd|zfs set mountpoint{{=}}/ rpool/ROOT/gentoo |zfs set mountpoint{{=}}/home rpool/ROOT/home}} # Reboot into the Gentoo environment: {{RootCmd|reboot}} # Remove the downloaded {{c|stage3}} files: {{RootCmd|rm /stage3-amd64-systemd-20191223.tar.bz2}} # If {{c|systemd}} gives errors regarding the locales, run: {{RootCmd|localectl set-locale LANG{{=}}en_US.UTF-8}} === FUSE === # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_FUSE|above]], to enable {{c|FUSE}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Install the userspace {{c|FUSE}} tools: {{RootCmd|emerge --ask {{Package|sys-fs/fuse}}}} === Sudo === # Enable the <code>offensive</code> {{c|USE}} flag to get funny replies when typing in wrong passwords: {{RootCmd|echo “{{Package|app-admin/sudo}} offensive” >> /etc/portage/package.use/sudo}} # Install [[Sudo|{{c|sudo}}]]: {{RootCmd|emerge -auvDN {{Package|app-admin/sudo}}}} # Grant administrator privileges to all the users of the <code>wheel</code> group by editing the {{Path|/etc/sudoers}} file: {{RootCmd|visudo}} {{FileBox|filename=/etc/sudoers|title=Modify administrator privileges|1=<pre>...</pre><pre>wheel ALL=(ALL) ALL</pre><pre>...</pre>}} # Enable bash completion with sudo: {{RootCmd|echo "complete -cf sudo" >> $HOME/.bashrc}} # Allow X applications to be run with sudo: {{Cmd|xhost local:root}} === AMD Graphics === Note: https://wiki.gentoo.org/wiki/AMDGPU https://linux-hardware.org/?id=pci%3A1002-13c0-1043-8877 https://wiki.gentoo.org/wiki/Radeon https://wiki.archlinux.org/title/AMDGPU Configure the drivers for the Intel Graphics Chip. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Intel_graphics|above]], to enable the Intel graphics support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to globally enable Intel graphics support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>VIDEO_CARDS</var> variable for Intel support|1=<pre>...</pre><pre>VIDEO_CARDS="intel i965 iris"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system to reinstall packages with Intel graphics support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # If needed, force {{c|Xorg}} to load the modesetting driver: {{RootCmd|vim /etc/X11/xorg.conf.d/20-modesetting.conf}} {{FileBox|filename=/etc/X11/xorg.conf.d/20-modesetting.conf|title=Force modesetting DDX|<pre>Section "Device"</pre><pre> Identifier "Intel Graphics"</pre><pre> Driver "modesetting"</pre><pre> Option "AccelMethod" "glamor"</pre><pre> Option "DRI" "3"</pre><pre>EndSection</pre>}} # Install the Intel userland GPU tools: {{RootCmd|echo "{{Package|x11-apps/igt-gpu-tools}} ~amd64" >> /etc/portage/package.accept_keywords/igt-gpu-tools}} === Xorg === Configure the [[Xorg|{{c|Xorg}}]] X server. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Xorg|above]], to enable {{c|Xorg}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|Xorg}} support and set the drivers for input devices: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for X support and configure <var>INPUT_DEVICES</var>|1=<pre>...</pre><pre>USE="...X..."</pre><pre>...</pre><pre>INPUT_DEVICES="libinput"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Install {{c|Xorg}}: {{RootCmd|emerge -auvDN {{Package|x11-base/xorg-server}}}} # Update the environment settings and source the profile: {{RootCmd|env-update && source /etc/profile}} # Install packages to test if the {{c|X server}} is working: {{RootCmd|emerge --ask {{Package|x11-wm/twm}} {{Package|x11-terms/xterm}}}} # Install package to test if the 3D acceleration is working: {{RootCmd|emerge --ask {{Package|x11-apps/mesa-progs}}}} # Test if the {{c|X server}} is working: {{Cmd|startx}} # Test if the 3D acceleration is working: {{Cmd|glxinfo {{!}} grep rendering|output=<pre>direct rendering: Yes</pre>}} {{Cmd|glxgears}} # Exit the X environment: {{Cmd|exit}} # Remove the packages installed for testing: {{RootCmd|emerge -Cav {{Package|x11-wm/twm}} {{Package|x11-terms/xterm}} {{Package|x11-apps/mesa-progs}}}} # Update the system to reinstall packages with {{c|X}} support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} === Wifi === Configure the [[Wifi|{{c|Wifi}}]] adapter. # Identify the {{c|Wifi}} adapter: {{RootCmd|dmesg {{!}} grep -i -E '3b:00.0{{!}}wlan{{!}}iwl{{!}}80211'|output=<pre>Detected Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW), REV=0x340</pre>}} # According to this table<ref name="iwlwifi_firmware"/>: #* The module required to control this adapter is [[Iwlwifi|iwlmvm]]. #* The lowest Linux kernel compatible is 5.1+ (current stable kernels, 4.19.*, are not compatible). # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Wifi|above]], to enable {{c|Wifi}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. === NetworkManager === Configure [[NetworkManager|{{c|NetworkManager}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Networkmanager|above]], to enable {{c|NetworkManager}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|NetworkManager}} support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for NetworkManager support|1=<pre>...</pre><pre>USE="...networkmanager..."</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system to reinstall packages with {{c|NetworkManager}} support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Enable {{c|NetworkManager}} to be started at boot time: {{RootCmd|systemctl enable NetworkManager}} === GNOME Light === Install the [[GNOME/Guide|{{c|GNOME}}]] [[Desktop_environment|{{c|desktop environment}}]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|GNOME}} support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for GNOME support|1=<pre>...</pre><pre>USE="...gnome gtk gtk3 -kde -gt5 systemd wayland X..."</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Emerge {{c|GNOME Light}}: {{RootCmd|emerge -auvDN {{Package|gnome-base/gnome-light}}}} # Update the environment variables and reload the environment {{RootCmd|env-update && source /etc/profile}} # Verify that the <code>plugdev</code> group exists and add each {{c|GNOME}} user to it: {{RootCmd|getent group plugdev|output=<pre>plugdev:x:272:</pre>}} {{RootCmd|gpasswd -a foo plugdev |gpasswd -a root plugdev}} # Enable [[GNOME/GDM|{{c|GDM}}]] on boot: {{RootCmd|systemctl enable gdm.service}} # Install GNOME tweaks and shell extensions for {{c|GNOME 3}} customization: {{RootCmd|emerge -auvDN {{Package|gnome-extra/gnome-tweaks}} {{Package|gnome-extra/gnome-shell-extensions}}}} # Provide admin privileges in system dialogs to the users in the wheel group: {{RootCmd|vim /etc/polkit-1/rules.d/49-wheel.rules}} {{FileBox|title=Administrator wheel group|filename=/etc/polkit-1/rules.d/49-wheel.rules|<pre>polkit.addAdminRule(function(action, subject) {</pre><pre> return ["unix-group:wheel"];</pre><pre>});</pre>}} # Allow the {{c|root}} user to launch X window applications: {{Cmd|vim ~/.bashrc}} {{FileBox|title=X windows as root|filename=/home/foo/.bashrc|<pre># Allow root to launch x window applications:</pre><pre>xhost local:root</pre>}} # Enable [[GNOME/GDM#Enable_tap_to_click_in_GDM|tap to click]] in [[GNOME/GDM|{{c|GDM}}]]: {{Cmd|xhost +SI:localuser:gdm|sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}} === GNOME === From the {{c|GNOME}} packages not installed by {{c|GNOME Light}}, install those that are really needed. # Install {{Package|gnome-extra/gnome-system-monitor}}: {{RootCmd|emerge -auvDN {{Package|gnome-extra/gnome-system-monitor}}}} # Install {{Package|sys-block/gparted}}: {{RootCmd|echo "{{Package|sys-block/gparted}} ~amd64" >> /etc/portage/package.accept_keywords/gparted |emerge -auvDN {{Package|sys-block/gparted}}}} === Chromium === Install the [[Chromium|{{c|Chromium}}]] web browser. # Unmask the latest Chromium ebuild: {{RootCmd|echo “{{Package|www-client/chromium}} ~amd64” >> /etc/portage/package.accept_keywords/chromium}} # Emerge Chromium: {{RootCmd|emerge -auvDN {{Package|www-client/chromium}}}} # Open Chromium in incognito mode by default: {{RootCmd|cp /usr/share/applications/chromium-browser-chromium.desktop ~/.local/share/applications/|vim ~/.local/share/applications/chromium-browser-chromium.desktop}} {{FileBox|title=Launcher for Chromium in incognito mode|filename=/home/foo/.local/share/applications/chromium-browser-chromium.desktop|<pre>...</pre><pre>Exec=chromium-browser --incognito %U</pre><pre>...</pre>}} # Enable click-to-install {{c|GNOME}} Shell Extensions through Chromium: #* Install the required browser [https://chrome.google.com/webstore/detail/gphhapmejobijbbhgpjhcjognlahblep add-on] through the Chrome store. #* Emerge the backend: {{RootCmd|emerge -auvDN {{Package|gnome-extra/chrome-gnome-shell}}}} === Firefox === Install the [[Firefox|{{c|Firefox}}]] web browser. # Unmask the latest Firefox ebuild: {{RootCmd|echo “{{Package|www-client/firefox}} ~amd64” >> /etc/portage/package.accept_keywords/firefox}} # Emerge Firefox: {{RootCmd|emerge -auvDN {{Package|www-client/firefox}}}} # Open Firefox in incognito mode by default: {{RootCmd|cp /usr/share/applications/firefox.desktop ~/.local/share/applications/|vim ~/.local/share/applications/firefox.desktop}} {{FileBox|title=Launcher for Firefox in incognito mode|filename=/home/foo/.local/share/applications/firefox.desktop|<pre>...</pre><pre>Exec=firefox --private-window %u</pre><pre>...</pre>}} # Enable click-to-install {{c|GNOME}} Shell Extensions through Firefox: #* Install the required browser [https://addons.mozilla.org/firefox/addon/gnome-shell-integration/ add-on] through Add-ons for Firefox. #* Emerge the backend: {{RootCmd|emerge -auvDN {{Package|gnome-extra/chrome-gnome-shell}}}} === Hardware Clock === Configure [[System_time#Hardware_clock|{{c|Hardware Clock}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Hardware_Clock|above]], to enable {{c|Hardware Clock}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Check that the {{c|Hardware Clock}} is in use: {{Cmd|timedatectl {{!}} grep "RTC time"}} # Configure {{c|GNOME}} automatically update the {{c|Hardware Clock}} from online servers: gnome-control-center > Details > Date & Time > Automatic Date & Time (set on). === Localization === Change some [[Localization/Guide|language specific settings]]. # Modify the keyboard layout for the console: {{RootCmd|localectl list-keymaps |localectl set-keymap es |localectl {{!}} grep "VC Keymap"| output=<pre> VC Keymap: es</pre>}} # Modify the keyboard layout for the X server: {{RootCmd|localectl list-x11-keymap-layouts |localectl set-x11-keymap es |localectl {{!}} grep "X11 Layout"| output=<pre> X11 Layout: es</pre>}} # Edit [[:/etc/portage/make.conf|make.conf]] to enable systemwide localization: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>LINGUAS</var> and <var>L11N</var> variables for systemwide localization|1=<pre>...</pre><pre>LINGUAS="en es es_ES"</pre><pre>L10N="en es es-es"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system with with systemwide localization: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} === Loading of CPU microcode === [[Microcode|{{c|CPU microcode}}]] for the [[Intel_microcode|{{c|Intel CPU}}]] will be loaded by GRUB at boot time. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_Microcode|above]], to enable {{c|CPU microcode}} loading support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Install the microcode firmware package and the manipulation tool: {{RootCmd|echo "{{Package|sys-firmware/intel-microcode}} hostonly" >> /etc/portage/package.use/intel-microcode |emerge -auvDN {{Package|sys-firmware/intel-microcode}} {{Package|sys-apps/iucode_tool}}}} # Mount the {{Path|/boot}} and {{Path|/boot/efi}} partitions: {{RootCmd|mount /boot |mount /boot/efi}} # Manually generate the microcode cpio archive: {{RootCmd|iucode_tool -S --write-earlyfw{{=}}/boot/early_ucode.cpio /lib/firmware/intel-ucode/*|output=<pre>iucode_tool: system has processor(s) with signature 0x000906ed</pre><pre>iucode_tool: Writing selected microcodes to: /boot/early_ucode.cpio</pre>}} {{Note|{{c|GRUB2}} will automatically try to load any file named {{Path|/boot/early_ucode.cpio}}.}} # Regenerate the {{c|GRUB}} configuration file: {{RootCmd|grub-mkconfig -o /boot/grub/grub.cfg}} # After reboot, check that the microcode has been loaded: {{RootCmd|dmesg {{!}} grep microcode |output=<pre>[ 0.000000] microcode: microcode updated early to revision 0xca, date = 2019-10-03</pre><pre>[ 2.623235] microcode: sig=0x906ed, pf=0x20, revision=0xca</pre><pre>[ 2.623592] microcode: Microcode Update Driver: v2.2.</pre>}} {{RootCmd|grep microcode /proc/cpuinfo |output=<pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre>}} === USB support === Configure [[USB/Guide|support]] for [[USB|{{c|USB}}]] devices. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_USB|above]], to enable {{c|USB}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Install the [[Usbutils|{{c|usbutils}}]] to be able to query the {{c|USB}} interfaces: {{RootCmd|emerge -auvDN {{Package|sys-apps/usbutils}}}} === NTFS support === Configure [[NTFS|{{c|NTFS}}]] read and write support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_NTFS|above]], to enable in-kernel {{c|NTFS}} read and {{c|FUSE}} write support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Enable {{c|USE}} flags as needed: {{RootCmd|echo "{{Package|sys-fs/ntfs3g}} ntfsdecrypt suid" >> /etc/portage/package.use/ntfs3g}} # Emerge {{Package|sys-fs/ntfs3g}}: {{RootCmd|emerge -auvDN {{Package|sys-fs/ntfs3g}}}} === tmpfs support === Configure [[Tmpfs|{{c|tmpfs}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_tmpfs|above]], to enable {{c|tmpfs}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # {{c|Systemd}} will automatically mount {{Path|/tmp}} as {{c|tmpfs}}. Place [[Portage_TMPDIR_on_tmpfs|{{c|portage's tmpdir}}]] inside {{Path|/tmp}}: {{RootCmd|vim /mnt/gentoo/etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>PORTAGE_TMPDIR</var> variable for tmpfs use|1=<pre>...</pre><pre>PORTAGE_TMPDIR="/tmp"</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Mount as [[Tmpfs|{{c|tmpfs}}]] any other appropriate directory, by using {{Path|/etc/fstab}}: {{RootCmd|vim /etc/fstab}} {{FileBox|filename=/etc/fstab|title=Mounting rules for tmpfs directories|1=<pre>...</pre><pre>tmpfs /var/lock tmpfs rw,nodev,nosuid,size=2G 0 0</pre><pre>...</pre>}} {{Tip|A working {{Path|fstab}} for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/fstab here].}} === ALSA and PulseAudio support === Configure [[ALSA|{{c|ALSA}}]] and [[PulseAudio|{{c|PulseAudio}}]] support. # Edit {{Path|/usr/src/linux/.config}}, as explained [[#Kernel_audio|above]], to enable {{c|ALSA}} and {{c|PulseAudio}} support. {{Tip|Working kernel configuration files, for different kernel versions, can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src here].}} # Update the [[Kernel|{{c|Kernel}}]], as explained [[#Kernel_Update|below]]. # Edit [[:/etc/portage/make.conf|make.conf]] to enable {{c|ALSA}} and {{c|PulseAudio}} support: {{RootCmd|vim /etc/portage/make.conf}} {{FileBox|filename=/etc/portage/make.conf|title=Setting the <var>USE</var> variable for ALSA and PulseAudio support|1=<pre>...</pre><pre>USE="...alsa...pulseaudio..."</pre><pre>...</pre>}} {{Tip|A working make.conf for this system can be found [https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf here].}} # Update the system to reinstall packages with {{c|ALSA}} and {{c|PulseAudio}} support: {{RootCmd|emerge -auvDN @world && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Emerge {{Package|media-sound/alsa-utils}}: {{RootCmd|emerge -auvDN {{Package|media-sound/alsa-utils}}}} # Add <var>ffmpeg</var> support to {{Package|media-plugins/alsa-plugins}} and emerge it: {{RootCmd|echo "{{Package|media-plugins/alsa-plugins}} ffmpeg" >> /etc/portage/package.use/alsa-plugins|emerge -auvDN {{Package|media-plugins/alsa-plugins}}}} === External Monitors === in [[GNOME|{{c|GNOME}}]] [[Wayland|{{c|Wayland}}]], when using an external non-{{c|HiDPI}} monitor, it will be scaled, by default, as the laptop's screen, and this will make either the windows too big in the external monitor, or too small in the laptop's screen. In order to allow a different scaling in each screen: # Open {{c|GNOME}}'s dconf-editor. # Go to <code>/org/gnome/mutter/experimental-features</code>. # Disable "Use default value". # write custom value: <code>['scale-monitor-framebuffer', 'x11-randr-fractional-scaling']</code>. === QEMU/KVM === [[QEMU|{{c|QEMU}} and {{c|KVM}}]]. # Edit .conf. # Edit USE # {{RootCmd|emerge -auvDN {{Package|app-emulation/qemu}}}} # {{RootCmd|gpasswd -a foo kvm}} # {{RootCmd|emerge -auvDN {{Package|gnome-extra/gnome-boxes}}}} #* Apply patch or it will not compile. === ZFS automatic snapshots === {{Package|sys-fs/zfs-auto-snapshot}} provides scripts used to rotate periodic snapshots through [[Cron|{{c|cron}}]] jobs. # Install {{Package|sys-process/cronie}} and {{Package|sys-fs/zfs-auto-snapshot}}: {{RootCmd |emerge -auvDN {{Package|sys-process/cronie}} {{Package|sys-fs/zfs-auto-snapshot}} && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} # Disable the default cron job that would create a frequent snapshot each 15 minutes: {{RootCmd|rm /etc/cron.d/zfs-auto-snapshot}} # Enable and start the cronie systemd service: {{RootCmd|systemctl enable cronie.service |systemctl start cronie.service |systemctl status cronie.service}} # Set the <code>com.sun:auto-snapshot</code> property to <code>true</code> for each {{c|zpool}} of interest: {{RootCmd|zfs set com.sun:auto-snapshot{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot{{=}}true rpool/ROOT/home}} # Enable the desired periodic auto-snaphot jobs on each pool: {{RootCmd|zfs set com.sun:auto-snapshot:hourly{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot:daily{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot:weekly{{=}}true bpool/BOOT/gentoo |zfs set com.sun:auto-snapshot:monthly{{=}}true bpool/BOOT/gentoo}} {{RootCmd|zfs set com.sun:auto-snapshot:hourly{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot:daily{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot:weekly{{=}}true rpool/ROOT/gentoo |zfs set com.sun:auto-snapshot:monthly{{=}}true rpool/ROOT/gentoo}} {{RootCmd|zfs set com.sun:auto-snapshot:hourly{{=}}true rpool/ROOT/home |zfs set com.sun:auto-snapshot:daily{{=}}true rpool/ROOT/home |zfs set com.sun:auto-snapshot:weekly{{=}}true rpool/ROOT/home |zfs set com.sun:auto-snapshot:monthly{{=}}true rpool/ROOT/home}} # Modify the cron jobs as needed: {{RootCmd|vim /etc/cron.hourly/zfs-auto-snapshot |vim /etc/cron.daily/zfs-auto-snapshot |vim /etc/cron.weekly/zfs-auto-snapshot |vim /etc/cron.monthly/zfs-auto-snapshot}} === To Do... === Check the firmware used by rtl8153 [[Linux_firmware]] https://wiki.archlinux.org/index.php/Intel_graphics#Enable_GuC_/_HuC_firmware_loading https://gist.github.com/Brainiarc7/aa43570f512906e882ad6cdd835efe57 === Update the Linux kernel === {{RootCmd|mount /boot |mount /boot/efi |emerge --sync |emerge -auvDN {{Package|sys-kernel/gentoo-sources}} |emerge --depclean |emerge @preserved-rebuild |revdep-rebuild |eselect kernel list |eselect kernel set 2}} {{RootCmd|cd /usr/src/linux |cp /usr/src/linux-`uname -r`/.config /usr/src/linux/ |make syncconfig |make modules_prepare |make -j16 |make modules_install |make install |emerge --ask @module-rebuild |genkernel initramfs --firmware --kernel-config{{=}}/usr/src/linux/.config --keymap --makeopts{{=}}-j16 --mountboot --no-clean --zfs |grub-mkconfig -o /boot/grub/grub.cfg}} {{RootCmd|eclean-kernel -pn 2|eclean-kernel -n 2}} === Removal of old kernels === {{RootCmd|mount /boot |mount /boot/efi |emerge -Cav {{=}}{{Package|sys-kernel/gentoo-sources}}-X.Y.Z |emerge --depclean |emerge @preserved-rebuild |revdep-rebuild}} {{RootCmd|rm -r /usr/src/linux-X.Y.Z |rm -r /lib/modules/X.Y.Z |rm /boot/config-X.Y.Z-gentoo |rm /boot/initramfs-X.Y.Z-gentoo.img |rm /boot/System.map-X.Y.Z-gentoo |rm /boot/vmlinuz-X.Y.Z-gentoo |grub-mkconfig -o /boot/grub/grub.cfg}} == Troubleshooting == === Gparted reporting the whole disk as a single Zpool === At the time of writing this, {{c|GParted}} reports the whole disk as a single {{c|Zpool}} when any of its partitions is formatted with {{c|ZFS}}<ref>[https://gitlab.gnome.org/GNOME/gparted/issues/14 zfs partition wrongly shows occupying the whole disk], [https://gitlab.gnome.org/GNOME GNOME GitLab]. Retrieved on April 7th, 2020.</ref>. This is not happening in other disk utilities such as {{c|GNOME Disks}}, {{c|parted}} or {{c|fdisk}}. This is due to a bug of the {{c|blkid}} utility, in its stable version, which wrongly reports the disk type. Updating {{Package|sys-apps/util-linux}} to its latest version fixes this problem: {{RootCmd|echo "{{=}}{{Package|sys-apps/util-linux}}-2.35.1-r1 ~amd64" >> /etc/portage/package.accept_keywords/util-linux |emerge -auvDN {{Package|sys-apps/util-linux}} && emerge --depclean && emerge @preserved-rebuild && revdep-rebuild}} == See also == * {{See also|Handbook:AMD64}} * {{See also|UEFI_Dual_boot_with_Windows_7/8}} * {{See also|Sakaki%27s_EFI_Install_Guide}} * {{See also|Dell_XPS_15_9560}} * {{See also|User:Monsieurp/Gentoo_Linux_on_ZFS}} * {{See also|ZFS}} == External resources == * https://github.com/bugalo/gentoo_dell_xps_15_7590 * https://wiki.archlinux.org/index.php/Dell_XPS_15_7590 * https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS * https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation * https://www.funtoo.org/ZFS_as_Root_Filesystem * https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/ * https://wiki.archlinux.org/index.php/ZFS * https://github.com/zfsonlinux/zfs/issues/8810 * https://github.com/HankB/Linux_ZFS_Root/tree/master/Debian * https://wiki.archlinux.org/index.php/ZFS#Native_encryption == References == {{reflist}}'
Unified diff of changes made by edit (edit_diff)
'@@ -514,4 +514,9 @@ === AMD Graphics === Note: + +https://wiki.gentoo.org/wiki/AMDGPU +https://linux-hardware.org/?id=pci%3A1002-13c0-1043-8877 +https://wiki.gentoo.org/wiki/Radeon +https://wiki.archlinux.org/title/AMDGPU '
Old page size (old_size)
83935
Lines added in edit (added_lines)
[ 0 => '', 1 => 'https://wiki.gentoo.org/wiki/AMDGPU', 2 => 'https://linux-hardware.org/?id=pci%3A1002-13c0-1043-8877', 3 => 'https://wiki.gentoo.org/wiki/Radeon', 4 => 'https://wiki.archlinux.org/title/AMDGPU' ]
Lines removed in edit (removed_lines)
[]
New page text, stripped of any markup (new_text)
' This article is a work in progress; treat its contents with caution - Bugalo (talk | contribs). Contents 1 Summary 2 Installation 2.1 Preparing the Ubuntu Live Environment 2.2 Create the ZFS layout 2.3 Install the Gentoo base system 2.4 Configuring, building and installing the Linux kernel 2.5 Install Firmware 2.6 Configure fstab 2.7 Configure the Network 2.8 Install systemd 2.9 Install GRUB 2.10 User Accounts 2.11 First ZFS snapshot 2.12 Rebooting 2.13 FUSE 2.14 Sudo 2.15 AMD Graphics 2.16 Xorg 2.17 Wifi 2.18 NetworkManager 2.19 GNOME Light 2.20 GNOME 2.21 Chromium 2.22 Firefox 2.23 Hardware Clock 2.24 Localization 2.25 Loading of CPU microcode 2.26 USB support 2.27 NTFS support 2.28 tmpfs support 2.29 ALSA and PulseAudio support 2.30 External Monitors 2.31 QEMU/KVM 2.32 ZFS automatic snapshots 2.33 To Do... 2.34 Update the Linux kernel 2.35 Removal of old kernels 3 Troubleshooting 3.1 Gparted reporting the whole disk as a single Zpool 4 See also 5 External resources 6 References Summary[edit] This document will serve as a guide on how to install Gentoo on the MSI MPG x870E Edge TI Wifi motherboard with an AMD 9950x3d CPU and the following configuration: Single Gentoo boot, in UEFI with GPT mode, using GRUB2 as a boot loader. ZFS on all partitions, except the ESP, including root, with native transparent compression and encryption. Deduplication will not be configured: Mirrored Zpools for all system partitions. Those will be located in two 4TB NVMe hard drives. GNOME with systemd profile. Installation[edit] Preparing the Ubuntu Live Environment[edit] Create an Ubuntu bootable USB using, for example using UNetbootin. Plug the USB and boot the PC. Access the One-time boot menu of the BIOS by pressing F2. Choose the appropriate entry to boot from the live USB. In the GRUB menu, choose Try Ubuntu without installing. Connect to the internet, through either a wireless&#91;1&#93; or wired network&#91;2&#93;. Upgrade Ubuntu to use the latest ZFS modules availabe. root #apt-get update root #apt-get upgrade Verify that ZFS is loaded user $dmesg | grep -i zfs [ 9.658459] ZFS: Loaded module v0.8.1-1ubuntu12, ZFS pool version 5000, ZFS filesystem version 5 Create a folder for the Gentoo install. root #mkdir /mnt/gentoo Install the text editor of your choice, e.g. Vim. root #apt-get install vim ImportantThis guide uses Vim as a text editor. Feel free to substitute it by your preferred editor. Create the ZFS layout[edit] All the partitions of the system will use the ZFS filesystem. ZFS allows the use of whole disks, without partitioning, to install the different parts of the system. In this case, the whole disk would be a ZFS pool, and we would create different ZFS datasets in it that would be conceptually similar to traditional partitions, but they don't need to have a fixed predetermined size. However, the choice of GRUB2 as a boot manager requires partitioning the disk, i.e a ZFS pool needs to be created in a partition, not in the whole disk. GRUB2 cannot currently reside in a ZFS pool with advanced features activated, such as encryption&#91;3&#93;. In order to satisfy both requirements of using GRUB2 as a boot loader and having the system residing in ZFS with native encryption, we need to create a ZFS pool compatible with GRUB2. Furthermore, a FAT formatted EFI System Partition needs to be created. Open GParted. Select the device /dev/nvme0n1. Go to Device / Create Partition Table ... / gpt / Apply. Select the device /dev/nvme1n1. Go to Device / Create Partition Table ... / gpt / Apply. Delete any partition of the NVMe drives /dev/nvme0n1 and /dev/nvme1n1. Create two new partitions, /dev/nvme0n1p1 and /dev/nvme1n1p1, in the unallocated space, formatted in FAT32, named "EFI system partition" and "EFI system partition 2" respectively, with labels ESP and ESP_2, of 128MB, and with flags "boot" and "esp". Create two unformatted partitions, /dev/nvme0n1p2 and /dev/nvme1n1p2, in the unallocated space, named Gentoo-Boot and Gentoo-Boot-2, of around 1GB. Create two unformatted partitions, /dev/nvme0n1p3 and /dev/nvme1n1p3, in the unallocated space, named Gentoo-Root and Gentoo-Root-2, occupying the remaining space. Apply all operations and exit. Create a mirror ZFS pool, with all GRUB's unsupported features disabled, in /dev/nvme0n1p2 and /dev/nvme1n1p2. root #zpool create -d -o feature@allocation_classes=enabled \ -o feature@async_destroy=enabled \ -o feature@bookmarks=enabled \ -o feature@embedded_data=enabled \ -o feature@empty_bpobj=enabled \ -o feature@enabled_txg=enabled \ -o feature@extensible_dataset=enabled \ -o feature@filesystem_limits=enabled \ -o feature@hole_birth=enabled \ -o feature@large_blocks=enabled \ -o feature@lz4_compress=enabled \ -o feature@project_quota=enabled \ -o feature@resilver_defer=enabled \ -o feature@spacemap_histogram=enabled \ -o feature@spacemap_v2=enabled \ -o feature@userobj_accounting=enabled \ -o feature@zpool_checkpoint=enabled \ -f -o ashift=12 \ -o autotrim=on \ -o cachefile=/tmp/zpool.cache \ -O aclinherit=passthrough \ -O acltype=posixacl \ -O atime=off \ -O canmount=off \ -O devices=off \ -O mountpoint=/ \ -O normalization=formD \ -O xattr=sa \ -R /mnt/gentoo \ bpool mirror /dev/nvme0n1p2 /dev/nvme1n1p2 Create a mirror ZFS pool, for the Gentoo system, in /dev/nvme0n1p3 and /dev/nvme1n1p3. root #zpool create -f -o ashift=12 \ -o autotrim=on \ -o cachefile=/tmp/zpool.cache \ -O acltype=posixacl \ -O aclinherit=passthrough \ -O atime=off \ -O canmount=off \ -O devices=off \ -O dnodesize=auto \ -O mountpoint=/ \ -O normalization=formD \ -O xattr=sa \ -R /mnt/gentoo \ rpool mirror /dev/nvme0n1p3 /dev/nvme1n1p3 ImportantNote that most native encryption ZFS guides encrypt the root ZFS pool&#91;4&#93;. However, this forces all its child pools and datasets to be encrypted and with the same algorithm&#91;5&#93;. Thus, here rpool will be left unencrypted, while encryption will be applied to its children. The status and properties of the pools created above can be checked with the following commands:root #zpool status pool: bpool state: ONLINEstatus: Some supported features are not enabled on the pool. The pool can still be used, but some features are unavailable.action: Enable all features using 'zpool upgrade'. Once this is done, the pool may no longer be accessible by software that does not support the features. See zpool-features(5) for details. scan: none requestedconfig: NAME STATE READ WRITE CKSUM bpool ONLINE 0 0 0 nvme0n1p4 ONLINE 0 0 0errors: No known data errors pool: rpool state: ONLINE scan: none requestedconfig: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 nvme0n1p5 ONLINE 0 0 0errors: No known data errors root #zfs get all bpool root #zfs get all rpool Create the ZFS dataset where GRUB2 will reside: root #zfs create -o canmount=off -o compression=gzip-9 -o mountpoint=none bpool/BOOT root #zfs create -o canmount=noauto -o compression=gzip-9 -o dnodesize=legacy -o mountpoint=/mnt/gentoo/boot bpool/BOOT/gentoo ImportantThe LZ4 compression algorithm is generally favored over Gzip, due to its good balance between compression ratio and computational power required&#91;6&#93;. However, this guide uses gzip-9 as compression algorithm, offering the highest compression level at a higher computational cost. This is due to the availability of a powerful CPU in the system. WarningAt the time of writing this paragraph, Grub does not support booting from a zfs pool compressed with zstd. WarningSetting here the parameter dnodesize to anything other than legacy will result in the following error&#91;7&#93;: cannot set property for 'bpool': operation not supported on this type of pool Create the ZFS dataset where root will reside: root #zfs create -o canmount=off -o compression=zstd-19 -o encryption=aes-256-gcm -o keyformat=passphrase -o keylocation=prompt -o mountpoint=none rpool/ROOT root #zfs create -o canmount=noauto -o compression=zstd-19 -o encryption=aes-256-gcm -o keyformat=passphrase -o keylocation=prompt -o mountpoint=/mnt/gentoo rpool/ROOT/gentoo ImportantThe default mode of operation of ZFS native encryption is aes-256-ccm. However, aes-256-gcm is generally preferred&#91;8&#93;. ImportantAccording to various benchmarks, zstd should provide similar or higher compression levels than gzip, but with higher compression and decompression speed. Create the ZFS dataset where home will reside: root #zfs create -o compression=zstd-19 -o encryption=aes-256-gcm -o keyformat=passphrase -o mountpoint=/mnt/gentoo/home rpool/ROOT/home Mount all the ZFS datasets : WarningAt the time of writing this paragraph, mounting the datasets with zfs mount will result in a double preffix (see &#91;9&#93;) and ZFS Chroot. Use mount -t zfs instedad. root #zfs set mountpoint=/ rpool root #zfs set mountpoint=/ rpool/ROOT/gentoo root #zfs set mountpoint=/home rpool/ROOT/home root #zfs set mountpoint=/ bpool root #zfs set mountpoint=/boot bpool/BOOT/gentoo root #mount -t zfs -o zfsutil rpool/ROOT/gentoo /mnt/gentoo root #mkdir /mnt/gentoo/home root #mount -t zfs -o zfsutil rpool/ROOT/home /mnt/gentoo/home root #mkdir /mnt/gentoo/boot root #mount -t zfs -o zfsutil bpool/BOOT/gentoo /mnt/gentoo/boot Check that the ZFS layout is correct: root #zfs list -t all Set the ZFS dataset used for booting: root #zpool set bootfs=bpool/BOOT/gentoo bpool Check that the bootfs property has been properly set: root #zpool get bootfs bpool Install the Gentoo base system[edit] This section will closely follow Gentoo's AMD64 Handbook, with adjustments where appropriate. Verify that the date and time of the system is correct. If not, fix it:root #date Thu Jan 23 23:35:23 CET 2020 Choose a stage tarball: desktop systemd 64-bit stage tarball. Move to the root installation directory:root #cd /mnt/gentoo/ Find the name of the latest amd64 systemd stage3 at http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3-amd64-systemd.txt and download it: root #wget https://gentoo.osuosl.org/releases/amd64/autobuilds/20250502T162426Z/stage3-amd64-desktop-systemd-20250502T162426Z.tar.xz NoteModify the name of the stage3 file appropriately. TipThe downloaded stage3 file can be verified. Unpack the stage3 tarball: root #tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner Edit make.conf to configure: The compile options to optimize compiled code, including the CPU_FLAGS_X86&#91;10&#93;. The global USE variable to specify system-wide package support. The ACCEPT_LICENSE variable to select the license group automatically accepted. root #vim /mnt/gentoo/etc/portage/make.conf FILE /etc/portage/make.confSetting the CPU_FLAGS_X86, USE and ACCEPT_LICENSE variables for systemwide support ... USE=&quot;...&quot; CPU_FLAGS_X86=&quot;adcx aes avx avx2 bmi bmi2 clflushopt fsgsbase f16c fma fma3 mmx mmxext movbe pclmul popcnt prefetchw rdrnd rdseed sse sse2 sse3 sse4_1 sse4_2 ssse3 xsavec xsaves&quot; ... ACCEPT_LICENSE=&quot;*&quot; ... TipA working make.conf for this system can be found here. Configure the Gentoo ebuild repository: root #mkdir --parents /mnt/gentoo/etc/portage/repos.confroot #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf Copy the DNS info: root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ Mount the necessary filesystems: root #mount --types proc /proc /mnt/gentoo/proc root #mount --rbind /sys /mnt/gentoo/sys root #mount --make-rslave /mnt/gentoo/sys root #mount --rbind /dev /mnt/gentoo/dev root #mount --make-rslave /mnt/gentoo/dev root #mount --bind /run /mnt/gentoo/runroot #mount --make-slave /mnt/gentoo/run Copy the zpool.cache to the installation directory: root #mkdir -p /mnt/gentoo/etc/zfs root #cp /tmp/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache Copy /etc/hostid, genkernel will later complain if it does not exist&#91;11&#93;: root #cp /etc/hostid /mnt/gentoo/etc/hostid Chroot into the new environment: root #chroot /mnt/gentoo /bin/bash root #source /etc/profile root #export PS1="(chroot) ${PS1}" Update the Gentoo ebuild repository: (chroot) root #emerge --sync --quiet (chroot) root #eselect news list (chroot) root #eselect news read (chroot) root #eselect news purge Choose the appropriate portage profile: (chroot) root #eselect profile list (chroot) root #eselect profile set default/linux/amd64/23.0/desktop/gnome/systemd Select fast mirrors available for source code download, by using mirrorselect: (chroot) root #emerge --ask app-portage/mirrorselect (chroot) root #mirrorselect -s4 -b10 -D Emerge Vim to be used as a text editor: (chroot) root #echo "app-editors/vim ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/vim (chroot) root #echo "app-editors/vim-core ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/vim-core (chroot) root #echo "app-editors/gvim ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/gvim (chroot) root #emerge --ask app-editors/vim app-editors/gvim Set the timezone and reconfigure the sys-libs/timezone-data: (chroot) root #ls /usr/share/zoneinfo (chroot) root #echo "Europe/Madrid" &gt; /etc/timezone (chroot) root #emerge --config sys-libs/timezone-data Configure the locales to use, at leaset, one UTF-8 locale: Edit /etc/locale.gen: (chroot) root #vim /etc/locale.gen and uncomment the line referencing en_US.UTF-8 UTF-8: FILE /etc/locale.genAdding an UTF-8 locale ... en_US.UTF-8 UTF-8 ... Generate the locales: (chroot) root #locale-gen (chroot) root #eselect locale list (chroot) root #eselect locale set en_US.utf8 Reload the environment: (chroot) root #env-update &amp;&amp; source /etc/profile &amp;&amp; export PS1="(chroot) ${PS1}" Unmask the latest versions of sys-fs/zfs and sys-fs/zfs-kmod: (chroot) root #echo "sys-fs/zfs ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/zfs (chroot) root #echo "sys-fs/zfs-kmod ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/zfs-kmod NoteZFSOnLinux is under very active development, and the latest versions provide bug fixes and implement new interesting features, e.g zfs-0.8.0 introduced native encryption, support for TRIM in SSDs, etc&#91;12&#93;. ImportantVersions of sys-fs/zfs lower than 0.8.0 depend on sys-kernel/spl. However, as of version 0.8.0, this dependency has been removed.&#91;12&#93;. Unmask the latest versions of sys-boot/grub and add ZFS support: (chroot) root #echo "sys-boot/grub ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/grub (chroot) root #echo "sys-boot/grub libzfs" &gt; /etc/portage/package.use/grub Update the world set: (chroot) root #emerge -auvDN @world Configuring, building and installing the Linux kernel[edit] Unmask a suitable kernel version: (chroot) root #echo "sys-kernel/gentoo-sources ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/gentoo-sources WarningAt the time of writing this, ZFS 2.3.2 is not compatible with kernel versions 6.15.0 and above. Mask the incompatible kernel versions: (chroot) root #echo "&gt;=sys-kernel/gentoo-sources-6.15.0" &gt;&gt; /etc/portage/package.mask/gentoo-sources Emerge sys-kernel/gentoo-sources with the experimental USE flag to expose the AMD Zen 5 processor family type: (chroot) root #echo "sys-kernel/gentoo-sources experimental" &gt;&gt; /etc/portage/package.use/gentoo-sources Install the kernel and genkernel: (chroot) root #emerge -auvDN sys-kernel/gentoo-sources sys-kernel/genkernel Add compression support to sys-apps/kmod in order to be able to load compressed modules: (chroot) root #echo "sys-apps/kmod lzma zlib" &gt;&gt; /etc/portage/package.use/kmod (chroot) root #emerge -auvDN sys-apps/kmod Configure the kernel: (chroot) root #eselect kernel list (chroot) root #eselect kernel set 2 (chroot) root #cd /usr/src/linux (chroot) root #make menuconfig Enable Firmware loading support: KERNEL Enable support for Linux firmware Device Drivers ---&gt; Generic Driver Options ---&gt; Firmware loader ---&gt; -*- Firmware loading facility () Build named firmware blobs into the kernel binary [*] Enable compressed firmware support [*] Enable XZ-compressed firmware support [*] Enable ZSTD-compressed firmware support Gentoo-specific configuration options: KERNEL Gentoo-specific configuration options Gentoo Linux ---&gt; [*] Gentoo Linux support [*] Linux dynamic and persistent device naming (userspace devfs) support [*] Select options required by Portage features Support for init systems, system and service managers ---&gt; [ ] OpenRC, runit and other script based systems and managers [*] systemd Architecture specific kernel configuration: KERNEL Selecting processor types and features Processor type and features ---&gt; [*] Support x2apic [*] AMD ACPI2Platform devices support [*] Supported processor vendors ---&gt; [*] Support AMD processors [*] Machine Check / overheating reporting [*] AMD MCE features Processor family (Core 2/newer Xeon) ---&gt; (X) AMD Zen 5 Performance monitoring ---&gt; &lt;*&gt; Intel/AMD rapl performance events &lt;*&gt; AMD Processor Power Reporting Mechanism &lt;*&gt; AMD Uncore performance events [ ] AMD Zen3 Branch Sampling support Power management and ACPI options ---&gt; CPU Frequency scaling ---&gt; Default CPUFreq governor (schedutil) ---&gt; -*- AMD Processor P-State driver &lt;*&gt; ACPI Processor P-States driver [*] Legacy cpb sysfs knob support for AMD CPUs &lt; &gt; AMD Opteron/Athlon64 PowerNow! &lt;*&gt; AMD frequency sensitivity feedback powersave bias Device Drivers ---&gt; Generic Driver Options ---&gt; Firmware loader ---&gt; [*] Firmware loading facility (amd-ucode/microcode_amd_fam19h.bin) External firmware blobs to build into the kernel binary (/lib/firmware) Firware blobs root directory [*] Hardware Monitoring support ---&gt; &lt;*&gt; AMD Family 10h+ temperature sensor [*] IOMMU Hardware Support ---&gt; [*] AMD IOMMU support Binary Emulations ---&gt; [*] IA32 Emulation Enable Hyper-Threading support: KERNEL Configuration for multi-processing support Processor type and features ---&gt; [*] Symmetric multi-processing support [*] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support KERNEL Power management for multi-processor systems Power management and ACPI options ---&gt; [*] ACPI (Advanced Configuration and Power Interface) Support Various chipset drivers: KERNEL Additional chipset drivers Device Drivers ---&gt; I2C support ---&gt; I2C Hardware Bus Support ---&gt; &lt;*&gt; Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC) [*] Pin Controllers ---&gt; [*] AMD GPIO pin control [*] GPIO Support ---&gt; Memory mapped GPIO drivers ---&gt; &lt;*&gt; AMD Promontory GPIO support [*] X86 Platform Specific Device Drivers ---&gt; &lt;*&gt; AMD SoC PMC driver &lt;*&gt; AMD 3D V-Cache Performance Optimizer Driver [*] AMD Wifi RF Band mitigations (WBRF) [*] Cryptographic API ---&gt; [*] Hardware crypto devices ---&gt; [*] Support for AMD Secure Processor [*] Cryptographic Coprocessor device &lt;*&gt; Encryption and hashing offload support &lt;*&gt; Secure Processor device driver &lt;*&gt; Platform Security Processor (PSP) device Enable SATA support, needed if using a SATA hard drive; SCSI, needed for SATA devices, USB external hard drives and optical drives, etc.: KERNEL Configuration options for SCSI support Device Drivers ---&gt; SCSI device support ---&gt; -*- SCSI device support &lt;*&gt; SCSI disk support &lt;*&gt; SCSI CDROM support &lt;*&gt; SCSI generic support [ ] SCSI low-level drivers ---&gt; &lt;*&gt; Serial ATA and Parallel ATA drivers (libata) ---&gt; [*] ATA ACPI Support [*] SATA Port Multiplier support &lt;*&gt; AHCI SATA support (ahci) [*] ATA BMDMA support [*] ATA SFF support (for legacy IDE and PATA) &lt; &gt; Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix) &lt; &gt; AMD/NVidia PATA support Enable NVMe device support: KERNEL Configuration for NVMe support Device Drivers ---&gt; NVME Support ---&gt; &lt;*&gt; NVM Express block device [*] NVMe multipath support [*] NVMe hardware monitoring &lt;M&gt; NVM Express over Fabrics FC host driver &lt;M&gt; NVM Express over Fabrics TCP host driver Enable compressed kernel modules: WarningI have not been able to boot from a ZFS system with compressed modules enabled, although it should be entirely possible. Use at your own risk. KERNEL Enable module compression [*] Enable loadable module support ---&gt; [*] Compress modules on installation Compression algorithm (XZ) ---&gt; ( ) GZIP (X) XZ Enable devtmpfs support: KERNEL Enabling devtmpfs support Device Drivers ---&gt; Generic Driver Options ---&gt; [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs Enable support for the filesystems used: KERNEL Selecting necessary file systems File systems ---&gt; &lt; &gt; Second extended fs support &lt; &gt; The Extended 3 (ext3) filesystem &lt;*&gt; The Extended 4 (ext4) filesystem [*] Use ext4 for ext2 file systems &lt; &gt; Reiserfs support &lt; &gt; JFS filesystem support &lt; &gt; XFS filesystem support &lt; &gt; GFS2 file system support &lt; &gt; Btrfs filesystem support &lt; &gt; NILFS2 file system support &lt; &gt; F2FS file system support DOS/FAT/NT Filesystems ---&gt; &lt;*&gt; MSDOS fs support &lt;*&gt; VFAT (Windows-95) fs support &lt;*&gt; exFAT filesystem support &lt;*&gt; NTFS Read-Write file system support [*] activate support of external compressions lzx/xpress Pseudo Filesystems ---&gt; -*- /proc file system support -*- Tmpfs virtual memory file system support (former shm fs) Enable support for FUSE: KERNEL Enable support for FUSE File systems ---&gt; &lt;*&gt; FUSE (Filesystem in Userspace) support Enable GPT support: KERNEL Enable support for GPT -*- Enable the block layer ---&gt; Partition Types ---&gt; [*] Advanced partition selection [*] EFI GUID Partition support Enable UEFI support: KERNEL Enable support for UEFI Processor type and features ---&gt; [*] EFI runtime service support [*] EFI stub support [*] EFI mixed-mode support Firmware Drivers ---&gt; EFI (Extensible Firmware Interface) Support ---&gt; &lt;*&gt; EFI Variable Support via sysfs Configure USB support: KERNEL Configuration for USB Host Controller Devices Device Drivers ---&gt; SCSI device support ---&gt; *** SCSI support type (disk, tape, CD-ROM) *** &lt;*&gt; SCSI disk support &lt; &gt; SCSI tape support &lt;*&gt; SCSI CDROM support &lt;*&gt; SCSI generic support [*] USB support ---&gt; -*- Support for Host-side USB *** USB Host Controller Drivers *** &lt;*&gt; xHCI HCD (USB 3.0) support &lt;*&gt; EHCI HCD (USB 2.0) support &lt;*&gt; OHCI HCD (USB 1.1) support &lt; &gt; UHCI HCD (most Intel and VIA) support &lt;*&gt; USB Mass Storage support &lt;*&gt; Unified support for USB4 and Thunderbolt ---&gt; Configure USB support for input devices: KERNEL Configuration for USB input devices Device Drivers ---&gt; HID support ---&gt; -*- HID bus support [*] Battery level reporting for HID devices &lt;*&gt; Generic HID driver USB HID support ---&gt; &lt;*&gt; USB HID transport layer Enable USB Type-C and Thunderbolt support: KERNEL PCI Hotplugging Device Drivers ---&gt; [*] PCI support ---&gt; --- PCI support [*] PCI Express Port Bus support [*] PCI Express Hotplug driver [*] Support for PCI Hotplug ---&gt; [*] ACPI PCI Hotplug driver Enable USB audio: KERNEL Enable support for SND_USB_AUDIO Device Drivers --&gt; &lt;*&gt; Sound card support --&gt; --- Sound card support &lt;*&gt; Advanced Linux Sound Architecture ---&gt; [*] USB sound devices ---&gt; &lt;*&gt; USB Audio/MIDI driver Enable systemd support: KERNEL Enable support for Linux firmware General setup ---&gt; -*- Control Group support ---&gt; --- Control Group support -*- Support for eBPF programs attached to cgroups -*- Namespaces support ---&gt; --- Namespaces support -*- Network namespace [*] Checkpoint/restore support [ ] Enable deprecated sysfs features to support old userspace tools [*] Configure standard kernel features (expert users) ---&gt; --- Configure standard kernel features (expert users) -*- open by fhandle syscalls -*- Enable eventpoll support -*- Enable signalfd() system call -*- Enable timerfd() system call BPF subsystem ---&gt; -*- Enable bpf() system call Processor type and features ---&gt; [*] EFI runtime service support General architecture-dependent options ---&gt; -*- Enable seccomp to safely compute untrusted bytecode Device Drivers ---&gt; Firmware Drivers ---&gt; -*- Export DMI identification via sysfs to userspace Generic Driver Options ---&gt; [*] Support for uevent helper () path to uevent helper -*- Maintain a devtmpfs filesystem to mount at /dev Firmware loader ---&gt; -*- Enable the firmware sysfs fallback mechanism -*- Enable the block layer ---&gt; --- Enable the block layer -*- Block layer SG support v4 helper lib Partition Types ---&gt; [*] Advanced partition selection [*] EFI GUID Partition support IO Schedulers ---&gt; &lt;*&gt; BFQ I/O scheduler [*] BFQ hierarchical scheduling support (NEW) -*- Networking support ---&gt; --- Networking support Networking options ---&gt; -*- The IPv6 protocol ---&gt; [*] Unix domain sockets File systems ---&gt; -*- Inotify support for userspace -*- Kernel automounter support (supports v3, v4 and v5) Pseudo filesystems ---&gt; -*- /proc file system support -*- sysfs file system support -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes Gentoo Linux ---&gt; Support for init systems, system and service managers ---&gt; [ ] OpenRC, runit and other script based systems and managers [*] systemd Configure the Intel graphics: KERNEL Configuration for Intel graphics &#39;&quot;`UNIQ--pre-000001E8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001E9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001ED-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EE-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F1-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F6-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F7-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FD-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FE-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000200-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000201-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000202-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000203-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000204-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000205-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000206-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000207-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000208-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000209-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000210-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000211-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000212-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000213-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000214-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000215-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000216-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000217-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000218-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000219-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000220-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000221-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000222-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000223-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000224-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000225-QINU`&quot;&#39; Configure the Xorg support: KERNEL Enabling evdev in the kernel Device Drivers ---&gt; Input device support ---&gt; &lt;*&gt; Event interface KERNEL Disable legacy framebuffer support and enable basic console FB support Device Drivers ---&gt; Graphics support ---&gt; Frame Buffer Devices ---&gt; -*- Support for frame buffer devices ---&gt; --- Support for frame buffer devices *** Frame buffer hardware drivers *** ## (Disable all other drivers, including VGA, Intel, NVIDIA, and ATI) [*] Simple framebuffer support Console display driver support ---&gt; [*] Framebuffer Console Support Configure the Wifi support: KERNEL Enabling IEEE 802.11 support &#39;&quot;`UNIQ--pre-0000022C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000022D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000022E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000022F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000230-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000231-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000232-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000233-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000234-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000235-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000236-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000237-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000238-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000239-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000240-QINU`&quot;&#39; KERNEL Configure the iwlwifi module &#39;&quot;`UNIQ--pre-00000243-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000244-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000245-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000246-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000247-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000248-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000249-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000250-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000251-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000252-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000253-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000254-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000255-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000256-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000257-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000258-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000259-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000260-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000261-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000262-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000263-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000264-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000265-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000266-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000267-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000268-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000269-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026D-QINU`&quot;&#39; Enable NetworkManager support: KERNEL Enabling NetworkManager support -*- Networking support ---&gt; --- Networking support Networking options ---&gt; &lt;*&gt; Packet socket -*- Wireless ---&gt; --- Wireless &lt;*&gt; cfg80211 - wireless configuration API [*] cfg80211 wireless extensions compatibility Enable hardware clock support: KERNEL Necessary kernel options for a hardware clock Device Drivers ---&gt; [*] Real Time Clock ---&gt; --- Real Time Clock *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** &lt;*&gt; PC-style &#39;CMOS&#39; KERNEL Letting the kernel sync the system clock Device Drivers ---&gt; [*] Real Time Clock ---&gt; --- Real Time Clock [*] Set system time from RTC on startup and resume (rtc0) RTC used to set the system time [*] Set the RTC time based on NTP synchronization (rtc0) RTC used to synchronize NTP adjustment *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** &lt;*&gt; PC-style &#39;CMOS&#39; Enable CPU microcode for the Intel CPU loading support: KERNEL Configuring the kernel to support Intel microcode loading &#39;&quot;`UNIQ--pre-00000276-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000277-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-00000278-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000279-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000027A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000027B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000027C-QINU`&quot;&#39; Enable NTFS read and write support: KERNEL Enable built-in NTFS filesystem reading support &#39;&quot;`UNIQ--pre-0000027F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000280-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000281-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000282-QINU`&quot;&#39; KERNEL Enabling NTFS over FUSE using NTFS-3G &#39;&quot;`UNIQ--pre-00000285-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000286-QINU`&quot;&#39; Enable tmpfs support: KERNEL Enable tmpfs support File systems ---&gt; Pseudo filesystems ---&gt; -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes Enable ALSA and PulseAudio sound support: KERNEL Enable ALSA support &#39;&quot;`UNIQ--pre-0000028B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000028C-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-0000028D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000028E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000028F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000290-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000291-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000292-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000293-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000294-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000295-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000296-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000297-QINU`&quot;&#39; KERNEL Enable PulseAudio support &#39;&quot;`UNIQ--pre-0000029A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029C-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-0000029D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A1-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-000002A2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A5-QINU`&quot;&#39; Enable QEMU and KVM support: KERNEL Enabling QEMU and KVM support &#39;&quot;`UNIQ--pre-000002A8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AD-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AE-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B1-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B6-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B7-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BD-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BE-QINU`&quot;&#39; Prepare the kernel for module compilation: (chroot) root #make modules_prepare Compile the kernel: (chroot) root #make -j32 Install the kernel modules: (chroot) root #make modules_install Modify installkernel to boot from grub: (chroot) root #echo "sys-kernel/installkernel grub -systemd" &gt;&gt; /etc/portage/package.use/installkernel (chroot) root #emerge --ask installkernel Install the kernel: (chroot) root #make install Install sys-fs/zfs and sys-fs/zfs-kmod: (chroot) root #emerge --ask sys-fs/zfs Rebuild the installed modules: (chroot) root #emerge --ask @module-rebuild Use genkernel to generate an initramfs: (chroot) root #genkernel initramfs --firmware --kernel-config=/usr/src/linux/.config --keymap --makeopts=-j32 --mountboot --no-clean --zfs NoteNotice that native ZFS encryption is used for this system, rather than LUKS, and thus the lack of the --luks option in the genkernel invacation. Install Firmware[edit] Edit /usr/src/linux/.config, as explained above, to enable firmware loading support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Install the firmware: (chroot) root #emerge -auvDN sys-kernel/linux-firmware Add support for individual selection of firmware files to sys-kernel/linux-firmware: (chroot) root #echo "sys-kernel/linux-firmware savedconfig" &gt;&gt; /etc/portage/package.use/linux-firmware Comment everything in /etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy except the actual firmware files needed by the system: (chroot) root #vim /etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy NoteCurrently loaded firmware can be assessed by user $dmesg | grep -i firmware TipA working linux-firmware-ddmmyyyy for this system can be found here. Re-emerge sys-kernel/linux-firmware: (chroot) root #emerge --ask sys-kernel/linux-firmware Configure fstab[edit] With the use of ZFS, modifying the fstab file is not strictly needed. However, by editing /etc/fstab, an easy way to mount /boot and /boot/efi will be provided (note the noauto option. Edit /etc/fstab: (chroot) root #vim /etc/fstab FILE /etc/fstabMounting rules for /boot and /boot/efi ... /dev/nvme0n1p1 /boot/efi vfat noauto,noatime 1 2 bpool/BOOT/gentoo /boot zfs noauto,nodev,relatime 1 2 ... TipA working fstab for this system can be found here. Configure the Network[edit] Set the computer's name: (chroot) root #echo 'hostname="foo"' &gt; /etc/conf.d/hostname Install a DHCP client: (chroot) root #emerge --ask net-misc/dhcpcd Install wireless networking tools: (chroot) root #emerge --ask net-wireless/iw net-wireless/wpa_supplicant Install systemd[edit] Edit /usr/src/linux/.config, as explained above, to enable systemd support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Edit make.conf to enable systemd support: (chroot) root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the USE variable for systemd support ... USE=&quot;...systemd...&quot; ... TipA working make.conf for this system can be found here. Update the system with systemd support: (chroot) root #emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild Create /etc/mtab as a symlink to /proc/self/mounts: (chroot) root #ln -sf /proc/self/mounts /etc/mtab Create a machine ID: (chroot) root #systemd-machine-id-setup Create a hostname: (chroot) root #hostnamectl set-hostname foo Enable the services needed to mount ZFS filesystems automatically: (chroot) root #systemctl enable zfs.target (chroot) root #systemctl enable zfs-import-cache (chroot) root #systemctl enable zfs-mount (chroot) root #systemctl enable zfs-import.target (chroot) root #systemctl enable zfs-import-scan Create a service to import /boot automatically and enable it: (chroot) root #vim /etc/systemd/system/zfs-import-bpool.service FILE /etc/systemd/system/zfs-import-bpool.serviceSystemd service to automatically import /boot [Unit] DefaultDependencies=no Before=zfs-import-scan.service Before=zfs-import-cache.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/sbin/zpool import -N -o cachefile=none bpool [Install] WantedBy=zfs-import.target TipA working zfs-import-bpool.service for this system can be found here. (chroot) root #systemctl enable zfs-import-bpool.service Create a service to mount /home automatically and enable it: (chroot) root #vim /etc/systemd/system/zfskey-home.service FILE /etc/systemd/system/zfskey-home.serviceSystemd service to automatically import /home [Unit] Description=Load rpool/ROOT/home encryption keys Before=systemd-user-sessions.service Before=zfs-mount.service After=zfs-import.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/bash -c &#39;systemd-ask-password &quot;Encrypted ZFS password for rpool/ROOT/home&quot; --no-tty TipA working zfskey-home.service for this system can be found here. (chroot) root #systemctl enable zfskey-home.service Install GRUB[edit] This guide uses GRUB as a boot loader. Edit make.conf to install GRUB2 for the efi-64 platform: (chroot) root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the GRUB_PLATFORMS variable for EFI-64 platform ... GRUB_PLATFORMS=&quot;efi-64&quot; ... TipA working make.conf for this system can be found here. Mount the EFI System Partition partition: (chroot) root #mkdir /boot/efi (chroot) root #mount /boot/efi Emerge sys-boot/grub and sys-boot/os-prober to allow GRUB2 to detect Windows 10: (chroot) root #emerge -auvDN sys-boot/grub sys-boot/os-prober Get GRUB to probe the /boot partition: (chroot) root #grub-probe /bootzfs WarningThe above command must return ZFS, if not, something is wrong and the system will not boot. Add parameters to the kernel command line in order to boot from a ZFS partition: (chroot) root #vim /etc/default/grub FILE /etc/default/grubSetting the GRUB_CMDLINE_LINUX variable to boot from ZFS ... GRUB_CMDLINE_LINUX=&quot;dozfs real_root=ZFS=rpool/ROOT/gentoo&quot; ... TipA working /etc/default/grub for this system can be found here. Create the /boot/grub directory: (chroot) root #mkdir /boot/grub Generate the GRUB configuration file: (chroot) root #grub-mkconfig -o /boot/grub/grub.cfg Check that the configuration file includes instructions to load the ZFS module: (chroot) root #grep 'insmod zfs' /boot/grub/grub.cfg insmod zfs Install the bootloader: (chroot) root #grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Gentoo --recheck --no-floppy Check if the ZFS module for GRUB has been installed: (chroot) root #ls /boot/grub/*/zfs.mod /boot/grub/x86_64-efi/zfs.mod Unmount the boot partitions: (chroot) root #umount /boot/efi (chroot) root #umount /boot Allow bpool/BOOT/gentoo to be managed by legacy tools, such as GRUB and the /etc/fstab: (chroot) root #zfs set mountpoint=legacy bpool/BOOT/gentoo User Accounts[edit] Secure the root account with a strong password: (chroot) root #passwd Create a regular user: (chroot) root #useradd -m -G audio,cdrom,portage,usb,users,video,wheel -s /bin/bash foo (chroot) root #passwd foo First ZFS snapshot[edit] Create a first ZFS snapshot. If anythong goes wrong afterwards, it will serve as a backup of a the freshly installed system. Create a snapshot of the boot filesystem: root #zfs snapshot bpool/BOOT/gentoo@install Create a snapshot of the root filesystem: root #zfs snapshot rpool/ROOT/gentoo@install Create a snapshot of the home filesystem: root #zfs snapshot rpool/ROOT/home@install TipThe following commands can be used to manage snapshots: Create: root #zfs snapshot bpool/BOOT/gentoo@install List: root #zfs list -t all Rollback: root #zfs rollback bpool/BOOT/gentoo@install Clone: root #zfs clone bpool/BOOT/gentoo@install bpool/BOOT/gentoo@install_backup Rename: root #zfs rename bpool/BOOT/gentoo@install_backup bpool/BOOT/gentoo@original_install Destroy: root #zfs destroy bpool/BOOT/gentoo@install Rebooting[edit] Exit the chroot environment: (chroot) root #exit Unmount all mounted partitions: root #cd root #umount -l /mnt/gentoo/{dev,sys,proc,run} root #umount -R /mnt/gentoo/home root #umount -R /mnt/gentoo Change the mountpoint of the ZFS filesystems: root #zfs set mountpoint=/ rpool/ROOT/gentoo root #zfs set mountpoint=/home rpool/ROOT/home Reboot into the Gentoo environment: root #reboot Remove the downloaded stage3 files: root #rm /stage3-amd64-systemd-20191223.tar.bz2 If systemd gives errors regarding the locales, run: root #localectl set-locale LANG=en_US.UTF-8 FUSE[edit] Edit /usr/src/linux/.config, as explained above, to enable FUSE support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Install the userspace FUSE tools: root #emerge --ask sys-fs/fuse Sudo[edit] Enable the offensive USE flag to get funny replies when typing in wrong passwords: root #echo “app-admin/sudo offensive” &gt;&gt; /etc/portage/package.use/sudo Install sudo: root #emerge -auvDN app-admin/sudo Grant administrator privileges to all the users of the wheel group by editing the /etc/sudoers file: root #visudo FILE /etc/sudoersModify administrator privileges &#39;&quot;`UNIQ--pre-000002DF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E1-QINU`&quot;&#39; Enable bash completion with sudo: root #echo "complete -cf sudo" &gt;&gt; $HOME/.bashrc Allow X applications to be run with sudo: user $xhost local:root AMD Graphics[edit] Note: https://wiki.gentoo.org/wiki/AMDGPU https://linux-hardware.org/?id=pci%3A1002-13c0-1043-8877 https://wiki.gentoo.org/wiki/Radeon https://wiki.archlinux.org/title/AMDGPU Configure the drivers for the Intel Graphics Chip. Edit /usr/src/linux/.config, as explained above, to enable the Intel graphics support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Edit make.conf to globally enable Intel graphics support: root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the VIDEO_CARDS variable for Intel support &#39;&quot;`UNIQ--pre-000002E4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E6-QINU`&quot;&#39; TipA working make.conf for this system can be found here. Update the system to reinstall packages with Intel graphics support: root #emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild If needed, force Xorg to load the modesetting driver: root #vim /etc/X11/xorg.conf.d/20-modesetting.conf FILE /etc/X11/xorg.conf.d/20-modesetting.confForce modesetting DDX &#39;&quot;`UNIQ--pre-000002E9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002ED-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EE-QINU`&quot;&#39; Install the Intel userland GPU tools: root #echo "x11-apps/igt-gpu-tools ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/igt-gpu-tools Xorg[edit] Configure the Xorg X server. Edit /usr/src/linux/.config, as explained above, to enable Xorg support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Edit make.conf to enable Xorg support and set the drivers for input devices: root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the USE variable for X support and configure INPUT_DEVICES &#39;&quot;`UNIQ--pre-000002F2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F6-QINU`&quot;&#39; TipA working make.conf for this system can be found here. Install Xorg: root #emerge -auvDN x11-base/xorg-server Update the environment settings and source the profile: root #env-update &amp;&amp; source /etc/profile Install packages to test if the X server is working: root #emerge --ask x11-wm/twm x11-terms/xterm Install package to test if the 3D acceleration is working: root #emerge --ask x11-apps/mesa-progs Test if the X server is working: user $startx Test if the 3D acceleration is working: user $glxinfo | grep renderingdirect rendering: Yes user $glxgears Exit the X environment: user $exit Remove the packages installed for testing: root #emerge -Cav x11-wm/twm x11-terms/xterm x11-apps/mesa-progs Update the system to reinstall packages with X support: root #emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild Wifi[edit] Configure the Wifi adapter. Identify the Wifi adapter: root #dmesg | grep -i -E '3b:00.0|wlan|iwl|80211'Detected Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW), REV=0x340 According to this table&#91;13&#93;: The module required to control this adapter is iwlmvm. The lowest Linux kernel compatible is 5.1+ (current stable kernels, 4.19.*, are not compatible). Edit /usr/src/linux/.config, as explained above, to enable Wifi support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. NetworkManager[edit] Configure NetworkManager support. Edit /usr/src/linux/.config, as explained above, to enable NetworkManager support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Edit make.conf to enable NetworkManager support: root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the USE variable for NetworkManager support &#39;&quot;`UNIQ--pre-00000303-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000304-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000305-QINU`&quot;&#39; TipA working make.conf for this system can be found here. Update the system to reinstall packages with NetworkManager support: root #emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild Enable NetworkManager to be started at boot time: root #systemctl enable NetworkManager GNOME Light[edit] Install the GNOME desktop environment. Edit make.conf to enable GNOME support: root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the USE variable for GNOME support &#39;&quot;`UNIQ--pre-00000308-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000309-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000030A-QINU`&quot;&#39; TipA working make.conf for this system can be found here. Emerge GNOME Light: root #emerge -auvDN gnome-base/gnome-light Update the environment variables and reload the environment root #env-update &amp;&amp; source /etc/profile Verify that the plugdev group exists and add each GNOME user to it: root #getent group plugdevplugdev:x:272: root #gpasswd -a foo plugdev root #gpasswd -a root plugdev Enable GDM on boot: root #systemctl enable gdm.service Install GNOME tweaks and shell extensions for GNOME 3 customization: root #emerge -auvDN gnome-extra/gnome-tweaks gnome-extra/gnome-shell-extensions Provide admin privileges in system dialogs to the users in the wheel group: root #vim /etc/polkit-1/rules.d/49-wheel.rules FILE /etc/polkit-1/rules.d/49-wheel.rulesAdministrator wheel group &#39;&quot;`UNIQ--pre-00000311-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000312-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000313-QINU`&quot;&#39; Allow the root user to launch X window applications: user $vim ~/.bashrc FILE /home/foo/.bashrcX windows as root &#39;&quot;`UNIQ--pre-00000316-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000317-QINU`&quot;&#39; Enable tap to click in GDM: user $xhost +SI:localuser:gdmuser $sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true GNOME[edit] From the GNOME packages not installed by GNOME Light, install those that are really needed. Install gnome-extra/gnome-system-monitor: root #emerge -auvDN gnome-extra/gnome-system-monitor Install sys-block/gparted: root #echo "sys-block/gparted ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/gparted root #emerge -auvDN sys-block/gparted Chromium[edit] Install the Chromium web browser. Unmask the latest Chromium ebuild: root #echo “www-client/chromium ~amd64” &gt;&gt; /etc/portage/package.accept_keywords/chromium Emerge Chromium: root #emerge -auvDN www-client/chromium Open Chromium in incognito mode by default: root #cp /usr/share/applications/chromium-browser-chromium.desktop ~/.local/share/applications/root #vim ~/.local/share/applications/chromium-browser-chromium.desktop FILE /home/foo/.local/share/applications/chromium-browser-chromium.desktopLauncher for Chromium in incognito mode &#39;&quot;`UNIQ--pre-00000321-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000322-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000323-QINU`&quot;&#39; Enable click-to-install GNOME Shell Extensions through Chromium: Install the required browser add-on through the Chrome store. Emerge the backend: root #emerge -auvDN gnome-extra/chrome-gnome-shell Firefox[edit] Install the Firefox web browser. Unmask the latest Firefox ebuild: root #echo “www-client/firefox ~amd64” &gt;&gt; /etc/portage/package.accept_keywords/firefox Emerge Firefox: root #emerge -auvDN www-client/firefox Open Firefox in incognito mode by default: root #cp /usr/share/applications/firefox.desktop ~/.local/share/applications/root #vim ~/.local/share/applications/firefox.desktop FILE /home/foo/.local/share/applications/firefox.desktopLauncher for Firefox in incognito mode &#39;&quot;`UNIQ--pre-00000329-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000032A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000032B-QINU`&quot;&#39; Enable click-to-install GNOME Shell Extensions through Firefox: Install the required browser add-on through Add-ons for Firefox. Emerge the backend: root #emerge -auvDN gnome-extra/chrome-gnome-shell Hardware Clock[edit] Configure Hardware Clock support. Edit /usr/src/linux/.config, as explained above, to enable Hardware Clock support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Check that the Hardware Clock is in use: user $timedatectl | grep "RTC time" Configure GNOME automatically update the Hardware Clock from online servers: gnome-control-center &gt; Details &gt; Date &amp; Time &gt; Automatic Date &amp; Time (set on). Localization[edit] Change some language specific settings. Modify the keyboard layout for the console: root #localectl list-keymaps root #localectl set-keymap es root #localectl | grep "VC Keymap" VC Keymap: es Modify the keyboard layout for the X server: root #localectl list-x11-keymap-layouts root #localectl set-x11-keymap es root #localectl | grep "X11 Layout" X11 Layout: es Edit make.conf to enable systemwide localization: root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the LINGUAS and L11N variables for systemwide localization &#39;&quot;`UNIQ--pre-00000331-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000332-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000333-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000334-QINU`&quot;&#39; TipA working make.conf for this system can be found here. Update the system with with systemwide localization: root #emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild Loading of CPU microcode[edit] CPU microcode for the Intel CPU will be loaded by GRUB at boot time. Edit /usr/src/linux/.config, as explained above, to enable CPU microcode loading support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Install the microcode firmware package and the manipulation tool: root #echo "sys-firmware/intel-microcode hostonly" &gt;&gt; /etc/portage/package.use/intel-microcode root #emerge -auvDN sys-firmware/intel-microcode sys-apps/iucode_tool Mount the /boot and /boot/efi partitions: root #mount /boot root #mount /boot/efi Manually generate the microcode cpio archive: root #iucode_tool -S --write-earlyfw=/boot/early_ucode.cpio /lib/firmware/intel-ucode/*iucode_tool: system has processor(s) with signature 0x000906ediucode_tool: Writing selected microcodes to: /boot/early_ucode.cpio NoteGRUB2 will automatically try to load any file named /boot/early_ucode.cpio. Regenerate the GRUB configuration file: root #grub-mkconfig -o /boot/grub/grub.cfg After reboot, check that the microcode has been loaded: root #dmesg | grep microcode [ 0.000000] microcode: microcode updated early to revision 0xca, date = 2019-10-03[ 2.623235] microcode: sig=0x906ed, pf=0x20, revision=0xca[ 2.623592] microcode: Microcode Update Driver: v2.2. root #grep microcode /proc/cpuinfo microcode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xcamicrocode : 0xca USB support[edit] Configure support for USB devices. Edit /usr/src/linux/.config, as explained above, to enable USB support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Install the usbutils to be able to query the USB interfaces: root #emerge -auvDN sys-apps/usbutils NTFS support[edit] Configure NTFS read and write support. Edit /usr/src/linux/.config, as explained above, to enable in-kernel NTFS read and FUSE write support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Enable USE flags as needed: root #echo "sys-fs/ntfs3g ntfsdecrypt suid" &gt;&gt; /etc/portage/package.use/ntfs3g Emerge sys-fs/ntfs3g: root #emerge -auvDN sys-fs/ntfs3g tmpfs support[edit] Configure tmpfs support. Edit /usr/src/linux/.config, as explained above, to enable tmpfs support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Systemd will automatically mount /tmp as tmpfs. Place portage's tmpdir inside /tmp: root #vim /mnt/gentoo/etc/portage/make.conf FILE /etc/portage/make.confSetting the PORTAGE_TMPDIR variable for tmpfs use &#39;&quot;`UNIQ--pre-00000353-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000354-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000355-QINU`&quot;&#39; TipA working make.conf for this system can be found here. Mount as tmpfs any other appropriate directory, by using /etc/fstab: root #vim /etc/fstab FILE /etc/fstabMounting rules for tmpfs directories &#39;&quot;`UNIQ--pre-00000358-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000359-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000035A-QINU`&quot;&#39; TipA working fstab for this system can be found here. ALSA and PulseAudio support[edit] Configure ALSA and PulseAudio support. Edit /usr/src/linux/.config, as explained above, to enable ALSA and PulseAudio support. TipWorking kernel configuration files, for different kernel versions, can be found here. Update the Kernel, as explained below. Edit make.conf to enable ALSA and PulseAudio support: root #vim /etc/portage/make.conf FILE /etc/portage/make.confSetting the USE variable for ALSA and PulseAudio support &#39;&quot;`UNIQ--pre-0000035D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000035E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000035F-QINU`&quot;&#39; TipA working make.conf for this system can be found here. Update the system to reinstall packages with ALSA and PulseAudio support: root #emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild Emerge media-sound/alsa-utils: root #emerge -auvDN media-sound/alsa-utils Add ffmpeg support to media-plugins/alsa-plugins and emerge it: root #echo "media-plugins/alsa-plugins ffmpeg" &gt;&gt; /etc/portage/package.use/alsa-pluginsroot #emerge -auvDN media-plugins/alsa-plugins External Monitors[edit] in GNOME Wayland, when using an external non-HiDPI monitor, it will be scaled, by default, as the laptop's screen, and this will make either the windows too big in the external monitor, or too small in the laptop's screen. In order to allow a different scaling in each screen: Open GNOME's dconf-editor. Go to /org/gnome/mutter/experimental-features. Disable "Use default value". write custom value: ['scale-monitor-framebuffer', 'x11-randr-fractional-scaling']. QEMU/KVM[edit] QEMU and KVM. Edit .conf. Edit USE root #emerge -auvDN app-emulation/qemu root #gpasswd -a foo kvm root #emerge -auvDN gnome-extra/gnome-boxes Apply patch or it will not compile. ZFS automatic snapshots[edit] sys-fs/zfs-auto-snapshot provides scripts used to rotate periodic snapshots through cron jobs. Install sys-process/cronie and sys-fs/zfs-auto-snapshot: root #emerge -auvDN sys-process/cronie sys-fs/zfs-auto-snapshot &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild Disable the default cron job that would create a frequent snapshot each 15 minutes: root #rm /etc/cron.d/zfs-auto-snapshot Enable and start the cronie systemd service: root #systemctl enable cronie.service root #systemctl start cronie.service root #systemctl status cronie.service Set the com.sun:auto-snapshot property to true for each zpool of interest: root #zfs set com.sun:auto-snapshot=true bpool/BOOT/gentoo root #zfs set com.sun:auto-snapshot=true rpool/ROOT/gentoo root #zfs set com.sun:auto-snapshot=true rpool/ROOT/home Enable the desired periodic auto-snaphot jobs on each pool: root #zfs set com.sun:auto-snapshot:hourly=true bpool/BOOT/gentoo root #zfs set com.sun:auto-snapshot:daily=true bpool/BOOT/gentoo root #zfs set com.sun:auto-snapshot:weekly=true bpool/BOOT/gentoo root #zfs set com.sun:auto-snapshot:monthly=true bpool/BOOT/gentoo root #zfs set com.sun:auto-snapshot:hourly=true rpool/ROOT/gentoo root #zfs set com.sun:auto-snapshot:daily=true rpool/ROOT/gentoo root #zfs set com.sun:auto-snapshot:weekly=true rpool/ROOT/gentoo root #zfs set com.sun:auto-snapshot:monthly=true rpool/ROOT/gentoo root #zfs set com.sun:auto-snapshot:hourly=true rpool/ROOT/home root #zfs set com.sun:auto-snapshot:daily=true rpool/ROOT/home root #zfs set com.sun:auto-snapshot:weekly=true rpool/ROOT/home root #zfs set com.sun:auto-snapshot:monthly=true rpool/ROOT/home Modify the cron jobs as needed: root #vim /etc/cron.hourly/zfs-auto-snapshot root #vim /etc/cron.daily/zfs-auto-snapshot root #vim /etc/cron.weekly/zfs-auto-snapshot root #vim /etc/cron.monthly/zfs-auto-snapshot To Do...[edit] Check the firmware used by rtl8153 Linux_firmware https://wiki.archlinux.org/index.php/Intel_graphics#Enable_GuC_/_HuC_firmware_loading https://gist.github.com/Brainiarc7/aa43570f512906e882ad6cdd835efe57 Update the Linux kernel[edit] root #mount /boot root #mount /boot/efi root #emerge --sync root #emerge -auvDN sys-kernel/gentoo-sources root #emerge --depclean root #emerge @preserved-rebuild root #revdep-rebuild root #eselect kernel list root #eselect kernel set 2 root #cd /usr/src/linux root #cp /usr/src/linux-`uname -r`/.config /usr/src/linux/ root #make syncconfig root #make modules_prepare root #make -j16 root #make modules_install root #make install root #emerge --ask @module-rebuild root #genkernel initramfs --firmware --kernel-config=/usr/src/linux/.config --keymap --makeopts=-j16 --mountboot --no-clean --zfs root #grub-mkconfig -o /boot/grub/grub.cfg root #eclean-kernel -pn 2root #eclean-kernel -n 2 Removal of old kernels[edit] root #mount /boot root #mount /boot/efi root #emerge -Cav =sys-kernel/gentoo-sources-X.Y.Z root #emerge --depclean root #emerge @preserved-rebuild root #revdep-rebuild root #rm -r /usr/src/linux-X.Y.Z root #rm -r /lib/modules/X.Y.Z root #rm /boot/config-X.Y.Z-gentoo root #rm /boot/initramfs-X.Y.Z-gentoo.img root #rm /boot/System.map-X.Y.Z-gentoo root #rm /boot/vmlinuz-X.Y.Z-gentoo root #grub-mkconfig -o /boot/grub/grub.cfg Troubleshooting[edit] Gparted reporting the whole disk as a single Zpool[edit] At the time of writing this, GParted reports the whole disk as a single Zpool when any of its partitions is formatted with ZFS&#91;14&#93;. This is not happening in other disk utilities such as GNOME Disks, parted or fdisk. This is due to a bug of the blkid utility, in its stable version, which wrongly reports the disk type. Updating sys-apps/util-linux to its latest version fixes this problem: root #echo "=sys-apps/util-linux-2.35.1-r1 ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/util-linux root #emerge -auvDN sys-apps/util-linux &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild See also[edit] Handbook:AMD64 — A handbook dedicated to installing and configuring Gentoo on the amd64 architecture., an effort to centralize documentation into a coherent handbook. UEFI_Dual_boot_with_Windows_7/8 — describes how to dual boot Microsoft Windows on a UEFI computer. Sakaki%27s_EFI_Install_Guide Dell_XPS_15_9560 User:Monsieurp/Gentoo_Linux_on_ZFS ZFS — a next generation filesystem created by Matthew Ahrens and Jeff Bonwick. External resources[edit] https://github.com/bugalo/gentoo_dell_xps_15_7590 https://wiki.archlinux.org/index.php/Dell_XPS_15_7590 https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation https://www.funtoo.org/ZFS_as_Root_Filesystem https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/ https://wiki.archlinux.org/index.php/ZFS https://github.com/zfsonlinux/zfs/issues/8810 https://github.com/HankB/Linux_ZFS_Root/tree/master/Debian https://wiki.archlinux.org/index.php/ZFS#Native_encryption References[edit] ↑ Connect to a wireless network, Official Ubuntu Documentation. Retrieved on January 22nd, 2020. ↑ Connect to a wired (Ethernet) network, Official Ubuntu Documentation. Retrieved on January 22nd, 2020. ↑ ZFS: GRUB-compatible pool creation, ArchWiki. Retrieved on January 22nd, 2020. ↑ Richard Laager. Debian Buster Root on ZFS, GitHub, December 27th, 2019. Retrieved on January 23rd, 2020. ↑ numinit. ZoL 0.8.0 encryption: don't encrypt the pool root!, Reddit, May, 2019. Retrieved on January 23rd, 2020. ↑ Patrick Kennedy. The Case For Using ZFS Compression, Serve The Home, January 2nd, 2018. Retrieved on January 23rd, 2020. ↑ populationless. Cannot set 'bootfs' property when 'dnodesize' is set to anything but legacy #8538, GitHub, March 27th, 2019. Retrieved on January 23rd, 2020. ↑ Laplacian. How to choose between AES-CCM and AES-GCM for storage volume encryption, Cryptography Stack Exchange, October 2nd, 2014. Retrieved on January 23rd, 2020. ↑ Patrick Kennedy. [1], [2], November 5th, 2012. Retrieved on May 5th, 2025. ↑ x86 Options, GCC, the GNU Compiler Collection, October 2nd, 2014. Retrieved on January 24th, 2020. ↑ Thomas Deutschmann. ZFS: Change hostid handling, Gentoo Git Repositories, March 27th, 2019. Retrieved on January 24th, 2020. ↑ 12.0 12.1 Brian Behlendorf. zfs-0.8.0, GitHub, May 23rd, 2019. Retrieved on January 25th, 2020. ↑ Cite error: Invalid &lt;ref&gt; tag; no text was provided for refs named iwlwifi_firmware ↑ zfs partition wrongly shows occupying the whole disk, GNOME GitLab. Retrieved on April 7th, 2020.'
Parsed HTML source of the new revision (new_html)
'<div class="mw-parser-output"><div class="alert alert-warning"><span class="fa fa-fw fa fa-pencil-square-o"></span> This article is a <b>work in progress</b>; treat its contents with caution - <a href="/wiki/User:Bugalo" title="User:Bugalo">Bugalo</a> (<a href="/index.php?title=User_talk:Bugalo&amp;action=edit&amp;redlink=1" class="new" title="User talk:Bugalo (page does not exist)">talk</a> | <a href="/wiki/Special:Contributions/Bugalo" title="Special:Contributions/Bugalo">contribs</a>).</div> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Summary"><span class="tocnumber">1</span> <span class="toctext">Summary</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#Installation"><span class="tocnumber">2</span> <span class="toctext">Installation</span></a> <ul> <li class="toclevel-2 tocsection-3"><a href="#Preparing_the_Ubuntu_Live_Environment"><span class="tocnumber">2.1</span> <span class="toctext">Preparing the Ubuntu Live Environment</span></a></li> <li class="toclevel-2 tocsection-4"><a href="#Create_the_ZFS_layout"><span class="tocnumber">2.2</span> <span class="toctext">Create the ZFS layout</span></a></li> <li class="toclevel-2 tocsection-5"><a href="#Install_the_Gentoo_base_system"><span class="tocnumber">2.3</span> <span class="toctext">Install the Gentoo base system</span></a></li> <li class="toclevel-2 tocsection-6"><a href="#Configuring.2C_building_and_installing_the_Linux_kernel"><span class="tocnumber">2.4</span> <span class="toctext">Configuring, building and installing the Linux kernel</span></a></li> <li class="toclevel-2 tocsection-7"><a href="#Install_Firmware"><span class="tocnumber">2.5</span> <span class="toctext">Install Firmware</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#Configure_fstab"><span class="tocnumber">2.6</span> <span class="toctext">Configure fstab</span></a></li> <li class="toclevel-2 tocsection-9"><a href="#Configure_the_Network"><span class="tocnumber">2.7</span> <span class="toctext">Configure the Network</span></a></li> <li class="toclevel-2 tocsection-10"><a href="#Install_systemd"><span class="tocnumber">2.8</span> <span class="toctext">Install systemd</span></a></li> <li class="toclevel-2 tocsection-11"><a href="#Install_GRUB"><span class="tocnumber">2.9</span> <span class="toctext">Install GRUB</span></a></li> <li class="toclevel-2 tocsection-12"><a href="#User_Accounts"><span class="tocnumber">2.10</span> <span class="toctext">User Accounts</span></a></li> <li class="toclevel-2 tocsection-13"><a href="#First_ZFS_snapshot"><span class="tocnumber">2.11</span> <span class="toctext">First ZFS snapshot</span></a></li> <li class="toclevel-2 tocsection-14"><a href="#Rebooting"><span class="tocnumber">2.12</span> <span class="toctext">Rebooting</span></a></li> <li class="toclevel-2 tocsection-15"><a href="#FUSE"><span class="tocnumber">2.13</span> <span class="toctext">FUSE</span></a></li> <li class="toclevel-2 tocsection-16"><a href="#Sudo"><span class="tocnumber">2.14</span> <span class="toctext">Sudo</span></a></li> <li class="toclevel-2 tocsection-17"><a href="#AMD_Graphics"><span class="tocnumber">2.15</span> <span class="toctext">AMD Graphics</span></a></li> <li class="toclevel-2 tocsection-18"><a href="#Xorg"><span class="tocnumber">2.16</span> <span class="toctext">Xorg</span></a></li> <li class="toclevel-2 tocsection-19"><a href="#Wifi"><span class="tocnumber">2.17</span> <span class="toctext">Wifi</span></a></li> <li class="toclevel-2 tocsection-20"><a href="#NetworkManager"><span class="tocnumber">2.18</span> <span class="toctext">NetworkManager</span></a></li> <li class="toclevel-2 tocsection-21"><a href="#GNOME_Light"><span class="tocnumber">2.19</span> <span class="toctext">GNOME Light</span></a></li> <li class="toclevel-2 tocsection-22"><a href="#GNOME"><span class="tocnumber">2.20</span> <span class="toctext">GNOME</span></a></li> <li class="toclevel-2 tocsection-23"><a href="#Chromium"><span class="tocnumber">2.21</span> <span class="toctext">Chromium</span></a></li> <li class="toclevel-2 tocsection-24"><a href="#Firefox"><span class="tocnumber">2.22</span> <span class="toctext">Firefox</span></a></li> <li class="toclevel-2 tocsection-25"><a href="#Hardware_Clock"><span class="tocnumber">2.23</span> <span class="toctext">Hardware Clock</span></a></li> <li class="toclevel-2 tocsection-26"><a href="#Localization"><span class="tocnumber">2.24</span> <span class="toctext">Localization</span></a></li> <li class="toclevel-2 tocsection-27"><a href="#Loading_of_CPU_microcode"><span class="tocnumber">2.25</span> <span class="toctext">Loading of CPU microcode</span></a></li> <li class="toclevel-2 tocsection-28"><a href="#USB_support"><span class="tocnumber">2.26</span> <span class="toctext">USB support</span></a></li> <li class="toclevel-2 tocsection-29"><a href="#NTFS_support"><span class="tocnumber">2.27</span> <span class="toctext">NTFS support</span></a></li> <li class="toclevel-2 tocsection-30"><a href="#tmpfs_support"><span class="tocnumber">2.28</span> <span class="toctext">tmpfs support</span></a></li> <li class="toclevel-2 tocsection-31"><a href="#ALSA_and_PulseAudio_support"><span class="tocnumber">2.29</span> <span class="toctext">ALSA and PulseAudio support</span></a></li> <li class="toclevel-2 tocsection-32"><a href="#External_Monitors"><span class="tocnumber">2.30</span> <span class="toctext">External Monitors</span></a></li> <li class="toclevel-2 tocsection-33"><a href="#QEMU.2FKVM"><span class="tocnumber">2.31</span> <span class="toctext">QEMU/KVM</span></a></li> <li class="toclevel-2 tocsection-34"><a href="#ZFS_automatic_snapshots"><span class="tocnumber">2.32</span> <span class="toctext">ZFS automatic snapshots</span></a></li> <li class="toclevel-2 tocsection-35"><a href="#To_Do..."><span class="tocnumber">2.33</span> <span class="toctext">To Do...</span></a></li> <li class="toclevel-2 tocsection-36"><a href="#Update_the_Linux_kernel"><span class="tocnumber">2.34</span> <span class="toctext">Update the Linux kernel</span></a></li> <li class="toclevel-2 tocsection-37"><a href="#Removal_of_old_kernels"><span class="tocnumber">2.35</span> <span class="toctext">Removal of old kernels</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-38"><a href="#Troubleshooting"><span class="tocnumber">3</span> <span class="toctext">Troubleshooting</span></a> <ul> <li class="toclevel-2 tocsection-39"><a href="#Gparted_reporting_the_whole_disk_as_a_single_Zpool"><span class="tocnumber">3.1</span> <span class="toctext">Gparted reporting the whole disk as a single Zpool</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-40"><a href="#See_also"><span class="tocnumber">4</span> <span class="toctext">See also</span></a></li> <li class="toclevel-1 tocsection-41"><a href="#External_resources"><span class="tocnumber">5</span> <span class="toctext">External resources</span></a></li> <li class="toclevel-1 tocsection-42"><a href="#References"><span class="tocnumber">6</span> <span class="toctext">References</span></a></li> </ul> </div> <h2><span class="mw-headline" id="Summary">Summary</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=1" title="Edit section: Summary">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <p>This document will serve as a guide on how to install Gentoo on the MSI MPG x870E Edge TI Wifi motherboard with an AMD 9950x3d CPU and the following configuration: </p> <ul><li>Single <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Gentoo</span> boot, in <a href="/wiki/Handbook:AMD64/Installation/Disks#Using_UEFI" title="Handbook:AMD64/Installation/Disks"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">UEFI</span></a> with <a href="/wiki/Handbook:AMD64/Installation/Disks#GPT" title="Handbook:AMD64/Installation/Disks"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GPT</span></a> mode, using <a href="/wiki/GRUB" title="GRUB"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span></a> as a boot loader.</li> <li><a href="/wiki/ZFS" title="ZFS"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span></a> on all partitions, except the <a href="/wiki/EFI_System_Partition" title="EFI System Partition"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ESP</span></a>, including root, with native transparent compression and encryption. Deduplication will not be configured: <ol><li><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Mirrored Zpools</span> for all system partitions. Those will be located in two 4TB <a href="/wiki/NVMe" title="NVMe"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NVMe</span></a> hard drives.</li></ol></li> <li><a href="/wiki/GNOME" title="GNOME"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span></a> with <a href="/wiki/Systemd" title="Systemd"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">systemd</span></a> profile.</li></ul> <h2><span class="mw-headline" id="Installation">Installation</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=2" title="Edit section: Installation">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <h3><span class="mw-headline" id="Preparing_the_Ubuntu_Live_Environment">Preparing the Ubuntu Live Environment</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=3" title="Edit section: Preparing the Ubuntu Live Environment">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Create an Ubuntu bootable USB using, for example using <a href="/wiki/UNetbootin" title="UNetbootin"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">UNetbootin</span></a>.</li> <li>Plug the USB and boot the PC.</li> <li>Access the <i>One-time boot menu</i> of the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">BIOS</span> by pressing <kbd style="color: black; font-size: small; border: 0.2em solid; border-color: #DDD #BBB #BBB #DDD; padding: 0 0.4em; background: #EEE; white-space: nowrap;">F2</kbd>.</li> <li>Choose the appropriate entry to boot from the live USB.</li> <li>In the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB</span> menu, choose <i>Try Ubuntu without installing</i>.</li> <li>Connect to the internet, through either a wireless<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">&#91;1&#93;</a></sup> or wired network<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">&#91;2&#93;</a></sup>.</li> <li>Upgrade Ubuntu to use the latest <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> modules availabe. <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>apt-get update </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>apt-get upgrade</code></div></div></li> <li>Verify that <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> is loaded <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>dmesg | grep -i zfs </code></div><pre>[ 9.658459] ZFS: Loaded module v0.8.1-1ubuntu12, ZFS pool version 5000, ZFS filesystem version 5 </pre></div></li> <li>Create a folder for the Gentoo install. <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mkdir /mnt/gentoo </code></div></div></li> <li>Install the text editor of your choice, e.g. <a href="/wiki/Vim" title="Vim"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Vim</span></a>. <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>apt-get install vim </code></div></div> <div class="alert alert-warning gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-circle"></i> Important</strong><br />This guide uses <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Vim</span> as a text editor. Feel free to substitute it by your preferred editor.</div></li></ol> <h3><span class="mw-headline" id="Create_the_ZFS_layout">Create the ZFS layout</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=4" title="Edit section: Create the ZFS layout">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>All the partitions of the system will use the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> <a href="/wiki/Filesystem" title="Filesystem"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">filesystem</span></a>. <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> allows the use of whole disks, without partitioning, to install the different parts of the system. In this case, the whole disk would be a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS pool</span>, and we would create different <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS datasets</span> in it that would be conceptually similar to traditional partitions, but they don't need to have a fixed predetermined size. However, the choice of <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span> as a boot manager requires partitioning the disk, i.e a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS pool</span> needs to be created in a partition, not in the whole disk. <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span> cannot currently reside in a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS pool</span> with advanced features activated, such as encryption<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">&#91;3&#93;</a></sup>. In order to satisfy both requirements of using <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span> as a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">boot loader</span> and having the system residing in <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> with native encryption, we need to create a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS pool</span> compatible with <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span>. Furthermore, a <a href="/wiki/FAT" title="FAT"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">FAT</span></a> formatted <a href="/wiki/EFI_System_Partition" title="EFI System Partition"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">EFI System Partition</span></a> needs to be created. </p> <ol><li>Open <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GParted</span>.</li> <li>Select the device <code>/dev/nvme0n1</code>.</li> <li>Go to Device / Create Partition Table ... / gpt / Apply.</li> <li>Select the device <code>/dev/nvme1n1</code>.</li> <li>Go to Device / Create Partition Table ... / gpt / Apply.</li> <li>Delete any partition of the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NVMe</span> drives <code>/dev/nvme0n1</code> and <code>/dev/nvme1n1</code>.</li> <li>Create two new partitions, <code>/dev/nvme0n1p1</code> and <code>/dev/nvme1n1p1</code>, in the unallocated space, formatted in <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">FAT32</span>, named "EFI system partition" and "EFI system partition 2" respectively, with labels ESP and ESP_2, of 128MB, and with flags "boot" and "esp".</li> <li>Create two unformatted partitions, <code>/dev/nvme0n1p2</code> and <code>/dev/nvme1n1p2</code>, in the unallocated space, named Gentoo-Boot and Gentoo-Boot-2, of around 1GB.</li> <li>Create two unformatted partitions, <code>/dev/nvme0n1p3</code> and <code>/dev/nvme1n1p3</code>, in the unallocated space, named Gentoo-Root and Gentoo-Root-2, occupying the remaining space.</li> <li><i>Apply all operations</i> and exit.</li> <li>Create a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">mirror ZFS pool</span>, with all <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB</span>'s unsupported features disabled, in <code>/dev/nvme0n1p2</code> and <code>/dev/nvme1n1p2</code>. <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zpool create -d -o feature@allocation_classes=enabled \ <pre> -o feature@async_destroy=enabled \ </pre><pre> -o feature@bookmarks=enabled \ </pre><pre> -o feature@embedded_data=enabled \ </pre><pre> -o feature@empty_bpobj=enabled \ </pre><pre> -o feature@enabled_txg=enabled \ </pre><pre> -o feature@extensible_dataset=enabled \ </pre><pre> -o feature@filesystem_limits=enabled \ </pre><pre> -o feature@hole_birth=enabled \ </pre><pre> -o feature@large_blocks=enabled \ </pre><pre> -o feature@lz4_compress=enabled \ </pre><pre> -o feature@project_quota=enabled \ </pre><pre> -o feature@resilver_defer=enabled \ </pre><pre> -o feature@spacemap_histogram=enabled \ </pre><pre> -o feature@spacemap_v2=enabled \ </pre><pre> -o feature@userobj_accounting=enabled \ </pre><pre> -o feature@zpool_checkpoint=enabled \ </pre><pre> -f -o ashift=12 \ </pre><pre> -o autotrim=on \ </pre><pre> -o cachefile=/tmp/zpool.cache \ </pre><pre> -O aclinherit=passthrough \ </pre><pre> -O acltype=posixacl \ </pre><pre> -O atime=off \ </pre><pre> -O canmount=off \ </pre><pre> -O devices=off \ </pre><pre> -O mountpoint=/ \ </pre><pre> -O normalization=formD \ </pre><pre> -O xattr=sa \ </pre><pre> -R /mnt/gentoo \ </pre><pre> bpool mirror /dev/nvme0n1p2 /dev/nvme1n1p2</pre></code></div></div></li> <li>Create a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">mirror ZFS pool</span>, for the Gentoo system, in <code>/dev/nvme0n1p3</code> and <code>/dev/nvme1n1p3</code>. <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zpool create -f -o ashift=12 \ <pre> -o autotrim=on \ </pre><pre> -o cachefile=/tmp/zpool.cache \ </pre><pre> -O acltype=posixacl \ </pre><pre> -O aclinherit=passthrough \ </pre><pre> -O atime=off \ </pre><pre> -O canmount=off \ </pre><pre> -O devices=off \ </pre><pre> -O dnodesize=auto \ </pre><pre> -O mountpoint=/ \ </pre><pre> -O normalization=formD \ </pre><pre> -O xattr=sa \ </pre><pre> -R /mnt/gentoo \ </pre><pre> rpool mirror /dev/nvme0n1p3 /dev/nvme1n1p3</pre></code></div></div><div class="alert alert-warning gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-circle"></i> Important</strong><br />Note that most native encryption <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> guides encrypt the root <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS pool</span><sup id="cite_ref-4" class="reference"><a href="#cite_note-4">&#91;4&#93;</a></sup>. However, this forces all its child pools and datasets to be encrypted and with the same algorithm<sup id="cite_ref-5" class="reference"><a href="#cite_note-5">&#91;5&#93;</a></sup>. Thus, here <i>rpool</i> will be left unencrypted, while encryption will be applied to its children.</div></li> <li>The status and properties of the pools created above can be checked with the following commands:<div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zpool status </code></div><pre> pool: bpool </pre><pre> state: ONLINE</pre><pre>status: Some supported features are not enabled on the pool. The pool can</pre><pre> still be used, but some features are unavailable.</pre><pre>action: Enable all features using 'zpool upgrade'. Once this is done,</pre><pre> the pool may no longer be accessible by software that does not support</pre><pre> the features. See zpool-features(5) for details.</pre><pre> scan: none requested</pre><pre>config:</pre><br /><pre> NAME STATE READ WRITE CKSUM</pre><pre> bpool ONLINE 0 0 0</pre><pre> nvme0n1p4 ONLINE 0 0 0</pre><br /><pre>errors: No known data errors</pre><br /><pre> pool: rpool</pre><pre> state: ONLINE</pre><pre> scan: none requested</pre><pre>config:</pre><br /><pre> NAME STATE READ WRITE CKSUM</pre><pre> rpool ONLINE 0 0 0</pre><pre> nvme0n1p5 ONLINE 0 0 0</pre><br /><pre>errors: No known data errors</pre></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs get all bpool </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs get all rpool</code></div></div></li> <li>Create the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS dataset </span> where <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span> will reside: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs create -o canmount=off -o compression=gzip-9 -o mountpoint=none bpool/BOOT </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs create -o canmount=noauto -o compression=gzip-9 -o dnodesize=legacy -o mountpoint=/mnt/gentoo/boot bpool/BOOT/gentoo</code></div></div><div class="alert alert-warning gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-circle"></i> Important</strong><br />The <a href="https://en.wikipedia.org/wiki/LZ4_(compression_algorithm)" class="extiw" title="wikipedia:LZ4 (compression algorithm)"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">LZ4</span></a> compression algorithm is generally favored over <a href="https://en.wikipedia.org/wiki/Gzip" class="extiw" title="wikipedia:Gzip"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Gzip</span></a>, due to its good balance between compression ratio and computational power required<sup id="cite_ref-6" class="reference"><a href="#cite_note-6">&#91;6&#93;</a></sup>. However, this guide uses <code>gzip-9</code> as compression algorithm, offering the highest compression level at a higher computational cost. This is due to the availability of a powerful <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">CPU</span> in the system.</div><div class="alert alert-danger gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-triangle"></i> Warning</strong><br />At the time of writing this paragraph, Grub does not support booting from a zfs pool compressed with zstd.</div><div class="alert alert-danger gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-triangle"></i> Warning</strong><br />Setting here the parameter <code>dnodesize</code> to anything other than <code>legacy</code> will result in the following error<sup id="cite_ref-7" class="reference"><a href="#cite_note-7">&#91;7&#93;</a></sup>: <div class="cmd-box"><div><code><pre>cannot set property for 'bpool': operation not supported on this type of pool</pre></code></div></div></div></li> <li>Create the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS dataset </span> where <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">root</span> will reside: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs create -o canmount=off -o compression=zstd-19 -o encryption=aes-256-gcm -o keyformat=passphrase -o keylocation=prompt -o mountpoint=none rpool/ROOT </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs create -o canmount=noauto -o compression=zstd-19 -o encryption=aes-256-gcm -o keyformat=passphrase -o keylocation=prompt -o mountpoint=/mnt/gentoo rpool/ROOT/gentoo</code></div></div><div class="alert alert-warning gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-circle"></i> Important</strong><br />The default mode of operation of <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> native encryption is <a href="https://en.wikipedia.org/wiki/CCM_mode" class="extiw" title="wikipedia:CCM mode">aes-256-ccm</a>. However, <a href="https://en.wikipedia.org/wiki/Galois/Counter_Mode" class="extiw" title="wikipedia:Galois/Counter Mode">aes-256-gcm</a> is generally preferred<sup id="cite_ref-8" class="reference"><a href="#cite_note-8">&#91;8&#93;</a></sup>.</div><div class="alert alert-warning gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-circle"></i> Important</strong><br />According to various benchmarks, zstd should provide similar or higher compression levels than gzip, but with higher compression and decompression speed.</div></li> <li>Create the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS dataset </span> where <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">home</span> will reside: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs create -o compression=zstd-19 -o encryption=aes-256-gcm -o keyformat=passphrase -o mountpoint=/mnt/gentoo/home rpool/ROOT/home</code></div></div></li> <li>Mount all the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS datasets </span>: <div class="alert alert-danger gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-triangle"></i> Warning</strong><br />At the time of writing this paragraph, mounting the datasets with <code>zfs mount</code> will result in a double preffix (see <sup id="cite_ref-9" class="reference"><a href="#cite_note-9">&#91;9&#93;</a></sup>) and <a href="/wiki/ZFS#Chroot" title="ZFS"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS Chroot</span></a>. Use <code>mount -t zfs</code> instedad.</div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set mountpoint=/ rpool </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set mountpoint=/ rpool/ROOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set mountpoint=/home rpool/ROOT/home </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set mountpoint=/ bpool </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set mountpoint=/boot bpool/BOOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount -t zfs -o zfsutil rpool/ROOT/gentoo /mnt/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mkdir /mnt/gentoo/home </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount -t zfs -o zfsutil rpool/ROOT/home /mnt/gentoo/home </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mkdir /mnt/gentoo/boot </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount -t zfs -o zfsutil bpool/BOOT/gentoo /mnt/gentoo/boot</code></div></div></li> <li>Check that the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> layout is correct: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs list -t all</code></div></div></li> <li>Set the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS dataset</span> used for booting: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zpool set bootfs=bpool/BOOT/gentoo bpool</code></div></div> Check that the <code>bootfs</code> property has been properly set: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zpool get bootfs bpool</code></div></div></li></ol> <h3><span class="mw-headline" id="Install_the_Gentoo_base_system">Install the Gentoo base system</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=5" title="Edit section: Install the Gentoo base system">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>This section will closely follow <a href="/wiki/Handbook:AMD64" title="Handbook:AMD64">Gentoo's AMD64 Handbook</a>, with adjustments where appropriate. </p> <ol><li>Verify that the date and time of the system is correct. If not, <a href="/wiki/Handbook:AMD64/Installation/Stage#Setting_the_date_and_time" title="Handbook:AMD64/Installation/Stage">fix it</a>:<div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>date </code></div><pre>Thu Jan 23 23:35:23 CET 2020</pre></div></li> <li>Choose a stage tarball: <code>desktop systemd 64-bit stage tarball</code>.</li> <li>Move to the root installation directory:<div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cd /mnt/gentoo/</code></div></div></li> <li>Find the name of the latest amd64 systemd stage3 at <a rel="nofollow" class="external free" href="http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3-amd64-systemd.txt">http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3-amd64-systemd.txt</a> and download it: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>wget <a rel="nofollow" class="external free" href="https://gentoo.osuosl.org/releases/amd64/autobuilds/20250502T162426Z/stage3-amd64-desktop-systemd-20250502T162426Z.tar.xz">https://gentoo.osuosl.org/releases/amd64/autobuilds/20250502T162426Z/stage3-amd64-desktop-systemd-20250502T162426Z.tar.xz</a></code></div></div> <div class="alert alert-info gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-sticky-note-o fa-rotate-180"></i> Note</strong><br />Modify the name of the stage3 file appropriately.</div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />The downloaded stage3 file can be <a href="/wiki/Handbook:AMD64/Installation/Stage#Verifying_and_validating" title="Handbook:AMD64/Installation/Stage">verified</a>.</div></li> <li>Unpack the stage3 tarball: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner</code></div></div></li> <li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to configure: <ul><li>The <a href="/wiki/Handbook:AMD64/Installation/Stage#Configuring_compile_options" title="Handbook:AMD64/Installation/Stage">compile options</a> to <a href="/wiki/GCC_optimization" title="GCC optimization">optimize</a> compiled code, including the <a href="/wiki/CPU_FLAGS_X86" class="mw-redirect" title="CPU FLAGS X86">CPU_FLAGS_X86</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10">&#91;10&#93;</a></sup>.</li> <li>The global <a href="/wiki/Handbook:Parts/Working/USE" title="Handbook:Parts/Working/USE"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USE</span></a> variable to specify <a href="/wiki/Handbook:AMD64/Installation/Base#Configuring_the_USE_variable" title="Handbook:AMD64/Installation/Base">system-wide package support</a>.</li> <li>The <a href="/wiki/Handbook:AMD64/Installation/Base#Optional:_Configuring_the_ACCEPT_LICENSE_variable" title="Handbook:AMD64/Installation/Base"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ACCEPT_LICENSE</span></a> variable to select the <a href="/wiki/Project:Licenses" title="Project:Licenses">license</a> group automatically accepted. <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /mnt/gentoo/etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>CPU_FLAGS_X86</var>, <var>USE</var> and <var>ACCEPT_LICENSE</var> variables for systemwide support</strong></div> <div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre><span></span>... <span class="nv">USE</span><span class="o">=</span><span class="s2">&quot;...&quot;</span> <span class="nv">CPU_FLAGS_X86</span><span class="o">=</span><span class="s2">&quot;adcx aes avx avx2 bmi bmi2 clflushopt fsgsbase f16c fma fma3 mmx mmxext movbe pclmul popcnt prefetchw rdrnd rdseed sse sse2 sse3 sse4_1 sse4_2 ssse3 xsavec xsaves&quot;</span> ... <span class="nv">ACCEPT_LICENSE</span><span class="o">=</span><span class="s2">&quot;*&quot;</span><span class="w"> </span>... </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li></ul></li> <li>Configure the Gentoo ebuild repository: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mkdir --parents /mnt/gentoo/etc/portage/repos.conf</code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf</code></div></div></li> <li>Copy the DNS info: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cp --dereference /etc/resolv.conf /mnt/gentoo/etc/</code></div></div></li> <li>Mount the necessary filesystems: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount --types proc /proc /mnt/gentoo/proc </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount --rbind /sys /mnt/gentoo/sys </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount --make-rslave /mnt/gentoo/sys </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount --rbind /dev /mnt/gentoo/dev </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount --make-rslave /mnt/gentoo/dev </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount --bind /run /mnt/gentoo/run</code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount --make-slave /mnt/gentoo/run</code></div></div></li> <li>Copy the <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">zpool.cache</span> to the installation directory: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mkdir -p /mnt/gentoo/etc/zfs </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cp /tmp/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache </code></div></div></li> <li>Copy <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/hostid</span>, <a href="/wiki/Genkernel" title="Genkernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">genkernel</span></a> will later complain if it does not exist<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">&#91;11&#93;</a></sup>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cp /etc/hostid /mnt/gentoo/etc/hostid</code></div></div></li> <li><a href="/wiki/Chroot" title="Chroot"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Chroot</span></a> into the new environment: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>chroot /mnt/gentoo /bin/bash </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>source /etc/profile </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>export PS1="(chroot) ${PS1}"</code></div></div></li> <li>Update the Gentoo <a href="/wiki/Ebuild_repository" title="Ebuild repository"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ebuild repository</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --sync --quiet </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect news list </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect news read </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect news purge</code></div></div></li> <li>Choose the appropriate <a href="/wiki/Profile_(Portage)" title="Profile (Portage)"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">portage profile</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect profile list </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect profile set default/linux/amd64/23.0/desktop/gnome/systemd</code></div></div></li> <li>Select fast <a href="/wiki/GENTOO_MIRRORS" title="GENTOO MIRRORS">mirrors</a> available for source code download, by using <a href="/wiki/Mirrorselect" title="Mirrorselect">mirrorselect</a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-portage/mirrorselect package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-portage/mirrorselect"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-portage/mirrorselect</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>mirrorselect -s4 -b10 -D</code></div></div></li> <li><a href="/wiki/Portage" title="Portage">Emerge</a> <a href="/wiki/Vim" title="Vim">Vim</a> to be used as a <a href="/wiki/Text_editor" title="Text editor">text editor</a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-editors/vim package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-editors/vim"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-editors/vim</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/vim </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-editors/vim-core package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-editors/vim-core"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-editors/vim-core</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/vim-core </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-editors/gvim package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-editors/gvim"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-editors/gvim</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/gvim </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-editors/vim package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-editors/vim"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-editors/vim</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-editors/gvim package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-editors/gvim"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-editors/gvim</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Set the timezone and reconfigure the <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-libs/timezone-data package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-libs/timezone-data"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-libs/timezone-data</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>ls /usr/share/zoneinfo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "Europe/Madrid" &gt; /etc/timezone </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --config <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-libs/timezone-data package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-libs/timezone-data"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-libs/timezone-data</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Configure the <a href="/wiki/Localization/Guide" title="Localization/Guide">locales</a> to use, at leaset, one <a href="/wiki/UTF-8" title="UTF-8">UTF-8</a> locale: <ul><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/locale.gen</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/locale.gen</code></div></div> and uncomment the line referencing <code>en_US.UTF-8 UTF-8</code>: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/locale.gen</code></strong><strong>Adding an UTF-8 locale</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>... en_US.UTF-8 UTF-8 ... </pre></div></li> <li>Generate the locales: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>locale-gen </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect locale list </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect locale set en_US.utf8</code></div></div></li> <li>Reload the environment: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>env-update &amp;&amp; source /etc/profile &amp;&amp; export PS1="(chroot) ${PS1}"</code></div></div></li></ul></li> <li>Unmask the latest versions of <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> and <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs-kmod package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs-kmod"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs-kmod</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/zfs </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs-kmod package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs-kmod"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs-kmod</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/zfs-kmod</code></div></div> <div class="alert alert-info gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-sticky-note-o fa-rotate-180"></i> Note</strong><br /><a rel="nofollow" class="external text" href="https://zfsonlinux.org/">ZFSOnLinux</a> is under very active development, and the latest versions provide bug fixes and implement new interesting features, e.g zfs-0.8.0 introduced native encryption, support for <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">TRIM</span> in <a href="/wiki/SSD" title="SSD">SSDs</a>, etc<sup id="cite_ref-zfs-0.8.0_12-0" class="reference"><a href="#cite_note-zfs-0.8.0-12">&#91;12&#93;</a></sup>.</div> <div class="alert alert-warning gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-circle"></i> Important</strong><br />Versions of <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> lower than 0.8.0 depend on <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/spl package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/spl"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/spl</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>. However, as of version 0.8.0, this dependency has been removed.<sup id="cite_ref-zfs-0.8.0_12-1" class="reference"><a href="#cite_note-zfs-0.8.0-12">&#91;12&#93;</a></sup>.</div></li> <li>Unmask the latest versions of <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-boot/grub package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-boot/grub"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-boot/grub</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> and add <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-boot/grub package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-boot/grub"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-boot/grub</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/grub </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-boot/grub package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-boot/grub"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-boot/grub</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> libzfs" &gt; /etc/portage/package.use/grub</code></div></div></li> <li>Update the <a href="/wiki/World_set_(Portage)" title="World set (Portage)"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">world set</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge -auvDN @world</code></div></div></li></ol> <h3><span id="Configuring,_building_and_installing_the_Linux_kernel"></span><span class="mw-headline" id="Configuring.2C_building_and_installing_the_Linux_kernel">Configuring, building and installing the Linux kernel</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=6" title="Edit section: Configuring, building and installing the Linux kernel">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Unmask a suitable <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">kernel</span></a> version: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/gentoo-sources package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/gentoo-sources</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/gentoo-sources</code></div></div> <div class="alert alert-danger gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-triangle"></i> Warning</strong><br />At the time of writing this, <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> 2.3.2 is not compatible with kernel versions 6.15.0 and above. Mask the incompatible kernel versions: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "&gt;=<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/gentoo-sources package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/gentoo-sources</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>-6.15.0" &gt;&gt; /etc/portage/package.mask/gentoo-sources</code></div></div></div></li> <li>Emerge <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/gentoo-sources package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/gentoo-sources</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> with the <code>experimental</code> USE flag to expose the <code>AMD Zen 5</code> processor family type: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/gentoo-sources package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/gentoo-sources</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> experimental" &gt;&gt; /etc/portage/package.use/gentoo-sources</code></div></div></li> <li>Install the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">kernel</span></a> and <a href="/wiki/Genkernel" title="Genkernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">genkernel</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/gentoo-sources package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/gentoo-sources</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/genkernel package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/genkernel"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/genkernel</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Add compression support to <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/kmod package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/kmod"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/kmod</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> in order to be able to load compressed modules: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/kmod package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/kmod"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/kmod</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> lzma zlib" &gt;&gt; /etc/portage/package.use/kmod </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/kmod package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/kmod"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/kmod</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li><a href="/wiki/Kernel/Gentoo_Kernel_Configuration_Guide" title="Kernel/Gentoo Kernel Configuration Guide">Configure the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">kernel</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect kernel list </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>eselect kernel set 2 </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>cd /usr/src/linux </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>make menuconfig</code></div></div> <ul><li><span class="anchor" id="Kernel_firmware"></span>Enable <a href="/wiki/Linux_firmware" title="Linux firmware"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Firmware</span></a> loading support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable support for Linux firmware</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; Generic Driver Options ---&gt; Firmware loader ---&gt; -*- Firmware loading facility () Build named firmware blobs into the kernel binary [*] Enable compressed firmware support [*] Enable XZ-compressed firmware support [*] Enable ZSTD-compressed firmware support </pre></div></li> <li>Gentoo-specific configuration options: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Gentoo-specific configuration options</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Gentoo Linux ---&gt; [*] Gentoo Linux support [*] Linux dynamic and persistent device naming (userspace devfs) support [*] Select options required by Portage features Support for init systems, system and service managers ---&gt; [ ] OpenRC, runit and other script based systems and managers [*] systemd </pre></div></li> <li>Architecture specific kernel configuration: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Selecting processor types and features</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Processor type and features ---&gt; [*] Support x2apic [*] AMD ACPI2Platform devices support [*] Supported processor vendors ---&gt; [*] Support AMD processors [*] Machine Check / overheating reporting [*] AMD MCE features Processor family (Core 2/newer Xeon) ---&gt; (X) AMD Zen 5 Performance monitoring ---&gt; &lt;*&gt; Intel/AMD rapl performance events &lt;*&gt; AMD Processor Power Reporting Mechanism &lt;*&gt; AMD Uncore performance events [ ] AMD Zen3 Branch Sampling support Power management and ACPI options ---&gt; CPU Frequency scaling ---&gt; Default CPUFreq governor (schedutil) ---&gt; -*- AMD Processor P-State driver &lt;*&gt; ACPI Processor P-States driver [*] Legacy cpb sysfs knob support for AMD CPUs &lt; &gt; AMD Opteron/Athlon64 PowerNow! &lt;*&gt; AMD frequency sensitivity feedback powersave bias Device Drivers ---&gt; Generic Driver Options ---&gt; Firmware loader ---&gt; [*] Firmware loading facility (amd-ucode/microcode_amd_fam19h.bin) External firmware blobs to build into the kernel binary (/lib/firmware) Firware blobs root directory [*] Hardware Monitoring support ---&gt; &lt;*&gt; AMD Family 10h+ temperature sensor [*] IOMMU Hardware Support ---&gt; [*] AMD IOMMU support Binary Emulations ---&gt; [*] IA32 Emulation </pre></div></li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Hyper-Threading</span> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configuration for multi-processing support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Processor type and features ---&gt; [*] Symmetric multi-processing support [*] SMT (Hyperthreading) scheduler support [*] Multi-core scheduler support </pre></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Power management for multi-processor systems</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Power management and ACPI options ---&gt; [*] ACPI (Advanced Configuration and Power Interface) Support </pre></div></li> <li>Various chipset drivers: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Additional chipset drivers</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; I2C support ---&gt; I2C Hardware Bus Support ---&gt; &lt;*&gt; Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC) [*] Pin Controllers ---&gt; [*] AMD GPIO pin control [*] GPIO Support ---&gt; Memory mapped GPIO drivers ---&gt; &lt;*&gt; AMD Promontory GPIO support [*] X86 Platform Specific Device Drivers ---&gt; &lt;*&gt; AMD SoC PMC driver &lt;*&gt; AMD 3D V-Cache Performance Optimizer Driver [*] AMD Wifi RF Band mitigations (WBRF) [*] Cryptographic API ---&gt; [*] Hardware crypto devices ---&gt; [*] Support for AMD Secure Processor [*] Cryptographic Coprocessor device &lt;*&gt; Encryption and hashing offload support &lt;*&gt; Secure Processor device driver &lt;*&gt; Platform Security Processor (PSP) device </pre></div></li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">SATA</span> support, needed if using a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">SATA</span> hard drive; <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">SCSI</span>, needed for <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">SATA</span> devices, <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USB</span> external hard drives and optical drives, etc.: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configuration options for SCSI support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; SCSI device support ---&gt; -*- SCSI device support &lt;*&gt; SCSI disk support &lt;*&gt; SCSI CDROM support &lt;*&gt; SCSI generic support [ ] SCSI low-level drivers ---&gt; &lt;*&gt; Serial ATA and Parallel ATA drivers (libata) ---&gt; [*] ATA ACPI Support [*] SATA Port Multiplier support &lt;*&gt; AHCI SATA support (ahci) [*] ATA BMDMA support [*] ATA SFF support (for legacy IDE and PATA) &lt; &gt; Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix) &lt; &gt; AMD/NVidia PATA support </pre></div></li> <li>Enable <a href="/wiki/NVMe" title="NVMe"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NVMe</span></a> device support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configuration for NVMe support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; NVME Support ---&gt; &lt;*&gt; NVM Express block device [*] NVMe multipath support [*] NVMe hardware monitoring &lt;M&gt; NVM Express over Fabrics FC host driver &lt;M&gt; NVM Express over Fabrics TCP host driver </pre></div></li> <li>Enable compressed kernel modules: <div class="alert alert-danger gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-triangle"></i> Warning</strong><br />I have <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">not</span> been able to boot from a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> system with compressed modules enabled, although it should be entirely possible. Use at your own risk.</div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable module compression</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>[*] Enable loadable module support ---&gt; [*] Compress modules on installation Compression algorithm (XZ) ---&gt; ( ) GZIP (X) XZ </pre></div></li> <li>Enable <a href="/wiki/Device_file" title="Device file"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">devtmpfs</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enabling devtmpfs support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; Generic Driver Options ---&gt; [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs </pre></div></li> <li>Enable support for the <a href="/wiki/Filesystem" title="Filesystem"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">filesystems</span></a> used: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Selecting necessary file systems</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>File systems ---&gt; &lt; &gt; Second extended fs support &lt; &gt; The Extended 3 (ext3) filesystem &lt;*&gt; The Extended 4 (ext4) filesystem [*] Use ext4 for ext2 file systems &lt; &gt; Reiserfs support &lt; &gt; JFS filesystem support &lt; &gt; XFS filesystem support &lt; &gt; GFS2 file system support &lt; &gt; Btrfs filesystem support &lt; &gt; NILFS2 file system support &lt; &gt; F2FS file system support DOS/FAT/NT Filesystems ---&gt; &lt;*&gt; MSDOS fs support &lt;*&gt; VFAT (Windows-95) fs support &lt;*&gt; exFAT filesystem support &lt;*&gt; NTFS Read-Write file system support [*] activate support of external compressions lzx/xpress Pseudo Filesystems ---&gt; -*- /proc file system support -*- Tmpfs virtual memory file system support (former shm fs) </pre></div></li> <li><span class="anchor" id="Kernel_FUSE"></span>Enable support for <a href="/wiki/Filesystem_in_Userspace" title="Filesystem in Userspace"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">FUSE</span></a>: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable support for FUSE</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>File systems ---&gt; &lt;*&gt; FUSE (Filesystem in Userspace) support </pre></div></li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GPT</span> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable support for GPT</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>-*- Enable the block layer ---&gt; Partition Types ---&gt; [*] Advanced partition selection [*] EFI GUID Partition support </pre></div></li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">UEFI</span> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable support for UEFI</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Processor type and features ---&gt; [*] EFI runtime service support [*] EFI stub support [*] EFI mixed-mode support Firmware Drivers ---&gt; EFI (Extensible Firmware Interface) Support ---&gt; &lt;*&gt; EFI Variable Support via sysfs </pre></div></li> <li><span class="anchor" id="Kernel_USB"></span>Configure <a href="/wiki/USB" title="USB">USB</a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configuration for USB Host Controller Devices</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; SCSI device support ---&gt; *** SCSI support type (disk, tape, CD-ROM) *** &lt;*&gt; SCSI disk support &lt; &gt; SCSI tape support &lt;*&gt; SCSI CDROM support &lt;*&gt; SCSI generic support [*] USB support ---&gt; -*- Support for Host-side USB *** USB Host Controller Drivers *** &lt;*&gt; xHCI HCD (USB 3.0) support &lt;*&gt; EHCI HCD (USB 2.0) support &lt;*&gt; OHCI HCD (USB 1.1) support &lt; &gt; UHCI HCD (most Intel and VIA) support &lt;*&gt; USB Mass Storage support &lt;*&gt; Unified support for USB4 and Thunderbolt ---&gt; </pre></div></li> <li>Configure <a href="/wiki/USB/Guide" title="USB/Guide">USB</a> support for input devices: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configuration for USB input devices</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; HID support ---&gt; -*- HID bus support [*] Battery level reporting for HID devices &lt;*&gt; Generic HID driver USB HID support ---&gt; &lt;*&gt; USB HID transport layer </pre></div></li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USB Type-C</span> and <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Thunderbolt</span> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>PCI Hotplugging</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; [*] PCI support ---&gt; --- PCI support [*] PCI Express Port Bus support [*] PCI Express Hotplug driver [*] Support for PCI Hotplug ---&gt; [*] ACPI PCI Hotplug driver </pre></div></li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USB</span> audio: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable support for <var>SND_USB_AUDIO</var></strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers --&gt; &lt;*&gt; Sound card support --&gt; --- Sound card support &lt;*&gt; Advanced Linux Sound Architecture ---&gt; [*] USB sound devices ---&gt; &lt;*&gt; USB Audio/MIDI driver </pre></div></li> <li><span class="anchor" id="Kernel_systemd"></span>Enable <a href="/wiki/Systemd" title="Systemd"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">systemd</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable support for Linux firmware</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>General setup ---&gt; -*- Control Group support ---&gt; --- Control Group support -*- Support for eBPF programs attached to cgroups -*- Namespaces support ---&gt; --- Namespaces support -*- Network namespace [*] Checkpoint/restore support [ ] Enable deprecated sysfs features to support old userspace tools [*] Configure standard kernel features (expert users) ---&gt; --- Configure standard kernel features (expert users) -*- open by fhandle syscalls -*- Enable eventpoll support -*- Enable signalfd() system call -*- Enable timerfd() system call BPF subsystem ---&gt; -*- Enable bpf() system call Processor type and features ---&gt; [*] EFI runtime service support General architecture-dependent options ---&gt; -*- Enable seccomp to safely compute untrusted bytecode Device Drivers ---&gt; Firmware Drivers ---&gt; -*- Export DMI identification via sysfs to userspace Generic Driver Options ---&gt; [*] Support for uevent helper () path to uevent helper -*- Maintain a devtmpfs filesystem to mount at /dev Firmware loader ---&gt; -*- Enable the firmware sysfs fallback mechanism -*- Enable the block layer ---&gt; --- Enable the block layer -*- Block layer SG support v4 helper lib Partition Types ---&gt; [*] Advanced partition selection [*] EFI GUID Partition support IO Schedulers ---&gt; &lt;*&gt; BFQ I/O scheduler [*] BFQ hierarchical scheduling support (NEW) -*- Networking support ---&gt; --- Networking support Networking options ---&gt; -*- The IPv6 protocol ---&gt; [*] Unix domain sockets File systems ---&gt; -*- Inotify support for userspace -*- Kernel automounter support (supports v3, v4 and v5) Pseudo filesystems ---&gt; -*- /proc file system support -*- sysfs file system support -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes Gentoo Linux ---&gt; Support for init systems, system and service managers ---&gt; [ ] OpenRC, runit and other script based systems and managers [*] systemd </pre></div></li> <li><span class="anchor" id="Kernel_Intel_graphics"></span>Configure the <a href="/wiki/Intel" title="Intel">Intel graphics</a>: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configuration for Intel graphics</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-000001E8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001E9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001ED-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EE-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001EF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F1-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F6-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F7-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001F9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FD-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FE-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000001FF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000200-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000201-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000202-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000203-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000204-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000205-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000206-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000207-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000208-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000209-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000020F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000210-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000211-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000212-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000213-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000214-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000215-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000216-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000217-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000218-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000219-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000021F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000220-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000221-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000222-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000223-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000224-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000225-QINU`&quot;&#39; </pre></div></li> <li><span class="anchor" id="Kernel_Xorg"></span>Configure the <a href="/wiki/Xorg" title="Xorg"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Xorg</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enabling evdev in the kernel</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; Input device support ---&gt; &lt;*&gt; Event interface </pre></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Disable legacy framebuffer support and enable basic console FB support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; Graphics support ---&gt; Frame Buffer Devices ---&gt; -*- Support for frame buffer devices ---&gt; --- Support for frame buffer devices *** Frame buffer hardware drivers *** ## (Disable all other drivers, including VGA, Intel, NVIDIA, and ATI) [*] Simple framebuffer support Console display driver support ---&gt; [*] Framebuffer Console Support </pre></div></li> <li><span class="anchor" id="Kernel_Wifi"></span>Configure the <a href="/wiki/Wifi" class="mw-redirect" title="Wifi"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Wifi</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enabling IEEE 802.11 support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-0000022C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000022D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000022E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000022F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000230-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000231-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000232-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000233-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000234-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000235-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000236-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000237-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000238-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000239-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000023F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000240-QINU`&quot;&#39; </pre></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configure the iwlwifi module</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000243-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000244-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000245-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000246-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000247-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000248-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000249-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000024F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000250-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000251-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000252-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000253-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000254-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000255-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000256-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000257-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000258-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000259-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000025F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000260-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000261-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000262-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000263-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000264-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000265-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000266-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000267-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000268-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000269-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026C-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000026D-QINU`&quot;&#39; </pre></div></li> <li><span class="anchor" id="Kernel_Networkmanager"></span>Enable <a href="/wiki/NetworkManager" title="NetworkManager"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NetworkManager</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enabling NetworkManager support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>-*- Networking support ---&gt; --- Networking support Networking options ---&gt; &lt;*&gt; Packet socket -*- Wireless ---&gt; --- Wireless &lt;*&gt; cfg80211 - wireless configuration API [*] cfg80211 wireless extensions compatibility </pre></div></li> <li><span class="anchor" id="Kernel_Hardware_Clock"></span>Enable <a href="/wiki/System_time#Hardware_clock" title="System time"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">hardware clock</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Necessary kernel options for a hardware clock</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; [*] Real Time Clock ---&gt; --- Real Time Clock *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** &lt;*&gt; PC-style &#39;CMOS&#39; </pre></div><div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Letting the kernel sync the system clock</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>Device Drivers ---&gt; [*] Real Time Clock ---&gt; --- Real Time Clock [*] Set system time from RTC on startup and resume (rtc0) RTC used to set the system time [*] Set the RTC time based on NTP synchronization (rtc0) RTC used to synchronize NTP adjustment *** RTC interfaces *** [*] /sys/class/rtc/rtcN (sysfs) [*] /proc/driver/rtc (procfs for rtcN) [*] /dev/rtcN (character devices) *** Platform RTC drivers *** &lt;*&gt; PC-style &#39;CMOS&#39; </pre></div></li> <li><span class="anchor" id="Kernel_Microcode"></span>Enable <a href="/wiki/Microcode" title="Microcode"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">CPU microcode</span></a> for the <a href="/wiki/Intel_microcode" title="Intel microcode"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Intel CPU</span></a> loading support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Configuring the kernel to support Intel microcode loading</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000276-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000277-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-00000278-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000279-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000027A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000027B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000027C-QINU`&quot;&#39; </pre></div></li> <li><span class="anchor" id="Kernel_NTFS"></span>Enable <a href="/wiki/NTFS" title="NTFS"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NTFS</span></a> read and write support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable built-in NTFS filesystem reading support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-0000027F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000280-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000281-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000282-QINU`&quot;&#39; </pre></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enabling NTFS over FUSE using NTFS-3G</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000285-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000286-QINU`&quot;&#39; </pre></div></li> <li><span class="anchor" id="Kernel_tmpfs"></span>Enable <a href="/wiki/Tmpfs" title="Tmpfs"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">tmpfs</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable tmpfs support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>File systems ---&gt; Pseudo filesystems ---&gt; -*- Tmpfs virtual memory file system support (former shm fs) -*- Tmpfs POSIX Access Control Lists -*- Tmpfs extended attributes </pre></div></li> <li><span class="anchor" id="Kernel_audio"></span>Enable <a href="/wiki/ALSA" title="ALSA"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ALSA</span></a> and <a href="/wiki/PulseAudio" title="PulseAudio"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">PulseAudio</span></a> sound support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable ALSA support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-0000028B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000028C-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-0000028D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000028E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000028F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000290-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000291-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000292-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000293-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000294-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000295-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000296-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000297-QINU`&quot;&#39; </pre></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enable PulseAudio support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-0000029A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029B-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029C-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-0000029D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000029F-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A1-QINU`&quot;&#39;&lt;/br&gt;&#39;&quot;`UNIQ--pre-000002A2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A5-QINU`&quot;&#39; </pre></div></li></ul></li></ol> <p><br /> </p> <ol><li><ul><li><span class="anchor" id="Kernel_VM"></span>Enable <a href="/wiki/QEMU" title="QEMU"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">QEMU and KVM</span></a> support: <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #4E9A06">KERNEL</span> <strong>Enabling QEMU and KVM support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-000002A8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002A9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AD-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AE-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002AF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B1-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B6-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B7-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B8-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002B9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BD-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002BE-QINU`&quot;&#39; </pre></div></li></ul></li></ol> <p><br /> </p> <ol><li>Prepare the kernel for module compilation: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>make modules_prepare</code></div></div></li> <li>Compile the kernel: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>make -j32</code></div></div></li> <li>Install the kernel modules: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>make modules_install</code></div></div></li> <li>Modify <code>installkernel</code> to boot from <code>grub</code>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "sys-kernel/installkernel grub -systemd" &gt;&gt; /etc/portage/package.use/installkernel </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask installkernel</code></div></div></li> <li>Install the kernel: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>make install</code></div></div></li> <li>Install <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> and <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs-kmod package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs-kmod"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs-kmod</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Rebuild the installed <a href="/wiki/Kernel_Modules" title="Kernel Modules"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">modules</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask @module-rebuild</code></div></div></li> <li>Use <a href="/wiki/Genkernel" title="Genkernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">genkernel</span></a> to generate an <a href="/wiki/Initramfs" title="Initramfs"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">initramfs</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>genkernel initramfs --firmware --kernel-config=/usr/src/linux/.config --keymap --makeopts=-j32 --mountboot --no-clean --zfs</code></div></div> <div class="alert alert-info gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-sticky-note-o fa-rotate-180"></i> Note</strong><br />Notice that native <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> encryption is used for this system, rather than <a href="/wiki/Dm-crypt" title="Dm-crypt"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">LUKS</span></a>, and thus the lack of the <code>--luks</code> option in the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">genkernel</span> invacation.</div></li></ol> <h3><span class="mw-headline" id="Install_Firmware">Install Firmware</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=7" title="Edit section: Install Firmware">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_firmware">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">firmware</span> loading support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Update_the_Linux_kernel">below</a>.</li> <li>Install the <a href="/wiki/Linux_firmware" title="Linux firmware"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">firmware</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/linux-firmware package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/linux-firmware"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/linux-firmware</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Add support for individual selection of firmware files to <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/linux-firmware package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/linux-firmware"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/linux-firmware</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/linux-firmware package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/linux-firmware"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/linux-firmware</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> savedconfig" &gt;&gt; /etc/portage/package.use/linux-firmware</code></div></div></li> <li>Comment everything in <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy</span> except the actual firmware files needed by the system: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy</code></div></div> <div class="alert alert-info gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-sticky-note-o fa-rotate-180"></i> Note</strong><br />Currently loaded firmware can be assessed by <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>dmesg | grep -i firmware</code></div></div></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">linux-firmware-ddmmyyyy</span> for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/etc/portage/savedconfig/sys-kernel">here</a>.</div></li> <li>Re-emerge <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/linux-firmware package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/linux-firmware"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/linux-firmware</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/linux-firmware package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/linux-firmware"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/linux-firmware</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ol> <h3><span class="mw-headline" id="Configure_fstab">Configure fstab</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=8" title="Edit section: Configure fstab">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>With the use of <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span>, modifying the <a href="/wiki/Fstab" class="mw-redirect" title="Fstab">fstab</a> file is not strictly needed. However, by editing <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/fstab</span>, an easy way to mount <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot</span> and <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot/efi</span> will be provided (note the <code>noauto</code> option. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/fstab</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/fstab</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/fstab</code></strong><strong>Mounting rules for <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot</span> and <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot/efi</span></strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>... /dev/nvme0n1p1 /boot/efi vfat noauto,noatime 1 2 bpool/BOOT/gentoo /boot zfs noauto,nodev,relatime 1 2 ... </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">fstab</span> for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/fstab">here</a>.</div></li></ol> <h3><span class="mw-headline" id="Configure_the_Network">Configure the Network</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=9" title="Edit section: Configure the Network">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Set the computer's name: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>echo 'hostname="foo"' &gt; /etc/conf.d/hostname</code></div></div></li> <li>Install a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">DHCP</span> client: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the net-misc/dhcpcd package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/net-misc/dhcpcd"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">net-misc/dhcpcd</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Install wireless networking tools: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the net-wireless/iw package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/net-wireless/iw"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">net-wireless/iw</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the net-wireless/wpa_supplicant package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/net-wireless/wpa_supplicant"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">net-wireless/wpa_supplicant</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ol> <h3><span class="mw-headline" id="Install_systemd">Install systemd</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=10" title="Edit section: Install systemd">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_systemd">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">systemd</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">systemd</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>USE</var> variable for systemd support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>... USE=&quot;...systemd...&quot; ... </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Update the system with <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">systemd</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div></li> <li>Create <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/mtab</span> as a symlink to <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/proc/self/mounts</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>ln -sf /proc/self/mounts /etc/mtab</code></div></div></li> <li>Create a machine ID: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemd-machine-id-setup</code></div></div></li> <li>Create a hostname: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>hostnamectl set-hostname foo</code></div></div></li> <li>Enable the services needed to mount <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> filesystems automatically: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemctl enable zfs.target </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemctl enable zfs-import-cache </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemctl enable zfs-mount </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemctl enable zfs-import.target </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemctl enable zfs-import-scan</code></div></div></li> <li>Create a service to import <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot</span> automatically and enable it: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/systemd/system/zfs-import-bpool.service</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/systemd/system/zfs-import-bpool.service</code></strong><strong>Systemd service to automatically import <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot</span></strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>[Unit] DefaultDependencies=no Before=zfs-import-scan.service Before=zfs-import-cache.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/sbin/zpool import -N -o cachefile=none bpool [Install] WantedBy=zfs-import.target </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">zfs-import-bpool.service</span> for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/systemd/system/zfs-import-bpool.service">here</a>.</div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemctl enable zfs-import-bpool.service</code></div></div></li> <li>Create a service to mount <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/home</span> automatically and enable it: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/systemd/system/zfskey-home.service</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/systemd/system/zfskey-home.service</code></strong><strong>Systemd service to automatically import <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/home</span></strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>[Unit] Description=Load rpool/ROOT/home encryption keys Before=systemd-user-sessions.service Before=zfs-mount.service After=zfs-import.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/bash -c &#39;systemd-ask-password &quot;Encrypted ZFS password for rpool/ROOT/home&quot; --no-tty </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">zfskey-home.service</span> for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/systemd/system/zfskey-home.service">here</a>.</div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>systemctl enable zfskey-home.service</code></div></div></li></ol> <h3><span class="mw-headline" id="Install_GRUB">Install GRUB</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=11" title="Edit section: Install GRUB">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>This guide uses <a href="/wiki/GRUB" title="GRUB">GRUB</a> as a boot loader. </p> <ol><li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to install <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span> for the <code>efi-64</code> platform: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>GRUB_PLATFORMS</var> variable for EFI-64 platform</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>... GRUB_PLATFORMS=&quot;efi-64&quot; ... </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Mount the <a href="/wiki/EFI_System_Partition" title="EFI System Partition"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">EFI System Partition</span></a> partition: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>mkdir /boot/efi </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>mount /boot/efi</code></div></div></li> <li>Emerge <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-boot/grub package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-boot/grub"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-boot/grub</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> and <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-boot/os-prober package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-boot/os-prober"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-boot/os-prober</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> to allow <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span> to detect Windows 10: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-boot/grub package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-boot/grub"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-boot/grub</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-boot/os-prober package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-boot/os-prober"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-boot/os-prober</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Get <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB</span> to probe the <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot</span> partition: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>grub-probe /boot</code></div>zfs</div> <div class="alert alert-danger gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-exclamation-triangle"></i> Warning</strong><br />The above command <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">must</span> return <code>ZFS</code>, if not, something is wrong and the system will not boot.</div></li> <li>Add parameters to the kernel command line in order to boot from a <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> partition: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>vim /etc/default/grub</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/default/grub</code></strong><strong>Setting the <var>GRUB_CMDLINE_LINUX</var> variable to boot from ZFS</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>... GRUB_CMDLINE_LINUX=&quot;dozfs real_root=ZFS=rpool/ROOT/gentoo&quot; ... </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/default/grub</span> for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/default/grub">here</a>.</div></li> <li>Create the <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot/grub</span> directory: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>mkdir /boot/grub</code></div></div></li> <li>Generate the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB</span> configuration file: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>grub-mkconfig -o /boot/grub/grub.cfg</code></div></div></li> <li>Check that the configuration file includes instructions to load the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> module: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>grep 'insmod zfs' /boot/grub/grub.cfg </code></div>insmod zfs</div></li> <li>Install the bootloader: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Gentoo --recheck --no-floppy</code></div></div></li> <li>Check if the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span> module for <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB</span> has been installed: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>ls /boot/grub/*/zfs.mod </code></div>/boot/grub/x86_64-efi/zfs.mod</div></li> <li>Unmount the boot partitions: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>umount /boot/efi </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>umount /boot</code></div></div></li> <li>Allow <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">bpool/BOOT/gentoo</span> to be managed by legacy tools, such as <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB</span> and the <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/fstab</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>zfs set mountpoint=legacy bpool/BOOT/gentoo</code></div></div></li></ol> <h3><span class="mw-headline" id="User_Accounts">User Accounts</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=12" title="Edit section: User Accounts">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Secure the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">root</span> account with a strong password: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>passwd</code></div></div></li> <li>Create a regular user: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>useradd -m -G audio,cdrom,portage,usb,users,video,wheel -s /bin/bash foo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>passwd foo</code></div></div></li></ol> <h3><span class="mw-headline" id="First_ZFS_snapshot">First ZFS snapshot</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=13" title="Edit section: First ZFS snapshot">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Create a first <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS snapshot</span>. If anythong goes wrong afterwards, it will serve as a backup of a the freshly installed system. </p> <ol><li>Create a snapshot of the boot filesystem: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs snapshot bpool/BOOT/gentoo@install</code></div></div></li> <li>Create a snapshot of the root filesystem: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs snapshot rpool/ROOT/gentoo@install</code></div></div></li> <li>Create a snapshot of the home filesystem: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs snapshot rpool/ROOT/home@install</code></div></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />The following commands can be used to manage snapshots: <ul><li>Create: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs snapshot bpool/BOOT/gentoo@install</code></div></div></li> <li>List: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs list -t all</code></div></div></li> <li>Rollback: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs rollback bpool/BOOT/gentoo@install</code></div></div></li> <li>Clone: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs clone bpool/BOOT/gentoo@install bpool/BOOT/gentoo@install_backup</code></div></div></li> <li>Rename: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs rename bpool/BOOT/gentoo@install_backup bpool/BOOT/gentoo@original_install</code></div></div></li> <li>Destroy: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs destroy bpool/BOOT/gentoo@install</code></div></div></li></ul></div></li></ol> <h3><span class="mw-headline" id="Rebooting">Rebooting</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=14" title="Edit section: Rebooting">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Exit the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">chroot</span> environment: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">(chroot) root #</code><code>exit</code></div></div></li> <li>Unmount all mounted partitions: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cd </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>umount -l /mnt/gentoo/{dev,sys,proc,run} </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>umount -R /mnt/gentoo/home </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>umount -R /mnt/gentoo</code></div></div></li> <li>Change the mountpoint of the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS filesystems</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set mountpoint=/ rpool/ROOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set mountpoint=/home rpool/ROOT/home</code></div></div></li> <li>Reboot into the Gentoo environment: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>reboot</code></div></div></li> <li>Remove the downloaded <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">stage3</span> files: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm /stage3-amd64-systemd-20191223.tar.bz2</code></div></div></li> <li>If <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">systemd</span> gives errors regarding the locales, run: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>localectl set-locale LANG=en_US.UTF-8</code></div></div></li></ol> <h3><span class="mw-headline" id="FUSE">FUSE</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=15" title="Edit section: FUSE">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_FUSE">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">FUSE</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Install the userspace <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">FUSE</span> tools: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/fuse package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/fuse"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/fuse</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ol> <h3><span class="mw-headline" id="Sudo">Sudo</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=16" title="Edit section: Sudo">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <ol><li>Enable the <code>offensive</code> <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USE</span> flag to get funny replies when typing in wrong passwords: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo “<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-admin/sudo package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-admin/sudo"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-admin/sudo</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> offensive” &gt;&gt; /etc/portage/package.use/sudo</code></div></div></li> <li>Install <a href="/wiki/Sudo" title="Sudo"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">sudo</span></a>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-admin/sudo package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-admin/sudo"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-admin/sudo</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Grant administrator privileges to all the users of the <code>wheel</code> group by editing the <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/sudoers</span> file: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>visudo</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/sudoers</code></strong><strong>Modify administrator privileges</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-000002DF-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E0-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E1-QINU`&quot;&#39; </pre></div></li> <li>Enable bash completion with sudo: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo "complete -cf sudo" &gt;&gt; $HOME/.bashrc</code></div></div></li> <li>Allow X applications to be run with sudo: <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>xhost local:root</code></div></div></li></ol> <h3><span class="mw-headline" id="AMD_Graphics">AMD Graphics</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=17" title="Edit section: AMD Graphics">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Note: </p><p><a rel="nofollow" class="external free" href="https://wiki.gentoo.org/wiki/AMDGPU">https://wiki.gentoo.org/wiki/AMDGPU</a> <a rel="nofollow" class="external free" href="https://linux-hardware.org/?id=pci%3A1002-13c0-1043-8877">https://linux-hardware.org/?id=pci%3A1002-13c0-1043-8877</a> <a rel="nofollow" class="external free" href="https://wiki.gentoo.org/wiki/Radeon">https://wiki.gentoo.org/wiki/Radeon</a> <a rel="nofollow" class="external free" href="https://wiki.archlinux.org/title/AMDGPU">https://wiki.archlinux.org/title/AMDGPU</a> </p><p><br /> Configure the drivers for the Intel Graphics Chip. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_Intel_graphics">above</a>, to enable the Intel graphics support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to globally enable Intel graphics support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>VIDEO_CARDS</var> variable for Intel support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-000002E4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002E6-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Update the system to reinstall packages with Intel graphics support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div></li> <li>If needed, force <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Xorg</span> to load the modesetting driver: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/X11/xorg.conf.d/20-modesetting.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/X11/xorg.conf.d/20-modesetting.conf</code></strong><strong>Force modesetting DDX</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-000002E9-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EA-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EB-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EC-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002ED-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002EE-QINU`&quot;&#39; </pre></div></li> <li>Install the Intel userland GPU tools: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-apps/igt-gpu-tools package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-apps/igt-gpu-tools"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-apps/igt-gpu-tools</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/igt-gpu-tools</code></div></div></li></ol> <h3><span class="mw-headline" id="Xorg">Xorg</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=18" title="Edit section: Xorg">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure the <a href="/wiki/Xorg" title="Xorg"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Xorg</span></a> X server. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_Xorg">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Xorg</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Xorg</span> support and set the drivers for input devices: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>USE</var> variable for X support and configure <var>INPUT_DEVICES</var></strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-000002F2-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F3-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F4-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F5-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-000002F6-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Install <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Xorg</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-base/xorg-server package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-base/xorg-server"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-base/xorg-server</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Update the environment settings and source the profile: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>env-update &amp;&amp; source /etc/profile</code></div></div></li> <li>Install packages to test if the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">X server</span> is working: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-wm/twm package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-wm/twm"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-wm/twm</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-terms/xterm package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-terms/xterm"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-terms/xterm</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Install package to test if the 3D acceleration is working: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge --ask <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-apps/mesa-progs package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-apps/mesa-progs"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-apps/mesa-progs</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Test if the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">X server</span> is working: <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>startx</code></div></div></li> <li>Test if the 3D acceleration is working: <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>glxinfo | grep rendering</code></div><pre>direct rendering: Yes</pre></div> <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>glxgears</code></div></div></li> <li>Exit the X environment: <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>exit</code></div></div></li> <li>Remove the packages installed for testing: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -Cav <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-wm/twm package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-wm/twm"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-wm/twm</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-terms/xterm package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-terms/xterm"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-terms/xterm</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the x11-apps/mesa-progs package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/x11-apps/mesa-progs"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">x11-apps/mesa-progs</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Update the system to reinstall packages with <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">X</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div></li></ol> <h3><span class="mw-headline" id="Wifi">Wifi</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=19" title="Edit section: Wifi">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure the <a href="/wiki/Wifi" class="mw-redirect" title="Wifi"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Wifi</span></a> adapter. </p> <ol><li>Identify the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Wifi</span> adapter: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>dmesg | grep -i -E '3b:00.0|wlan|iwl|80211'</code></div><pre>Detected Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW), REV=0x340</pre></div></li> <li>According to this table<sup id="cite_ref-iwlwifi_firmware_13-0" class="reference"><a href="#cite_note-iwlwifi_firmware-13">&#91;13&#93;</a></sup>: <ul><li>The module required to control this adapter is <a href="/wiki/Iwlwifi" title="Iwlwifi">iwlmvm</a>.</li> <li>The lowest Linux kernel compatible is 5.1+ (current stable kernels, 4.19.*, are not compatible).</li></ul></li> <li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_Wifi">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Wifi</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li></ol> <h3><span class="mw-headline" id="NetworkManager">NetworkManager</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=20" title="Edit section: NetworkManager">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure <a href="/wiki/NetworkManager" title="NetworkManager"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NetworkManager</span></a> support. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_Networkmanager">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NetworkManager</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NetworkManager</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>USE</var> variable for NetworkManager support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000303-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000304-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000305-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Update the system to reinstall packages with <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NetworkManager</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div></li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NetworkManager</span> to be started at boot time: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>systemctl enable NetworkManager</code></div></div></li></ol> <h3><span class="mw-headline" id="GNOME_Light">GNOME Light</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=21" title="Edit section: GNOME Light">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Install the <a href="/wiki/GNOME/Guide" title="GNOME/Guide"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span></a> <a href="/wiki/Desktop_environment" title="Desktop environment"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">desktop environment</span></a>. </p> <ol><li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>USE</var> variable for GNOME support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000308-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000309-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000030A-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Emerge <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME Light</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-base/gnome-light package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-base/gnome-light"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-base/gnome-light</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Update the environment variables and reload the environment <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>env-update &amp;&amp; source /etc/profile</code></div></div></li> <li>Verify that the <code>plugdev</code> group exists and add each <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span> user to it: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>getent group plugdev</code></div><pre>plugdev:x:272:</pre></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>gpasswd -a foo plugdev </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>gpasswd -a root plugdev</code></div></div></li> <li>Enable <a href="/wiki/GNOME/GDM" title="GNOME/GDM"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GDM</span></a> on boot: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>systemctl enable gdm.service</code></div></div></li> <li>Install GNOME tweaks and shell extensions for <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME 3</span> customization: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-extra/gnome-tweaks package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-extra/gnome-tweaks"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-extra/gnome-tweaks</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-extra/gnome-shell-extensions package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-extra/gnome-shell-extensions"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-extra/gnome-shell-extensions</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Provide admin privileges in system dialogs to the users in the wheel group: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/polkit-1/rules.d/49-wheel.rules</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/polkit-1/rules.d/49-wheel.rules</code></strong><strong>Administrator wheel group</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000311-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000312-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000313-QINU`&quot;&#39; </pre></div></li> <li>Allow the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">root</span> user to launch X window applications: <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>vim ~/.bashrc</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/home/foo/.bashrc</code></strong><strong>X windows as root</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000316-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000317-QINU`&quot;&#39; </pre></div></li> <li>Enable <a href="/wiki/GNOME/GDM#Enable_tap_to_click_in_GDM" title="GNOME/GDM">tap to click</a> in <a href="/wiki/GNOME/GDM" title="GNOME/GDM"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GDM</span></a>: <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>xhost +SI:localuser:gdm</code></div><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true</code></div></div></li></ol> <h3><span class="mw-headline" id="GNOME">GNOME</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=22" title="Edit section: GNOME">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>From the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span> packages not installed by <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME Light</span>, install those that are really needed. </p> <ol><li>Install <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-extra/gnome-system-monitor package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-extra/gnome-system-monitor"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-extra/gnome-system-monitor</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-extra/gnome-system-monitor package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-extra/gnome-system-monitor"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-extra/gnome-system-monitor</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Install <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-block/gparted package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-block/gparted"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-block/gparted</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-block/gparted package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-block/gparted"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-block/gparted</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/gparted </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-block/gparted package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-block/gparted"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-block/gparted</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ol> <h3><span class="mw-headline" id="Chromium">Chromium</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=23" title="Edit section: Chromium">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Install the <a href="/wiki/Chromium" title="Chromium"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Chromium</span></a> web browser. </p> <ol><li>Unmask the latest Chromium ebuild: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo “<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the www-client/chromium package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/www-client/chromium"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">www-client/chromium</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64” &gt;&gt; /etc/portage/package.accept_keywords/chromium</code></div></div></li> <li>Emerge Chromium: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the www-client/chromium package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/www-client/chromium"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">www-client/chromium</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Open Chromium in incognito mode by default: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cp /usr/share/applications/chromium-browser-chromium.desktop ~/.local/share/applications/</code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim ~/.local/share/applications/chromium-browser-chromium.desktop</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/home/foo/.local/share/applications/chromium-browser-chromium.desktop</code></strong><strong>Launcher for Chromium in incognito mode</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000321-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000322-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000323-QINU`&quot;&#39; </pre></div></li> <li>Enable click-to-install <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span> Shell Extensions through Chromium: <ul><li>Install the required browser <a rel="nofollow" class="external text" href="https://chrome.google.com/webstore/detail/gphhapmejobijbbhgpjhcjognlahblep">add-on</a> through the Chrome store.</li> <li>Emerge the backend: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-extra/chrome-gnome-shell package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-extra/chrome-gnome-shell"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-extra/chrome-gnome-shell</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ul></li></ol> <h3><span class="mw-headline" id="Firefox">Firefox</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=24" title="Edit section: Firefox">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Install the <a href="/wiki/Firefox" title="Firefox"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Firefox</span></a> web browser. </p> <ol><li>Unmask the latest Firefox ebuild: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo “<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the www-client/firefox package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/www-client/firefox"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">www-client/firefox</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ~amd64” &gt;&gt; /etc/portage/package.accept_keywords/firefox</code></div></div></li> <li>Emerge Firefox: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the www-client/firefox package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/www-client/firefox"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">www-client/firefox</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Open Firefox in incognito mode by default: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cp /usr/share/applications/firefox.desktop ~/.local/share/applications/</code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim ~/.local/share/applications/firefox.desktop</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/home/foo/.local/share/applications/firefox.desktop</code></strong><strong>Launcher for Firefox in incognito mode</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000329-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000032A-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000032B-QINU`&quot;&#39; </pre></div></li> <li>Enable click-to-install <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span> Shell Extensions through Firefox: <ul><li>Install the required browser <a rel="nofollow" class="external text" href="https://addons.mozilla.org/firefox/addon/gnome-shell-integration/">add-on</a> through Add-ons for Firefox.</li> <li>Emerge the backend: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-extra/chrome-gnome-shell package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-extra/chrome-gnome-shell"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-extra/chrome-gnome-shell</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ul></li></ol> <h3><span class="mw-headline" id="Hardware_Clock">Hardware Clock</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=25" title="Edit section: Hardware Clock">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure <a href="/wiki/System_time#Hardware_clock" title="System time"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Hardware Clock</span></a> support. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_Hardware_Clock">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Hardware Clock</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Check that the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Hardware Clock</span> is in use: <div class="cmd-box"><div><code style="color: #4E9A06; user-select: none; font-weight: bold;">user <span style="color:royalblue;">$</span></code><code>timedatectl | grep "RTC time"</code></div></div></li> <li>Configure <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span> automatically update the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Hardware Clock</span> from online servers: gnome-control-center &gt; Details &gt; Date &amp; Time &gt; Automatic Date &amp; Time (set on).</li></ol> <h3><span class="mw-headline" id="Localization">Localization</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=26" title="Edit section: Localization">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Change some <a href="/wiki/Localization/Guide" title="Localization/Guide">language specific settings</a>. </p> <ol><li>Modify the keyboard layout for the console: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>localectl list-keymaps </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>localectl set-keymap es </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>localectl | grep "VC Keymap"</code></div><pre> VC Keymap: es</pre></div></li> <li>Modify the keyboard layout for the X server: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>localectl list-x11-keymap-layouts </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>localectl set-x11-keymap es </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>localectl | grep "X11 Layout"</code></div><pre> X11 Layout: es</pre></div></li> <li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to enable systemwide localization: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>LINGUAS</var> and <var>L11N</var> variables for systemwide localization</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000331-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000332-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000333-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000334-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Update the system with with systemwide localization: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div></li></ol> <h3><span class="mw-headline" id="Loading_of_CPU_microcode">Loading of CPU microcode</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=27" title="Edit section: Loading of CPU microcode">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p><a href="/wiki/Microcode" title="Microcode"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">CPU microcode</span></a> for the <a href="/wiki/Intel_microcode" title="Intel microcode"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Intel CPU</span></a> will be loaded by GRUB at boot time. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_Microcode">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">CPU microcode</span> loading support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Install the microcode firmware package and the manipulation tool: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-firmware/intel-microcode package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-firmware/intel-microcode"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-firmware/intel-microcode</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> hostonly" &gt;&gt; /etc/portage/package.use/intel-microcode </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-firmware/intel-microcode package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-firmware/intel-microcode"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-firmware/intel-microcode</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/iucode_tool package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/iucode_tool"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/iucode_tool</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Mount the <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot</span> and <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot/efi</span> partitions: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount /boot </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount /boot/efi</code></div></div></li> <li>Manually generate the microcode cpio archive: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>iucode_tool -S --write-earlyfw=/boot/early_ucode.cpio /lib/firmware/intel-ucode/*</code></div><pre>iucode_tool: system has processor(s) with signature 0x000906ed</pre><pre>iucode_tool: Writing selected microcodes to: /boot/early_ucode.cpio</pre></div> <div class="alert alert-info gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-sticky-note-o fa-rotate-180"></i> Note</strong><br /><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB2</span> will automatically try to load any file named <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/boot/early_ucode.cpio</span>.</div></li> <li>Regenerate the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GRUB</span> configuration file: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>grub-mkconfig -o /boot/grub/grub.cfg</code></div></div></li> <li>After reboot, check that the microcode has been loaded: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>dmesg | grep microcode </code></div><pre>[ 0.000000] microcode: microcode updated early to revision 0xca, date = 2019-10-03</pre><pre>[ 2.623235] microcode: sig=0x906ed, pf=0x20, revision=0xca</pre><pre>[ 2.623592] microcode: Microcode Update Driver: v2.2.</pre></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>grep microcode /proc/cpuinfo </code></div><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre><pre>microcode : 0xca</pre></div></li></ol> <h3><span class="mw-headline" id="USB_support">USB support</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=28" title="Edit section: USB support">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure <a href="/wiki/USB/Guide" title="USB/Guide">support</a> for <a href="/wiki/USB" title="USB"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USB</span></a> devices. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_USB">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USB</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Install the <a href="/wiki/Usbutils" title="Usbutils"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">usbutils</span></a> to be able to query the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USB</span> interfaces: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/usbutils package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/usbutils"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/usbutils</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ol> <h3><span class="mw-headline" id="NTFS_support">NTFS support</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=29" title="Edit section: NTFS support">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure <a href="/wiki/NTFS" title="NTFS"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NTFS</span></a> read and write support. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_NTFS">above</a>, to enable in-kernel <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">NTFS</span> read and <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">FUSE</span> write support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">USE</span> flags as needed: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/ntfs3g package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/ntfs3g"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/ntfs3g</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ntfsdecrypt suid" &gt;&gt; /etc/portage/package.use/ntfs3g</code></div></div></li> <li>Emerge <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/ntfs3g package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/ntfs3g"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/ntfs3g</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/ntfs3g package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/ntfs3g"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/ntfs3g</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ol> <h3><span class="mw-headline" id="tmpfs_support">tmpfs support</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=30" title="Edit section: tmpfs support">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure <a href="/wiki/Tmpfs" title="Tmpfs"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">tmpfs</span></a> support. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_tmpfs">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">tmpfs</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Systemd</span> will automatically mount <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/tmp</span> as <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">tmpfs</span>. Place <a href="/wiki/Portage_TMPDIR_on_tmpfs" title="Portage TMPDIR on tmpfs"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">portage's tmpdir</span></a> inside <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/tmp</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /mnt/gentoo/etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>PORTAGE_TMPDIR</var> variable for tmpfs use</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000353-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000354-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000355-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Mount as <a href="/wiki/Tmpfs" title="Tmpfs"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">tmpfs</span></a> any other appropriate directory, by using <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/etc/fstab</span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/fstab</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/fstab</code></strong><strong>Mounting rules for tmpfs directories</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-00000358-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-00000359-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000035A-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">fstab</span> for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/fstab">here</a>.</div></li></ol> <h3><span class="mw-headline" id="ALSA_and_PulseAudio_support">ALSA and PulseAudio support</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=31" title="Edit section: ALSA and PulseAudio support">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Configure <a href="/wiki/ALSA" title="ALSA"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ALSA</span></a> and <a href="/wiki/PulseAudio" title="PulseAudio"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">PulseAudio</span></a> support. </p> <ol><li>Edit <span style="font-family: monospace; font-size: 95%; color: #3c763d; font-weight: 600;">/usr/src/linux/.config</span>, as explained <a href="#Kernel_audio">above</a>, to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ALSA</span> and <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">PulseAudio</span> support. <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />Working kernel configuration files, for different kernel versions, can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/tree/master/usr/src">here</a>.</div></li> <li>Update the <a href="/wiki/Kernel" title="Kernel"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Kernel</span></a>, as explained <a href="#Kernel_Update">below</a>.</li> <li>Edit <a href="/wiki//etc/portage/make.conf" title="/etc/portage/make.conf">make.conf</a> to enable <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ALSA</span> and <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">PulseAudio</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/portage/make.conf</code></div></div> <div class="box-caption"><span class="label" style="margin-right: .5em; background-color: #54487A">FILE</span> <strong><code style="border: none; background: none; color: #54487A; margin-right: .5em;">/etc/portage/make.conf</code></strong><strong>Setting the <var>USE</var> variable for ALSA and PulseAudio support</strong></div> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>&#39;&quot;`UNIQ--pre-0000035D-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000035E-QINU`&quot;&#39;&#39;&quot;`UNIQ--pre-0000035F-QINU`&quot;&#39; </pre></div> <div class="alert alert-success gw-box" style="padding-top: 8px; padding-bottom: 8px;"><strong><i class="fa fa-check-circle"></i> Tip</strong><br />A working make.conf for this system can be found <a rel="nofollow" class="external text" href="https://github.com/bugalo/gentoo_dell_xps_15_7590/blob/master/etc/portage/make.conf">here</a>.</div></li> <li>Update the system to reinstall packages with <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ALSA</span> and <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">PulseAudio</span> support: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN @world &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div></li> <li>Emerge <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the media-sound/alsa-utils package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/media-sound/alsa-utils"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">media-sound/alsa-utils</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the media-sound/alsa-utils package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/media-sound/alsa-utils"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">media-sound/alsa-utils</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li>Add <var>ffmpeg</var> support to <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the media-plugins/alsa-plugins package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/media-plugins/alsa-plugins"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">media-plugins/alsa-plugins</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> and emerge it: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo "<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the media-plugins/alsa-plugins package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/media-plugins/alsa-plugins"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">media-plugins/alsa-plugins</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> ffmpeg" &gt;&gt; /etc/portage/package.use/alsa-plugins</code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the media-plugins/alsa-plugins package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/media-plugins/alsa-plugins"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">media-plugins/alsa-plugins</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li></ol> <h3><span class="mw-headline" id="External_Monitors">External Monitors</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=32" title="Edit section: External Monitors">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>in <a href="/wiki/GNOME" title="GNOME"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span></a> <a href="/wiki/Wayland" title="Wayland"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Wayland</span></a>, when using an external non-<span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">HiDPI</span> monitor, it will be scaled, by default, as the laptop's screen, and this will make either the windows too big in the external monitor, or too small in the laptop's screen. In order to allow a different scaling in each screen: </p> <ol><li>Open <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME</span>'s dconf-editor.</li> <li>Go to <code>/org/gnome/mutter/experimental-features</code>.</li> <li>Disable "Use default value".</li> <li>write custom value: <code>['scale-monitor-framebuffer', 'x11-randr-fractional-scaling']</code>.</li></ol> <h3><span id="QEMU/KVM"></span><span class="mw-headline" id="QEMU.2FKVM">QEMU/KVM</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=33" title="Edit section: QEMU/KVM">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p><a href="/wiki/QEMU" title="QEMU"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">QEMU</span> and <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">KVM</span></a>. </p> <ol><li>Edit .conf.</li> <li>Edit USE</li> <li><div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the app-emulation/qemu package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/app-emulation/qemu"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">app-emulation/qemu</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div></li> <li><div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>gpasswd -a foo kvm</code></div></div></li> <li><div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the gnome-extra/gnome-boxes package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/gnome-extra/gnome-boxes"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">gnome-extra/gnome-boxes</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span></code></div></div> <ul><li>Apply patch or it will not compile.</li></ul></li></ol> <h3><span class="mw-headline" id="ZFS_automatic_snapshots">ZFS automatic snapshots</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=34" title="Edit section: ZFS automatic snapshots">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p><span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs-auto-snapshot package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs-auto-snapshot"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs-auto-snapshot</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> provides scripts used to rotate periodic snapshots through <a href="/wiki/Cron" title="Cron"><span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">cron</span></a> jobs. </p> <ol><li>Install <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-process/cronie package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-process/cronie"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-process/cronie</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> and <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs-auto-snapshot package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs-auto-snapshot"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs-auto-snapshot</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-process/cronie package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-process/cronie"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-process/cronie</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-fs/zfs-auto-snapshot package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-fs/zfs-auto-snapshot"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-fs/zfs-auto-snapshot</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div></li> <li>Disable the default cron job that would create a frequent snapshot each 15 minutes: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm /etc/cron.d/zfs-auto-snapshot</code></div></div></li> <li>Enable and start the cronie systemd service: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>systemctl enable cronie.service </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>systemctl start cronie.service </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>systemctl status cronie.service</code></div></div></li> <li>Set the <code>com.sun:auto-snapshot</code> property to <code>true</code> for each <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">zpool</span> of interest: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot=true bpool/BOOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot=true rpool/ROOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot=true rpool/ROOT/home</code></div></div></li> <li>Enable the desired periodic auto-snaphot jobs on each pool: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:hourly=true bpool/BOOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:daily=true bpool/BOOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:weekly=true bpool/BOOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:monthly=true bpool/BOOT/gentoo</code></div></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:hourly=true rpool/ROOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:daily=true rpool/ROOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:weekly=true rpool/ROOT/gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:monthly=true rpool/ROOT/gentoo</code></div></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:hourly=true rpool/ROOT/home </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:daily=true rpool/ROOT/home </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:weekly=true rpool/ROOT/home </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>zfs set com.sun:auto-snapshot:monthly=true rpool/ROOT/home</code></div></div></li> <li>Modify the cron jobs as needed: <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/cron.hourly/zfs-auto-snapshot </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/cron.daily/zfs-auto-snapshot </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/cron.weekly/zfs-auto-snapshot </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>vim /etc/cron.monthly/zfs-auto-snapshot</code></div></div></li></ol> <h3><span class="mw-headline" id="To_Do...">To Do...</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=35" title="Edit section: To Do...">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Check the firmware used by rtl8153 </p><p><a href="/wiki/Linux_firmware" title="Linux firmware">Linux_firmware</a> </p><p><a rel="nofollow" class="external free" href="https://wiki.archlinux.org/index.php/Intel_graphics#Enable_GuC_/_HuC_firmware_loading">https://wiki.archlinux.org/index.php/Intel_graphics#Enable_GuC_/_HuC_firmware_loading</a> </p><p><a rel="nofollow" class="external free" href="https://gist.github.com/Brainiarc7/aa43570f512906e882ad6cdd835efe57">https://gist.github.com/Brainiarc7/aa43570f512906e882ad6cdd835efe57</a> </p> <h3><span class="mw-headline" id="Update_the_Linux_kernel">Update the Linux kernel</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=36" title="Edit section: Update the Linux kernel">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount /boot </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount /boot/efi </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge --sync </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/gentoo-sources package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/gentoo-sources</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge --depclean </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge @preserved-rebuild </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>revdep-rebuild </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>eselect kernel list </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>eselect kernel set 2</code></div></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cd /usr/src/linux </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>cp /usr/src/linux-`uname -r`/.config /usr/src/linux/ </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>make syncconfig </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>make modules_prepare </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>make -j16 </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>make modules_install </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>make install </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge --ask @module-rebuild </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>genkernel initramfs --firmware --kernel-config=/usr/src/linux/.config --keymap --makeopts=-j16 --mountboot --no-clean --zfs </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>grub-mkconfig -o /boot/grub/grub.cfg</code></div></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>eclean-kernel -pn 2</code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>eclean-kernel -n 2</code></div></div> <h3><span class="mw-headline" id="Removal_of_old_kernels">Removal of old kernels</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=37" title="Edit section: Removal of old kernels">edit</a><span class="mw-editsection-bracket">]</span></span></h3> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount /boot </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>mount /boot/efi </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -Cav =<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-kernel/gentoo-sources package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-kernel/gentoo-sources</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>-X.Y.Z </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge --depclean </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge @preserved-rebuild </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>revdep-rebuild</code></div></div> <div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm -r /usr/src/linux-X.Y.Z </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm -r /lib/modules/X.Y.Z </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm /boot/config-X.Y.Z-gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm /boot/initramfs-X.Y.Z-gentoo.img </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm /boot/System.map-X.Y.Z-gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>rm /boot/vmlinuz-X.Y.Z-gentoo </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>grub-mkconfig -o /boot/grub/grub.cfg</code></div></div> <h2><span class="mw-headline" id="Troubleshooting">Troubleshooting</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=38" title="Edit section: Troubleshooting">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <h3><span class="mw-headline" id="Gparted_reporting_the_whole_disk_as_a_single_Zpool">Gparted reporting the whole disk as a single Zpool</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=39" title="Edit section: Gparted reporting the whole disk as a single Zpool">edit</a><span class="mw-editsection-bracket">]</span></span></h3><p> At the time of writing this, <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GParted</span> reports the whole disk as a single <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">Zpool</span> when any of its partitions is formatted with <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">ZFS</span><sup id="cite_ref-14" class="reference"><a href="#cite_note-14">&#91;14&#93;</a></sup>. This is not happening in other disk utilities such as <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">GNOME Disks</span>, <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">parted</span> or <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">fdisk</span>. This is due to a bug of the <span style="font-family: monospace; font-size: 95%; font-weight: bold;" class="tripleclick-separator">blkid</span> utility, in its stable version, which wrongly reports the disk type. Updating <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/util-linux package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/util-linux"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/util-linux</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> to its latest version fixes this problem: </p><div class="cmd-box"><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>echo "=<span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/util-linux package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/util-linux"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/util-linux</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span>-2.35.1-r1 ~amd64" &gt;&gt; /etc/portage/package.accept_keywords/util-linux </code></div><div><code style="color: #ef2929; user-select: none; font-weight: bold;">root <span style="color:royalblue;">#</span></code><code>emerge -auvDN <span style="white-space: nowrap;" class="plainlinks" title="External link to https&#58;//packages.gentoo.org for the sys-apps/util-linux package."><a rel="nofollow" class="external text" href="https://packages.gentoo.org/packages/sys-apps/util-linux"><span style="font-family: monospace; font-size: 95%; color: MidnightBlue;">sys-apps/util-linux</span></a><span style="color: grey; margin-left: 0.1em; font-size: 70%;" class="fa fa-hdd-o fa-fw"></span></span> &amp;&amp; emerge --depclean &amp;&amp; emerge @preserved-rebuild &amp;&amp; revdep-rebuild</code></div></div> <h2><span class="mw-headline" id="See_also">See also</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=40" title="Edit section: See also">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <ul><li><a href="/wiki/Handbook:AMD64" title="Handbook:AMD64">Handbook:AMD64</a> — A handbook dedicated to installing and configuring Gentoo on the <b><span style="font-family: monospace; font-size: 95%; color: #54487a">amd64</span></b> architecture., an effort to centralize documentation into a coherent handbook.</li> <li><a href="/wiki/UEFI_Dual_boot_with_Windows_7/8" title="UEFI Dual boot with Windows 7/8">UEFI_Dual_boot_with_Windows_7/8</a> — describes how to dual boot Microsoft Windows on a UEFI computer.</li> <li><a href="/wiki/Sakaki%27s_EFI_Install_Guide" class="mw-redirect" title="Sakaki&#39;s EFI Install Guide">Sakaki%27s_EFI_Install_Guide</a></li> <li><a href="/wiki/Dell_XPS_15_9560" title="Dell XPS 15 9560">Dell_XPS_15_9560</a></li> <li><a href="/wiki/User:Monsieurp/Gentoo_Linux_on_ZFS" title="User:Monsieurp/Gentoo Linux on ZFS">User:Monsieurp/Gentoo_Linux_on_ZFS</a></li> <li><a href="/wiki/ZFS" title="ZFS">ZFS</a> — a next generation <a href="/wiki/Filesystem" title="Filesystem">filesystem</a> created by Matthew Ahrens and Jeff Bonwick.</li></ul> <h2><span class="mw-headline" id="External_resources">External resources</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=41" title="Edit section: External resources">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <ul><li><a rel="nofollow" class="external free" href="https://github.com/bugalo/gentoo_dell_xps_15_7590">https://github.com/bugalo/gentoo_dell_xps_15_7590</a></li> <li><a rel="nofollow" class="external free" href="https://wiki.archlinux.org/index.php/Dell_XPS_15_7590">https://wiki.archlinux.org/index.php/Dell_XPS_15_7590</a></li> <li><a rel="nofollow" class="external free" href="https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS">https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS</a></li> <li><a rel="nofollow" class="external free" href="https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation">https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation</a></li> <li><a rel="nofollow" class="external free" href="https://www.funtoo.org/ZFS_as_Root_Filesystem">https://www.funtoo.org/ZFS_as_Root_Filesystem</a></li> <li><a rel="nofollow" class="external free" href="https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/">https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/</a></li> <li><a rel="nofollow" class="external free" href="https://wiki.archlinux.org/index.php/ZFS">https://wiki.archlinux.org/index.php/ZFS</a></li> <li><a rel="nofollow" class="external free" href="https://github.com/zfsonlinux/zfs/issues/8810">https://github.com/zfsonlinux/zfs/issues/8810</a></li> <li><a rel="nofollow" class="external free" href="https://github.com/HankB/Linux_ZFS_Root/tree/master/Debian">https://github.com/HankB/Linux_ZFS_Root/tree/master/Debian</a></li> <li><a rel="nofollow" class="external free" href="https://wiki.archlinux.org/index.php/ZFS#Native_encryption">https://wiki.archlinux.org/index.php/ZFS#Native_encryption</a></li></ul> <h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=User:Bugalo/MSI_MPG_x870E_Edge_TI_Wifi_AMD_9950x3d&amp;action=edit&amp;section=42" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://help.ubuntu.com/stable/ubuntu-help/net-wireless-connect.html">Connect to a wireless network</a>, <a rel="nofollow" class="external text" href="https://help.ubuntu.com/">Official Ubuntu Documentation</a>. Retrieved on January 22nd, 2020.</span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://help.ubuntu.com/stable/ubuntu-help/net-wired-connect.html">Connect to a wired (Ethernet) network</a>, <a rel="nofollow" class="external text" href="https://help.ubuntu.com/">Official Ubuntu Documentation</a>. Retrieved on January 22nd, 2020.</span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://wiki.archlinux.org/index.php/ZFS#GRUB-compatible_pool_creation">ZFS: GRUB-compatible pool creation</a>, <a rel="nofollow" class="external text" href="https://wiki.archlinux.org/">ArchWiki</a>. Retrieved on January 22nd, 2020.</span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text">Richard Laager. <a rel="nofollow" class="external text" href="https://github.com/zfsonlinux/zfs/wiki/Debian-Buster-Root-on-ZFS">Debian Buster Root on ZFS</a>, <a rel="nofollow" class="external text" href="https://github.com/">GitHub</a>, December 27th, 2019. Retrieved on January 23rd, 2020.</span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text">numinit. <a rel="nofollow" class="external text" href="https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/">ZoL 0.8.0 encryption: don't encrypt the pool root!</a>, <a rel="nofollow" class="external text" href="https://www.reddit.com/">Reddit</a>, May, 2019. Retrieved on January 23rd, 2020.</span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">Patrick Kennedy. <a rel="nofollow" class="external text" href="https://www.servethehome.com/the-case-for-using-zfs-compression/">The Case For Using ZFS Compression</a>, <a rel="nofollow" class="external text" href="https://www.servethehome.com/">Serve The Home</a>, January 2nd, 2018. Retrieved on January 23rd, 2020.</span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text">populationless. <a rel="nofollow" class="external text" href="https://github.com/zfsonlinux/zfs/issues/8538">Cannot set 'bootfs' property when 'dnodesize' is set to anything but legacy #8538</a>, <a rel="nofollow" class="external text" href="https://github.com/">GitHub</a>, March 27th, 2019. Retrieved on January 23rd, 2020.</span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text">Laplacian. <a rel="nofollow" class="external text" href="https://crypto.stackexchange.com/questions/6842/how-to-choose-between-aes-ccm-and-aes-gcm-for-storage-volume-encryption/19446#19446">How to choose between AES-CCM and AES-GCM for storage volume encryption</a>, <a rel="nofollow" class="external text" href="https://crypto.stackexchange.com/">Cryptography Stack Exchange</a>, October 2nd, 2014. Retrieved on January 23rd, 2020.</span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text">Patrick Kennedy. <a rel="nofollow" class="external autonumber" href="https://github.com/openzfs/zfs/issues/1078#issuecomment-984056749">[1]</a>, <a rel="nofollow" class="external autonumber" href="https://github.com/openzfs/zfs/issues/1078#issuecomment-984056749">[2]</a>, November 5th, 2012. Retrieved on May 5th, 2025.</span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/x86-Options.html">x86 Options</a>, <a rel="nofollow" class="external text" href="https://gcc.gnu.org/">GCC, the GNU Compiler Collection</a>, October 2nd, 2014. Retrieved on January 24th, 2020.</span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text">Thomas Deutschmann. <a rel="nofollow" class="external text" href="https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=4e46cfcd6f50560a9e8c31163663940a99875e0c">ZFS: Change hostid handling</a>, <a rel="nofollow" class="external text" href="https://gitweb.gentoo.org/">Gentoo Git Repositories</a>, March 27th, 2019. Retrieved on January 24th, 2020.</span> </li> <li id="cite_note-zfs-0.8.0-12"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-zfs-0.8.0_12-0">12.0</a></sup> <sup><a href="#cite_ref-zfs-0.8.0_12-1">12.1</a></sup></span> <span class="reference-text">Brian Behlendorf. <a rel="nofollow" class="external text" href="https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.8.0">zfs-0.8.0</a>, <a rel="nofollow" class="external text" href="https://github.com/">GitHub</a>, May 23rd, 2019. Retrieved on January 25th, 2020.</span> </li> <li id="cite_note-iwlwifi_firmware-13"><span class="mw-cite-backlink"><a href="#cite_ref-iwlwifi_firmware_13-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>&lt;ref&gt;</code> tag; no text was provided for refs named <code>iwlwifi_firmware</code></span></li> <li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://gitlab.gnome.org/GNOME/gparted/issues/14">zfs partition wrongly shows occupying the whole disk</a>, <a rel="nofollow" class="external text" href="https://gitlab.gnome.org/GNOME">GNOME GitLab</a>. Retrieved on April 7th, 2020.</span> </li> </ol></div></div> '
Unix timestamp of change (timestamp)
1746524377