aboutsummaryrefslogtreecommitdiffstats
path: root/chapter10
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2023-12-06 17:29:45 +0800
committerXi Ruoyao <xry111@xry111.site>2023-12-06 17:29:45 +0800
commit00de2694ce852e9b042eaa3225e0c079978e048f (patch)
tree5aff230d8826aa7d5b5e0ff258b35da56df0f858 /chapter10
parent73d91ac621a4e59f71ff6664c68c935317f9ce42 (diff)
parent7cce808a46c5a1df0de2c52827b89b63834436fe (diff)
Merge remote-tracking branch 'origin/trunk' into xry111/arm64
Diffstat (limited to 'chapter10')
-rw-r--r--chapter10/kernel.xml20
-rw-r--r--chapter10/kernel/Makefile5
-rwxr-xr-xchapter10/kernel/kernel-config.py9
-rw-r--r--chapter10/kernel/kernel.version2
-rw-r--r--chapter10/kernel/systemd.toml12
-rw-r--r--chapter10/kernel/systemd.xml10
-rw-r--r--chapter10/kernel/sysv.toml11
-rw-r--r--chapter10/kernel/sysv.xml10
8 files changed, 56 insertions, 23 deletions
diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml
index 587417f19..7589e3c39 100644
--- a/chapter10/kernel.xml
+++ b/chapter10/kernel.xml
@@ -265,16 +265,18 @@
</varlistentry>
<varlistentry>
- <term><parameter>Framebuffer Console support</parameter></term>
+ <term>
+ <parameter>
+ Enable legacy fbdev support for your modesetting driver
+ </parameter> and
+ <parameter>Framebuffer Console support</parameter>
+ </term>
<listitem>
- <para>This is needed to display the Linux console on a frame
- buffer device. To allow the kernel to print debug messages at an
- early boot stage, it shouldn't be built as a kernel module
- unless an initramfs will be used. And, if
- <option>CONFIG_DRM</option> (Direct Rendering Manager) is enabled,
- it's likely <option>CONFIG_DRM_FBDEV_EMULATION</option> (Enable
- legacy fbdev support for your modesetting driver) should be
- enabled as well.</para>
+ <para>These are needed to display the Linux console on a
+ GPU driven by a DRI (Direct Rendering Infrastructure) driver.
+ If <option>CONFIG_DRM</option> (Direct Rendering Manager) is
+ enabled, you should enable these two options as well or you'll see
+ a blank screen once the DRI driver is loaded.</para>
</listitem>
</varlistentry>
diff --git a/chapter10/kernel/Makefile b/chapter10/kernel/Makefile
index e04d2d6b1..03de71ed9 100644
--- a/chapter10/kernel/Makefile
+++ b/chapter10/kernel/Makefile
@@ -19,5 +19,8 @@ s-kernel-version:
fi
touch s-kernel-version
-%.xml: %.toml kernel-config.py kernel_version.py kernel.version
+%.xml.tmp: %.toml kernel-config.py kernel_version.py kernel.version
./kernel-config.py $(KERNEL_TREE) $< > $@
+
+%.xml: %.xml.tmp
+ mv $< $@
diff --git a/chapter10/kernel/kernel-config.py b/chapter10/kernel/kernel-config.py
index 24f825f72..349372945 100755
--- a/chapter10/kernel/kernel-config.py
+++ b/chapter10/kernel/kernel-config.py
@@ -185,6 +185,10 @@ def load_kconfig(file):
if_stack += [top]
elif line.startswith('endif'):
if_stack = if_stack[:-1]
+
+ if config_buf:
+ r += [parse_config(config_buf)]
+
return r
known_config = {}
@@ -247,6 +251,7 @@ sep = known_config.get('separate_toplevel_menu')
for i0, val, i1, title, arrow, key, menu, comment in r:
rem = max_line
+ is_choice = (val == '(X)')
if val:
val += (max_val_len[menu] - len(val)) * ' '
@@ -259,7 +264,9 @@ for i0, val, i1, title, arrow, key, menu, comment in r:
if len(title) > rem:
title = title[:rem - 3] + '...'
- b = title.lstrip('YyMmNnHh')
+ b = title
+ if not is_choice:
+ b = b.lstrip('YyMmNnHh.' + "".join(map(str, range(10))))
a = title[:len(title) - len(b)]
b0 = "<emphasis role='blue'>" + escape(b[0]) + "</emphasis>"
line += escape(a) + b0 + escape(b[1:]) + escape(arrow)
diff --git a/chapter10/kernel/kernel.version b/chapter10/kernel/kernel.version
index d613169e8..e411592c2 100644
--- a/chapter10/kernel/kernel.version
+++ b/chapter10/kernel/kernel.version
@@ -1 +1 @@
-6.4.12
+6.6.3
diff --git a/chapter10/kernel/systemd.toml b/chapter10/kernel/systemd.toml
index 26ac61c46..dae4a4049 100644
--- a/chapter10/kernel/systemd.toml
+++ b/chapter10/kernel/systemd.toml
@@ -13,9 +13,7 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
-FB='*'
-FRAMEBUFFER_CONSOLE='*'
-
+DRM=' *M'
AUDIT=' '
NET='*'
INET='*'
@@ -28,3 +26,11 @@ TMPFS='*'
TMPFS_POSIX_ACL='*'
revision='systemd'
+
+[DRM_FBDEV_EMULATION]
+value = ' *'
+comment = 'If [DRM] is selected as * or M, this must be selected'
+
+[FRAMEBUFFER_CONSOLE]
+value = ' *'
+comment = 'If [DRM] is selected as * or M, this must be selected'
diff --git a/chapter10/kernel/systemd.xml b/chapter10/kernel/systemd.xml
index 5ddc7dd21..88d04a67a 100644
--- a/chapter10/kernel/systemd.xml
+++ b/chapter10/kernel/systemd.xml
@@ -41,10 +41,14 @@
<emphasis role='blue'>F</emphasis>irmware Drivers ---&gt;
[*] <emphasis role='blue'>E</emphasis>xport DMI identification via sysfs to userspace [DMIID]
<emphasis role='blue'>G</emphasis>raphics support ---&gt;
- <emphasis role='blue'>F</emphasis>rame buffer Devices ---&gt;
- &lt;*&gt; <emphasis role='blue'>S</emphasis>upport for frame buffer devices ---&gt; [FB]
+ &lt; /*/M&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
+ ... [DRM]
+ # If [DRM] is selected as * or M, this must be selected:
+ [ /*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
+ ... [DRM_FBDEV_EMULATION]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
- [*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]
+ # If [DRM] is selected as * or M, this must be selected:
+ [ /*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]
<emphasis role='blue'>F</emphasis>ile systems ---&gt;
[*] <emphasis role='blue'>I</emphasis>notify support for userspace [INOTIFY_USER]
diff --git a/chapter10/kernel/sysv.toml b/chapter10/kernel/sysv.toml
index 5c8b2df6e..3f8d2e93c 100644
--- a/chapter10/kernel/sysv.toml
+++ b/chapter10/kernel/sysv.toml
@@ -12,7 +12,14 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
-FB='*'
-FRAMEBUFFER_CONSOLE='*'
+DRM=' *M'
revision='sysv'
+
+[DRM_FBDEV_EMULATION]
+value = ' *'
+comment = 'If [DRM] is selected as * or M, this must be selected'
+
+[FRAMEBUFFER_CONSOLE]
+value = ' *'
+comment = 'If [DRM] is selected as * or M, this must be selected'
diff --git a/chapter10/kernel/sysv.xml b/chapter10/kernel/sysv.xml
index bb55fd73b..64da189b8 100644
--- a/chapter10/kernel/sysv.xml
+++ b/chapter10/kernel/sysv.xml
@@ -29,7 +29,11 @@
[*] <emphasis role='blue'>A</emphasis>utomount devtmpfs at /dev, after the kernel mounted the rootfs
... [DEVTMPFS_MOUNT]
<emphasis role='blue'>G</emphasis>raphics support ---&gt;
- <emphasis role='blue'>F</emphasis>rame buffer Devices ---&gt;
- &lt;*&gt; <emphasis role='blue'>S</emphasis>upport for frame buffer devices ---&gt; [FB]
+ &lt; /*/M&gt; <emphasis role='blue'>D</emphasis>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
+ ... [DRM]
+ # If [DRM] is selected as * or M, this must be selected:
+ [ /*] <emphasis role='blue'>E</emphasis>nable legacy fbdev support for your modesetting driver
+ ... [DRM_FBDEV_EMULATION]
<emphasis role='blue'>C</emphasis>onsole display driver support ---&gt;
- [*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</screen>
+ # If [DRM] is selected as * or M, this must be selected:
+ [ /*] <emphasis role='blue'>F</emphasis>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</screen>