Initial import of debos configs for building Gemini PDA/Cosmo Communicator Debian rootfs

This commit is contained in:
NeKit 2019-10-17 21:02:57 +02:00
commit bed31554c3
7 changed files with 269 additions and 0 deletions

41
cosmopda.yaml Normal file
View file

@ -0,0 +1,41 @@
{{- $image := or .image "gemian-cosmopda.tgz" -}}
architecture: arm64
actions:
- action: recipe
description: Setup Gemian rootfs
recipe: gemian-common.yaml
- action: overlay
description: Adding Cosmo Communicator overlay
source: overlay/cosmopda
destination: /
- action: apt
description: Installing additional Debian packages
packages: [ curl, gnupg, openssh-server, sudo ]
- action: apt
description: Installing Cosmo Communicator-specific packages
packages: [ droid-hal-cosmopda ]
- action: run
chroot: true
command: echo cosmopda > /etc/hostname
- action: run
chroot: true
description: Setting password on root user (useful for testing, remove later)
command: echo root:root | chpasswd
- action: apt
description: Installing MATE desktop environment
packages:
- lightdm
- mate-desktop-environment
- xserver-xorg
- action: pack
file: {{ $image }}
compression: gz

47
gemian-common.yaml Normal file
View file

@ -0,0 +1,47 @@
architecture: arm64
actions:
- action: debootstrap
suite: "buster"
components:
- main
- non-free
mirror: https://deb.debian.org/debian
- action: overlay
description: Adding common Gemian overlay
source: overlay/common
destination: /
- action: apt
description: Installing additional Debian packages
packages: [ curl, gnupg, openssh-server, sudo ]
- action: run
chroot: true
description: Adding Gemian repos
script: scripts/add-gemian-repos.sh
- action: apt
description: Installing packages for libhybris-based HW adaptation
packages:
- drihybris
- glamor-hybris
- hybris-usb
- libhybris
- xserver-xorg-video-hwcomposer
- action: run
chroot: true
description: Enabling libhybris EGL libs
command: ln -s /usr/lib/aarch64-linux-gnu/libhybris-egl/ld.so.conf /etc/ld.so.conf.d/00_libhybris-egl.conf && ldconfig
- action: run
chroot: true
description: Enabling USB networking service
command: systemctl enable usb-tethering
- action: run
chroot: true
description: Setting Gemian users
script: scripts/setup-user.sh

42
geminipda.yaml Normal file
View file

@ -0,0 +1,42 @@
{{- $image := or .image "gemian-cosmopda.tgz" -}}
architecture: arm64
actions:
- action: recipe
description: Setup Gemian rootfs
recipe: gemian-common.yaml
- action: overlay
description: Adding Gemini PDA overlay
source: overlay/geminipda
destination: /
- action: apt
description: Installing Gemini PDA-specific packages
packages: [ droid-hal-cosmopda gemian-system initramfs-tools-halium gemian-modular-kernel ]
- action: run
chroot: true
command: echo geminipda > /etc/hostname
- action: run
chroot: true
description: Setting password on root user (useful for testing, remove later)
command: echo root:root | chpasswd
- action: run
chroot: true
description: Setting Gemian users
script: scripts/setup-user.sh
- action: apt
description: Installing MATE desktop environment
packages:
- lightdm
- mate-desktop-environment
- xserver-xorg
- action: pack
file: {{ $image }}
compression: gz

View file

@ -0,0 +1,22 @@
Section "Monitor"
Identifier "Monitor0"
DisplaySize 135 68 # In millimeters
EndSection
Section "Device"
Identifier "MediaTek HWC"
Driver "hwcomposer"
Option "Rotate" "CCW"
EndSection
Section "Screen"
Identifier "Screen0"
Device "MediaTek HWC"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
#Virtual 1440 720
#Virtual 1080 540
EndSubSection
EndSection

View file

