Intel NUC Tips and Tricks
04 Dec 2021- Workaround Ubuntu’s “blank screen” boot failure
- Use a desktop switch to connect your NUC and your primary desktop computer for faster file transfers
- Use X11 forwarding to run GUI applications from your primary desktop
Workaround Ubuntu’s “blank screen” boot failure
In my experience this not unique to Ubuntu (Fedora, ArchLinux also had a similar problem), but after a fresh install of Ubuntu on the NUC, if you reboot, your NUC will flash the “Intel NUC” BIOS screen for a quick second and go blank indefinitely. Power cycling doesn’t seem to help. The fix is to append nomodeset
to the kernel command line.
To do this, plug in a USB stick with a bootable image. Reboot and select the bootable image from the USB stick. Select “Try Ubuntu” instead of “Install Ubuntu” so you won’t wipe out the image already installed on your hard drive/SSD. Once booted into the live CD, open a shell, and mount the EFI and rootfs partitions of the on-disk OS:
$ mkdir root boot
$ sudo mount /dev/sda1 boot
$ sudo mount /dev/sda2 root
$ sudo vi root/boot/grub/grub.cfg
# Append 'nomodeset' to the kernel command line
$ sudo umount root
$ sudo umount boot
$ sudo reboot
NOTE: here I’m editing the file in the rootfs partition because the “root” GRUB config that lives in the EFI partitions simply sources the one in the rootfs partition. So always start with the one in the EFI partition because that’s what the BIOS will load.
Unplug the USB stick, reboot, and you should be able to see the boot continue as usual.
Use a desktop switch to connect your NUC and your primary desktop computer for faster file transfers
The NUC comes with a wifi interface which is convenient for connecting to the Internet. But for data transfer between the NUC and your primary desktop, it’s best to use an Ethernet switch for more bandwidth and less variability. When I did this I saw a 100x increase in bandwidth:
[I] ~> iperf -c 192.168.86.31 (wifi endpoint)
------------------------------------------------------------
Client connecting to 192.168.86.31, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 1] local 192.168.86.250 port 53639 connected with 192.168.86.31 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-10.19 sec 12.1 MBytes 9.98 Mbits/sec
[I] ~> iperf -c 192.168.5.31 (ethernet endpoint)
------------------------------------------------------------
Client connecting to 192.168.5.31, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 1] local 192.168.5.32 port 53640 connected with 192.168.5.31 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-10.04 sec 1.10 GBytes 940 Mbits/sec
Use X11 forwarding to run GUI applications from your primary desktop
If you are using the NUC in a headless configuration (i.e., no monitor
connected), and yet need to run some GUI application from time to time, X11
forwarding over SSH could be a good option. For MacOS, there is XQuartz. After
installing XQuartz, run ssh nuc -Y
(-X
most likely will also work) and you
will get an SSH session with X11 forward. If you then type, e.g., firefox
, in
the terminal, a firefox window will be started on your MacOS.
I am not yet sure if this is better than VNC but in my experience VNC gave me a gray screen with no content - could be a mistake on my end but I didn’t invest further.