Trisquel, Nouveau and page sizes on Power9
- Inicie sesión ou rexístrese para enviar comentarios
The question a few months ago about Blackbird and Trisquel motivated me to digging into the cause of the issue I had with my NVIDIA card in my RaptorCS Blackbird system. I discovered that the cause of the issue is that Nouveau expects the system to have a 4Kb page size, whereas most ppc64le distributions, being intended for server use, are configured as 64Kb - https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/issues/258. There's some more background here if you're interested: https://www.talospace.com/2020/10/where-did-64k-page-size-come-from.html.
The first effect of this for me was that the boot system (Petitboot) is also configured with a 64Kb page size, and it includes the Nouveau driver, which it attempts to load when it recognises my video card. This causes a crash, but could be mitigated by blacklisting the module for Petitboot.
The next problem is - how to use it in a distribution? Trisquel, like most other ppc64le distributions, uses a 64Kb page size as well, so is unusable with my NVIDIA card. After some more investigation, I found Gentoo is one distribution that provides both 64Kb and 4Kb page size variants. I proceeded with my first Gentoo install, and now have a working system. However, I think I can't recommend using Gentoo in this forum, so back to Trisquel - is there any chance of switching or offering as an alternative support for 4Kb page sizes in Trisquel? As a desktop-focussed distribution, the advantages of 64Kb page sizes are probably reduced, and in desktop systems, it would be nice to support the Nouveau driver I think.
Why am I so obsessed with my NVIDIA card? Why not use Radeon / AMDGPU? Well, any AMD card I buy today (as far as I know) requires proprietary firmware to enable features like 3D hardware acceleration, etc. The cheapest AMD card at a local computer store is $209, whereas the cheapest NVIDIA card (GT 710) is $39. I could even splash out on a GT 730 with DDR5 RAM for $99. Both of those cards work with the Nouveau driver (I have the GT 710, so I can confirm that. I can't vouch for the GT 730, but it's documented as supported). So if I choose AMD, I have to pay more for a card and not be able to use features like 3D hardware acceleration. That's why I choose NVIDIA. But I'd really like it to work with Trisquel in my ppc64le system.
Doesn't gentoo have a fully free installation method with the Linux-libre kernel? I thought I read that last time I was browsing through their installation procedures. If so, it wouldn't be any worse than forcing a fully free Debian install, it wouldn't seem.
I think we'd be willing to talk about it here if someone would be installing it without any non-free bits. We've talked about freeing up plenty of other distros here.
Gentoo has a variable named ACCEPT_LICENSE. It can be set to "-* @FSF-APPROVED @FSF-APPROVED-OTHER": https://wiki.gentoo.org/wiki/License_Groups
Nevertheless, Trisquel's package helpers often correct more subtle freedom issues. The blobs in the kernel is a big one, but there is a solution in Gentoo for those. Indeed, the "deblob" flag can be added to the USE variable: https://packages.gentoo.org/useflags/deblob
Thanks, I have set the license variable. I didn't see that USE variable, so thanks for referring me to that.
It's very likely possible, since I compiled the kernel anyway. I will just need to investigate the instructions for the linux-libre kernel. I didn't see it in the Handbook.
Thanks for the clarification on your willingness to discuss the topic - I missed that nuance, and only knew that the FSF did not endorse the distribution.
You certainly want to build Linux-libre. Indeed, I now notice the "deblob" in the USE variable only applies to the rt-sources package, for real-time operation. That keyword used to apply to more common sources (but linux-firmware is now a separate package).
http://linux-libre.fsfla.org/pub/linux-libre/releases/ contains the sources of Linux-libre. You may extract http://linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-6.11.N/linux-libre-6.11.2-gnu.tar.xz in /usr/src/ for instance. I guess https://wiki.gentoo.org/wiki/Handbook:PPC64/Installation/Kernel#Alternative:_Manual_configuration applies unchanged, to configure Linux-libre.
Why not open an issue in the Trisquel bug tracker to suggest 4K page size support as an option? It might help bring more attention to the compatibility challenges you're facing with the Nouveau driver and NVIDIA hardware.
Also, have you spoken to the Petitboot or the Raptor people about building a version of Petitboot configured for 4K page sizes? That might be a good step forward to ensure better overall compatibility.
I could consider changing the Linux-libre kernel builds to use to 4K page sizes. However, I'm concerned about people who still have Petitboot configured with 64K page sizes and the resulting memory mapping incompatibility when booting into a kernel with 4K page sizes. Such a change seems to be something that needs to be coordinated together to update both Petitboot and the kernel at the same time.
Thanks for the suggestion. I will open an issue in the bug tracker, it would be the better place to do it. I haven't raised the issue with Petitboot or Raptor. The majority of users probably prefer 64K page sizes, so I'm not sure that would be accepted. The issue I had with Petitboot was simple enough to work around once I figured out how.
In my limited experience, booting via Petitboot with 64K page sizes, and then switching to 4K pages sizes for Gentoo didn't present any problems.
Are you open to testing a Linux-libre build with this setup on Trisquel on ppc64el?
Sure, I'd be happy to help.
Thank you. This kernel has been configured using CONFIG_PPC_4K_PAGES=y. My hope is for you to test it on Trisquel while booting via Petitboot with 64K page sizes and confirm that everything works appropriately.
https://jxself.org/for-bernie/
I've registered an account on the bug tracker to move this discussion there, but in the meantime - thanks very much. I installed your kernel, and it worked flawlessly. Screenshot attached. My video card was cheap, but it can still run dual monitors at 1920x1080, one of them at 100Hz. I don't know if I could be happier!
Please let me know if there's anything particular that you would like me to test for this.
Thank you. I plan to implement that on new kernel versions (6.11.4-gnu, etc.) as they come out via the Linux-libre APT repository at https://www.fsfla.org/ikiwiki/selibre/linux-libre/freesh.en.html
It's also been submitted to the Trisquel people for review via https://gitlab.trisquel.org/trisquel/package-helpers/-/issues/186
The newer kernel versions have been released, so I have removed the testing area. Please use https://www.fsfla.org/ikiwiki/selibre/linux-libre/freesh.en.html from now on.