@ -0,0 +1,85 @@
# /etc/adduser.conf: `adduser' configuration.
# See adduser(8) and adduser.conf(5) for full documentation.
# The DSHELL variable specifies the default login shell on your
# system.
DSHELL=/bin/bash
# The DHOME variable specifies the directory containing users' home
# directories.
DHOME=/home
# If GROUPHOMES is "yes", then the home directories will be created as
# /home/groupname/user.
GROUPHOMES=no
# If LETTERHOMES is "yes", then the created home directories will have
# an extra directory - the first letter of the user name. For example:
# /home/u/user.
LETTERHOMES=no
# The SKEL variable specifies the directory containing "skeletal" user
# files; in other words, files such as a sample .profile that will be
# copied to the new user's home directory when it is created.
SKEL=/etc/skel
# FIRST_SYSTEM_[GU]ID to LAST_SYSTEM_[GU]ID inclusive is the range for UIDs
# for dynamically allocated administrative and system accounts/groups.
# Please note that system software, such as the users allocated by the base-passwd
# package, may assume that UIDs less than 100 are unallocated.
FIRST_SYSTEM_UID=100
LAST_SYSTEM_UID=999
FIRST_SYSTEM_GID=100
LAST_SYSTEM_GID=999
# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically
# allocated user accounts/groups.
FIRST_UID=100000
LAST_UID=200000
FIRST_GID=100000
LAST_GID=200000
# The USERGROUPS variable can be either "yes" or "no". If "yes" each
# created user will be given their own group to use as a default. If
# "no", each created user will be placed in the group whose gid is
# USERS_GID (see below).
USERGROUPS=yes
# If USERGROUPS is "no", then USERS_GID should be the GID of the group
# `users' (or the equivalent group) on your system.
USERS_GID=100
# If DIR_MODE is set, directories will be created with the specified
# mode. Otherwise the default mode 0755 will be used.
DIR_MODE=0755
# If SETGID_HOME is "yes" home directories for users with their own
# group the setgid bit will be set. This was the default for
# versions << 3.13 of adduser. Because it has some bad side effects we
# no longer do this per default. If you want it nevertheless you can
# still set it here.
SETGID_HOME=no
# If QUOTAUSER is set, a default quota will be set from that user with
# `edquota -p QUOTAUSER newuser'
QUOTAUSER=""
# If SKEL_IGNORE_REGEX is set, adduser will ignore files matching this
# regular expression when creating a new home directory
SKEL_IGNORE_REGEX="dpkg-(old|new|dist|save)"
# Set this if you want the --add_extra_groups option to adduser to add
# new users to other groups.
# This is the list of groups that new non-system users will be added to
# Default:
EXTRA_GROUPS="audio video sudo aid_system aid_graphics aid_input aid_audio aid_net_bt_admin aid_net_bt aid_inet aid_inet_raw aid_inet_admin"
# If ADD_EXTRA_GROUPS is set to something non-zero, the EXTRA_GROUPS
# option above will be default behavior for adding new, non-system users
ADD_EXTRA_GROUPS=1
# check user and group names also against this regular expression.
#NAME_REGEX="^[a-z][-a-z0-9_]*\$"

14
scripts/add-gemian-repos.sh Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
rm -f /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "deb http://gemian.thinkglobally.org/buster/ buster main" >> /etc/apt/sources.list.d/gemian.list
echo "" >> /etc/apt/preferences.d/gemian.pref
echo "Package: *" >> /etc/apt/preferences.d/gemian.pref
echo "Pin: origin gemian.thinkglobally.org" >> /etc/apt/preferences.d/gemian.pref
echo "Pin: release o=Gemian,a=buster" >> /etc/apt/preferences.d/gemian.pref
echo "Pin-Priority: 2000" >> /etc/apt/preferences.d/gemian.pref
curl http://gemian.thinkglobally.org/archive-key.asc | apt-key add -

18
scripts/setup-user.sh Executable file
View file

@ -0,0 +1,18 @@
#!/bin/sh
groupadd -g 1001 radio
useradd -u 1001 -g 1001 -s /usr/sbin/nologin radio
groupadd -g 1021 gps
useradd -u 1021 -g 1021 -s /usr/sbin/nologin gps
groupadd -g 1000 aid_system
groupadd -g 1003 aid_graphics
groupadd -g 1004 aid_input
groupadd -g 1005 aid_audio
groupadd -g 3001 aid_net_bt_admin
groupadd -g 3002 aid_net_bt
groupadd -g 3003 aid_inet
groupadd -g 3004 aid_inet_raw
groupadd -g 3005 aid_inet_admin
groupadd -g 100000 gemini
useradd -m -u 100000 -g 100000 -G audio,video,sudo,aid_system,aid_graphics,aid_input,aid_audio,aid_net_bt_admin,aid_net_bt,aid_inet,aid_inet_raw,aid_inet_admin -s /bin/bash gemini