Auto Fan Management Utility in Linux Systems for Monster Laptops

Overview

Auto Fan Management Utility in Linux Systems for Monster Laptops

Monster Laptoplar için Linux Sistemlerde Oto Fan Yönetimi

TR

Monster laptoplar gömülü fan hızı olarak 90°C üstü ve altı olarak sadece 2 değer bulundurduğundan daha optimal bir çözüm için yazılmıştır.
Fan hızı - CPU sıcaklığı değerleri Monster'ın Windows için olan Control Manager programından referans alınmıştır.
Gömülü kontrollera low-level IO syscalları ile eriştiğinden bu programı kullanmanız durumunda riskin size ait olduğunu bilin.

ss

Kullanım

sudo ./monster-fans-linux

Derleme

  • rustc ve Cargo'yu indirin
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Git'i clonelayıp derleyin
git clone https://github.com/scrubjay55/monster-fans-linux
cd monster-fans-linux
cargo build --release
You might also like...
A lightning fast state management module for Yew.

yewv A lightning fast state management module for Yew built with performance and simplicity as a first priority. Who is this for? If you wish to use a

Original Version Management System based on Git
Original Version Management System based on Git

nss (noshishi) Original Version Management System based on Git. Learning git and rust for good developer. Usage Install cargo install nssi how to nss

Token management program (vesting and mining) implemented in Anchor
Token management program (vesting and mining) implemented in Anchor

Deep Dive into Anchor by Implementing Token Management Program Author: @ironaddicteddog, @emersonliuuu [Updated at 2022.5.21] You can find the full co

Batch rename utility for developers
Batch rename utility for developers

nomino Batch rename utility for developers How to install Pre-Compiled You can download a pre-compiled executable for Linux, MacOS and Windows operati

A small utility for tracking the change in opening and closing of issues in a GitHub repo

A small utility for tracking the change in opening and closing of issues in a GitHub repo. This tool can be used to build visualizations for issue triage over time with the hope of motivating closing more issues than are opened.

mdTranslation is a utility to prepare multi-lingual Markdown documents.

mdTranslation is a utility to prepare multi-lingual Markdown documents. There's also a mdBook preprocessor called mdbook-translation for

ᎩᎦᎨᎢ (IPA: [gigagei]) is a random quote fetching console utility. Written in Rust.
ᎩᎦᎨᎢ (IPA: [gigagei]) is a random quote fetching console utility. Written in Rust.

gigagei ᎩᎦᎨᎢ (IPA: [gigagei]) is a random quote fetching console utility. Written in Rust. Installing Use latest pre-built binary from releases Buildi

Utility library to work with tuples.

Utility library to work with tuples.

A fast, multi-threaded line counting utility written in Rust.

xloc A fast, multi-threaded line counting utility written in Rust. What is xloc A drop in replacement for bash's wc -l. Your project has x lines of co

