I recently upgraded one of my TrueNAS systems from CORE (13.0-U6.7) to SCALE (25.04.1 Fangtooth.)
No issues encountered during the upgrade process. (Thanks iX developers!)
However, after completing the upgrade/install, I noticed that during the SCALE boot up sequence (which appears to be occurring post GRUB execution after the handoff to the linux O/S) that the boot console screen display resolution switches over to a much higher display resolution than it was originally when I was on CORE. Once there, it stays on this higher resolution output for the remainder of the start up sequence.
The increased boot console screen display resolution is causing an issue with my console display monitor (ā¦which expects a lower resolution output for the console screen.)
Consequently, is there a way to tell Fangtooth to reduce the console display screen output resolution so it will be at the same resolution that it was in CORE?
Thanks for the suggestion @MikeO3. Iāll give that a try and see if it resolves my issue. I use a rack mounted display console here for my TrueNAS CLI, so replacing it would be an expensive option.
I remounted āboot-pool/ROOT/25.04.1/usrā as rw and edited ā/usr/local/bin/truenas-grub.pyā to add the following directives to the "config = " portion of the script:
Looked good, so I then remounted the boot-pool as rw and ran āupdate-grubā to update grub boot loader⦠Rebooted again with high hopes and⦠no joy. Iāll have to investigate further to see where Iām going off the rails. <grrrā¦>
Ok hereās the addendum to the āset console display resolutionā investigation:
First, I found that āGRUB_TERMINAL_OUTPUT=āconsoleāā needed to be set as āGRUB_TERMINAL_OUTPUT=āgfxtermāā to allow the grub GFX setups to have effect.
Afterwards⦠still āno cigarā on getting the linux kernel to recognize the grub GFX settings as directed.
I then did an āupdate-grubā to activate the changes in grub and weāre now in business.
I still need to rewrite the āadvanced serial consoleā portion of the truenas-grub.py script so that the serial portion runs correctly in āconsoleā mode rather than āgfxtermā mode when serial output is selected (ā¦though I donāt use a serial console here.) It would be nice to be able to input the console resolution parameters in the web UI and have it propagate over to the low level system. (Perhaps a feature request is up coming?)
Iām still not sure why the GRUB2 parameters devoted to this purpose (i.e.: GRUB_GFXMODE and GRUB_GFXPAYLOAD_LINUX) arenāt passing gfx cfgs over to the kernel. However, it all works now and my console monitor is running at the correct screen resolution.
OK⦠So after some time, review, wading through incomplete documentation (which always seems to lag behind the actual software), and some head scratching; I believe that I have found a better way to accomplish console video output resolution changes.
By using the existing TrueNAS middleware āmidclt call system.advanced.updateā call from the TrueNAS shell, you can pass the additional Linux kernel parameter āvideo=HxVx@Rā into the system ākernel_extra_optionsā variable, which will change the console resolution at the next boot up without resorting to changing any system scripts (ā¦which is probably a process heavily frowned upon by the TrueNAS folks.)
So for my console video application the middleware shell command is:
Since the middleware facility to add additional kernel options already exists in TrueNAS, it seems that it would be a fairly straightforward process to add an item to the advanced options section of the GUI to send Linux boot parameters over to the kernel without having to access the shell. That maybe an item the developers might consider in the future.