## Choose only on of the possible target types # image=disk.img # squash=rootfs.squash raspi=retropie.img ## Image size in MB. Needs to be able to hold all software. # imagesize=3072 imagesize=4096 ## Additional packages # 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,autoresize #,display_ws5inch # nodm,xfce approxhost:=localhost:9000 ## Hostname for the generated machine hostname=retropie ## 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=rpi ## 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 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 nodm_user=rpi ## 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 CFGROOT := img_mount/ _target: ${CFGROOT}/etc/sudoers.d/nopassword _retropie _vc4driver _groups _autologin | _config _retropie: ${CFGROOT}/opt/RetroPie-Setup/ # ${CFGROOT}/opt/retropie/ RetroPie-Setup/: [ ! -d "$@" ] && git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git ${CFGROOT}/opt/RetroPie-Setup/: RetroPie-Setup/ | _config cp -au "$<" "$@" # ${CFGROOT}/opt/retropie/: retropie/ | _config # -cp -au "$<" "$@" _vc4driver: | _config sed -Ei 's;^ *dtoverlay=vc4-fkms-v3d;# &;' ${CFGROOT}/boot/config.txt ${CFGROOT}/etc/sudoers.d/nopassword: | _config printf '%%sudo ALL=NOPASSWD: ALL\n' >"$@" chmod 440 "$@" _groups: _users | _config 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}/etc/profile.d/retropie_autostart.sh ${CFGROOT}/etc/systemd/system/getty@tty1.service.d/override.conf: | _config mkdir -p ${CFGROOT}/etc/systemd/system/getty@tty1.service.d/ printf '[Service]\nExecStart=\nExecStart=-/sbin/agetty --autologin %s --noclear %%I $$TERM' \ rpi >$@ ${CFGROOT}/etc/profile.d/retropie_autostart.sh: | _config printf '%s\n' '[ "$$USER" = rpi ] && \\' \ 'if which emulationstation; then' ' emulationstation' \ 'else' ' sudo /opt/RetroPie-Setup/retropie_setup.sh' 'fi' \ >"$@" define RPICONFIG := dtparam=audio=on gpu_mem_256=128 gpu_mem_512=256 gpu_mem_1024=256 overscan_scale=1 endef