wonderfly Blog

Intel NUC Tips and Tricks

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.