1. Don't throw unspecified entries too early. Doing so caused various
rendering glitches. And we can now also check if an entry is
selected but it's parent not.
2. "menu"s in Kconfig can also have dependencies...
Some pre-existing .toml data files are found problematic after the
change, fix them and regenerate all rendered -kernel.xml files.
This is stupid and it will cause meaningless diffs in version control
(like this commit does :( ).
Remove the kernel version from the generated XML files. Add
kernel.version file into git to track the kernel version.
The kernel-config.py script takes a toml file containing a set of
kernel configuration key-value pairs. Then it parses the Kconfig files
in a kernel source tree and render the given configuration as a
LFS-style <screen> in a separate XML file. The XML file can be used in
the book with xinclude.
Some "features":
1. The lines are limited to 80 columns.
If the text of the configuration option is too long, it will be
trimmed; if the symbolic name of the option cannot fit in this line,
a separate line will be used for it.
2. If a configuration option is given but it does not exist in Kconfig
files, the script will abort immediately. This helps catching
removed options.
3. The script also aborts immediately if a configuration option is
illegal, for example setting an option to 'M' while it cannot be a
module.
4. The infrastructure is not wired into the main Makefile. It's because
not all editors have the latest kernel tree, and even if they do the
locations of the kernel tree are still different. To update the
generated XML files, use
"make -C kernel-config KERNEL_TREE=/sources/linux-x.y.z".
Backword incompatible change:
The script no longer outputs "CONFIG_" prefix for the symbolic name. It
really does not make too much sense to waste 7 characters here because
it's a common prefix for all options!
A limitation:
The script does not really validate the configuration. Generally
validating the configuration requires to solve the 3-CNF-SAT problem,
which is NP-complete.
1. Move the configuration file into /etc, to be consistent with other
configuration files created in BLFS.
2. We no longer need a separate "configure the graphic card" example
because the TearFree configuration file is already a good example.
3. Tearing issue is really not new after xf86-video-* removal. In some
xf86-video-* drivers a TearFree option is available but rarely
enabled by default (only the amdgpu driver when the output is rotated
or transformed). So this is actually the first time we document it
in BLFS.
4. It's really not difficult to observer the tearing by dragging a
window in twm, despite twm only renders the window border during
dragging.
With modesetting driver, $HOME/.local/share/xorg/Xorg.0.log contains:
[ 65817.713] (II) AIGLX: Loaded and initialized crocus
And there is no more "AIGLX error" messages.
I really don't understand what it is for. And I can run twm without it.
If someone has a good reason to use legacy fonts, please revert, but you
should at least consider marking it runtime and maybe demoting it to
optional.
Or any Qt5 app will complain:
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
Let's recommended them. On Wayland-based DEs we can export
QT_QPA_PLATFORM=wayland to avoid depending on xcb though.
It looks like we've forgotten some dependencies for Qt5 all the time.
And many dependencies of Qt5 are also needed by the alternative. I
gathered them via
readelf -d $(find -name \*.so) | grep NEEDED | grep -o '\[.*\]' |
sort | uniq | grep -v Qt 2>/dev/null
in the Qt5 alternative build directory.
In the regex we use `|` which is extended regex. So the `-r` (or `-E`,
or `--regexp-exteneded`) option is needed. We cannot squash them into
`-ir` because `-i[PREFIX]` has a special meaning: make a backup named
`tempconf[PREIX]`.
Also create an ENTITY for qt5 or qt5-alternate and use that
to specify the qt5 dependenies.
The complete KF5/plasma packages should use the full qt5 build, but
the lxqt kf5/plasma components only need qt5-alternate.
It's not really QEMU specific.
By the way, move the "additional cfg unneeded on most systems" into the
bottom of the page, and adjust it to refer modesetting driver instead of
radeon driver.