Comments
  • Build Issue

    Build Issue

    ~/monster-fans-linux ❯❯❯ sudo cargo build --release master Compiling monster-fans-linux v0.0.0 (/home/furkan/monster-fans-linux) error[E0463]: can't find crate forstd| = note: thex86_64-unknown-linux-musltarget may not be installed = help: consider downloading the target withrustup target add x86_64-unknown-linux-musl`

    error[E0463]: can't find crate for core --> src/ec_io.rs:1:5 | 1 | use core::arch::asm; | ^^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/ec_io.rs:2:5 | 2 | use std::thread; | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/main.rs:1:5 | 1 | use std::fs::File; | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/main.rs:2:5 | 2 | use std::io::{self, Read}; | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/main.rs:3:5 | 3 | use std::process::{self, Command}; | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/main.rs:4:5 | 4 | use std::thread; | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/main.rs:5:5 | 5 | use std::time::Duration; | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error: cannot find macro write in this scope --> src/main.rs:124:30 | 124 | Mode::Default => write!(f, "default mode"), | ^^^^^

    error: cannot find macro write in this scope --> src/main.rs:125:28 | 125 | Mode::Quiet => write!(f, "quiet mode"), | ^^^^^

    error: cannot find macro asm in this scope --> src/ec_io.rs:10:5 | 10 | asm!("in al, dx", out("al") value, in("dx") port, options(nomem, nostack, preserves_flags)); | ^^^

    error: cannot find macro asm in this scope --> src/ec_io.rs:15:5 | 15 | asm!("out dx, al", in("dx") port, in("al") value, options(nomem, nostack, preserves_flags)); | ^^^

    error: cannot find macro eprintln in this scope --> src/ec_io.rs:79:13 | 79 | eprintln!("err on waiting for the ec io"); | ^^^^^^^^

    error: cannot find macro eprintln in this scope --> src/main.rs:135:9 | 135 | eprintln!("run with sudo!"); | ^^^^^^^^

    error: cannot find macro eprintln in this scope --> src/main.rs:147:17 | 147 | eprintln!("Usage:\n{executable_name} {DEFAULT_MODE_ARG}|{QUIET_MODE_ARG}"); | ^^^^^^^^

    error: cannot find macro println in this scope --> src/main.rs:154:5 | 154 | println!("Running in {}", mode); | ^^^^^^^

    error: cannot find macro println in this scope --> src/main.rs:158:5 | 158 | println!( | ^^^^^^^

    error: cannot find macro println in this scope --> src/main.rs:171:5 | 171 | println!("initial ec: fan={}%, CPU={}°C", ec.fan_duty, ec.cpu_temp); | ^^^^^^^

    error: cannot find macro eprintln in this scope --> src/main.rs:175:13 | 175 | eprintln!("err on reading: '{e}'"); | ^^^^^^^^

    error: cannot find macro println in this scope --> src/main.rs:181:17 | 181 | println!( | ^^^^^^^

    error: cannot find macro eprintln in this scope --> src/main.rs:186:17 | 186 | eprintln!("err on writing to the ec fan duty"); | ^^^^^^^^

    error: cannot find macro println in this scope --> src/main.rs:196:5 | 196 | println!("Signal received. Waiting for EC, then closing.."); | ^^^^^^^

    error[E0433]: failed to resolve: use of undeclared crate or module thread --> src/ec_io.rs:76:9 | 76 | thread::sleep(std::time::Duration::from_micros(1000)); | ^^^^^^ use of undeclared crate or module thread

    error[E0463]: can't find crate for std --> src/ec_io.rs:76:23 | 76 | thread::sleep(std::time::Duration::from_micros(1000)); | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0433]: failed to resolve: use of undeclared crate or module io --> src/main.rs:70:43 | 70 | pub fn read_from_kernel(&mut self) -> io::Result<()> { | ^^ use of undeclared crate or module io

    error[E0433]: failed to resolve: use of undeclared type File --> src/main.rs:71:21 | 71 | let mut f = File::open("/sys/kernel/debug/ec/ec0/io")?; | ^^^^ use of undeclared type File

    error[E0463]: can't find crate for std --> src/main.rs:95:28 | 95 | let step = std::cmp::min(current_fd - fan, Self::MAX_STEP); | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0433]: failed to resolve: use of undeclared crate or module io --> src/main.rs:108:29 | 108 | pub fn load_module() -> io::Result<()> { | ^^ use of undeclared crate or module io

    error[E0433]: failed to resolve: use of undeclared type Command --> src/main.rs:109:9 | 109 | Command::new("/sbin/modprobe") | ^^^^^^^ use of undeclared type Command

    error[E0463]: can't find crate for std --> src/main.rs:121:6 | 121 | impl std::fmt::Display for Mode { | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/main.rs:122:27 | 122 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0463]: can't find crate for std --> src/main.rs:122:55 | 122 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0433]: failed to resolve: use of undeclared crate or module process --> src/main.rs:136:9 | 136 | process::exit(1); | ^^^^^^^ use of undeclared crate or module process

    error[E0463]: can't find crate for std --> src/main.rs:139:20 | 139 | let mut args = std::env::args(); | ^^^ can't find crate | = note: the x86_64-unknown-linux-musl target may not be installed = help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

    error[E0433]: failed to resolve: use of undeclared crate or module process --> src/main.rs:148:17 | 148 | process::exit(1); | ^^^^^^^ use of undeclared crate or module process

    error[E0433]: failed to resolve: use of undeclared crate or module thread --> src/main.rs:191:9 | 191 | thread::sleep(Duration::from_secs(2)); | ^^^^^^ use of undeclared crate or module thread

    error[E0433]: failed to resolve: use of undeclared type Duration --> src/main.rs:191:23 | 191 | thread::sleep(Duration::from_secs(2)); | ^^^^^^^^ use of undeclared type Duration

    error[E0405]: cannot find trait Fn in this scope --> src/main.rs:50:33 | 50 | pub duty_calc_func: &'a dyn Fn(f32) -> f32, | ^^ not found in this scope

    error[E0405]: cannot find trait Fn in this scope --> src/main.rs:59:40 | 59 | pub fn new(duty_calc_func: &'a dyn Fn(f32) -> f32) -> Self { | ^^ not found in this scope

    error[E0425]: cannot find function, tuple struct or tuple variant Ok in this scope --> src/main.rs:76:9 | 76 | Ok(()) | ^^ not found in this scope

    error[E0412]: cannot find type Option in this scope --> src/main.rs:79:46 | 79 | pub fn switch_to_next_duty(&mut self) -> Option { | ^^^^^^ not found in this scope

    error[E0425]: cannot find value None in this scope --> src/main.rs:90:24 | 90 | return None; | ^^^^ not found in this scope

    error[E0425]: cannot find value None in this scope --> src/main.rs:99:24 | 99 | return None; | ^^^^ not found in this scope

    error[E0425]: cannot find function, tuple struct or tuple variant Some in this scope --> src/main.rs:102:20 | 102 | return Some(ec_write_fan_duty(next_duty as f32)); | ^^^^ not found in this scope

    error[E0425]: cannot find value None in this scope --> src/main.rs:105:9 | 105 | None | ^^^^ not found in this scope

    error[E0425]: cannot find function, tuple struct or tuple variant Ok in this scope --> src/main.rs:113:9 | 113 | Ok(()) | ^^ not found in this scope

    error[E0531]: cannot find tuple struct or tuple variant Some in this scope --> src/main.rs:143:9 | 143 | Some(arg) => match arg.as_str() { | ^^^^ not found in this scope

    error[E0531]: cannot find tuple struct or tuple variant Err in this scope --> src/main.rs:174:16 | 174 | if let Err(e) = ec.read_from_kernel() { | ^^^ not found in this scope

    error[E0531]: cannot find tuple struct or tuple variant Some in this scope --> src/main.rs:179:16 | 179 | if let Some(s) = ec.switch_to_next_duty() { | ^^^^ not found in this scope

    Some errors have detailed explanations: E0405, E0412, E0425, E0433, E0463, E0531. For more information about an error, try rustc --explain E0405. error: could not compile monster-fans-linux due to 49 previous errors `

    opened by salvoton 4
Owner
null
Booru software for the 21st century. (Name is supposed to be like Puro, the big monster, but I failed..)

Pooru Booru software for the 21st century. Setup Setup is a little funky, but I hope to fix this funkyness down the road. First and foremost, you will

null 2 May 8, 2022
Devmode is a project management utility for developers.

Dev(mode) Dev(mode) is a project management utility for developers.

Eduardo Flores 15 Dec 11, 2022
Utility for controlling laptop backlight brightness on Linux.

Licht Utility for chaning laptop backlight brightness, supporting different stepping modes. Usage licht USAGE: licht [OPTIONS] <SUBCOMMAND> OPT

null 2 Jul 3, 2022
An asynchronous Hardware Abstraction Layer (HAL) for embedded systems

embedded-hal-async An asynchronous Hardware Abstraction Layer (HAL) for embedded systems. This crate contains asynchronous versions of the embedded-ha

Diego Barrios Romero 3 Jan 22, 2022
Artifact collection tool for *nix systems

fennec is an artifact collection tool written in Rust to be used during incident response on *nix based systems. fennec allows you to write a configuration file that contains how to collect artifacts.

AbdulRhman Alfaifi 147 Dec 19, 2022
A simple to use rust package to generate or parse Twitter snowflake IDs,generate time sortable 64 bits unique ids for distributed systems

A simple to use rust package to generate or parse Twitter snowflake IDs,generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)

houseme 5 Oct 6, 2022
A reactive runtime for embedded systems.

Actuate Examples A reactive diagram for robotics and control systems. Actuate leverages Rust's type system to create an efficient diagram that connect

null 7 Mar 4, 2024
Concrete is a simple programming language specifically crafted for creating highly scalable systems that are reliable, efficient, and easy to maintain.

The Concrete Programming Language Most ideas come from previous ideas - Alan C. Kay, The Early History Of Smalltalk In the realm of low-level programm

Lambdaclass 126 Nov 22, 2024
An opinionated, practical color management library for games and graphics.

colstodian An opinionated color management library built on top of kolor. Introduction colstodian is a practical color management library for games an

Gray Olson 27 Dec 7, 2022
Stacked branch management for Git

git-stack Stacked branch management for Git Dual-licensed under MIT or Apache 2.0 Documentation About Installation Getting Started Reference FAQ Compa

Ed Page 1 Jul 18, 2022