purism-librem5: new device (Purism Librem 5) (!869)

This adds a device package for the Librem 5 phone

[ci:skip-build]: already built successfully in CI
This commit is contained in:
Clayton Craft 2020-01-13 19:55:23 -08:00 committed by Oliver Smith
parent b7c3f95dc5
commit 83d79ea914
No known key found for this signature in database
GPG Key ID: 5AE7F5513E0885CB
8 changed files with 141 additions and 0 deletions

View File

@ -0,0 +1 @@
export KWIN_DRM_DEVICE_NODE=/dev/dri/card1

View File

@ -0,0 +1 @@
export ETNA_MESA_DEBUG=no_supertile

View File

@ -0,0 +1,55 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname="device-purism-librem5"
pkgdesc="Purism Librem 5 Phone"
pkgver=0.9
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="postmarketos-base
linux-purism-librem5
uboot-tools
u-boot-librem5
gpsd
mesa-git mesa-git-glapi mesa-git-gl mesa-git-gles mesa-git-egl mesa-git-gbm
mesa-git-dri-etnaviv mesa-git-dri-kmsro
ofono
"
makedepends="devicepkg-dev"
source="
deviceinfo
uboot-script.cmd
modprobe.d_rsi.conf
00-mesa.sh
00-kwin.sh
flash_script.lst
"
subpackages="$pkgname-plasma"
install="$pkgname.post-install"
build() {
mkimage -A arm64 -C none -O linux -T script -d "$srcdir/uboot-script.cmd" "$srcdir/boot.scr"
devicepkg_build $startdir $pkgname
}
plasma() {
install_if="$pkgname kwin"
install -D -m644 "$srcdir/00-kwin.sh" "$subpkgdir/etc/profile.d/00-kwin.sh"
}
package() {
install -D -m644 "$srcdir"/boot.scr \
"$pkgdir"/boot/boot.scr
install -D -m644 "$srcdir/modprobe.d_rsi.conf" "$pkgdir/etc/modprobe.d/rsi.conf"
install -D -m644 "$srcdir/00-mesa.sh" "$pkgdir/etc/profile.d/00-mesa.sh"
install -D -m644 "$srcdir/flash_script.lst" "$pkgdir/usr/share/uuu/flash_script.lst"
devicepkg_package $startdir $pkgname
}
sha512sums="79121c475a5a957625bfa72e1d1f0e262e0abece703e9efa8c26522725d025625d49c003375ae6af3422eb25540de46196c8f5aab130e76014b630560f4c080b deviceinfo
3bc45540000e438e525501b2e816282d778fca10d426e42c9a80c0e752618ce50deb12c3edd9f3edc52edd8eb229d16afae7d407fe2c4ba0dbfefbcb4214780c uboot-script.cmd
d10531ad6646ad6cfaf8ee1b0cc38f4e5e2eb39599251b75f25e954f1105761d5480d92cbe06ad52560207b883439071db89b19babf046a810360bd07c52c655 modprobe.d_rsi.conf
5fdf45859f2bb154bcfe7c7341de4d5b239ef43d3f865e30456af073a8ee9d6682515c7e1dd52ddbe3969669d60689ba93c08ead32aadcfb164ff72a02b2e1a4 00-mesa.sh
685ec71484a932c59f83f1039d4d18a010a5849342e96d9e15ae8ce64374aac15073f9c51d7d9f270c60e70d2ea15c685b8f528cdc40f991b093b9227cba6a48 00-kwin.sh
d033df2b9125622c946af67dad83070473c86937b5825f57ad272c9145b594071dd6913949127803c45af4ea3226526551718d40739f9f1ee4bfe6446e62c856 flash_script.lst"

View File

@ -0,0 +1,8 @@
#!/bin/sh
# Enable GPS support
rc-update add gpsd default
sed -i 's/DEVICE=\"\"/DEVICE=\"\/dev\/ttymxc2\"/' /etc/conf.d/gpsd
sed -i 's/BAUDRATE=\"4800\"/BAUDRATE=\"9600\"/' /etc/conf.d/gpsd
rc-update add ofono default

View File

@ -0,0 +1,31 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
deviceinfo_format_version="0"
deviceinfo_name="Purism Librem 5 Phone"
deviceinfo_manufacturer="Purism"
deviceinfo_codename="purism-librem5"
deviceinfo_date=""
deviceinfo_dtb="freescale/imx8mq-librem5"
deviceinfo_append_dtb="false"
deviceinfo_modules_initfs=""
deviceinfo_arch="aarch64"
# Device related
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1440"
deviceinfo_dev_touchscreen=""
deviceinfo_dev_touchscreen_calibration=""
deviceinfo_dev_keyboard=""
deviceinfo_no_framebuffer="true"
# The following is required since this device has builtin ethernet
deviceinfo_disable_dhcpd="true"
deviceinfo_getty="ttymxc0;115200"
# Bootloader related
deviceinfo_flash_method="uuu"
deviceinfo_generate_legacy_uboot_initfs="true"
deviceinfo_sd_embed_firmware="firmware/librem5/phone-boot.img:2"
deviceinfo_boot_part_start="4096"

View File

@ -0,0 +1,23 @@
uuu_version 1.0.1
# Note: This script is meant to be used by uuu running in the native chroot, so
# all paths are relative to the native chroot and not to the device rootfs
# chroot.
SDP: boot -f /mnt/rootfs_purism-librem5/usr/share/firmware/librem5/phone-boot.img
SDPU: delay 1000
SDPU: write -f /mnt/rootfs_purism-librem5/usr/share/firmware/librem5/phone-boot.img -offset 0x57c00
SDPU: jump
SDPV: delay 1000
SDPV: write -f /mnt/rootfs_purism-librem5/usr/share/firmware/librem5/phone-boot.img -skipspl
SDPV: jump
SDPS: boot -f /mnt/rootfs_purism-librem5/usr/share/firmware/librem5/phone-boot.img
FB: ucmd mmc dev 0
FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev 0
FB: flash -raw2sparse all /home/pmos/rootfs/purism-librem5.img
FB: Done

View File

@ -0,0 +1,2 @@
# This disables bluetooth, but enables wifi.
options rsi_91x dev_oper_mode=13 rsi_zone_enabled=1

View File

@ -0,0 +1,20 @@
setenv bootargs init=/init.sh rw console=ttymxc0,115200 cma=256M PMOS_NO_OUTPUT_REDIRECT PMOS_FORCE_PARTITION_RESIZE
setenv mmcdev 0
setenv mmcpart 1
printenv
echo Loading DTB
ext2load mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} imx8mq-librem5.dtb
echo Loading Initramfs
ext2load mmc ${mmcdev}:${mmcpart} ${ramdisk_addr_r} uInitrd-purism-librem5
echo Loading Kernel
ext2load mmc ${mmcdev}:${mmcpart} ${kernel_addr_r} vmlinuz-purism-librem5
echo Resizing FDT
fdt addr ${fdt_addr_r}
fdt resize
echo Booting kernel
booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}