+++ /dev/null
-## Choose only on of the possible target types
-# image=disk.img
-# squash=rootfs.squash
-raspi=raspi_elok.img
-
-## Image size in MB. Needs to be able to hold all software.
-imagesize=3072
-
-## Additional packages
-packages=chromium-browser,okular,libreoffice-impress,ssh
-packages=supertuxkart/buster,libc-bin/buster,libc6/buster,libopenal1/buster,locales/buster
-
-## Debian release, so far only stretch has been tested
-release=stretch
-
-## Comma separated list of config modules from modules/ directory
-modules=approx,nodm,xfce,autoresize
-approxhost := localhost:9999
-
-## Hostname for the generated machine
-hostname=pi_elok
-
-## Root password will be salted and encrypted in image
-rootpass=root
-
-## The corresponding .pub file for the given rootkey will be applied as
-## SSH login file for the root user.
-## If the pub file is not found, a new key pair will be generated
-# rootkey=image_ssh
-
-## Comma separated list of users to be set up.
-## User logins will start out with an empty password
-## If the live module is in use, users will also be added to the sudo group
-# users=adam,steve
-users=elok
-
-## Wifi configuration, if a Wifi password is given, WPA encryption will be used
-## without the password, the system will try to connect to an open wifi
-wifi=berlin.freifunk.net
-# wifi=MyWiFi
-# wifipass=P4ssW0rD
-
-## Timezone as offered by Debians tzdata selection
-timezone=Europe/Berlin
-
-## Comma separated list of locales, first one will become default locale
-locales=de_DE.UTF-8,en_US.UTF-8
-
-## If nodm is installed, you can choose a user to login automatically
-## If no user is given here, then nodm will default to root
-nodm_user=elok
-
-## In nodm, use full screen chromium web browser as session
-# webui=http://localhost/
-
-## When using NIS modules the directory server should be given
-# nis_server=nismaster
-
-## If the approxmodule is enabled, then one (and only one) apt-source
-## can be choosen to install packages from
-## See modules/approx.mk if you need more flexibility
-# approx=http://localhost:9000/debian
-
-define stk_config :=
-<?xml version="1.0"?>
-<stkconfig version="8" >
- <Video
- width="1920"
- height="1080"
- fullscreen="true"
- show_fps="true"
- max_fps="60"
- enable_high_definition_textures="0"
- max_texture_size="128"
- >
- </Video>
- <everything_unlocked value="true" />
-
-</stkconfig>
-
-endef
-export stk_config
-
-_config: ${CFGROOT}/etc/xdg/.config/supertuxkart/0.8.2/config.xml
-${CFGROOT}/etc/xdg/.config/supertuxkart/0.8.2/config.xml: ${CFGROOT}
- mkdir -p "$${CFGROOT}"/etc/xdg/.config/supertuxkart/0.8.2/
- printf '%s\n' "$${stk_config}" >"$${CFGROOT}"/etc/xdg/.config/supertuxkart/0.8.2/config.xml
raspi=retropie.img
## Image size in MB. Needs to be able to hold all software.
-imagesize=3072
+# imagesize=3072
+imagesize=2048
## Additional packages
-packages=chromium-browser,ssh,lsb-release
-packages=supertuxkart/buster,libc-bin/buster,libc6/buster,libopenal1/buster,locales/buster
+# packages:=chromium-browser,ssh,lsb-release
+# packages=supertuxkart/buster,libc-bin/buster,libc6/buster,libopenal1/buster,locales/buster
+packages=ssh lsb-release bison bluetooth build-essential cmake dialog fbi fbset flex g++ gcc git libasound2-dev libavcodec-dev libavdevice-dev libavformat-dev libcurl4-openssl-dev libfreeimage-dev libfreetype6-dev libgles2-mesa-dev libraspberrypi-dev libsdl2-2.0-0 libsdl2-dev libsm-dev libudev-dev libusb-1.0-0-dev libvlccore-dev libvlc-dev libx11-xcb-dev libxkbcommon-dev mc python-dbus python-gobject python-pyudev rapidjson-dev samba vlc xmlstarlet omxplayer insserv libfftw3-single3 alsa-utils
## Debian release, so far only stretch has been tested
release=stretch
## Comma separated list of config modules from modules/ directory
-modules=approx,nodm,xfce,autoresize,display_ws5inch
-approxhost := localhost:9999
+modules=approx,autoresize,display_ws5inch # nodm,xfce
+# approxhost := localhost:9999
## Hostname for the generated machine
hostname=retropie
## The corresponding .pub file for the given rootkey will be applied as
## SSH login file for the root user.
## If the pub file is not found, a new key pair will be generated
-# rootkey=image_ssh
+rootkey=image_ssh
## Comma separated list of users to be set up.
## User logins will start out with an empty password
## Wifi configuration, if a Wifi password is given, WPA encryption will be used
## without the password, the system will try to connect to an open wifi
-wifi=berlin.freifunk.net
+# wifi=berlin.freifunk.net
# wifi=MyWiFi
# wifipass=P4ssW0rD
timezone=Europe/Berlin
## Comma separated list of locales, first one will become default locale
-locales=de_DE.UTF-8,en_US.UTF-8
+# locales=de_DE.UTF-8,en_US.UTF-8
+locales=en_US.UTF-8
## If nodm is installed, you can choose a user to login automatically
## If no user is given here, then nodm will default to root
## See modules/approx.mk if you need more flexibility
# approx=http://localhost:9000/debian
-define stk_config :=
-<?xml version="1.0"?>
-<stkconfig version="8" >
- <Video
- width="1920"
- height="1080"
- fullscreen="true"
- show_fps="true"
- max_fps="60"
- enable_high_definition_textures="0"
- max_texture_size="128"
- >
- </Video>
- <everything_unlocked value="true" />
+CFGROOT := img_mount/
-</stkconfig>
-
-endef
-export stk_config
-
-${CFGROOT}/etc/xdg/.config/supertuxkart/0.8.2/config.xml: ${CFGROOT}
- mkdir -p "$${CFGROOT}"/etc/xdg/.config/supertuxkart/0.8.2/
- printf '%s\n' "$${stk_config}" >"$${CFGROOT}"/etc/xdg/.config/supertuxkart/0.8.2/config.xml
-
-# _config: ${CFGROOT}/etc/xdg/.config/supertuxkart/0.8.2/config.xml
+_target: ${CFGROOT}/opt/RetroPie-Setup/ ${CFGROOT}/etc/sudoers.d/nopassword _vc4driver _groups _autologin
RetroPie-Setup/:
[ ! -d "$@" ] && git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
-${FGROOT}/opt/RetroPie-Setup/: RetroPie-Setup/
+${CFGROOT}/opt/RetroPie-Setup/: RetroPie-Setup/ ${CFGROOT} | _config
cp -au "$<" "$@"
-_config: ${FGROOT}/opt/RetroPie-Setup/
+_vc4driver: ${CFGROOT} | _config
+ sed -Ei 's;^ *dtoverlay=vc4-fkms-v3d;# &;' ${CFGROOT}/boot/config.txt
+
+${CFGROOT}/etc/sudoers.d/nopassword: ${CFGROOT}
+ printf '%%sudo ALL=NOPASSWD: ALL\n' >"$@"
+ chmod 440 "$@"
+
+_groups: _users
+ chroot "$${CFGROOT}" adduser rpi sudo
+ chroot "$${CFGROOT}" adduser rpi input
+ chroot "$${CFGROOT}" adduser rpi video
+
+_autologin: ${CFGROOT}/etc/systemd/system/getty@tty1.service.d/override.conf ${CFGROOT}
+${CFGROOT}/etc/systemd/system/getty@tty1.service.d/override.conf:
+ mkdir -p ${CFGROOT}/etc/systemd/system/getty@tty1.service.d/
+ printf '[Service]\nExecStart=\nExecStart=-/sbin/agetty --autologin %s --noclear %%I $$TERM' \
+ rpi >$@