This is a fork of the original project that doesn't work on my MEG S360. Probably because the interaction protocol has changed since its creation.
A simple linux driver for MSI MEG Coreliquid S360 AIO watercooling
Having unsuccessfully tried to use liquidctl to drive my MSI MEG coreliquid AIO watercooling under linux (specifically Debian 12), I decided to build mine. I don't care about the display on this AIO, I just want it to react to CPU temperature. I only allow 5 predefined modes to make the link between temperature and fan and pump speed: SILENT = 0, BALANCE = 1, GAME = 2, DEFAULT = 4, SMART = 5. In this first version, the CUSTOMIZE = 3 mode is not allowed, as the 5 others should do the job. Here are pictures from the MSI soft for Windows, showing the link between temperature and fan speeds for three modes.
You need libsensors-dev and libhidapi-dev (or hidapi on Arch) to compile.
The CMake build will automatically fetch hidapi via FetchContent if it's not found,
but having the system library is recommended for stability.
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .Here, I use libhidapi-hidraw, but I guess it would work as well with libhidapi-libusb0. I choose the former (hidraw) because it seems to be the recommended one these days.
After building, you can install the driver system‑wide:
sudo cmake --install . --prefix "/usr/local"You can use install_manifest.txt to remove the installed files:
cat install_manifest.txt | xargs sudo rmThis will install:
- The executable
/usr/local/bin/my_msi_coreliquid_driver - The systemd service
/usr/lib/systemd/system/my_msi_coreliquid_driver@.service - The sleep‑resume script
/usr/lib/systemd/system-sleep/my_msi_coreliquid_driver_sleep.sh
To allow non‑root access to the device, copy the provided udev rules:
sudo cp 99-msi-coreliquid.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm triggermy_msi_coreliquid_driver -M mode [ startd ]
-M sets the cooling mode to mode (0‑5, except 3). The modes are:
0– SILENT1– BALANCE2– GAME4– DEFAULT (constant speed)5– SMART (temperature‑based, default)
startd starts the driver as a daemon (not needed if using systemd service).
Example:
# Set mode to GAME
sudo my_msi_coreliquid_driver -M 2
# Start as a one‑shot daemon (for testing)
sudo my_msi_coreliquid_driver -M 5 startdIf you installed via cmake --install, the systemd service is already placed.
Enable and start it with:
sudo systemctl daemon-reload
sudo systemctl enable my_msi_coreliquid_driver@5.service
sudo systemctl start my_msi_coreliquid_driver@5.serviceSwitch to Game mode (2):
systemctl stop my_msi_coreliquid_driver@5
systemctl start my_msi_coreliquid_driver@2Make Silent (0) mode the default mode when booting the system:
systemctl enable my_msi_coreliquid_driver@0You can build from source using the provided PKGBUILD.
makepkg -iA Plasma 6 applet that provides a convenient GUI to switch between cooling modes of the MSI CoreLiquid S360 AIO. The widget displays the current mode and allows you to switch between Silent, Balance, Game, and Smart modes with a single click.
Compact representation in the system tray.
Expanded view showing all available cooling modes.
- Ensure you have Plasma 6 installed.
- Copy the
widgetfolder to your local Plasma applets directory:
cp -r widget ~/.local/share/plasma/plasmoids/com.msi.mycoreliquid.switcher- Right‑click on the panel (or desktop) → Add Widgets → find MSI CoreLiquid S360 Control and drag it to the panel.
Alternatively, you can install system‑wide (requires root):
sudo cp -r widget /usr/share/plasma/plasmoids/com.msi.mycoreliquid.switcherClick the widget icon in the system tray to expand it, then select the desired cooling mode. The widget will automatically stop the previous systemd service and start the new one (e.g., my_msi_coreliquid_driver@2 for Game mode). The icon changes to reflect the active mode.
The widget polls the systemd unit status every 5 seconds to keep the displayed mode up‑to‑date.
GPLv3 – see the LICENSE file.




