aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2024-03-04 23:49:10 -0700
committerJack Sangdahl <[email protected]>2024-03-04 23:49:10 -0700
commitf5f609da5afe438ba520d7e40ce88fa848be6dbb (patch)
treebdf3f68f2be03bdcba648c7e64f0edb24a683185
parent61f3d15c57e906d78833da9194f83a56ee553631 (diff)
downloadsite-f5f609da5afe438ba520d7e40ce88fa848be6dbb.tar.gz
site-f5f609da5afe438ba520d7e40ce88fa848be6dbb.zip
acpi stuff
-rw-r--r--contact.html12
-rw-r--r--extra.html1
-rw-r--r--gentoo.html1
-rw-r--r--index.html5
-rw-r--r--kernel.html84
5 files changed, 99 insertions, 4 deletions
diff --git a/contact.html b/contact.html
new file mode 100644
index 0000000..8bbc327
--- /dev/null
+++ b/contact.html
@@ -0,0 +1,12 @@
+<html lang="en">
+ <head>
+ <title>Contact</title>
+ <link rel="stylesheet" href="style.css">
+ </head>
+ <body>
+ <a href="index.html"><--</a>
+ <h2>Contact</h2>
+ Email: <a href="mailto:[email protected]">[email protected]</a><br>
+ Github: <a href="https://github.com/waffle87" target="_blank">waffle87</a>
+ </body>
+</html>
diff --git a/extra.html b/extra.html
index a4bdd7e..0009c5a 100644
--- a/extra.html
+++ b/extra.html
@@ -20,6 +20,7 @@
</style>
</head>
<body>
+ <a href="index.html"><--</a>
<h2>Some bits & bobs</h2>
Here lives some miscellaneous things I reference one or one hundred
times and figure they should be gathered somewhere.
diff --git a/gentoo.html b/gentoo.html
index bc07584..d3adf88 100644
--- a/gentoo.html
+++ b/gentoo.html
@@ -21,6 +21,7 @@
</style>
</head>
<body>
+ <a href="index.html"><--</a>
<h2>Gentoo Linux on Macbook Air</h2>
This page covers various features, nuances, notes, etc. of my
Gentoo system running on a 2012 Macbook Air. This laptop was
diff --git a/index.html b/index.html
index 16759b0..a6d7f25 100644
--- a/index.html
+++ b/index.html
@@ -8,9 +8,6 @@
<a href="gentoo.html">Gentoo</a><br>
<a href="kernel.html">Kernel Configuration</a><br>
<a href="extra.html">Extra Extra</a><br>
- <!--
- <a href="lfs.html">lfs on macbook air</a><br>
- <a href="keyboard_qmk.html">keyboards, firmware, and similar</a><br>
- -->
+ <a href="contact.html">Contact</a><br>
</body>
</html>
diff --git a/kernel.html b/kernel.html
index 98534c4..b4ee408 100644
--- a/kernel.html
+++ b/kernel.html
@@ -14,6 +14,7 @@
</style>
</head>
<body>
+ <a href="index.html"><--</a>
<h2>Kernel Configuration Pseudo Guide</h2>
<h4>Current base: <a href="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-6.7.y">Linux 6.7.y</a></h4>
This aims to be a guide for configuring a Linux kernel for a modern
@@ -39,8 +40,23 @@
<li>OLD: modern systems generally won't need these options</li>
<li>SEC: security related options that either implicate or strengthen system security</li>
</ul>
+ <a href="#top_level">top level options</a><br>
<a href="#general_setup">general setup</a><br>
<a href="#processor_type_feat">processor type and features</a><br>
+ <a href="#mitigations_vulnerability">mitigations for speculative execution vulnerabilities</a><br>
+ <a href="#power_management">power management and acpi options</a><br>
+ <div id="top_level">
+ <h3>Top Level Options</h3>
+ <ul>
+ <li>64-bit kernel (<code>CONFIG_64BIT</code>): Y, STD</li>
+ <li>Mitigations for speculative execution vulnerabilities (<code>CONFIG_SPECULATION_MITIGATIONS</code>): Y, STD</li>
+ <li>Virtualization (<code>CONFIG_VIRTUALIZATION</code>): N, VIRT, unless needed</li>
+ <li>Enable loadable module support (<code>CONFIG_MODULES</code>): N, everything built into kernel</li>
+ <li>Enable the block layer (<code>CONFIG_BLOCK</code>): Y, STD, need to mount disks</li>
+ <li>Networking support (<code>CONFIG_NET</code>): Y, unless no need for network</li>
+ <li>Cryptographic API (<code>CONFIG_CRYPTO</code>): Y, SEC</li>
+ </ul>
+ </div>
<div id="general_setup">
<h3>General setup</h3>
<ul>
@@ -238,6 +254,74 @@
<li>Enforce strict size checking for sigalstack (<code>CONFIG_STRICT_SIGALSTACK_SIZE</code>): N, DEV</li>
</ul>
</div>
+ <div id="mitigations_vulnerability">
+ <h3>Mitigations for speculative execution vulnerabilities</h3>
+ <ul>
+ <li>Remove the kernel mapping in user mode (<code>CONFIG_PAGE_TABLE_ISOLATION</code>): Y</li>
+ <li>Avoid speculative indirect branches in kernel (<code>CONFIG_RETPOLINE</code>): Y</li>
+ <li>Enable return-thunks (<code>CONFIG_RETHUNK</code>): Y</li>
+ <li>Enable UNRET on kernel entry (<code>CONFIG_CPU_UNRET_ENTRY</code>): Y</li>
+ <li>Mitigate RSB underflow with call depth tracking (<code>CONFIG_CALL_DEPTH_TRACKING</code>): Y</li>
+ <li>Enable call thunks and call depth tracking debugging (<code>CONFIG_CALL_RETHUNKS_DEBUG</code>): N, DEV</li>
+ <li>Enable IBPB on kernel entry (<code>CONFIG_CPU_IBPB_ENTRY</code>): Y</li>
+ <li>Enable IBRS on kernel entry (<code>CONFIG_CPU_IBRS_ENTRY</code>): Y</li>
+ <li>Mitigate speculative RAS overflow (<code>CONFIG_CPU_SRSO</code>): Y, on AMD processors</li>
+ <li>Mitigate Straight-Line-Speculation (<code>CONFIG_SLS</code>): N</li>
+ <li>Force GDS Mitigation (<code>CONFIG_GDS_FORCE_MITIGATION</code>): N</li>
+ </ul>
+ </div>
+ <div id="power_management">
+ <h3>Power management and ACPI options</h3>
+ <ul>
+ <li>Suspend to RAM and standby (<code>CONFIG_SUSPEND</code>): Y, N for servers</li>
+ <li>Skip kernel's sys_sync() on suspend to RAM/standby (<code>CONFIG_SUSPEND_SKIP_SYNC</code>): N</li>
+ <li>Hibernation (aka 'suspend to disk') (<code>CONFIG_HIBERNATION</code>): Y, if desired. N for servers</li>
+ <li>Opportunistic sleep (<code>CONFIG_PM_SLEEP</code>): N, EMB</li>
+ <li>Userspace opportunistic sleep (<code>CONFIG_PM_USERSPACE_AUTOSLEEP</code>): N, EMB</li>
+ <li>User space wakeup sources interface (<code>CONFIG_PM_WAKELOCKS</code>): N, EMB</li>
+ <li>Device power management core functionality (<code>CONFIG_PM</code>): Y, STD</li>
+ <li>Power Management Debug Support (<code>CONFIG_PM_DEBUG</code>): N, DEV</li>
+ <li>Enable workqueue power-efficient mode by default (<code>CONFIG_WQ_POWER_EFFICIENT_DEFAULT</code>): N</li>
+ <li>Energy Model for devices with DVFS (<code>CONFIG_ENERGY_MODEL</code>): N</li>
+ <li>
+ ACPI Support (<code>CONFIG_ACPI</code>): Y, STD
+ <ul>
+ <li></li>
+ </ul>
+ </li>
+ <li>Power Management Timer Support (<code>CONFIG_X86_PM_TIMER</code>): Y, STD</li>
+ <li>
+ CPU Frequency scaling
+ <ul>
+ <li>CPU frequency transition statistics (<code>CONFIG_CPU_FREQ_STAT</code>): N, DEV</li>
+ <li>Default CPUFreq governor: performance</li>
+ <li>'performance' governor (<code>CONFIG_CPU_FREQ_GOV_PERFORMANCE</code>): Y</li>
+ <li>'powersave' governor (<code>CONFIG_CPU_FREQ_GOV_POWERSAVE</code>): N, not strictly necessary</li>
+ <li>'userspace' governor for userspace frequency scaling (<code>CONFIG_CPU_FREQ_GOV_USERSPACE</code>): N, not strictly necessary</li>
+ <li>'ondemand' cpufreq policy governor (<code>CONFIG_CPU_FREQ_GOV_ONDEMAND</code>): N</li>
+ <li>'conservative' cpufreq governor (<code>CONFIG_CPU_FREQ_GOV_CONSERVATIVE</code>): N</li>
+ <li>'schedutil' cpufreq policy governor (<code>CONFIG_CPU_FREQ_GOV_SCHEDUTIL</code>): Y</li>
+ <li>Intel P state control (<code>CONFIG_X86_INTEL_PSTATE</code>): Y, on Intel processors</li>
+ <li>Processor Clocking Control interface driver (<code>CONFIG_X86_PCC_CPUFREQ</code>): N, OLD</li>
+ <li>AMD Processor P-State driver (<code>CONFIG_X86_AMD_PSTATE</code>): Y, on AMD processors</li>
+ <li>selftest for AMD Processor P-State driver (<code>CONFIG_X86_AMD_PSTATE_UT</code>): N, DEV</li>
+ <li>ACPI Processor P-States driver (<code>CONFIG_X86_ACPI_CPUFREQ</code>): Y, STD</li>
+ <li>Intel Enhanced SpeedStep (<code>CONFIG_X86_SPEEDSTEP_CENTRINO</code>): N, OLD</li>
+ <li>Intel Pentium 4 clock modulation (<code>CONFIG_X86_P4_CLOCKMOD</code>): N, OLD</li>
+ </ul>
+ </li>
+ <li>
+ CPU Idle
+ <ul>
+ <li>CPU idle PM support (<code>CONFIG_CPU_IDLE</code>): Y, STD</li>
+ <li>Ladder governor (for periodic timer tick) (<code>CPU_IDLE_GOV_LADDER</code>): N</li>
+ <li>Menu governor (for tickless system) (<code>CPU_IDLE_GOV_MENU</code>): Y</li>
+ <li>Timer events oriented governor (<code>CONFIG_CPU_IDLE_GOV_TEO</code>): N</li>
+ </ul>
+ </li>
+ <li>Cpuidle Driver for Intel Processors (<code>CONFIG_INTEL_IDLE</code>): Y, on Intel processors </li>
+ </ul>
+ </div>
This is a WIP...
</body>
</html>