If setxkbmap is not installed, Xwayland will refuse to start.
In a "normal" build Xorg applications should be pulled in by Xorg fonts
-> xcursor-themes -> Xorg applications, but we are saying "only
font-util" for Xorg fonts and font-util does not need xcursor-themes.
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.
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.
"N/A" means the hardware just does not support this feature.
Currently "Fixed pipe TCL" is N/A for all supported models,
"Geometry programs" and "Tessellation programs" are N/A for some early
supported models.
We used to assume the users to config the kernel properly in xf86 video
drivers. But (1) xf86 video drivers and mesa drivers are not one-to-one
mapping; (2) there are wayland-based DEs where no xf86 video drivers are
installed.
Well, Vulkan is not an alternative of X, nor Wayland. It's an
alternative of OpenGL.
Change "libvulkan" to "Vulkan-Loader" by the way. "libvulkan" is a
library, and Vulkan-Loader is the name of the package providing it. The
URL is also updated because there is no download link at vulkan.org.
xorg-server itself does not need libelogind/libsystemd to invoke the
logind D-Bus API. elogind/systemd-logind works for Xorg server when you
login: once you've logged in on a TTY, pam_systemd or pam_elogind
invokes systemd-logind or elogind to modify the ACL of the device node
of GPU for you:
$ getfacl /dev/dri/card1
getfacl: Removing leading '/' from absolute path names
# file: dev/dri/card1
# owner: root
# group: video
user::rw-
user:xry111:rw-
group::rw-
mask::rw-
other::---
Note that the "user:xry111:rw-" line allows the user logged in (in this
example, xry111, my user account) to operate on the GPU. If
systemd-logind or elogind is not installed, there will be no such a line
and you need to setuid bit for Xorg executable, which is not
recommended.
FWIW logind is smart enough not to add the ACL entry if you've logged in
via SSH.
You may need to logout and login again to use startx if you've installed
pam_{elogind,systemd} and Xorg server & xinit in a continous login
session, but this is already mentioned on xorg-config.xml.
You may ask why Xorg server links to libsystemd or libelogind. It uses
sd_notify and sd_listen_fds API so the Xorg server can function as a
socket-activated systemd service. This is useless in SysV: elogind is
a logind, not a service manager. In Systemd the libsystemd.so installed
in LFS should be enough, and we've never provided instructions to run
Xorg server in BLFS as a systemd service.
Reported-by: Rainer Fiebig <jrf@mailbox.org>
Tested on Intel HD Graphics 630.
I will add the intel-media-driver once I've finished testing it. So far
though, X is currently up. Note that the driver might also remove the
test failure for elements_vapostproc and elements_vacompositor from
gst-plugins-bad, but not sure on that yet. We shall see.
Adjust the description of man page Xserver.1: technically both Xorg and
Xwayland are in the category of "X server". The reason we don't install
it here is not "it's not a part of this package", but we don't want to
overwrite a man page from another package.
Remove the creation of /etc/X11/xorg.conf.d: "Xorg" is "another X
server" so technically Xwayland (and other packages except Xorg and the
Xorg drivers) should have nothing to do with it. In my last build
/etc/X11/xorg.conf.d is empty.
This sed is used to change the command for symlinking xorg to
base in /usr/share/X11/xkb/rules. But the default for the xorg
symlinks is false, and those symlinks have been deprecated since
2005...
Prompted by a question of r1c0n3r0 on #lfs-support
Also add the explanation for --buildtype