.. _first-steps: 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! Regardless of which development board you are using, here are some first steps you will take when booting the system. .. _make-bootable-drive: 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-monitoring: 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!**