# Custom D.E.O.T. V2.0+/Clockwork OS v0.5 image - With customised DEOT interface, Kernel 5.7, Optional 1400MHz OC, Debian 10 Buster, Retroarch 1.9.0, Mupen64+ plus more! (Current build: 200903)

**URL:** <https://forum.clockworkpi.com/t/custom-d-e-o-t-v2-0-clockwork-os-v0-5-image-with-customised-deot-interface-kernel-5-7-optional-1400mhz-oc-debian-10-buster-retroarch-1-9-0-mupen64-plus-more-current-build-200903/5088>\
**Category:** Firmware and Apps\
**Tags:** community, os, launcher, retroarch, development\
**Created:** [January 6, 2020, 1:19pm UTC](https://forum.clockworkpi.com/t/custom-d-e-o-t-v2-0-clockwork-os-v0-5-image-with-customised-deot-interface-kernel-5-7-optional-1400mhz-oc-debian-10-buster-retroarch-1-9-0-mupen64-plus-more-current-build-200903/5088 "2020-01-06T13:19:24Z")\
**Posts on this page:** 1\
**Showing post:** 399

<div class="post-metadata">

**Author:** ![javelinface](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/javelinface/32/3079_2.png) [@javelinface](https://forum.clockworkpi.com/u/javelinface)\
**Post date:** [June 22, 2020, 8:19am UTC](https://forum.clockworkpi.com/t/custom-d-e-o-t-v2-0-clockwork-os-v0-5-image-with-customised-deot-interface-kernel-5-7-optional-1400mhz-oc-debian-10-buster-retroarch-1-9-0-mupen64-plus-more-current-build-200903/5088/399 "2020-06-22T08:19:25Z")

</div>

RetroArch 1.8.9 has just been released. I’ll test it out on my image, and see how it goes.  
For anyone wanting to do the same, there is a script in Utils that will allow you to update your Retroarch.  
A reminder: Be careful when in the Utils folder, and running things. Read up about what each script does in the OP before running them. I haven’t put any confirmation dialogue boxes written in.

In the case of the Retroarch Update script, running it will make your Gameshell seemingly unresponsive with the “Projecting” screen for at least half an hour or so. Maybe more. Most of the time is spent building, so you don’t have to worry too much about having the fastest internet in the world. Leave it for at least 45 minutes, just to be sure, and if you really want to check on its progress, SSH in and run it from there. If this is all too confusing, then don’t use it. It’s only there for convenience.

Looking towards the future, I am in the process of streamlining a clean Gameshell launcher, using the minimal debian image as a base. Of course, being based on a SID build, I am having a fun time backporting a bunch of dependencies, and finding out what is current and out of date in the clockwork GitHub repository.

However, what if development got poured into the LauncherGO instead, and we get that running properly? Having it start from scratch, and optimised from there on could be a great way to get things working. From what I have heard, the LauncherGO was being maintained by one person only.

For those interested, here is my process. It’s still very much a WIP on the Python based launcher, but the start to potentially a tutorial for anyone to make their own images from scratch, and update and customise aspects of it in a modular manner. Think of it as the opposite of the DEOT OS. Instead of being filled with features, it will be the Gameshell OS with absolutely nothing. Of course, if someone else has any more experience, let me know. I am by no means a professional when it comes to any of this, and just do it as a hobby.

> **Building from scratch**
>
> This just a build using the minimal debian image as a base, in an attempt at making a clean state stock Gameshell launcher.
> 
> Currently with the Gameshell, I am finding that Retroarch is running faster than the standalone emulators, more or less across the board.  
> Cores from Retroarch are fairly straightforward to install, remove, and generally don’t break.
> 
> I’ll try to provide individual scripts to install standalone along the way, so you can build your Gameshell more to your own liking. In addition to this, I’ll also provide scripts install other hacks, eg universal volume control, batmon etc. Potentially these can all be uploaded to a warehouse repository, and accessible via the gameshell.
> 
> These install instructions are basically no different to what is already on Github.  
> [https://github.com/clockworkpi/launcher](https://github.com/clockworkpi/launcher)  
> But I’ll reiterate it anyway, for the sake of documentation, and potential modification in future, since we are building on an sid bullseye release, instead of jesse.
> 
> 1. SSH into your gameshell as root via USB. You can find the IP address in the retroarch Information\>Network Information menu item. (Interface (usb0))
> 
> ```auto
> ssh root@XX.XX.XX.XX
> ```
> 
> Answer yes to any questions to allow access. There is no password for root.
> 
> 1. Edit the wpa\_supplicant.conf to add your wifi details.
> 
> ```auto
> nano /etc/wpa_supplicant/wpa_supplicant.conf
> ```
> 
> (write out file with ctrl+o, then exit nano with ctrl+x)  
> Reboot,
> 
> ```auto
> systemctl reboot 
> ```
> 
> and then repeat the process in step 1, SSHing in via Wifi. (Interface (wlan0))  
> (you can probably set up some form of internet tunnelling via USB, but I don’t want to go into that here)
> 
> 1. Enable su mode and install sudo and fdisk.
> 
> ```auto
> su -
> apt-get update
> apt-get install sudo fdisk -y
> ```
> 
> 1. Expand the partition.
> 
> ```auto
> echo -e "d\n2\nn\np\n2\n94208\n\nN\nw\n" | fdisk /dev/mmcblk0
> resize2fs /dev/mmcblk0p2
> ```
> 
> Double check to make sure your partition size is correct.
> 
> ```auto
> lsblk
> ```
> 
> And then reboot.
> 
> ```auto
> systemctl reboot
> ```
> 
> 1. Add CPI user, groups and permissions. (Github prefaces a lot of the commands with sudo, however you shouldn’t need this, as you are logged in as root)
> 
> ```auto
> adduser cpi  
> groupadd cpifav -g 31415  
> adduser cpi cpifav
> ```
> 
> Set the password (cpi is the default used in the forum and its tutorials), confirm the password, and use push ENTER for each prompted field to use default contact details. (or put in your own if you want)
> 
> 1. Set locale.
> 
> ```auto
> echo "export LANGUAGE=C.UTF-8">>~/.bash_profile
> echo "export LANG=C.UTF-8">>~/.bash_profile
> echo "export LC_ALL=C.UTF-8">>~/.bash_profile
> ```
> 
> And then reboot.
> 
> ```auto
> systemctl reboot
> ```
> 
> 1. Create necessary directories.
> 
> ```auto
> mkdir -p /home/cpi/apps/emulators  
> mkdir -p /home/cpi/games  
> mkdir -p /home/cpi/music  
> ```
> 
> 1. Install dependent packages. (Be patient) (Github prefaces a lot of the commands with sudo, however you shouldn’t need this, as you are logged in as root) (A lot of the python files are no longer valid, so the list has been updated, compared to Github; separating deports out - this can probably be cleaned up a lot)
> 
> ```auto
> apt-get -y install mpd ncmpcpp git libuser
> apt-get -y install python-wicd python-pygame python3-pip
> 
> pip install validators numpy requests python-mpd2 beeprint
> ```
> 
> 1. The following packages will need to be backported: python-gobject wicd-curses wicd python-pip python-pycurl python-alsaaudio python-xlib  
> [source](https://wiki.debian.org/SimpleBackportCreation)
> 
> ```auto
> # Install Debian packaging tools
> apt-get install packaging-dev debian-keyring devscripts equivs
> 
> # Add a stable apt source
> echo "deb-src http://deb.debian.org/debian/ stable main contrib non-free" | tee /etc/apt/sources.list.d/stable.list
> 
> # Update
> apt-get update
> 
> # Download sources
> mkdir /root/backports/
> cd /root/backports/
> apt source python-gobject/stable wicd-curses/stable wicd/stable python-pip/stable python-pycurl/stable python-alsaaudio/stable python-xlib/stable
> 
> # Remove apt sources
> rm /etc/apt/sources.list.d/stable.list
> 
> # Update
> apt-get update
> ```
> 
> 1. Install build dependencies, build a package properly without GPG signing the package, and install
> 
> ```auto
> cd /root/backports/pygobject-3.30.4
> mk-build-deps --install --remove
> dch --bpo
> dpkg-buildpackage -us -uc
> apt-get -y install ../pygobject-build-deps_3.30.4-1_all.deb
> 
> cd /root/backports/wicd-1.7.4+tb2
> mk-build-deps --install --remove
> dch --bpo
> dpkg-buildpackage -us -uc
> apt-get -y install wicd-build-deps_1.7.4+tb2-6_all.deb
> 
> cd /root/backports/python-pip-18.1
> mk-build-deps --install --remove
> dch --bpo
> dpkg-buildpackage -us -uc
> apt-get -y install python-pip-build-deps_18.1-5_all.deb
> 
> cd /root/backports/pycurl-7.43.0.2
> mk-build-deps --install --remove
> dch --bpo
> dpkg-buildpackage -us -uc
> apt-get -y install 
> 
> cd /root/backports/pyalsaaudio-0.8.4
> mk-build-deps --install --remove
> dch --bpo
> dpkg-buildpackage -us -uc
> apt-get -y install 
> 
> cd /root/backports/python-xlib-0.23
> mk-build-deps --install --remove
> dch --bpo
> dpkg-buildpackage -us -uc
> apt-get -y install 
> ```
> 
> 1. “With pip install and virtualenv.”
> 
> ```auto
> mkvirtualenv launcher
> pip install -r requirements.txt
> ```
> 
> 1. Create “.mpd\_cpi.conf” config. This is different to the one found on GitHub, updated to reflect newer Debian builds. We are logged in as root, so the ~ alias denoting the home directory won’t be the correct path.
> 
> ```auto
> nano /home/cpi/.mpd_cpi.conf
> ```
> 
> ```auto
> music_directory "/home/cpi/music"
> playlist_directory	"/home/cpi/.mpd/playlists"
> db_file "/home/cpi/.mpd/tag_cache"
> log_file "/home/cpi/.mpd/mpd.log"
> pid_file "/home/cpi/.mpd/pid"
> state_file "/home/cpi/.mpd/state"
> sticker_file "/home/cpi/.mpd/sticker.sql"
> user "cpi"
> bind_to_address "/tmp/mpd.socket"
> 
> auto_update "yes"
> auto_update_depth	"2"
> 
> input {
> plugin "curl"
> }
> 
> audio_output {
> type	"alsa"
> name	"ALSA Device"
> }
> 
> audio_output {
> type	"fifo"
> name	"my_fifo"
> path	"/tmp/mpd.fifo"
> format	"44100:16:2"
> }
> 
> filesystem_charset	"UTF-8"
> # id3v1_encoding "UTF-8"
> 
> # QOBUZ input plugin
> input {
> enabled "no"
> plugin "qobuz"
> # app_id "ID"
> # app_secret "SECRET"
> # username "USERNAME"
> # password "PASSWORD"
> # format_id "N"
> }
> 
> # TIDAL input plugin
> input {
> enabled "no"
> plugin "tidal"
> # token "TOKEN"
> # username "USERNAME"
> # password "PASSWORD"
> # audioquality "Q"
> }
> 
> # Decoder #####################################################################
> #
> 
> decoder {
> plugin "hybrid_dsd"
> enabled "no"
> # gapless "no"
> }
> ```
> 
> (write out file with ctrl+o, then exit nano with ctrl+x)
> 
> 1. Clone launcher and Menu Git repository. The directory structure in Github is a legacy location that shouldn’t be used. Use this one.
> 
> ```auto
> cd /home/cpi/
> git clone https://github.com/clockworkpi/launcher.git
> 
> cd /home/apps/
> git clone https://github.com/clockworkpi/Menu.git
> ```
> 
> 1. Build Retroarch.
> 
> ```auto
> apt-get build-dep retroarch
> git clone https://github.com/libretro/RetroArch.git retroarch
> cd /root/retroarch/
> ./configure
> make -j2
> make install
> ```
> 
> 1. End the SSH session, and login in as cpi. (Use the IP address you used in step 2)
> 
> ```auto
> ssh cpi@XX.XX.XX.XX
> ```
> 
> N.B. There’s a lot of issues with backporting, and dependency installation as it currently is. Either we’ll need to wait for them to be upgraded, spend a lot of time manually finding out which dependencies we need (and consequently which dependencies THEY need and so forth) or see if the launcher can use any alternative dependencies.

---

_[View the full topic](https://forum.clockworkpi.com/t/custom-d-e-o-t-v2-0-clockwork-os-v0-5-image-with-customised-deot-interface-kernel-5-7-optional-1400mhz-oc-debian-10-buster-retroarch-1-9-0-mupen64-plus-more-current-build-200903/5088)._
