OK, it’s been three long years since I’ve used a dedicated bare-metal Ubuntu machine. The last time was with house-made machine learning machines when the Titan was a big system, but we were amongst the first to build quad GPU machines running the then very new Ubuntu 14.04. Now of course the world has matured a lot. I’ve mainly been using Ubuntu either in a Virtual machine with Colima for instance or the Ubuntu Multipass or in a GCP instance. But the time has finally come where we needed to do work potentially on models that are not connected.
Reviewing the Juno Jupiter 14″ Pro V2
In looking at the very few machines that had Ubuntu preinstalled and drivers that really worked, we ordered a $1,600 thin and light notebook that was one of the only ones that had an nVidia GPU in it for play machine learning work. The Juno Jupiter 14″ Pro V2 just arrived (from a small UK company) and I have to say it was a little expensive, but it is a great notebook. First of all, Ubuntu basically worked out of the box. The main glitch is that the Firefox installed there does not work and crashes, but the installation was nice and it is great to have a three-pound notebook with an 11th generation i7-1165G7 (2.8GHz) and a 1080p panel that runs at 144Hz as well as a hefty 512GB SSD plus 32GB of RAM and an nVidia RTX 3050Ti with 4GB VRAM. It is also totally silent.
In terms of annoyances, the charger is really heavy and big brick and must weight at least a pound. It doesn’t use USB C charging, so the overall weight is more like 4 pounds if you include that accessory and the huge battery cables. Another one is that Firefox did not run out of the box (see below and you have to reinstall it). There is no user forum I can find for questions like this. Also it does not seem to work out of the box with a Razer Thunderbolt 4 station although t has a TB3 port. It also doesn’t have a fingerprint or other reader, so get used to typing your password a lot. All first world problems I know.
Buying it was pretty easy, they are UK based but have a distribution site in Philadephia and despite the pandemic shortages, it was built and arrived a week.
Battery life will not be at the MacBook Pro 14″ level, but it still lighter than the 3.5 pound. Just as a Just as a 96W USB C charger weighs about 12 ounces weighs about 12 ounces (which is why I use the 4 ounce Anker Nano II 60W charger mainly with it). But, since my last Ubuntu notebook weighed 7.5 pounds and has a 2-hour battery life with a roaring fan, this is a delight. The machine is actually more comparable to the MacBook Air M2 which is quite a bit smaller at 2.7 pounds (1.24Kg) and a tiny 4 ounce charger.
The really big long-term issue is that there is no a manual or a user forum that I could find, so some things were hard to figure out. For example, how do you turn on the keyboard backlight? The answer is there is a FN
button on the lower left which you use with the F-keys at the top. Then FN-F4 is the backlight and there is FN-F5 and FN-F6 for volume.
Remembering how to use Ubuntu
The main problem was remembering how to use Ubuntu, some commands like â-Space to get the search bar are so engrained it was hard to remember how to do things with Ubuntu 22.04.
A magic key also looks like a U with three lines on it. This seems like the Windows key on a laptop, but it isn’t documented. Looking at the Ubuntu keyboard shortcut documentation says there is an ALT key and a SUPER key which on a Windows keyboard has the Windows logo, but since is a dedicated Ubuntu machine has the Ubuntu log instead. So for instance just hitting SUPER give you a view of all running application and SUPER-Tab is like â-Tab on the Mac so you can switch between applications. And to just run a command it is ALT-F2
It is also very unclear how to get a right-click or a middle click. Turns out that if you go to the Tweaks page from the Application menu that is on the lower right (or use FN-A), you can find keyboard & mouse settings and the Mouse Click Emulation which I set at Fingers which means that two fingers tap is right click and three finders is middle click.
Also while you are settings, one annoying thing is that after five minutes, it returns to the login screen and you have to type your password in again, you can delay this Settings > Privacy > Screen and turn Automatic Screen Lock Delay to say 30 minutes instead of Instant.
Getting Avahi aka Bonjour browsing to work needs a reboot or restart
In terms of networking friendliness, it reports itself as a generic Intel WiFi card so you do not get with UniFi, that nice reporting. It also does not seem to use the DNS properly, so you do not get nice a network name like the default Raspberry pi where ssh raspberrypi.local
just works.
This is such an annoyance because if you change the default hostname, it does not get reflected in the Bonjour announcements. The Ubuntu 22.04 correctly has the Avahi browsing working, so if you do an avahi-browse -a then you can see all the Bonjour browsing, so you can do ssh richs-macbook-pro-2016.local for instance, the MacOS automatically publishes the cleaned version of the client name removing special characters and substituting a dash for spaces, but I can’t figure out what the hostname is for the computer.
The main trick is that if you change the hostname, then you either have to reboot to get the Avahi daemon to recognize it. Or, if you are a nerd, you just need to restart systemctl restart avahi-daemon
. Note that I could not figure out how to change the hostname from the command line so had to do it from preferences.
If you mess up your .profile CTRL-ALT-F5 is your friend
Which I did and made the .profile literally refer to itself so it looped, then you are in real trouble, you have to start a bash without reading .profile. From SSH this is pretty easy, you just need to start it with –norc and –noprofile and it works, so ssh richs-juno-jupiter.local bash --norc --noprofile
let’s you get in there and edit. Of from the box itself, there’s a magic command at the login which is CTRL-ALT-F5 that gets you to a terminal window. To get back try CTRL-ALT-F1.
Getting things configured is easiest with SSH and X-Windows
The big issue getting all things cloned properly and getting the environment running. The problem with all the authentication and credentials that are around it is a pain to cross-type them. I finally remembered that the best way to bootstrap is to use an existing machine where you do have credentials and things like 1Password and ssh into the machine.
Sadly, this is not the default in Ubuntu even now so you have to install OpenSSH with:
sudo apt-get update
sudo apt-get install openssh-server
Then if you have a decently configure network something like ssh richs-ubuntu.local
should hopefully get you into the machine or whatever your hostname is but if that doesn’t work then ip addr
should give you the IP address and you can ssh in and begin working.
Bizarre problem with Firefox Snap and user.dirs
OK, the strangest thing has been the default installation would not start Firefox. It would just fail. In looking at this, I couldn’t even get the logs to look at things. Argh, Ubuntu has changed so much, but when trying to run gh auth login below to start Firefox, I see that it cannot open two directories. It says that purges should work but didn’t, so instead, I just installed chromium before using git. Very strange:
# first try to uninstall firefox to fix the permissions bug
sudo snap remove --purge firefox
# then install it all
sudo snap install firefox chromium
# Start Chromium with ALT-A or Firefox from the CLI
firefox
# this starts from command line
chromium
Using X-Windows to Laptop for Setup
Having a Git repo that does it all
Well, now you have the labor of getting everything set up. If you are organized you can make an installation script that does this as I have at my repo on GitHub, but the main issue is that a simple clone now requires that you have a personal access token and that’s complicated, so what’s easiest these days is the bootstrap where you use the gh CLI instead and do this with Linux Brew so the commands are very similar to the Mac (and WSL for that matter rather than using the apt-get stuff)
# first run the magic linux brew script
# goto to https://brew.sh, but it is normally something like:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# now you can install the github CLI
brew install gh
# now stuff the path finding into your .profile and the current shell
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/rich/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# Now go to the laptop itself because you will see a web page
# now authenticate the old way with your 2FA rather than finding the PAT
# Select SSH and this created a specific SSH key just for this machine
# I like to name it <user>@<host>-github.com so you know where it came from
# so for this machine it would be rich@richs-juno-jupiter.local-github.com
gh auth login
# now you can go back to your ssh after you do the web based
# now that you use the web based authentication and you will need your key
mkdir -p ws/git
cd ws/git
git clone --recursive https://github.com/richtong/src
# now for me the magic is that
cd bin
./install.sh -vr richt