First, a quick update on the campaign’s progress: we’re 195% funded! Thanks so much for your support!
Jupiter Nano can run Linux, both Debian Linux 9.x (Stretch) and Yocto Linux. In this update, we’ll go over running Debian Linux. I’ll be updating the Debian Linux image to the just-release 11.x (Bullseye) after the campaign concludes. In the meantime, here’s an excerpt from the Jupiter Nano documentation to give you a taste of running Linux on the Jupiter Nano.
This Quickstart Guide is for using Jupiter Nano with Linux and assumes you are familiar with Linux and Internet networking.
1.Download the Jupiter Nano Debian Linux disc image.
There are two partitions on this disk:
BOOT is a small FAT filesystem that contains the at91bootsrap program and U-Boot. The built-in ROM code in the SAMA5D27C knows how to read at91bootstrap and run the first stage boot, which loads U-Boot. U-Boot can then boot the Linux kernal and mount the Linux
Install Balena Etcher - Balena Etcher is an easy to use program for burning SD Card images.
Run Balena Etcher and write the disk image to your Micro SD card.
Jupiter Nano has been tested on macOS and Linux. If you have problems, please contact the Jupiter Nano mailing list.
Install the Micro SD Card.
Plug in the Micro USB cable to the Jupiter Nano Console port.
Connect to the serial console via USB.
Start a serial terminal:
$ picocom --imap lfcrlf -b 115200 /dev/ttyACM0
/dev/ttyACM0 with whatever it is on your machine.
You should now see Jupiter Nano booting, going through the at91bootstrap (first level boot), the U-Boot bootstrap (second-level boot), and the Debian Linux boot process:
Login: debian Password: password
These instructions have only been tested on Linux. On macOS and Windows
you will need to do something similar to the steps in the
script. If you do get a script running for these platforms, please consider
contributing it to the Jupiter Nano Tools
repository via a
Plug a Micro USB cable into the Jupiter Nano Native port (keep the Console cable plugged in).
Using a Jupiter Nano console session, start the network:
$ sudo /usr/bin/netup.sh
This will bring up the
usb0 USB Ethernet Gadget interface, give it
an IP number of
10.0.0.2, and set the default route to
On your Linux workstation, set up the network (replace
wlp0s20f3 with the name of the network interface you use to
connect to the Internet):
$ cd jupiter-nano-tools $ sudo ./scripts/netusb.sh wlp0s20f3 usb0 on
This brings up the
usb0 USB Ethernet Gadget interface on your
workstation, gives it the IP address of
10.0.0.1, and sets up
routing to the Internet.
Ping and ssh
Now you can ping and ssh:
$ ping 10.0.0.2 $ ssh firstname.lastname@example.org
Internet access from Jupiter Nano
On the Jupiter Nano console or ssh session, you should be able to do the following:
$ ping 10.0.0.2 $ ping 126.96.36.199 $ ping www.google.com
The scripts that help build at91 bootstrap, U-Boot, the Linux kernel, and the Debian root filesystem (rootfs) are
located in the Jupiter Nano Tools github repository. These tools
can automatically build at91bootstrap, U-Boot, and the Linux kernel. The scripts will also build a stock Debian
rootfs tree that needs some manual work to be useful. The manual changes needed are installing the
to enable name resolution, installing the
openssh-server package to have an SSH server, and installing helper scripts.
There is a script to enlarge the Micro SD card file system if you have a card larger than 2 GB. Here’s how to run it.
Connect to the Jupiter Nano either by the serial console or via ssh.
Run the following script:
$ sudo /usr/bin/grow_sd.sh
This will grow the file system to the size of the Micro SD Card. You will need to reboot for it to take effect.
You can find more info in the Jupiter Nano documentation. We will be adding documentation on the hardware, running Linux, running NuttX, and doing software development on the board as the campaign progresses and afterwards.
Next update, we’ll go over running the Apache NuttX RTOS on the Jupiter Nano.