Difference between revisions of "Development on Linux/en"

From GIMX
Jump to: navigation, search
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 4: Line 4:
 
==Install development packages==
 
==Install development packages==
  
    sudo apt-get install git g++ libwxgtk2.8-dev libbluetooth-dev libxml2-dev libusb-1.0-0-dev libncursesw5-dev gettext xterm xdg-utils libmhash-dev libcurl4-gnutls-dev libxi-dev libx11-dev
+
On Ubuntu:<br />
 +
<code>
 +
sudo apt-get install git g++ libwxgtk2.8-dev libbluetooth-dev libxml2-dev libusb-1.0-0-dev libncursesw5-dev gettext xterm xdg-utils libmhash-dev libcurl4-gnutls-dev libxi-dev libx11-dev libhidapi-dev libhidapi-hidraw0 libudev-dev</code>
  
On Fedora: yum -y install wxGTK-devel bluez-libs-devel glib2-devel libxml2-devel libXi-devel libusb-devel (to be completed)
+
On Raspbian:<br />
 +
<code>
 +
sudo apt-get install git g++ libwxgtk2.8-dev libbluetooth-dev libxml2-dev libusb-1.0-0-dev libncursesw5-dev gettext xterm xdg-utils libmhash-dev libcurl4-gnutls-dev libxi-dev libx11-dev libudev-dev<br />
 +
wget <nowiki>http://gimx.fr/download/3ad2ff26a13a5518b446ae41157bec504cbf2c0d/libhidapi-dev_0.8.0~rc1+git20140201.3a66d4e+dfsg-3_armhf.deb</nowiki><br />
 +
wget <nowiki>http://gimx.fr/download/3ad2ff26a13a5518b446ae41157bec504cbf2c0d/libhidapi-hidraw0_0.8.0~rc1+git20140201.3a66d4e+dfsg-3_armhf.deb</nowiki><br />
 +
wget <nowiki>http://gimx.fr/download/3ad2ff26a13a5518b446ae41157bec504cbf2c0d/libhidapi-libusb0_0.8.0~rc1+git20140201.3a66d4e+dfsg-3_armhf.deb</nowiki><br />
 +
sudo dpkg -i libhidapi-*.deb<br />
 +
rm libhidapi-*.deb</code>
 +
 
 +
On Fedora:<br />
 +
<code>
 +
yum -y install wxGTK-devel bluez-libs-devel glib2-devel libxml2-devel libXi-devel libusb-devel (to be completed)</code>
  
 
==Download GIMX sources==
 
==Download GIMX sources==
  
    git clone -b master --single-branch --depth 1 <nowiki>https://github.com/matlo/GIMX.git</nowiki>
+
<code>
 +
git clone -b master --single-branch --depth 1 <nowiki>https://github.com/matlo/GIMX.git</nowiki></code>
  
 
==Compile==
 
==Compile==
  
    cd GIMX
+
<code>
    make -j 2
+
cd GIMX
 +
make -j 2</code>
  
 
Replace "2" with your number of CPU cores.
 
Replace "2" with your number of CPU cores.
Line 21: Line 36:
 
==Install==
 
==Install==
  
    sudo make install
+
<code>
 +
sudo make install</code>
  
 
==Set the setuid==
 
==Set the setuid==
Line 27: Line 43:
 
A few gimx binaries need root priviledges.
 
A few gimx binaries need root priviledges.
  
sudo chmod u+s /usr/bin/gimx /usr/bin/sixaddr /usr/bin/bdaddr /usr/bin/hcirevision
+
<code>
 +
sudo chmod u+s /usr/bin/gimx /usr/bin/sixaddr /usr/bin/bdaddr /usr/bin/hcirevision</code>
  
 
==Set Input Device Permissions==
 
==Set Input Device Permissions==
Line 33: Line 50:
 
One way to give read permissions to GIMX is to create a special group, change /dev/input/event* group ownership to that group, and then make the gimx binaries setgid to that group.
 
One way to give read permissions to GIMX is to create a special group, change /dev/input/event* group ownership to that group, and then make the gimx binaries setgid to that group.
  
