IPfire CU 189 at FriendlyElec NanoPi R2S. I see an error on serial console during boot. I am not sure but I assume it is hardware related, that some font cannot be loaded:
...
Setting system clock...
Fri Oct 18 04:46:24 CEST 2024 [ OK ]
Setting up Linux console...
setfont: ERROR kdfontop.c:183 put_font_kdfontop: Unable to load such fo[ FAIL ]such kernel version
Setting up Pakfire Package Manager... [ OK ]
...
Had the same today on an PC Engines APU2 system after updating from 187 to 189, so I guess it’s note hardware related.
Fri Nov 29 10:21:37 CET 2024 [ OK ]
Setting up Linux console...
setfont: ERROR kdfontop.c:183 put_font_kdfontop: Unable to load such fo[ FAIL ]n
Setting up Pakfire Package Manager... [ OK ]
Reading some comments about this common issue with kernel, adding fbcon=nodefer to the kernel command line might fix it. As I administer only one production system with attached serial console, I am not able to test this, sorry.
I have time to look at this today, but usually it happens when a setfont statement is missing.
but .screenrc (which is one of several files that it can be depending on the terminal program) is missing in the user’s home directory. nor /etc/rc.conf is in this installation. If the terminal program is compiled with this file in the list of externally called files, it can be created and set the terminal environment manually. Same with $HOME/.screenrc even tough it should be loaded as a system envar SCREENRC. /etc/vconsole.conf is possibly another of these external config files.
it should look something like this:
FONT=ter-116n
KEYMAP=us
Also the vga framebuffer mode is also known to cause this when disabled. If this is the problem, then adding VGA=792 in grub on the os entry will fix this.
There is bugs in systemd related to this, but apparently IPFire doesn’t use systemd since pid 1 is init.
After looking into this further, Keith broke fontconfig so X11 could work, and the default directory and files are missing. So, the fix is going to be fixing fontconfig and undo the X11 modifications that included removing the console font db.
To look at this issue, type: fc-match at the terminal to look at the runtime error messages.
Also the user fontconfig directory is missing in root’s home folder and the load font code at login looks at it. But when it calls $XDG_CONFIG_HOME/fontconfig/font.conf the directory and file is not there.
These files must be present for the font system in Linux to work properly:
/etc/fonts/fonts.conf
/etc/fonts/fonts.dtd
/etc/fonts/conf.d
$XDG_CONFIG_HOME/fontconfig/conf.d
$XDG_CONFIG_HOME/fontconfig/fonts.conf
~/.fonts.conf.d
~/.fonts.conf
the envar " $XDG_CONFIG_HOME " is root’s home directory
IPFire has no X11 and on tty consoles fontconfig is working on IPFire. The error occours only on serial consoles. I also see no way to set a font on serial ports.
Font fallows the user’s login. But the system should have default too. Currently the font system that is working only effects text in the web gui as I intentionally change font.conf file to test what would be effected. Which was disabling the font filter so I can load a set that would return blocks and symbols.
But the install of this is broke in a lot of distros and the ones that went to systemd use a different font system.
This actually looks like fontconfig should be reloaded from the source. But I’ll test that once I swap in the new ipfire in the network and put my drive I have make into a different machine.
Oh, this is a screenshot of the web gui when I force loaded an invalid font package (so I can see what is using system fonts)
The console is diffent from the webinterface. It is configured in /etc/init.d/console.
There is simply no check to skip the setfont part if there is no tty that can configured.
yes and no. Because it running cgi/bin so all calls from the command line and certain text echoed in single line encapsulation reverts to system fonts.
I changed one file (fonts.conf) to a 2005 copy that was before the x11 system patches just to see what it would do.
One of the main issues I see is the system is incomplete because the user’s files for it are not there. So it can’t connect to the font database it stores in nobody’s home because its not there. So font config loads the first valid font it sees after it passes the filter check. But does not set a default font for the system.
Since my 192 machine has make,gcc and the headers, I will install fontconfig from freedesk.org and see what happens. But I think all it needs to be done is setup fonconfig because the usual functions are installed.
But to let you know, its been broke in Linux main for years and most if not all init based systems.
My APU2C2 shows something similar starting with core 189 onward - today, on core 193 also show this boot message.
Any solution to make this dissapear?
Tue Apr 15 14:28:29 CET 2025 [ OK ]
Setting up Linux console...
setfont: ERROR kdfontop.c:212 put_font_kdfontop: Unable to load such fo[ FAIL ]such kernel version