First Steps

The development board (whether a physical one or an emulated one) will give you a place to see the effects of the active Librem 5 development. The software running on this board will become the software running on the Librem 5 phone but you don’t have to wait for your Librem 5 phone to interact with it!

If you are using the i.MX6 development board, here are some first steps you will take when booting the system.

Creating bootable drive for HW board

This section will show you how to put a bootable image on the microSD card for a physical development board. This step is not needed for the emulated board (VM) because the VM image already includes the software.

To complete this section, you will need:

  • a physical development board

  • a microSD card

  • a method of accessig the microSD card with your computer (like a microSD <-> USB card reader)

Using your microSD <-> USB reader or internal microSD card reader, mount the microSD card and take note of the device (with lsblk or df). Then unmount it. The device name will be listed in the first collumn of the output of lsblk as shown below. On most GNU/Linux systems the device name will be /dev/mmcblk0 (for internal card readers), /dev/sdX (for external card readers) or something similar. If it is listed as /dev/sdX, the X will actually be some letter corresponding to the device (in this example, /dev/sdd). For this walkthrough, the device is /dev/sdd. Make careful note of the device name on your system as you can and will lose data if you get the device name wrong:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sdd      8:48   1   3.7G  0 disk
├─sdd1   8:49   1   181M  0 part /media/user/f36d95a4-dbd2-4ddc-a4fd-ae6fa119bf6e
└─sdd2   8:50   1   2.6G  0 part /media/user/94942ee2-a338-48b3-a27a-9c295405ce4e
$ sudo umount /dev/sdd1
$ sudo umount /dev/sdd2

In some temp directory, download the latest image from here: https://storage.puri.sm/librem5/binaries/unstable/latest/

In this example, we will download an image for the i.MX6 board.

Unpack the image and dd the image to the device:

$ wget https://storage.puri.sm/librem5/binaries/unstable/latest/imx6.img.xz
$ xzcat imx6.img.xz | pv | sudo dd of=/dev/sdd bs=4M

Depending on your system, the dd can take a while so grab a cup of coffee and be patient.

Once the dd has competed, put the microSD card in the appropriate slot on the development board and give the board power. The system should boot and you should see the boot logs on an attached screen.

Serial Connection Monitoring

If you do not have a screen attached to your physical development board or if you are not seeing the boot progress on your attached screen, you can use the DB9 serial port on the board to monitor the boot progress.

To complete this section you will need:

  • a physical development board

  • a bootable microSD card (made from the previous section)

  • a serial <-> USB cable (something like this)

With your bootable microSD card plugged into your board, connect your serial cable from the board to your computer. In the terminal, start the session on your computer with:

$ screen /dev/ttyUSB0 115200

Your terminal screen will turn blank with a waiting cursor in the top left of the screen.

Now give your development board power and watch your terminal. Boot logs should appear here, with an eventual log in prompt.

Quit the screen session at any time with Ctrl+a and then :quit.

Log in

As soon as your board or emulator boots, you will see “Slide up to unlock” at the bottom. Click the arrows and drag upwards. Then you will have a few moments to log in.

Username: purism
Password: 123456

This user has sudo privileges.

Applications

In the top left corner you can click anywhere on “Librem5 dev board” to open up a favorites menu with the following default applications: weston-terminal, contacts, calendar, evince, and epiphany (for web browsing).

From the terminal, you can do all the normal things like configuring networking, installing additional applications, etc.

Have fun tinkering in your new development environment!