I connected my Jetson Nano to an external projector and the console text was microscopic. The framebuffer was running at 3840x2160 (4K) on a display where I could barely read anything. Here’s how I fixed it.

The problem Link to heading

The Jetson Nano auto-negotiates resolution via EDID when an HDMI display is connected. If your monitor or projector supports 4K, it’ll default to 4K. On a console TTY with the default 8x16 font, that means tiny, unreadable text.

What doesn’t work Link to heading

Kernel boot parameters: On most Linux systems you’d add video=HDMI-A-1:1920x1080@60 to the kernel command line in /boot/extlinux/extlinux.conf. On the Jetson Nano this gets ignored — the Tegra display controller (tegradc) manages HDMI independently from the standard DRM subsystem.

Changing the framebuffer mode directly: You can set it with:

echo 'D:1920x1080p-60' > /sys/class/graphics/fb0/mode

This works immediately, but the Tegra driver re-reads EDID on every HDMI hotplug and resets to the display’s preferred (highest) resolution. Unplug the cable and you’re back to 4K.

What works: bigger console fonts Link to heading

Instead of fighting the resolution, I’d recommend keeping the native resolution and using a larger console font. The Jetson has Terminus fonts available up to 32x16 pixels — 4x the area of the default 8x16.

Check your current font config:

cat /etc/default/console-setup

You’ll probably see:

FONTFACE="Fixed"
FONTSIZE="8x16"

Change it to the largest available Terminus font:

sudo sed -i 's/FONTFACE="Fixed"/FONTFACE="TerminusBold"/' /etc/default/console-setup
sudo sed -i 's/FONTSIZE="8x16"/FONTSIZE="32x16"/' /etc/default/console-setup

Apply immediately without rebooting:

sudo setupcon --force

At 4K with a 32x16 font, you get roughly the same readability as a 1080p display with the default font. It’s the largest font available in the standard console-setup package — if you need even bigger, you’d need something like fbterm which renders fonts via freetype.

Enable persistent journal logs Link to heading

While you’re at it, the Jetson Nano doesn’t save boot logs by default. If something goes wrong on a previous boot, you won’t be able to check journalctl -b -1. Fix that:

sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald

Now previous boot logs are preserved across reboots.

Harmless boot errors to ignore Link to heading

If you check dmesg --level=err on a Jetson Nano, you’ll probably see these:

imx219 6-0010: imx219_board_setup: error during i2c read probe (-121)
imx219 6-0010: board setup failed
tegradc tegradc.1: dpd enable lookup fail:-19
cgroup: cgroup2: unknown option "nsdelegate"

These are all benign:

  • imx219 probe fail: The kernel tries to detect a Raspberry Pi Camera Module v2 (IMX219). If you don’t have one connected, this error is expected.
  • tegradc dpd: Display controller noise, doesn’t affect anything.
  • cgroup2 nsdelegate: The Jetson’s older kernel doesn’t recognise this cgroup option. Harmless.

Further reading Link to heading