diff options
author | Jack Sangdahl <[email protected]> | 2024-03-04 13:54:22 -0700 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2024-03-04 13:54:22 -0700 |
commit | fb1ec5e0ed54a130eecc0c9105c3c3459e7a8beb (patch) | |
tree | bcf4221cc1519d7a9f6797231577b747d8d51a63 | |
parent | c8e696d89a36b2233825180fa6e347df373bb902 (diff) | |
download | site-fb1ec5e0ed54a130eecc0c9105c3c3459e7a8beb.tar.gz site-fb1ec5e0ed54a130eecc0c9105c3c3459e7a8beb.zip |
add processor featurese
-rw-r--r-- | extra.html | 29 | ||||
-rw-r--r-- | gentoo.html | 4 | ||||
-rw-r--r-- | kernel.html | 82 |
3 files changed, 105 insertions, 10 deletions
@@ -66,5 +66,32 @@ $ head -n 4 .gitconfig email = Foo_Bar@baz signingkey = FC53C827D09C7050 </pre> + <h3>SSH agent for password-less login</h3> + I have four machines I frequently log in to and from via SSH. Typing + in a password every time is tiresome and a password-less key is not + an option. A solution is an SSH agent running in the background, which + prompts for a password once at log in, and stores it for the duration + of the session (until reboot). The following can live in your shell's + startup file (eg. <code>~/.zshrc</code>) + <pre> +if [ ! -S ~/.ssh/ssh_auth_sock ]; then + eval "$(ssh-agent)" + ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock +fi +export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock +ssh-add -l > /dev/null || ssh-add + </pre> + <h3>Configuration file manager</h3> + Across the aforementioned four machines, I also have various configuration + files (dotfiles) that I like to keep track of for the sake of backing + them up incase of data loss. I use <a href="https://github.com/TheLocehiliosan/yadm" target="_blank">yadm</a> + to achieve this. Mostly for it's ease of use (yadm is quite simply + an alias for git) and minimal system footprint, which consists mostly + of a git directory living out of sight in <code>~/.local/share/yadm/repo.git</code>. + Since it's just Git under the hood, a standard <code>.gitignore</code> + file can be used to ignore which ever files you choose in your home directory. + By default, yadm only manages files within your home directory. While not + conventional, it can also be used to track system-level files by creating + an alias like <code>sysyadm="sudo yadm --yadm-dir /etc/yadm --yadm-data /etc/yadm/data"</code>. </body> -</html> +</html diff --git a/gentoo.html b/gentoo.html index 72edf4e..4f286e0 100644 --- a/gentoo.html +++ b/gentoo.html @@ -265,11 +265,11 @@ pidfile="/run/keyd.pid" Some command line tools I used along with ZSH include <ul> <li> - <a href="https://github.com/starship/starship" target="_blank">Starship prompt</a> + <a href="https://github.com/starship/starship" target="_blank">starship prompt</a> which provides some useful UI tools like Git repository status. </li> <li> - <a href="https://github.com/ajeetdsouza/zoxide" target="_blank">Zoxide cd replacement</a> + <a href="https://github.com/ajeetdsouza/zoxide" target="_blank">zoxide cd replacement</a> which has auto-jump functionality meaning <code>cd very/long/long/path</code> can be simplified to <code>cd path</code>. </li> diff --git a/kernel.html b/kernel.html index a622032..5467dcb 100644 --- a/kernel.html +++ b/kernel.html @@ -11,13 +11,6 @@ border-radius: 3px; padding: 1.75px; } - - pre { - background: #f4f4f4; - color: #505050; - padding: 20px 0px 0px 20px; - overflow: auto; - } </style> </head> <body> @@ -47,6 +40,7 @@ <li>SEC: security related options that either implicate or strengthen system security</li> </ul> <a href="#general_setup">general setup</a><br> + <a href="#processor_type_feat">processor type and features</a><br> <div id="general_setup"> <h3>General setup</h3> <ul> @@ -170,6 +164,80 @@ <li>Kexec and crash features: None</li> </ul> </div> + <div id="processor_type_feat"> + <h3>Processor type and features</h3> + <ul> + <li>Symmetric multi-processing support (<code>CONFIG_SMP</code>): Y, STD, all modern CPUs are multi-core</li> + <li>Enable MPS table (<code>CONFIG_X86_MPARSE</code>): N, OLD </li> + <li>x86 CPU resource control support (<code>CONFIG_X86_CPU_RESCTRL</code>): N, VIRT</li> + <li>Support for extended (non-PC) x86 platforms (<code>CONFIG_X86_EXTENDED_PLATFORM</code>): N, EMB</li> + <li>Intel Low Power Subsystem Support (<code>CONFIG_X86_INTEL_LPSS</code>): Y, if you have Haswell and later CPU</li> + <li>AMD ACPI2Platform devices support (<code>CONFIG_X86_AMD_PLATFORM_DEVICE</code>): N</li> + <li>Intel SoC IOSF Sideband support (<code>CONFIG_IOSF_MBI</code>): Y, STD</li> + <li>Single-depth WCHAN output (<code>CONFIG_SCHED_OMIT_FRAME_POINTER</code>): Y, STD</li> + <li>Linux guest support (<code>CONFIG_HYPERVISOR_GUEST</code>): N, VIRT</li> + <li>Processor family: Core 2/newer Xeon (or Generic-x86-64 if unsure)</li> + <li>Supported processor vendors (<code>CONFIG_PROCESSOR_SELECT</code>): N, EMB</li> + <li>Enable DMI scanning (<code>CONFIG_DMI</code>): Y, STD</li> + <li>Old AMD GART IOMMU support (<code>CONFIG_GART_IOMMU</code>): N, OLD</li> + <li>Enable Maximum number of SMP Processors and NUMA Nodes (<code>CONFIG_MAXSMP</code>): N, DEV</li> + <li>Maximum number of CPUs (<code>CONFIG_NR_CPUS</code>): sockets * cores * threads</li> + <li>Cluster scheduler support (<code>CONFIG_SCHED_CLUSTER</code>): Y, STD</li> + <li>Multi-core scheduler support (<code>CONFIG_SCHED_MC</code>): Y, STD</li> + <li>CPU core priorities scheduler support (<code>CONFIG_SCHED_MC_PRIO</code>): Y, STD</li> + <li>Reroute for broken boot IRQs (<code>CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS</code>): N, OLD</li> + <li>Machine Check / overheating reporting (<code>CONFIG_X86_MCE</code>): Y, STD</li> + <li>Support for deprecated /dev/mcelog character device (<code>CONFIG_X86_MCELOG_LEGACY</code>): N, OLD</li> + <li>Intel/AMD MCE features (<code>CONFIG_X86_MCE_INTEL/AMD</code>): Y, STD, choose based on your processor</li> + <li> + Performance monitoring + <ul> + <li>Intel uncore performance events (<code>CONFIG_PERF_EVENTS_INTEL_UNCORE</code>): Y, STD, for Intel</li> + <li>Intel/AMD rapl performance events (<code>CONFIG_PERF_EVENTS_INTEL_RAPL</code>): Y, STD</li> + <li>Intel cstate performance events (<code>CONFIG_PERF_EVENTS_INTEL_CSTATE</code>): Y, STD, for Intel</li> + <li>AMD Processor Power Reporting Mechanism (<code>CONFIG_PERF_EVENTS_AMD_POWER</code>): Y, STD, for AMD</li> + <li>AMD Uncore performance events (<code>CONFIG_PERF_EVENTS_AMD_POWER</code>): Y, STD, for AMD</li> + </ul> + </li> + <li>Enable vsyscall emulation (<code>CONFIG_X86_VSYSCALL_EMULATION</code>): N</li> + <li>IOPERM and IOPL Emulation (<code>CONFIG_X86_IOPL_IOPERM</code>): N, SEC, not strictly necessary</li> + <li>Late microcode loading (<code>CONFIG_MICROCODE_LATE_LOADING</code>): N</li> + <li>/dev/cpu/*/msr - Model-specific register support (<code>CONFIG_X86_MSR</code>): Y, STD</li> + <li>/dev/cpu/*/cpuid - CPU information support (<code>CONFIG_X86_CPUID</code>): Y, STD</li> + <li>Enable 5-level page tables support (<code>CONFIG_X86_5LEVEL</code>): N, for machines with large (TBs) amounts of memory</li> + <li>AMD Secure Memory Encryption (SME) support (<code>CONFIG_AMD_MEM_ENCRYPT</code>): Y, for AMD</li> + <li>NUMA Memory Allocation and Scheduler Support (<code>CONFIG_NUMA</code>): N, unless you have multi socket CPU</li> + <li>Check for low memory corruption (<code>CONFIG_X86_CHECK_BIOS_CORRUPTION</code>): N</li> + <li>MTRR (Memory Type Range Register) support (<code>CONFIG_MTRR</code>): Y, STD</li> + <li>MTRR cleanup support (<code>CONFIG_MTRR_SANITIZER</code>): Y, STD</li> + <li>MTRR cleanup enable value (0-1) (<code>CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT</code>): 1, for true</li> + <li>MTRR cleanup spare reg num (0-7) (<code>CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT</code>): 1</li> + <li>x86 PAT support (<code>CONFIG_X86_PAT</code>): Y, STD</li> + <li>User Mode Instruction Prevention (<code>CONFIG_X86_UMIP</code>): Y</li> + <li>Indirect Branch Tracking (<code>CONFIG_X86_KERNEL_IBT</code>): N, SEC</li> + <li>Memory Protection Keys (<code>CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS</code>): Y, STD</li> + <li>TSX enable mode: auto</li> + <li>X86 userspace shadow stack (<code>CONFIG_X86_USER_SHADOW_STACK</code>): N, SEC</li> + <li>EFI runtime service support (<code>CONFIG_EFI</code>): Y, STD</li> + <li>EFI stub support (<code>CONFIG_EFI_STUB</code>): N, only if you boot kernel directly</li> + <li>EFI handover protocol (<code>CONFIG_EFI_HANDOVER_PROTOCOL</code>): N, OLD</li> + <li>EFI mixed-mode support (<code>CONFIG_EFI_MIXED</code>): N, only relevant (but still unneeded) on Apple hardware</li> + <li>Enable EFI fake memory map (<code>CONFIG_EFI_FAKE_MEMMAP</code>): N</li> + <li>Export EFI runtime maps to sysfs (<code>CONFIG_EFI_RUNTIME_MAP</code>): N</li> + <li>Timer frequency: 100 HZ for server, 300 HZ for laptop, 1000 HZ for low-latency requirements</li> + <li>Physical address where the kernel is loaded (<code>CONFIG_PHYSICAL_START</code>): 0x1000000</li> + <li>Build a relocatable kernel (<code>CONFIG_RELOCATABLE</code>): Y, STD</li> + <li>Randomize the address of the kernel image (KASLR) (<code>CONFIG_RANDOMIZE_BASE</code>): Y, SEC</li> + <li>Alignment value to which the kernel should be aligned (<code>CONFIG_PHYSICAL_ALIGN</code>): 0x200000</li> + <li>Randomize the kernel memory sections (<code>CONFIG_RANDOMIZE_BASE</code>): Y, SEC</li> + <li>Physcial memory mapping padding (<code>CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING</code>): 0x00</li> + <li>Linear Address Masking support (<code>CONFIG_ADDRESS_MASKING</code>): N</li> + <li>vsyscall table for legacy applications: None</li> + <li>Built-in kernel command line (<code>CONFIG_CMDLINE_BOOL</code>): N, unless booting kernel directly</li> + <li>Enable the LDT (local descriptor table) (<code>CONFIG_MODIFY_LDT_SYSCALL</code>): N, EMB</li> + <li>Enforce strict size checking for sigalstack (<code>CONFIG_STRICT_SIGALSTACK_SIZE</code>): N, DEV</li> + </ul> + </div> This is a WIP... </body> </html> |