sudo su
+
<code>
+
sudo su<br />
groupadd -f input
+
 
+
groupadd -f input<br />
echo "KERNEL==\"event*\", NAME=\"input/%k\", MODE:=\"660\", GROUP=\"input\"" > /etc/udev/rules.d/99-gimx-input.rules
+
 
echo "KERNEL==\"js*\", NAME=\"input/%k\", MODE:=\"664\", GROUP=\"input\"" >> /etc/udev/rules.d/99-gimx-input.rules
+
echo "KERNEL==\"event*\", NAME=\"input/%k\", MODE:=\"660\", GROUP=\"input\"" > /etc/udev/rules.d/99-gimx-input.rules<br />
chgrp -f input /dev/input/event* /dev/input/js*
+
echo "KERNEL==\"js*\", NAME=\"input/%k\", MODE:=\"664\", GROUP=\"input\"" >> /etc/udev/rules.d/99-gimx-input.rules<br />
+
chgrp -f input /dev/input/event* /dev/input/js*<br />
chgrp input /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher
+
chmod g+rw /dev/input/event* /dev/input/js*<br />
chmod g+s /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher
+
 
+
chgrp input /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher<br />
exit
+
chmod g+s /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher<br />
 +
 
 +
exit</code>

Revision as of 15:07, 30 September 2015

Other languages:

This wiki explains how to compile GIMX from a Linux terminal.

Install development packages

On Ubuntu:
sudo apt-get install git g++ libwxgtk2.8-dev libbluetooth-dev libxml2-dev libusb-1.0-0-dev libncursesw5-dev gettext xterm xdg-utils libmhash-dev libcurl4-gnutls-dev libxi-dev libx11-dev libhidapi-dev libhidapi-hidraw0 libudev-dev

On Raspbian:
sudo apt-get install git g++ libwxgtk2.8-dev libbluetooth-dev libxml2-dev libusb-1.0-0-dev libncursesw5-dev gettext xterm xdg-utils libmhash-dev libcurl4-gnutls-dev libxi-dev libx11-dev libudev-dev
wget http://gimx.fr/download/3ad2ff26a13a5518b446ae41157bec504cbf2c0d/libhidapi-dev_0.8.0~rc1+git20140201.3a66d4e+dfsg-3_armhf.deb
wget http://gimx.fr/download/3ad2ff26a13a5518b446ae41157bec504cbf2c0d/libhidapi-hidraw0_0.8.0~rc1+git20140201.3a66d4e+dfsg-3_armhf.deb
wget http://gimx.fr/download/3ad2ff26a13a5518b446ae41157bec504cbf2c0d/libhidapi-libusb0_0.8.0~rc1+git20140201.3a66d4e+dfsg-3_armhf.deb
sudo dpkg -i libhidapi-*.deb
rm libhidapi-*.deb

On Fedora:
yum -y install wxGTK-devel bluez-libs-devel glib2-devel libxml2-devel libXi-devel libusb-devel (to be completed)

Download GIMX sources

git clone -b master --single-branch --depth 1 https://github.com/matlo/GIMX.git

Compile

cd GIMX make -j 2

Replace "2" with your number of CPU cores.

Install

sudo make install

Set the setuid

A few gimx binaries need root priviledges.

sudo chmod u+s /usr/bin/gimx /usr/bin/sixaddr /usr/bin/bdaddr /usr/bin/hcirevision

Set Input Device Permissions

One way to give read permissions to GIMX is to create a special group, change /dev/input/event* group ownership to that group, and then make the gimx binaries setgid to that group.

sudo su

groupadd -f input

echo "KERNEL==\"event*\", NAME=\"input/%k\", MODE:=\"660\", GROUP=\"input\"" > /etc/udev/rules.d/99-gimx-input.rules
echo "KERNEL==\"js*\", NAME=\"input/%k\", MODE:=\"664\", GROUP=\"input\"" >> /etc/udev/rules.d/99-gimx-input.rules
chgrp -f input /dev/input/event* /dev/input/js*
chmod g+rw /dev/input/event* /dev/input/js*

chgrp input /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher
chmod g+s /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher

exit