# Trying to install Razer device configuration tool.

## lum-X

I am trying to install Razer device configuration tool but i cant see the UI. this is what i have done in terminal. 

```
lumx razercfg-0.15 # cd /root/Desktop/

lumx Desktop # cmake razercfg-0.15

-- The C compiler identification is GNU

-- Check for working C compiler: /usr/bin/gcc

-- Check for working C compiler: /usr/bin/gcc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check if the system is big endian

-- Searching 16 bit integer

-- Looking for sys/types.h

-- Looking for sys/types.h - found

-- Looking for stdint.h

-- Looking for stdint.h - found

-- Looking for stddef.h

-- Looking for stddef.h - found

-- Check size of unsigned short

-- Check size of unsigned short - done

-- Using unsigned short

-- Check if the system is big endian - little endian

-- Looking for libusb.h

-- Looking for libusb.h - found

-- Configuring done

-- Generating done

-- Build files have been written to: /root/Desktop

lumx Desktop # make razer

razercfg-0.15/         razercfg-0.15.tar.bz2  razerd/                

lumx Desktop # make razer

razercfg-0.15/         razercfg-0.15.tar.bz2  razerd/                

lumx Desktop # make razercfg-0.15

lumx Desktop # make install 

Scanning dependencies of target razer_udev_rules

[  0%] Generate udev rules

Generating udev rules

srcdir=/root/Desktop/razercfg-0.15  bindir=/root/Desktop  instdir=/usr/local

[  7%] Built target razer_udev_rules

Scanning dependencies of target razer

[ 14%] Building C object librazer/CMakeFiles/razer.dir/buttonmapping.o

[ 21%] Building C object librazer/CMakeFiles/razer.dir/profile_emulation.o

[ 28%] Building C object librazer/CMakeFiles/razer.dir/librazer.o

[ 35%] Building C object librazer/CMakeFiles/razer.dir/config.o

[ 42%] Building C object librazer/CMakeFiles/razer.dir/util.o

[ 50%] Building C object librazer/CMakeFiles/razer.dir/cypress_bootloader.o

[ 57%] Building C object librazer/CMakeFiles/razer.dir/hw_boomslangce.o

[ 64%] Building C object librazer/CMakeFiles/razer.dir/hw_copperhead.o

[ 71%] Building C object librazer/CMakeFiles/razer.dir/hw_deathadder.o

[ 78%] Building C object librazer/CMakeFiles/razer.dir/hw_krait.o

[ 85%] Building C object librazer/CMakeFiles/razer.dir/hw_lachesis.o

[ 92%] Building C object librazer/CMakeFiles/razer.dir/hw_naga.o

Linking C shared library librazer.so

[ 92%] Built target razer

Scanning dependencies of target razerd

[100%] Building C object razerd/CMakeFiles/razerd.dir/razerd.o

Linking C executable razerd

[100%] Built target razerd

Install the project...

-- Install configuration: ""

-- Installing: /usr/local/lib/librazer.so

-- Installing: /etc/udev/rules.d/01-razer-udev.rules

-- udevadm control --reload-rules: 0

-- ldconfig: 0

-- Installing: /usr/local/sbin/razerd

-- Removed runtime path from "/usr/local/sbin/razerd"

-- Installing: /usr/local/bin/pyrazer.py

-- Installing: /usr/local/bin/razercfg

-- Installing: /usr/local/bin/qrazercfg

lumx Desktop # cp /root/Desktop/razer

razercfg-0.15/         razercfg-0.15.tar.bz2  razerd/

lumx Desktop # cp /root/Desktop/razer  

razercfg-0.15/         razercfg-0.15.tar.bz2  razerd/

lumx Desktop # cp /root/Desktop/razer

razercfg-0.15/         razercfg-0.15.tar.bz2  razerd/

lumx Desktop # cp /root/Desktop/razercfg-0.15

razercfg-0.15/         razercfg-0.15.tar.bz2  

lumx Desktop # cp /root/Desktop/razercfg-0.15

razercfg-0.15/         razercfg-0.15.tar.bz2  

lumx Desktop # cp /root/Desktop/razercfg-0.15/

01-razer-udev.rules.template  razer.conf

CMakeLists.txt                razerd/

COPYING                       razerd.initscript

README                        scripts/

librazer/                     ui/

lumx Desktop # cp /root/Desktop/razercfg-0.15/razerd.initscript  /etc/init.d/razerd

lumx Desktop # ln -s /etc/init.d/razerd /etc/rc2.d/S99razerd
```

and this is the README

