Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build for linux mint #145

Open
tggachilles opened this issue Jan 8, 2025 · 1 comment
Open

build for linux mint #145

tggachilles opened this issue Jan 8, 2025 · 1 comment

Comments

@tggachilles
Copy link

can someone explain how i would build this for linux mint, i have been making the build directory in the jsm folder running the cmake .. command, then running the make command afterwards, both in the build folder. i can post the errors im getting here but i am unsure if the way i am trying to build it now is even the right way to go about it. i am pretty sure i have the dependency's it needs also i am mostly new to linux. any help would be appreciated.

@jcsstelar
Copy link

jcsstelar commented Jan 12, 2025

Hihi. I have done JSM v3.4.0 with ubuntu 22, popos 22. JSM v3.5.4 with ubuntu 24 and nobara 40. I have a bunch of notes taken which I will try to sort out before sharing. You run mint 22 right? Whats the JSM version you building? Yeah may help editing the post with the output after

mkdir build && cd build
cmake .. -DCMAKE_CXX_COMPILER=clang++ && cmake --build .

But not sure, Im noob too :(
Be aware that JSM linux afaik its an unfinished work, and does not come with all windows features; which depends on ViGEmBus to emulate gamepads, not like its something you cant do on linux with other tools tho. At least JSM GYRO works.

By the way, are you missing git maybe?

Edit:
Installed Mint22 in a virtual machine, you can too if you care of breaking something in your main system.
This what worked:
JSM v3.6.0 -> ERROR 56% STOP prolly related to older SDL2 version? 2.30.0 (mint)
JSM v3.5.5 -> NOPE, maybe same error as 3.6.0? error: use of undeclared identifier 'NONAME'
JSM v3.5.4 -> SUCCESS!

***DEPENDENCIES
#start with this commands
sudo apt update

sudo apt install build-essential git make pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev libpipewire-0.3-dev libwayland-dev libdecor-0-dev

#then need remove libayatana-appindicator3-1 so we can install libappindicator3-dev
#other packages will get removed too, take note!
#in my Mint22 VM I see also
blueman gir1.2-ayatanaappindicator3-0.1 transmission-gtk
#(we can undo it later once building is finished)
sudo apt remove libayatana-appindicator3-1

#finally
sudo apt install debhelper libx11-dev clang libgtk-3-dev libappindicator3-dev libevdev-dev libhidapi-dev libusb-dev

***BUILDING
#download source code of JSM release, like v3.5.4.tar.gz
#extract somewhere, open the folder
#you can see there cmake, dist and some other folders right?
SOMEPLACE/JoyShockMapper-3.5.4/
#open terminal in the folder and execute

mkdir build && cd build
cmake .. -DCMAKE_CXX_COMPILER=clang++ && cmake --build .

***AFTER BUILDING
#undo removes
sudo apt remove libappindicator3-dev
sudo apt install blueman gir1.2-ayatanaappindicator3-0.1 libayatana-appindicator3-1 transmission-gtk

#I dont bother with next, cos I run JSM in a workaround way without install (since afaik only provides icons for me) but anyways:
#Open terminal into the new created folder (eg JoyShockMapper-3.5.4/build/) and execute
sudo make install
#Now you should be able to execute JoyShockMapper in a terminal, like you do with any other linux command

***I also have this not build related tho:

#add yourself to the input group (needs reboot to apply)
sudo usermod -a -G input YOURUSERNAME

#uinput module (/dev/uinput); kernel module that makes it possible to emulate input devices from userspace, really needed?
/etc/modules-load.d/uinput.conf
uinput #write this inside uinput.conf

#check udev rules inside source code folder .../JoyShockMapper-3.5.4/dist/linux/50-joyshockmapper.rules

#for example if you have DS (I just added this)
/etc/udev/rules.d/71-sony-controllers.rules

#Sony DualSense Wireless-Controller; Bluetooth; USB
KERNEL=="hidraw*", KERNELS=="054C:0CE6", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0660", TAG+="uaccess"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants