✏️ Starting notes on gentoo
This commit is contained in:
parent
79040f816d
commit
0b5ac25f35
3 changed files with 216 additions and 0 deletions
35
gentoo/gentoo_install_notes.txt
Normal file
35
gentoo/gentoo_install_notes.txt
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
A general speedrun guide to installing gentoo can be found at:
|
||||||
|
|
||||||
|
https://www.reddit.com/r/Gentoo/comments/td684v/need_help_for_first_time_setting_up_a_virtual/
|
||||||
|
|
||||||
|
Install a basic distribution-bin kernel first, then you can:
|
||||||
|
|
||||||
|
You can get your current compiler flags from:
|
||||||
|
|
||||||
|
zcat /proc/config.gz
|
||||||
|
|
||||||
|
You can just output it and then save it as a default that you have.
|
||||||
|
|
||||||
|
Also, you can find these same compiler flags in:
|
||||||
|
|
||||||
|
/usr/lib/modules/$(uname -r)/build/.config
|
||||||
|
|
||||||
|
You actually can use this in the /usr/src/linux-kernel-version
|
||||||
|
|
||||||
|
But you just want to make sure to run: `make olddefconfig` to update with new options/safe defaults before running the compiling make commands documented in the Gentoo Handbook.
|
||||||
|
|
||||||
|
Watch mental outlaws videos on configuring the kernel (one is more in depth than the others). Make notes on the options he changes and actually research the specific flags he configures in the handbook.
|
||||||
|
|
||||||
|
At some point you can adjust the number of threads the kernel can use, which apparently defaults to a high number. Your Ryzen has 24 threads, but you can find out specifically by running
|
||||||
|
|
||||||
|
```
|
||||||
|
grep -c processor /proc/cpuinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
Or:
|
||||||
|
|
||||||
|
```
|
||||||
|
lscpu
|
||||||
|
```
|
||||||
|
|
||||||
|
ANd looking at the "Thread(s) per core" section.
|
||||||
180
gentoo/kernel_compilation_defaults.md
Normal file
180
gentoo/kernel_compilation_defaults.md
Normal file
|
|
@ -0,0 +1,180 @@
|
||||||
|
# Kernel Compilation Defaults
|
||||||
|
|
||||||
|
This document contains some basic notes of which Kernel Customization Flags
|
||||||
|
Mental Outlaw recommends in his
|
||||||
|
[video](https://www.youtube.com/watch?v=NVWVHiLx1sU) on the topic. Keep in mind
|
||||||
|
that his video was done for a kernel 5 years ago at the time of this writing,
|
||||||
|
and so it is likely we'll have to adjust. This document is just to give us, a
|
||||||
|
potential new gentoo user, a baseline of what to focus on.
|
||||||
|
|
||||||
|
Firstly, however, let's talk about what we'll need to do prior to following his
|
||||||
|
guide. The
|
||||||
|
[Gentoo AMD64 Handbook Page on Kernel Configuration](https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel)
|
||||||
|
had extensive documentation and different methods for installing the Linux
|
||||||
|
Kernel. Prior to starting, it is probably a good idea to install the firmware:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
emerge --ask sys-kernel/linux-firmware && \
|
||||||
|
emerge --ask sys-firmware/sof-firmware
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterwards which there are methods using **installkernel** and **dracut** that
|
||||||
|
we followed first and we've documented elsewhere. This is to get the
|
||||||
|
distribution kernel installed, which we still recommend as a default method so
|
||||||
|
that you have a working kernel should you make a mistake in compiling your own.
|
||||||
|
|
||||||
|
Look at the link above or consult our other documentation on the subject should
|
||||||
|
you need to follow those instructions first.
|
||||||
|
|
||||||
|
## Installing Kernel Sources
|
||||||
|
|
||||||
|
```sh
|
||||||
|
emerge --ask sys-kernel/gentoo-sources
|
||||||
|
```
|
||||||
|
|
||||||
|
This installs kernel sources in `/usr/src/` using the specific kernel path. It
|
||||||
|
will not create a symbolic link by itself without the symlink USE flag being
|
||||||
|
enabled on the chosen kernel sources package.
|
||||||
|
|
||||||
|
It is conventional for a `/usr/src/linux` symlink to be maintained, such that it
|
||||||
|
refers to whichever sources correspond with the currently running kernel.
|
||||||
|
However, this symbolic link will not be created by default. An easy way to
|
||||||
|
create the symbolic link is to utilize eselect's kernel module.
|
||||||
|
|
||||||
|
For further information regarding the purpose of the symlink, and how to manage
|
||||||
|
it, please refer to
|
||||||
|
[Kernel/Upgrade](https://wiki.gentoo.org/wiki/Kernel/Upgrade).
|
||||||
|
|
||||||
|
First, list all installed kernels:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
eselect kernel list
|
||||||
|
```
|
||||||
|
|
||||||
|
And in order to create a symbolic link called linux, use:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
eselect kernel set 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Where 1 is the number on the list of the kernel you just built.
|
||||||
|
|
||||||
|
## Mental Outlaw's Config:
|
||||||
|
|
||||||
|
This is my interprestation of Mental Outlaw's Config, keep in mind I have
|
||||||
|
omitted or edited some things he mentions in the video as they do not pertain to
|
||||||
|
my particular use case.
|
||||||
|
|
||||||
|
Within the makemenuconfig:
|
||||||
|
|
||||||
|
General Setup >
|
||||||
|
|
||||||
|
> Kernel Compression Mode
|
||||||
|
> LZ4
|
||||||
|
> POSIX Message Queues > disabled
|
||||||
|
> Disable process_vm_readv/writev syscalls
|
||||||
|
> Disable uselib syscalls (old C libs)
|
||||||
|
> Auditing support (required by SELinux)
|
||||||
|
> Timer subsystem > Periodic timer ticks (better performance, no sleep mode)
|
||||||
|
> Disable Old Idle dynticks config
|
||||||
|
> Disable High Resolution Timer Support
|
||||||
|
> CPU/Task time and stats accounting
|
||||||
|
> Disable BSD Process Counting
|
||||||
|
> Disable Export task/process statistics through netlink
|
||||||
|
> Kernel log buffer size (how much space you want to use for kernel log)
|
||||||
|
> set to 15
|
||||||
|
> CPU kernel log buffer size contribution
|
||||||
|
> set to 15
|
||||||
|
> Temporary per-CPU printk log buffer size
|
||||||
|
> set to 12
|
||||||
|
> Disable Initial RAM filiesystem and RAM disk support (consider keeping this one)
|
||||||
|
> Compiler optimization level
|
||||||
|
> Select Optimize for performance
|
||||||
|
> Choose SLAB allocator
|
||||||
|
> choose SLUB (Unqueued Allocator)
|
||||||
|
|
||||||
|
Processor type and features >
|
||||||
|
|
||||||
|
> Disable MPS table
|
||||||
|
> Disable Support for extended (non-PC) x86 platforms
|
||||||
|
> Processor family >
|
||||||
|
> Change from Generic x86/64 to Core 2/newer Xeon (intel specific, don't change)
|
||||||
|
> Maximum number of CPUs
|
||||||
|
> Change to threads count on your current CPU (desktop 24)
|
||||||
|
> Multi-core scheduler support
|
||||||
|
> Disable if CPU thread count is low
|
||||||
|
> Disable Reroute for broken boot IRQs
|
||||||
|
> Disable Intel MCE features (opposite Mental Outlaw, since you're on AMD)
|
||||||
|
> Performance monitoring
|
||||||
|
> Uncheck all Intel options, and check all AMD options
|
||||||
|
> Disable IOPERM and IOPL Emulation
|
||||||
|
> Disable Intel microcode loading support
|
||||||
|
> Disable 5-level page tables support
|
||||||
|
> Disable NUMA Memory Allocation and Scheduler Support
|
||||||
|
> Disable Check for low memory corruption
|
||||||
|
> Enable MTRR cleanup support
|
||||||
|
> setup both values to 1
|
||||||
|
> Disable Intel Memory Protection Keys
|
||||||
|
|
||||||
|
> Power Management and ACPI options
|
||||||
|
|
||||||
|
> Disable Suspend to RAM and standby (no sleep mode, keep enabled for laptops)
|
||||||
|
> Disable Power Management Debug Support (same reason above)
|
||||||
|
> If on Intel, enable Cpuidle Driver for Intel Processors
|
||||||
|
|
||||||
|
> Virtualization
|
||||||
|
|
||||||
|
> Enable Host kernel accelerator for virtio net (not M, * it)
|
||||||
|
|
||||||
|
> Enable loadable module support
|
||||||
|
|
||||||
|
> Disable Forced module unloading
|
||||||
|
|
||||||
|
> Enable the block layer
|
||||||
|
|
||||||
|
> Disable Block layer debugging information in debugfs
|
||||||
|
|
||||||
|
> Networking support
|
||||||
|
|
||||||
|
> Disable Amateur Radio support
|
||||||
|
> Enable Bluetooth subsystem support
|
||||||
|
> Enable Wireless
|
||||||
|
> Enable Netlink interface for ethtool
|
||||||
|
|
||||||
|
> Device Drivers
|
||||||
|
|
||||||
|
> Disable PCCard support
|
||||||
|
> Block devices
|
||||||
|
> Number of loop deviceds to pre-create at init time to 0
|
||||||
|
> NVME Support make sure to build support into it for kernel
|
||||||
|
> SCSI device support
|
||||||
|
> Enable Asynchronous SCSI scanning
|
||||||
|
> Disable Multiple devices driver support (RAID and LVM)
|
||||||
|
> Disable Macintosh device drivers
|
||||||
|
> Input device support
|
||||||
|
> Mice >
|
||||||
|
> Disable PS/2 mouse
|
||||||
|
> Joysticks/Gamepads >
|
||||||
|
> Disable whatever you won't be using
|
||||||
|
> Disable Tablets
|
||||||
|
> Disable Touchscreens
|
||||||
|
> Graphics support
|
||||||
|
> Maximum number of GPUs to 2
|
||||||
|
> Enable Nouveau
|
||||||
|
> Enable Virtual Box Graphics Card
|
||||||
|
> File systems
|
||||||
|
> Ensure ext4 is all enabled
|
||||||
|
> Disable Miscellaneous filesystems
|
||||||
|
> Disable Network File Systems (unless on NAS drive)
|
||||||
|
> Kernel hacking
|
||||||
|
> RCU Debugging
|
||||||
|
> RCU CPU stall timeout in seconds to 3
|
||||||
|
> Gentoo Linux
|
||||||
|
> Support for init systems, system and service managers
|
||||||
|
> OpenRC, runit and other script based systems and managers
|
||||||
|
|
||||||
|
Then just save it, it will save it to .config. Then:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make -j $(nproc) && make modules install && make install
|
||||||
|
```
|
||||||
1
install_gentoo_summary.md
Normal file
1
install_gentoo_summary.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue