In the heel of the hunt, I didn't watch that video, but I did get a lot of stuff done since I last posted in this thread.
So it turns out that the reason nouveau couldn't load the firmware was simply that I was compiling the driver straight into the kernel, rather than as a module. (Sort of on the advice of an article in Linux Magazine.) Amazed it took me two months to figure that out, but the issue was clouded by that spell during which I was compiling kernels that couldn't load modules (I'm still not sure what happened there, but since then I have gone back to compiling my kernels with GCC4 rather than 6). I'm not sure if this nouveau issue is a legitimate bug or if there's something I should have been doing to compile the firmware into the kernel. Either way the easiest workaround is obviously to go back to compiling nouveau as a module, as I always did before reading that Linux Magazine article!
The other Linux thing I've been doing is, of course, my GNOME build. I kind of promised to post a little background to explain my motivations, but right now I just want to explain how it went. I can post the background later if anyone's interested. So anyway, I started off just under a month ago, following the instructions at
http://linuxfromscratch.org/blfs/view/s ... gnome.html. Naïvely I thought I might be done before the election, but obviously that didn't happen!

Anyway, I was going to be deviating from the instructions slightly, since my system is multilib Cross Linux from Scratch, while the instructions are aimed at pure32/pure64 Linux from Scratch. Also, I was planning on installing a development release of Mutter rather than the stable one, in order to be able to (finally!) use the proprietary NVIDIA driver with Wayland.
It started off reasonably enough. The list of dependencies was huge, but getting, compiling and installing them proved to be a fairly straightforward and robotic process. However, I drew the line at NetworkManager and Bluetooth-related stuff. I do not need to complicate my life with NetworkManager, since I have been using SystemD-NetworkD for almost a year and have had no problems with it. (Conversely, my Ubuntu-based server, since July, has used NetworkManager in conjunction with SystemD, and has given me quite a few headaches.) Also, this is a big desktop gaming rig and will never be in any way Bluetooth-capable, so installing software for that would be utterly pointless. I hit a bit of a snag then when I tried installing
GNOME Control Center – apparently, as of version 3.22, GNOME has different ideas about what I do or do not need on a Linux system. Well, FLOSS is FLOSS, so I did something slightly cheeky, and then proceeded as normal:

Normally, I'd worry that playing fast and loose with dependencies could come back and bite me in the proverbial, but this was a clear case of an artificial restriction that could easily be removed.
So anyway, the moment of truth finally arrived. I was ready to start up GDM, the display/login manager. I exited my window manager to get a terminal, put in "systemctl start gdm" and got… a blank screen! Ugh! I proceeded to worry myself senseless by doing silly things like running gnome-session or mutter from a bare terminal. When doing this produced segfaults, I got it into my head that this was a compiler issue (cf. what I said above about GCC4 vs. GCC6) and went mad, recompiling loads of different things on the stack. Turns out these compiler worries couldn't have been further from the truth. The segfaults were simply because I was trying to launch a GNOME Session without GDM running, which is impossible because the environment isn't set up properly. This is what really frustrates me about GNOME tbh, all this stuff fits together so tightly and everything has to be done in a certain order. It's so Windows-like, compared to what I'm used to!
So anyway, I have a laptop which is authorized to SSH in to the PC, so I was able to use that to start and stop GDM and, more importantly, read the journal to see what was going on. I noticed an error, "could not find drm kms device", which, after a bit of grepping in the source code, I realized was coming from Mutter. The Wayland backend was failing to initialize, so it was falling back on X11, which was also crashing because I never set up X11 properly, having never needed it. I figured I was being too risky by using a development release of Mutter, so I downgraded to 3.22. This did indeed fix that error, but unfortunately it was replaced by a different error. I'd love to tell you what it was, but I can't remember. It should still be in the journal, but it seems GNOME has started cleaning that out on a regular basis, thanks a lot!

(Seriously, until a couple of weeks ago the journal contained everything that happened since December 22 last!

). The point is, I needed more debug output, so rather than giving myself more headaches by trying to pass environment variables to SystemD services, I simply went into the source code and changed a few lines from "g_debug" to "g_printerr", or something like that, to get the information I needed. I recompiled Mutter and tried again.
It turned out that there were "Access denied" errors coming from DBUS, as Mutter was trying to take control of the display. Looking back in my archives, it seems I installed SystemD on the very first day of building the system (naturally), the aforementioned December 22. I then installed Linux-PAM on December 25 (like I said, I was very Scrooge-like with this project!) according to some rather outdated instructions on the CBLFS wiki, at
http://cblfs.clfs.org/index.php/Linux-PAM. Thus, I recompiled Shadow against PAM, but never twigged that I also needed to
rebuild SystemD against it. Somehow this never caused me any problems in almost eleven months! I was tipped off, however, by the fact that the page I just linked on rebuilding SystemD was listed as a "runtime dependency" for GDM. I proceeded to recompile SystemD, blending those instructions with
these, since I decided to install the same version again instead of upgrading (too risky, even for me!). This went surprisingly smoothly, and I was able to link against things like Glib and LibGCrypt, which I hadn't installed until much later than December 25!
Was I then, finally, able to start GDM, and therefore GNOME? Well, not quite. The serious errors above were replaced with a rather annoying one, "JS ERROR: !!! Exception was: Error: Requiring AtSpi, version <SOMETHING>: Typelib file for namespace 'AtSpi' (<SOMETHING>) not found". Again, the journal's been flushed, so I can't remember what the number was, but hopefully you get the idea. Turns out that whatever package supplies AtSpi, I had configured it to put its stuff in /usr/lib, but never did a parallel install in /usr/lib64, which is where the 64-bit Mutter was looking for the "typelib" files. Therefore it was a simple matter of "cp /usr/lib{,64}/girepository-1.0/Atspi-2.0.typelib", and the same for one other typelib file. And then, well,
viewtopic.php?f=15&t=107&p=1193316#p1193316!i
I made some attempts at getting the proprietary NVIDIA driver to work, having installed
GLVND and recompiled Mesa against it. My plan of attack was to install two builds of the kernel, one with the nouveau module and one without it, and build the NVIDIA module against the latter. The GLVND library would mean that at the non-kernel level everything else would sort itself out. Unfortunately it didn't pan out. I think that's because NVIDIA's installer thought my 64-bit libraries went in /usr/lib and 32-bit in /usr/lib32. Actually lib32 was just a symlink to lib, which caused all sorts of problems. I put the symlink there ages ago when I tried (and failed) to build
MinGW, so I've got rid of it now, and may try NVIDIA again next week.
For the moment, I'm running GNOME 3.22 with stable Mutter, and quite happy with it. Stable Mutter does have pointer-locking, so
The Ball and
Portal 2 actually work for the first time! There are a few annoyances though. Mutter on Wayland sometimes fails to take control of the keyboard properly, so Ctrl+C is interpreted as a kill signal and logs me out! I'm learning to avoid using it to copy stuff… Also Alt+F4 does something weird instead of just closing the window, I'm not sure why. Either way, when I don't really need GNOME-isms, I can pick "Sway" in GDM instead of "GNOME" and log on to my trusty old tiling WM!
The other day I finally started playing Beyond Good and Evil, thinking the pointer-locking would make it playable. For some reason though, the pointer-locking doesn't work with that game! I had noticed that "GNOME on Xorg" is also available as an option in GDM, and I realized that I did have a lot of the groundwork laid for using Xorg on this system (especially since GNOME forced me to install all that Wacom stuff!). All I needed to do was install two drivers: an
input one and an
output one. In Wayland such things are dealt with in a much more streamlined fashion, but still, it was a simple matter of compiling these two small libraries, and now "GNOME on Xorg" works! And so does BG&E!
So, yeah. Maybe this would've been better off as a blog post, but hopefully it's in some way entertaining. The games that I mention give some hint as to my initial motivations, but I'd still be happy to provide more background in a separate post.