How to make change console font size?

Hi there,

I installed Manjaro minimal on my pinebook pro. I realize the console font is too small for me to read; so, I am trying to make the console font size bigger.

I have installed terminus fonts to have bigger font options, edited /etc/vconsole.conf and also added consolefont hook on /etc/mkinitcpio.conf. I am still having problems:

  1. During the boot process, the font does not change at all and I end up having the same small font size.

  2. If I switch to console while Plymouth is showing, the font changes and I am greeted with the big size font.

Is there any way to fix this issue? I want to switch to the big size font permanently. Any help would be appreciated.

I managed to make it work. If I recall correctly, this is what I did:

sudo pacman -S fbset terminus-font
sudo nano /etc/vconsole.conf  and add `FONT=ter-v18b` #substitute your preferred font
sudo nano /boot/cmdline.txt and add `video=1920x1080` #substitute your desired resolution

Then add the consolefont hook before plymouth in mkinitcpio.conf
(I do not know if order matters or not)

sudo mkinitcpio -P
reboot
2 Likes

The procedure you have provided did not work for me. I still have the same symptom.

According to Arch Wiki titled “Linux Console”, we may need to load the graphics driver earlier. The article is below:

https://wiki.archlinux.org/title/Linux_console

I do not know if I can do that with the graphics driver of Pinebook Pro; actually, I am even unsure the graphics card of pinebook pro, maybe Mali? The trick seems to be setting up the framebuffer before vconsole.conf is applied.

I am completely novice to the world of terminus font. There are quite a few variants and not sure which one to choose. Allso, there is another variable on the wiki “FONT_MAP”. Do I need to set it up in combination with the “FONT” variable?

Any help would be appreciated.

I have not setup console fonts before, so I have very limited experience.

And unfortunately, I do not own a Pinebook Pro, and I do not know the needed driver. But for the RPI4, in the mkinitcpio.conf file, there is a modules=() setting. For the RPi4, we have modules=(vc4), which makes sure the vc4 driver is loaded early. Maybe there is an equivalent driver module for the Pinebook Pro?

I believe the Mali driver is the hardware accelerated 3D video driver, I do not think the fonts use a 3D driver. I think the normal video driver should work, a framebuffer is what is required. For the RPi4, vc4 is the video driver and v3d is the 3D accelerated driver.

I do not have FONT_MAP set in the vconsole.conf file, so I don’t think it is required, possibly useful.

The fonts will not change until after systemd has started, so the early boot messages will use the normal font. I do not know how to change that. I use the systemd hook rather than udev hook, maybe that makes a difference? (Confirmed, it works with either udev or systemd hook.)

Sorry that I can not provide you definitive answers.

These are the relevent lines I have in mkinitcpio.conf:

MODULES=(vc4 btrfs)

HOOKS=(base systemd consolefont plymouth keyboard autodetect modconf block btrfs filesystems fsck)

Ignore the references to btrfs, those are for my filesystem.

Edit: As for which font to select, read: /usr/share/kbd/consolefonts/README.Lat2-Terminus16. Specifically section: 2.4. Legend

Edit 2: My guess is you will want a font name which begins with: ter-v
The size is next, and then either normal or bold.
I like ter-v18b on my 1920x1080 monitor but you will need to try them to decide which you prefer.

1 Like

I performed the steps on a fresh install and it was successful.

When you say you followed the procedure, did you add video=1920x1080 to your u-boot? I think it should be passed on the kernel command line, however that is done with the pinebook pro.

Have you checked to make sure your kernel supports a console framebuffer?

$ sudo modprobe configs

$ zcat /proc/config.gz | grep -i framebuffer

CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y

I have included the framebuffer on the file you have specified

$ sudo nano /boot/cmdline.txt and add video=1920x1080
(substitute your desired resolution)

There was no cmdline.txt in the folder. I created one and added the same statement within the quote.

I suspect I need to specify the video settings somewhere else. I am not familiar with this pinebook-pro and arm thing for sure.

I will check this on my Manjaro minimal install.

I have confirmed this is not a requirement, at least with my monitor. I get the font with or without that on the command line.

So now you should to confirm your kernel supports the console framebuffer. Because except for video=1920x1080 step, the other steps are generic and should have resulted in a font change for you.

Ok, I have issued the commands in your post. The last command gives me:

CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set

So, I am assuming all good.

PBP does not use cmdline.txt; the rpi’s do.

I have installed sway wm with wlgreet login manager as of now. Still, I want to make the console better to work on as I will be switching to console from time to time, if possible.

Hmm, this should be working you then. It is all just basic linux stuff, not arm specific or even arch specific.

Ah ok, thank you for the tip. Much appreciated.

I was hoping to do it with relative ease. Proven to be difficult for me. I guess part of the learning curve.

Pinebook Pro has been a unique experience for me anyway. I bought this pbp with an expectation that everything would work out of the box with an optimized linux os. My experience has been opposite. That said, I am happy with my pbp as of now.

Check to make sure the service runs and is successful:

$ systemctl status systemd-vconsole-setup

â—Ź systemd-vconsole-setup.service - Setup Virtual Console
     Loaded: loaded (/usr/lib/systemd/system/systemd-vconsole-setup.service; static)
     Active: active (exited) since Sun 2021-08-08 13:55:46 CDT; 6 days ago
       Docs: man:systemd-vconsole-setup.service(8)
             man:vconsole.conf(5)
    Process: 237 ExecStart=/usr/lib/systemd/systemd-vconsole-setup (code=exited, status=0/SUCCESS)
   Main PID: 237 (code=exited, status=0/SUCCESS)
        CPU: 96ms

Aug 08 13:55:46 octopi systemd[1]: Finished Setup Virtual Console.

I am thinking I need to do something with loading the graphics driver before the framebuffer. I can’t make sure.

I guess I will take it easy as I have the luxury of using a wm manager as of now.

I will keep here posted if I can solve this. If anyone has a solution, I would be appreciative to learn from.

Ok, below is the output of the vconsole service status:

â—Ź systemd-vconsole-setup.service - Setup Virtual Console
     Loaded: loaded (/usr/lib/systemd/system/systemd-vconsole-setup.service; static)
     Active: active (exited) since Sun 2021-08-15 14:25:22 EDT; 16min ago
       Docs: man:systemd-vconsole-setup.service(8)
             man:vconsole.conf(5)
    Process: 405 ExecStart=/usr/lib/systemd/systemd-vconsole-setup (code=exited, status=0/SUCCESS)
   Main PID: 405 (code=exited, status=0/SUCCESS)
        CPU: 95ms

Notice: journal has been rotated since unit was started, output may be incomplete.

It seems to be working with a strange notice on journal.

It would be nice if I could fix this console font issue. I am not able to work on console as I can’t read the small fonts whenever I switch to console…

Since a framebuffer is required, what framebuffer is created on the PBP?
Try running:

$ dmesg | grep frame

Looking for something like: Console: switching to colour frame buffer device 240x67