Name: GeeXboX
Active Yes
Purpose Kodi/xbmc
Ignition install Yes
Compatibility All IMX6 MicroSoms
More information
Maintained by GeeXboX Team
Forum Forum, Solid-Run Forum


GeeXboX is a free and open source Linux distribution for home theatre PCs. It includes Kodi as its media centre software. GeeXboX itself is not an application but a complete full-featured fast booting operating-system. The GeeXboX Linux distribution is lightweight and designed for one single goal: embed all major multimedia applications as to turn your CuBox-i into an HTPC. Besides Kodi/xbmc, other services/software can also run on GeeXboX, such as PVR clients, torrent client, file sharing server, etc.


Install using Ignition

GeeXboX can be installed using the Ignition installer. Flash Ignition to an SD card, then use Ignition to download and install GeeXboX automatically.

Manual install

  • Download the latest nightly build from GeeXboX
  • Flash the image on a 4GB or larger SD card

During flashing, a small boot partition and a 1GB main partition is created. During first boot the large partition is automatically resized to the full size of the SD card.

To restore user data (i.e. do an upgrade), first copy /root/.xbmc to a different location (not on the SD card). Then flash the new version. Reboot once using the new version to resize the partition. Delete from the SD card /root/.xbmc and replace it with the backup.

Installing extra packages

opkg is included as a package manager. Using the package manager, extra software can be installed.

If you are using a nightly build of GeeXboX, you must first change the URL of the packages, otherwise older version will be installed. Edit the file /etc/opkg/opkg.conf. Replace the URL on the first line with


opkg update

To view a list of all available packages, type

opkg list

To install a package, type

opkg install <packagename>


Notice XBMC has recently been renamed to Kodi. Some file names still refer to the old name

Remote access

SSH and telnet access are enabled by default. The user name is root and password is root. It is recommended to change this after the first boot.

PVR (Live TV)

With an USB TV stick, Live TV can be enabled in Kodi. GeeXbOx comes with Tvheadend and VDR backends already installed, but disabled by default. Kodi add-ons for both backends are also installed but disabled. To run a backend on GeeXbox, edit the file /etc/pvr.conf. Either specify tvheadend or vdr to run this backend. Specify none to disable all PVR backends.

Some more configuration is needed on the backend to set-up all channels, and on Kodi to enable the required add-on, and the Live TV option in general. These steps are not GeeXboX specific, but for Kodi in general. Follow the Kodi wiki on PVR for the instructions how to configure live tv.

Remote control

You can use a custom remote control to operate Kodi. To use your custom remote, the system must first learn the correct commands. In this setup, the name mycustomremote is used. This can be replaced by any name for the remote. Setup

Before a remote can be used, the correct kernel module must be loaded for your type of remote. Log in to the system using either telnet or ssh. Edit (or create) the file /etc/modules-load.d/remote.conf. A list if available modules can be found in the folder /lib/modules/3.10.30/kernel/drivers/media/rc. Type the correct kernel module for your type of remote. Only type the name of the file, not the extension. It is possible to load multiple modules. Each module should be on a new line. For example, to load the modules for RC-5, RC-6, and NEC, /etc/modules-load.d/remote.conf will look like.


Reboot the system to load the kernel modules.

Log in to the system again and run the commands

systemctl stop eventlircd.service
systemctl stop xbmc.service

This will show up the Supported protocols, for example:

# ir-keytable
Found /sys/class/rc/rc0/ (/dev/input/event0) with:
Driver gpio-rc-recv, table rc-empty
Supported protocols: NEC RC-5 RC-6 
Enabled protocols:
Repeat delay = 500 ms, repeat period = 125 ms

Now we need to enable the supported protocols, you loaded earlier using the config file. In this example :

ir-keytable -p NEC, RC-5, RC-6
ir-keytable -c
ir-keytable -t

Now press a key on the remote. A new line should be displayed that looks like

event MSC: scancode = 72cd5c

The scancode is the unique code for this button. With this code, you can create a remote file. This file must be created at /etc/rc_keymaps/. You can name it anything you want. In the rest of this guide, /etc/rc_keymaps/mycustomremote is used as a file name. The file has the following structure:

# table mycustomremote, type: NEC
0x72cd5c      KEY_ENTER
0x72cd1c      KEY_LEFT
0x72cd48      KEY_RIGHT
0x72cd44      KEY_UP
0x72cd1d      KEY_DOWN

On the first line, give the name of the remote, and the type of remote. Valid types are (you might have to experiment a bit with the correct type):

  • NEC
  • RC-5
  • RC-6
  • JVC
  • SONY
  • LIRC
  • other

Next, each button is on a single line. Each line begins with 0x, followed by the scancode you learnt from ir-keytable -t. Next is the name of the button. This should be a valid key name. See for a list of valid key codes.

If the special remote file is constructed, it can be tested.

ir-keytable -c
ir-keytable -w /etc/rc_keymaps/mycustomremote
ir-keytable -t

Now press a key on the remote again. The output should now look like

event MSC: scancode = 72cd5c
event key down: KEY_ENTER (0x001c)

Besides the scancode, it will also display the name of the key pressed. If no name is displayed, change the type in the remote file, and try again using the three commands above.

If all keys are working, the remote file can be enabled. Edit the file /usr/bin/change-rc and replace




Make sure the # at the beginning of the line is removed.

Now restart the eventlircd service and test your remote in Kodi

systemctl start eventlircd.service
systemctl start xbmc.service

Changing the default key actions

By default, many keys are mapped to the correct actions. For example, pressing KEY_LEFT should trigger the action left. You can, however, change the default actions. The mapping is stored in /root/.xbmc/userdata/Lircmap.xml. Open the file and look for the line

<remote device="devinput">

Here you can change the mapping.