Need help with isw?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

257 Stars 52 Forks GNU General Public License v3.0 143 Commits 140 Opened issues


Ice-Sealed Wyvern

Services available


Need anything else?

Contributors list

# 377,886
32 commits

ISW / Ice-Sealed Wyvern

  • isw started as an equivalent of "control tools by pherein" but under linux.
  • It is meant to alter fan profiles of MSI laptops.
  • Profiles for supported laptops are located in /etc/isw.conf.
  • You can check /etc/isw.conf. comments for more details.


  • Use it at your own risk!
  • Secure boot can prevent access to the EC.
  • isw is made/tested with MSI GS40 6QE under Arch/Manjaro, other laptops depend on user contribution.
  • Check that your EC (Embedded Controler) work the same way, you can find documentation on the wiki.

How to install

Package or not package ?

  • If you are using archlinux or a derivative you can install it from AUR:
    yay -S isw
  • If you are on a different distro family:
    • Clone
      git clone
    • Then look at this PKGBUILD to know where to put files.
    • /!\ Path can change a bit depending on the distro /!\

Builtin or not builtin ?

  • It need
    module with option
    , there are two scenario to set that:
    • ec_sys is a builtin kernel module:
    • add
      (Arch AUR package can't do it for you).
    • then update your grub with
      and reboot.
    • ec_sys is not a builtin kernel module:
    • copy both
      files provided (/etc/mod[...]) with same path (Arch AUR package will do it for you).
    • then reboot OR
      modprobe ec_sys write_support=1

How to use it ?

Current --help output

usage: isw [-h] [-b B] [-c] [-f FILE] [-p P] [-r [R]] [-s S S] [-t T] [-u USB] [-w W]

optional arguments: -h, --help show this help message and exit -b B ┬ enable or disable CoolerBoost └ replace B with off OR on

-c ─ show an EC dump

-f FILE, --file FILE ┬ show profile in EC update file └ replace FILE with FILE_NAME

-p P ┬ show current profile in EC └ replace P with SECTION_NAME

-r [R] ┬ show realtime CPU+GPU temp and fan speed from EC ├ replace [R] with any [NUMBER] to perform a [NUMBER] of time(s) └ Assume [0] if given nothing = infinite loop

-s S S ┬ set a single value into EC ├ replace 1st S with ADDRESS in hexadecimal (0x00) └ replace 2nd S with VALUE in decimal (00)

-t T ┬ set the battery charging treshold └ replace T with a NUMBER between 20 and 100 (٪)

-u USB, --usb USB ┬ set usb backlight level └ replace USB with off, half OR full

-w W ┬ write into EC └ replace W with SECTION_NAME

┌─ TIPS ──────────────────────────────────────────────────────────────────┐ │ Set your config in '/etc/isw.conf'. │ │ Arguments order is relevant, -c and -p can be used twice. Example: │ │ isw -cw SECTION_NAME -c will show you EC dump before and after change. │ ├─ SUPPORT ───────────────────────────────────────────────────────────────┤ │ Help me support your laptop by providing following command output: │ │ isw -cp MSI_ADDRESS_DEFAULT │ │ via (open an issue). │ │ Make sure your dump is made before altering EC with isw, you can reset │ │ your EC with a reboot or by changing power source. │ ├─ NAME ──────────────────────────────────────────────────────────────────┤ │ ISW is MSI at 180° │ │ It means Ice-Sealed Wyvern in opposition to MSI's 'unleash the dragon' │ └─────────────────────────────────────────────────────────────────────────┘

NB: all option exept -h and -f need priviledges.

An example

SECTIONNAME refer to the motherboard name inside

, if for example you have a GS406QE your SECTION_NAME would be 14A1EMS1.

If you want to change temperature treshold and/or fan speed for cpu and/or gpu, you have to edit the corresponding section in

to set the wanted values and use
isw -w 14A1EMS1
to apply.

If you want to check the current temperature and fan speed you will have to type

isw -r

Don't forget to read the comment at the beginning of

, it contain some helpfull info.

Launch at startup/resume

You can launch

at startup/resume via systemd with [email protected] (need priviledges):
systemctl enable [email protected][SECTION_NAME].service


- Daemonisation
    - Launch at startup                            done
    - launch after resume (hibernation/suspend)    done
    - Launch at event(power source change)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.