I have successfully paired gamepad IPEGA PG-9025 (bluetooth) with my notebook (Ubuntu 14.10).

IPEGA PG-9025 can handle 4 different device modes when pairing, but only one makes sense for Steam gaming - Joystick Mode, so I pressed X and Home keys together and pairing was successful in a minute.

Steam does not see my gamepad /dev/input/js0 and I absolutely don't know how to fix it.


There is working solution (you must create remapped virtual xbox gamepad using xboxdrv software, which works great in Steam Big Screen and Steam Games):

  1. install xboxdrv sudo apt-get install xboxdrv
  2. connect your ipega bluetooth gamepad and pair it with computer (hold X button and HOME button together, device is ready to pair when red LED blinking fast and successfully connected when red LED lights continuously)
  3. find XX number (/dev/input/eventXX) of connected gamepad using command cat /proc/bus/input/devices
  4. at the end, create virtual xbox compatible gamepad using command:

    sudo xboxdrv --evdev /dev/input/eventXX --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_A=a,BTN_B=b,BTN_X=x,BTN_Y=y,BTN_TL=lb,BTN_TR=rb,BTN_TL2=lt,BTN_TR2=rt,BTN_THUMBL=tl,BTN_THUMBR=tr,BTN_SELECT=back,BTN_START=start --silent &

Don't forget to replace eventXX with value, discovered in step 3.

NOTE: remapping scheme, used in step 4. http://goo.gl/XFhYvI is usable probably only for ipega controllers, if you have another gamepad manufacturer, just follow these instructions https://steamcommunity.com/app/221410/discussions/0/558748653738497361/.


If you wanna be generic and have no time to lose, you can put this in terminal:

sudo sh -c 'echo SUBSYSTEM\=\=\"input\", MODE\=\"0666\", ENV{ID_INPUT_JOYSTICK}\=\"1\" > /etc/udev/rules.d/71-wiiremote.rules' 

Type your password, press enter and reboot.

It's done

  • Users would have more confidence in an answer (especially one starting with sudo) if you explained what this did, and what the consequences were. Simply uttering a "do this" cryptic string does not increase user knowledge, and cannot necessarily be assumed to work on all systems. – waltinator Jan 7 '17 at 14:45

I'm back for another answer.

  • Create a Udev Rule for your joystick

    sudo gedit /etc/udev/rules.d/71-wiiremote.rules

    Example of my Udev Rule

    KERNEL=="uinput", MODE="0666", SUBSYSTEM=="input", ATTRS{name}=="PG-9028", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"

    When there is PG-9028 you will put the name of your joystick. In your case will be PG-9025 I think.

    It is more easy that way, bye.

  • You can be more generic, using only this code without name of your joystick but will be list all joysticks:

    SUBSYSTEM=="input", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"

I have another solution for you, if you have the address of event of your Ipega gamepad, you can set a .sh file to open steam with this command:

SDL_JOYSTICK_DEVICE=/dev/input/event* steam

Replace " * " with the number of event of your joystick.

After create the .sh file, open the Steam launcher with this command:

sudo gedit /usr/share/applications/steam.desktop

Edit the Exec= line, and put the address of your .sh file


Save, and that's it

Source: http://www.darko.com.br/2016/03/conectando-joystick-ipega-9028-no-linux.html

protected by Community Nov 10 '18 at 13:50

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.