Giter Site home page Giter Site logo

isw-ge63-8re's Introduction

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.

Warning

  • 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 https://github.com/YoyPa/isw
    • 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 ec_sys module with option write_support=1, there are two scenario to set that:
    • ec_sys is a builtin kernel module:
      • add ec_sys.write_support=1 in /etc/default/grub (Arch AUR package can't do it for you).
      • then update your grub with update-grub and reboot.
    • ec_sys is not a builtin kernel module:
      • copy both isw-ec_sys.conf 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 https://github.com/YoyPa/isw (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

SECTION_NAME refer to the motherboard name inside isw.conf, if for example you have a GS40_6QE 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 isw.conf 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 isw.conf, it contain some helpfull info.

Launch at startup/resume

You can launch isw -w [SECTION_NAME] at startup/resume via systemd with [email protected] (need priviledges):

systemctl enable isw@[SECTION_NAME].service

TODO

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

isw-ge63-8re's People

Contributors

yoypa avatar jordanviknar avatar

isw-ge63-8re's Issues

EC Dump

EC dump 
       00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
000000 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000020 00 00 00 00 00 00 00 00 00 00 00 80 c0 06 4b 0b  >..............K.<
000030 03 09 01 0d 51 0a 05 00 26 13 6c 2a ea 01 e7 00  >....Q...&.l*....<
000040 00 00 64 00 fe 0d 00 00 fe 0d be 2e 30 0c 0c 30  >..d.........0..0<
000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000060 00 00 00 00 00 00 00 00 46 0a 32 38 3e 46 4e 56  >........F.28>FNV<
000070 64 4c 00 28 30 38 42 4c 56 00 0a 07 07 09 09 09  >dL.(08BLV.......<
000080 46 0a 37 3c 41 46 4b 50 66 3e 00 2d 32 37 3e 46  >F.7<AFKPf>.-27>F<
000090 4e 00 0a 07 07 07 07 07 02 16 7d 02 16 61 00 00  >N.........}..a..<
0000a0 31 36 50 35 45 4d 53 31 2e 31 31 31 30 35 32 30  >16P5EMS1.1110520<
0000b0 32 30 31 39 30 39 3a 34 34 3a 32 34 f9 0d 00 00  >201909:44:24....<
0000c0 00 01 23 00 00 9e c0 00 00 1a 00 80 00 9a 14 00  >..#.............<
0000d0 00 00 00 00 70 00 00 00 00 00 00 80 01 00 00 00  >....p...........<
0000e0 e2 02 00 04 10 00 00 00 00 00 00 00 00 9a 00 00  >................<
0000f0 00 00 80 02 0c 8f 05 80 00 00 00 00 00 00 00 00  >................<
000100

Profile dump 
Value       set @ address        Fan mode
0xc(12)     0xf4(byte244)        Auto

Value       set @ address        Charging below - stop @
0x0(0)      0xef(byte239)        Nothing is set

-----------CPU-----------        -----------GPU-----------
Value       set @ address        Value       set @ address
0x32(50°C)  0x6a(byte106)        0x37(55°C)  0x82(byte130)
0x38(56°C)  0x6b(byte107)        0x3c(60°C)  0x83(byte131)
0x3e(62°C)  0x6c(byte108)        0x41(65°C)  0x84(byte132)
0x46(70°C)  0x6d(byte109)        0x46(70°C)  0x85(byte133)
0x4e(78°C)  0x6e(byte110)        0x4b(75°C)  0x86(byte134)
0x56(86°C)  0x6f(byte111)        0x50(80°C)  0x87(byte135)

0x0(0%)     0x72(byte114)        0x0(0%)     0x8a(byte138)
0x28(40%)   0x73(byte115)        0x2d(45%)   0x8b(byte139)
0x30(48%)   0x74(byte116)        0x32(50%)   0x8c(byte140)
0x38(56%)   0x75(byte117)        0x37(55%)   0x8d(byte141)
0x42(66%)   0x76(byte118)        0x3e(62%)   0x8e(byte142)
0x4c(76%)   0x77(byte119)        0x46(70%)   0x8f(byte143)
0x56(86%)   0x78(byte120)        0x4e(78%)   0x90(byte144)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.