Difference between revisions of "Purism Librem5 Devkit"

From postmarketOS
Jump to: navigation, search
m (Todo)
(See also: link to https://gitlab.com/postmarketOS/pmaports/merge_requests/250)
 
Line 93: Line 93:
  
 
* [https://developer.puri.sm/Librem5/ Purism Librem5 devkit documentation]
 
* [https://developer.puri.sm/Librem5/ Purism Librem5 devkit documentation]
 +
* {{MR|250|pmaports}} MR that should enable modem support (untested, and now the ofono version is outdated; but maybe this is useful for future reference)

Latest revision as of 11:42, 26 May 2019

Purism Librem 5 Devkit
Manufacturer Purism
Name Librem 5 Devkit
Codename purism-librem5dev
Released 2018
Original software PureOS
Hardware
Chipset Emcraft NXP i.MX8M
CPU NXP i.MX8M
GPU Vivante GC7000Lite
Display 1440x720
Storage 32 GB EMMC
Memory 3 GB
Architecture aarch64
Features
USB Networking
Flashing
Touchscreen
Works
Display
Works
WiFi
Partial
Xwayland
Partial
FDE
Mainline
Battery
3D Acceleration
Partial
Accelerometer
Audio
Partial
Bluetooth
Partial
Camera
GPS
Works
Mobile data
SMS
Calls
USB OTG
Partial



Contributors

How to enter flash mode

The devkit has a switch on the same side as the reboot button, wifi switch, camera switch, and modem switch. Move it to the "USB Mode" position and hit the reboot button next to it in order to put the device into 'flash' mode.

Installation

Flashing

pmbootstrap now has support for flashing the devkit with the flasher command. After running pmbootstrap install to generate a rootfs, the devkit can be flashed by putting it into 'USB mode' and executing pmbootstrap flasher flash_rootfs

Once the image has been flashed, place the device into emmc mode and hit the reboot button to start booting postmarketOS. The first boot can take a few minutes as it resizes the rootfs to fill all available space on the emmc disk.

Graphics

The Vivante GPU in the devkit is not fully currently supported upstream in Mesa. In order to achieve preliminary 3D acceleration on this device, you can use the 'librem5_playground' branch in craftyguy's repo. This builds a Purism branch of Mesa with not-yet-upstream patches.

The device-librem5-devkit package does not include this newer Mesa as a dependency.

If you select a GUI during pmbootstrap init and have this pmaports branch checked out under the aports directory, then the main Mesa packages (excluding mesa-dri-*) will automatically built into the rootfs image. The following mesa-dri-* packages will need to be copied to device manually and installed. To copy the Mesa packages built by this branch (ignoring mesa-dev and swrast/osmesa) to the device:

$ scp /home/YOU/.local/var/pmbootstrap-out/packages/aarch64/mesa-19.0.0-r999.apk \
    /home/YOU/.local/var/pmbootstrap-out/packages/aarch64/mesa-dri-etnaviv-19.0.0-r999.apk \
    /home/YOU/.local/var/pmbootstrap-out/packages/aarch64/mesa-dri-imx-19.0.0-r999.apk \
    /home/YOU/.local/var/pmbootstrap-out/packages/aarch64/mesa-egl-19.0.0-r999.apk \
    /home/YOU/.local/var/pmbootstrap-out/packages/aarch64/mesa-gl-19.0.0-r999.apk \
    /home/YOU/.local/var/pmbootstrap-out/packages/aarch64/mesa-glapi-19.0.0-r999.apk \
    /home/YOU/.local/var/pmbootstrap-out/packages/aarch64/mesa-gles-19.0.0-r999.apk \
    user@<IP OF DEVKIT>:~/

These can be easily installed/upgraded by running the following when logged into the device:

$ sudo apk add mesa*.apk

Note: The Mesa package in this branch disables all other GPU drivers to help reduce compile time, and may also be buggy since it's based off of the Mesa master branch, so it's not likely to be merged into mainline pmaports.

Todo

  • Bring up cellular modem
  • Resolve issues with Wifi
    • Interface shows up in OS, and wpa_supplicant seems to connect(?), but no IP.
  • Resolve issues with Bluetooth
    • Bluetooth can be started by loading the rsi_91x module with dev_oper_mode=14 but this disables Wifi station/client mode and enables Wifi AP mode. It doesn't seem to work with dev_oper_mode=13, which enables Wifi client mode.
  • Current dts enables usb host but doesn't enable LCD display
  • Test/enable camera
  • Test/enable ambient light sensor

See also