|
|
(15 intermediate revisions by one other user not shown)
|
Line 5: |
Line 5: |
| ==Install development packages== <!--T:2--> | | ==Install development packages== <!--T:2--> |
| | | |
− | On Ubuntu:<br /> | + | <!--T:27--> |
− | <code><!--T:3--> | + | On Ubuntu 20.04:<br /> |
− | 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</code> | + | <code> |
| + | sudo apt-get install build-essential pkg-config git g++ libwxgtk3.0-gtk3-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</code> |
| | | |
− | On Raspbian:<br /> | + | <!--T:27--> |
− | <code><!--T:3--> | + | On Ubuntu 18.04 / Raspbian Stretch:<br /> |
− | 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<br /> | + | <code> |
− | wget <nowiki>http://gimx.fr/download/3ad2ff26a13a5518b446ae41157bec504cbf2c0d/libhidapi-dev_0.8.0~rc1+git20140201.3a66d4e+dfsg-3_armhf.deb</nowiki><br />
| + | sudo apt-get install build-essential pkg-config git g++ libwxgtk3.0-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</code> |
− | 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>
| |
| | | |
| + | <!--T:3--> |
| + | On Ubuntu 14.04:<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</code> |
| + | |
| + | <!--T:22--> |
| + | On Raspbian Jessie:<br /> |
| + | <code> |
| + | sudo apt-get install build-essential pkg-config 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</code> |
| + | |
| + | <!--T:4--> |
| On Fedora:<br /> | | On Fedora:<br /> |
− | <code><!--T:4--> | + | <code> |
− | yum -y install wxGTK-devel bluez-libs-devel glib2-devel libxml2-devel libXi-devel libusb-devel (to be completed)</code>
| + | dnf -y install wxGTK-devel bluez-libs-devel glib2-devel libxml2-devel libXi-devel libusb-devel libcurl-devel ncurses-devel mhash-devel(to be completed)</code> |
| | | |
| ==Download GIMX sources== <!--T:9--> | | ==Download GIMX sources== <!--T:9--> |
| | | |
− | <code><!--T:10-->
| + | <!--T:10--> |
− | git clone -b master --single-branch --depth 1 <nowiki>https://github.com/matlo/GIMX.git</nowiki></code> | + | <code> |
| + | git clone -b master --single-branch --depth 1 --recursive -j8 <nowiki>https://github.com/matlo/GIMX.git</nowiki></code> |
| | | |
| ==Compile== <!--T:11--> | | ==Compile== <!--T:11--> |
| | | |
− | <code><!--T:12-->
| + | <!--T:12--> |
− | cd GIMX | + | <code> |
| + | cd GIMX<br /> |
| make -j 2</code> | | make -j 2</code> |
| | | |
Line 38: |
Line 48: |
| ==Install== <!--T:14--> | | ==Install== <!--T:14--> |
| | | |
− | <code><!--T:15-->
| + | <!--T:15--> |
| + | <code> |
| sudo make install</code> | | sudo make install</code> |
| | | |
Line 46: |
Line 57: |
| A few gimx binaries need root priviledges. | | A few gimx binaries need root priviledges. |
| | | |
− | <code><!--T:21-->
| + | <!--T:21--> |
| + | <code> |
| 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> |
| | | |
Line 54: |
Line 66: |
| 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. |
| | | |
− | <code><!--T:18-->
| + | <!--T:18--> |
| + | <code> |
| sudo su<br /> | | sudo su<br /> |
| | | |
| + | <!--T:23--> |
| groupadd -f input<br /> | | groupadd -f input<br /> |
| | | |
| + | <!--T:24--> |
| echo "KERNEL==\"event*\", NAME=\"input/%k\", MODE:=\"660\", GROUP=\"input\"" > /etc/udev/rules.d/99-gimx-input.rules<br /> | | echo "KERNEL==\"event*\", NAME=\"input/%k\", MODE:=\"660\", GROUP=\"input\"" > /etc/udev/rules.d/99-gimx-input.rules<br /> |
| echo "KERNEL==\"js*\", NAME=\"input/%k\", MODE:=\"664\", GROUP=\"input\"" >> /etc/udev/rules.d/99-gimx-input.rules<br /> | | 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 -f input /dev/input/event* /dev/input/js*<br /> |
− | chmod g+rw /dev/input/event* /dev/input/js*<br /> | + | chmod -f g+rw /dev/input/event* /dev/input/js*<br /> |
| | | |
| + | <!--T:25--> |
| chgrp input /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher<br /> | | chgrp input /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher<br /> |
| chmod g+s /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher<br /> | | chmod g+s /usr/bin/gimx-config /usr/bin/gimx-fpsconfig /usr/bin/gimx-launcher<br /> |
| | | |
| + | <!--T:26--> |
| exit</code> | | exit</code> |
| </translate> | | </translate> |
This wiki explains how to compile GIMX from a Linux terminal.
Install development packages
On Ubuntu 20.04:
sudo apt-get install build-essential pkg-config git g++ libwxgtk3.0-gtk3-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 18.04 / Raspbian Stretch:
sudo apt-get install build-essential pkg-config git g++ libwxgtk3.0-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 14.04:
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 Raspbian Jessie:
sudo apt-get install build-essential pkg-config 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 Fedora:
dnf -y install wxGTK-devel bluez-libs-devel glib2-devel libxml2-devel libXi-devel libusb-devel libcurl-devel ncurses-devel mhash-devel(to be completed)
Download GIMX sources
git clone -b master --single-branch --depth 1 --recursive -j8 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 -f 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