放大 GRUB 菜单及启动或关闭时的字体
Views
Actions
Namespaces
Variants
Tools
This how-to is really a two in one, as the first part is about enlarging the font used by the GRUB menu & the early phase of the boot process up until the GPU driver loads.
The second part is about first identifying the GPU module to load, & then using the Kernel Mode Setting (KMS) ability of the Linux kernel to instruct it to load modules extremely early in the boot process. Which is what we will do with the GPU module via the /etc/mkinitcpio.conf file. Then finishing off that process by rebuilding the initial ramdisk image.
After that we need to find where the consolefonts directory is & if need be clone the /usr/share/kbd/consolefonts directory to /usr/share/consolefonts. After that we need to choose a font, though I'll endeavor to make that as quick & painless as possible. Then we need to tell the /etc/conf.d/consolefont file what that font is, save & reboot to a new situation where we are able to actually read the text as it goes by. That's the plan.
This one requires you to choose a font that you like (mono fonts are easiest to read), I chose DejaVuSansMono20 & here is the command line that creates this font in a GRUB compatible format, in the size that you have chosen & places it in the newly created /boot/grub/fonts directory (its a long command & it is ALL on one line):
sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono20.pf2 \ --size=20 /usr/share/fonts/TTF/dejavu/DejaVuSansMono.ttf
Then we need to open the /etc/default/grub file in our text editor as root (use sudo) & add the following line (or lines if your like me & have a bad memory):
- ==========================_HANDY_==========================================
# More readable font on high dpi screen, generated with the following # 2 lines on ONE line, terminal command (ignore the error messages it works!: # sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono24.pf2 \ # --size=24 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf ##=========================================================================== GRUB_FONT=/boot/grub/fonts/DejaVuSansMono18.pf2
Save the edited file & then enter the following at the Terminal prompt:
sudo update-grub
Having done that, if you reboot the GRUB menu will be bigger & so will a shortish portion of the boot process, up until the GPU driver kernel module is loaded, where you'll go back to the default console font.
Use sudo & load /etc/mkinitcpio.conf into your text editor & find the MODULES="" line very near the top of file. Here you will have to put your GPU module name, the three choices that I can show you here are:
Intel on-board (at least all of the intel CPU's that carry a GPU/CPU):
MODULES=(i915)
AMD/ATi:
MODULES=(radeon/amdgpu)
nVidia free:
MODULES=(nouveau)
nVidia proprietary:
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
If your MODULES= line has any other modules on it already, just add your new one with a space separating it from the previous one.
You can save & close the file.
For our next trick, we have to identify which kernel branch you are using. Most people will be using an older; more recent; or the most recent, version of the "normally" supported kernel. Such shows itself in the /boot directory like so:
initramfs-6.1-x86_64-fallback.img
initramfs-6.1-x86_64.img vmlinuz-6.1-x86_64
(this is for Kernel 6.1, it may be different for you)
& would therefore use the following command to rebuild their Init Ramdisk Image:
sudo mkinitcpio -p linux61
(again for kernel version 6.1, replace the version with your)
For those that are using the/a Linux Long Term Support kernel then their identifying /boot files will look like this:
initramfs-linux-lts-fallback.img
initramfs-linux-lts.img vmlinuz-linux-lts
& would therefore use the following command to rebuild their linux-lts Init Ramdisk Image:
sudo mkinitcpio -p linux-lts
For those using more exotic kernels, you already know how to modify the above command to suit.
For Manjaro users that are using multiple kernels, you are going to need to edit multiple mkinitcpio.conf files that are named to suit each of your kernels. I don't have to bother with that on Artix (Arch/OpenRC), for better & worse. Again, your /boot directory will tell you what to do (as shown in the differences in the examples above).
On Artix, I had to copy the /usr/share/kbd/consolefonts/ directory into /usr/share/consolefonts . Whether I could have used the /usr/share/kbd/consolefonts directory in place or not I don't know (I didn't try). The /etc/conf.d/consolefont file uses the /usr/share/consolefonts path, so I made one.
So the first thing that you have to do (before I find out from someone in the Manjaro forum where the consolefonts directory exists) is see whether you have to clone the directory from /usr/share/kbd/ to /usr/share/ or not. After that is sorted, then you need to choose a font. You won't like doing that. Here is a link to an old page (far fewer suitable fonts & its still too many)
Take my advice & use ter-132b this is a font that is large enough for my 15" 1440p display. I expect that it would be great on a 24" 1080p display. If it is too big, you can use a smaller number as will be easily seen in your consolefonts directory.
To tell the kernel to use the chosen custom console font you will need to open the /etc/conf.d/consolefont file & comment out (use the # at the start of the line) any line that says:
consolefont=
Then add your own line. This is what I did:
consolefont="ter-132b"
You need to make no other edits to this file, so close it.
Now from what I can make out on the ArchWiki font page: [2] The above how-to should work on SystemD, as is. I will check on the Manjaro forum & if & where needed modify this page (there shouldn't be much in it as both systemd & openrc use the same kernel).
For Artix (Arch/OpenRC) users, you would need to just once use the following command:
sudo rc-update add consolefont boot
Hopefully I haven't forgotten anything, as this is has been a multi-step process & I lost power & a good deal of the wiki page some time ago & had to do it twice! ;)
This page is still a work in progress & will be polished up as soon
as I'm given the info' that I need via the Manjaro forum. ;)