```
******************************************

*  Razer device configuration tool       *

* Copyright (c) 2007-2011 Michael Buesch *

******************************************

This is a configuration utility for Razer devices on Linux systems.

DEPENDENCIES

============

 * python 2.5 or 2.6

   http://www.python.org/

   Debian Linux:

   aptitude install python

 * libusb 1.0

   http://libusb.org/

   Debian Linux:

   aptitude install libusb-1.0-0-dev

 * QT4 python bindings (for the graphical qrazercfg tool only)

   http://www.riverbankcomputing.co.uk/software/pyqt/intro

   http://qt.nokia.com/

   Debian Linux:

   aptitude install python-qt4

 * cmake 2.4 or later (for building only)

   http://www.cmake.org/

   Debian Linux:

   aptitude install cmake

Note that almost all distributions ship prebuilt packages of the

above dependencies.

BUILDING

========

First invoke "cmake" to build the makefiles.

Then invoke "make" to build the binaries.

  cmake .

  make

(Note the required space and dot after the cmake command)

INSTALLING

==========

First you need to install the tool libraries and binaries. Do this by typing

in the following commands:

  sudo -i   # become root

  make install

To automatically start the required system daemon "razerd" at system bootup time,

you need to install the init-script. This software package includes a generic

example script, that should work out-of-the-box on many Linux distributions.

To install it, invoke the following commands:

  sudo -i   # become root

  cp ./razerd.initscript /etc/init.d/razerd

  ln -s /etc/init.d/razerd /etc/rc2.d/S99razerd

  ln -s /etc/init.d/razerd /etc/rc5.d/S99razerd

  ln -s /etc/init.d/razerd /etc/rc0.d/K01razerd

  ln -s /etc/init.d/razerd /etc/rc6.d/K01razerd

UDEV notification:

The  'make install'  step did already install the UDEV script automatically.

It installed the script to

  /etc/udev/rules.d/01-razer-udev.rules

This should work on most distributions.

If udev notification does not work, try to reboot the system.

RAZERD CONFIGURATION

====================

The user may create a razerd configuration file in /etc/razer.conf which

can be used to specify various razerd options and initial hardware

configuration settings.

And example config file is included as "razer.conf" in this package.

If no configuration file is available, razerd will work with default settings.

X11-WINDOW (X.ORG) CONFIGURATION

================================

If you don't have an xorg.conf, you don't have to do anything and it

should work out-of-the-box.

The X-server must _not_ be configured to a specific mouse device like /dev/input/mouse0,

because on configuration events razerd may have to temporarly unregister the mouse from the

system. This will confuse the X-server, if it's configured to a specific device.

Configure it to the generic /dev/input/mice device instead. This will enable the X-server

to pick up the mouse again after a configuration event from razerd.

Example xorg.conf snippet:

...

  Section "InputDevice"

    Identifier   "Mouse"

    Driver   "mouse"

    Option   "Device" "/dev/input/mice"

  EndSection

...

Alternatively do not specify a "Device" at all. The X-server will autodetect

the device then:

...

  Section "InputDevice"

    Identifier   "Mouse"

    Driver   "mouse"

  EndSection

...

In any case, do _NOT_ use:

    Option   "Device" "/dev/input/mouseX"

USING THE TOOLS

===============

To use the tools, the "razerd" daemon needs to be started as root, first.

Without the background daemon, nothing will work. The daemon is responsible

for doing the lowlevel hardware accesses and for tracking the current state

of the device.

While the daemon is running, the user interfaces "razercfg" (commandline) and

"qrazercfg" (graphical user interface) can be used.

ARCHITECTURE

============

The architecture layout of the razer tools looks like this:

 -------------------

| hardware driver 0 |--v

 -------------------   |

                       |    ----------

 -------------------   |   | lowlevel |     --------      ---------

| hardware driver 1 |--x---| librazer |----| razerd |----| pyrazer |

 -------------------   |    ----------      --------      ---------

                       |                        |           ^ ^ ^

 -------------------   |     ---------------------------    | | |

| hardware driver n |--^    | (to be written) librazerd |   | | |

 -------------------         ---------------------------    | | |

                                              ^ ^ ^         | | |

                                              | | |         | | |

                           ---------------    | | |         | | |

                          | Application 0 |---^ | |         | | |

                           ---------------      | |         | | |

                                                | |         | | |

                           ---------------      | |         | | |

                          | Application 1 |-----^ |         | | |

                           ---------------        |         | | |

                                                  |         | | |

                           ---------------        |         | | |

                          | Application n |-------^         | | |

                           ---------------                  | | |

                                                            | | |

                           ----------                       | | |

                          | razercfg |----------------------^ | |

                           ----------                         | |

                                                              | |

                           -----------                        | |

                          | qrazercfg |-----------------------^ |

                           -----------                          |

                                                                |

                            --------------------------          |

                          | Other Python applications |---------^

                           ---------------------------

So in general, your application wants to access the razer devices through

pyrazer or (if it's not a python app) through librazerd.

(Note that librazerd is not written, yet. So currently the only way to

access the devices is through pyrazer).

Applications should never poke with lowlevel librazer directly, because there

will be no instance that keeps track of the device state and permissions and

concurrency.
```

----------

