Connecting via USB¶
A convenient way to connect the phone to a workstation is via a USB-A to USB-C cable. This guide describes how to configure the phone and a connected workstation to allow serial and network communication between the two devices.
This guide assumes that the phone is switched on and running the system software. Ensure that the phone is already in this state before trying to connect to it.
Some USB-A to USB-C cables may need to be plugged into the phone with a particular orientation. If the instructions above do not appear to work, try flipping the USB-C end of the cable over and replugging it into the phone.
Connect the phone to a workstation using a USB-A to USB-C cable. The phone should appear shortly after as a USB serial device to the workstation.
Check to see that the following appears in the output of the
Bus 001 Device 010: ID 1d6b:0104 Linux Foundation Multifunction Composite Gadget
The bus and device numbers may differ from those shown.
The device will also appear in the
/dev/ directory as a serial port, such as
/dev/ttyACM0, which you can use to access the phone’s serial console if
you have permission to read and write to that device:
picocom -b 115200 /dev/ttyACM0
This should produce the output like this:
You may need to press Return to see the prompt.
You should be able to log in using
purism as the user name and
as the password.
Note: You may have trouble accessing the serial device if your user is not
a member of the
dialout group on your workstation. For example, you may get
an error like this:
FATAL: cannot open /dev/ttyACM0: Permission denied
In this case, you can either add your user to the
dialout group or, as a
picocom using the
In this section, we briefly describe how to get a simple IPv4 interface set up and enable network routing from the phone via the workstation to the Internet. The procedure is similar to that described in the Ethernet over USB guide for the Librem 5 development board, which provides much more detail.
On your workstation, check the output of the
ip link command to see which network interfaces are available:
Connect the workstation and the phone using the USB cable, then run
ip link again to see which new ones have appeared. You should see a new entry like this one in the output from the command:
7: enp0s18f2u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 2a:71:82:e2:63:84 brd ff:ff:ff:ff:ff:ff
The interface on your workstation may be different to this.
librem5-usbnet script from the librem5-devkit-tools repository. It can be found in the
This script accepts an IPv4 address and the new network interface. Make sure that it is executable and on the run path, then run it in the following way, substituting the new interface on your workstation for the one given:
sudo librem5-usbnet 192.168.42.1 enp0s18f2u1
You should be able to run
ip addr and
ip route to see that the interface has an address and route associated with it.
Use the USB serial console described above to log in to the phone.
usbnet script from the librem5-devkit-tools repository. It can be found in the
sudo usbnet should set up an IPv4 address for the phone and a default route for network traffic that goes via the workstation.
Once USB networking is enabled, it becomes possible to access the network via the workstation and install development tools. This is also possible via a cellular network or Wi-Fi.