팬 제어 기능을 작동 시키려면 어떻게합니까?


34

시스템의 환기 속도를 제어 할 수있는 fancontrol이라는 것을 알고 있습니다. 랩탑이 매우 쉽게 가열되면서 팬이 조금 더 빠르게 회전하도록하고 싶습니다. 내가 찾은 모든 자습서와 내용은 이전 버전의 Ubuntu 용이며 더 이상 작동하지 않는 것 같습니다.

누구든지 나에게 설명하거나 우분투에서 어떻게 작동시킬 수 있는지에 대한 좋은 링크를 줄 수 있습니까? 동일한 효과로 다른 것이 좋습니다.


랩톱 브랜드, 모델 이름 / 번호 및 BIOS 유형 / 버전과 같은 하드웨어에 대한 자세한 정보가 도움이 될 것입니다.
— filescraps

@filescraps Dell Latitude D620 : paste.ubuntu.com/699801
— RobinJ

5
@RobinJ-과열 문제에 대한 일반적인 점검을 수행 했습니까? 먼지 / 막힘 점검-프로세서 방열판도 확인하십시오. 사용 가능한 최신 BIOS로 업데이트하십시오. 그럽에 "acpi_osi = Linux"를 추가해 보셨습니까? 추가 부팅 옵션을 사용하고 있습니까? 기본적으로 요점은 과열 문제는 먼지 / 아키 피 유형의 재료입니다. 팬을 수동으로 제어 할 필요는 없습니다.
— fossfreedom

글쎄, 팬은 약 65 ° C에있을 때만 더 빨리 작동하기 시작하며, 일단 상승하기 시작하면 더 이상 75 ° C 아래로 더 빨리 가지 않기 때문에 너무 늦은 것 같습니다. 그것은 랩톱이며 하드웨어를 사용하기에 충분히 자신감이 없습니다. 무엇을 acpi_osi=Linux합니까? 추가 부팅 옵션이 없으며 기본 GRUB 만 있습니다.
— RobinJ

1
@RobinJ-웹 사이트의 스타일을 잊지 말고 관련 정보를 의견에 묻기보다는 질문에 다시 추가하십시오.
— fossfreedom

답변:


8

i8kutils는 Dell Vostro 3350 랩탑의 팬을 제어하는 ​​데 사용됩니다.

# Dell 랩탑 전용 :
$ sudo apt-get 설치 i8kutils 
$ i8kfan 1 2 # 왼쪽 팬을 저속으로 설정합니다 (1); 빠른 속도로 올바른 것 (2).

단지 몇 초 후에 BIOS의 무언가가 항상 이전 값으로 다시 설정하는 것처럼 보입니다.
— RobinJ

내 Alienware m14x에서 작동합니다. 그러나 여전히 쿨러를 최대 속도로 설정할 수 없으며 랩톱이 더 높은 온도에서 실행됩니다. 그것은 윈도우에서보다 훨씬 더 뜨겁다 ...
— iLemming

BIOS 내가 매 2 분에 cronjob에 실행을 추가, 그래서 다시를 설정 crontab -e하고 */2 * * * * /usr/bin/i8kfan 1 1. 지금은 완벽하게 작동
— goksel

14

이 답변에 제공된 방법으로 i8kctl 팬 명령을 재정의하는 다른 방법으로 문제를 해결할 수 있습니다. 완성도를 높이기 위해 Dell 랩탑의 팬 제어에 대한 일반적인 참고 사항과에 대한 전체 지침을 제공 i8kutils합니다.

아마 작동하지 않을 것

그러나 랩톱에서 팬을 제어하는 ​​두 가지 일반적이고 직접적인 방법은 불행히도 ACPI 및 PWM 핀을 사용하는 것입니다.

  • Dell 노트북에는 ACPI 팬 제어 기능 이 없습니다 (* 1)

    • 결과적으로 ACPI 부팅 매개 변수 등으로 시도하면 실패합니다.
  • 내가 아는 한 Dell Latitude 노트북에는 pwm 제어 가능 팬이 없습니다 (* 2).

    • 결과적으로 fancontrol/ pwmconfig프로그램이 작동하지 않습니다

i8kutils 사용

그러나 SMM BIOS를i8kutils 통해 Dell Inspiron 랩탑의 팬을 제어하기 위해 작성된 패키지 가 있습니다 . 여러 사용자가 Dell Laitude 랩탑에서도 성공을보고 하지만 (Dell Latitude E7440에서는 그 중 하나입니다) BIOS 팬 제어를 방해하지 않으려면 종종 트릭이 필요합니다. 이전 의견에 따르면 그로 인해 어려움을 겪습니다.

설치 i8kutils:

$ sudo apt-get install i8kutils

시도 해봐:

$ i8kfan 2 2     # set to max speed
$ i8kfan 0 0     # set to 0 speed

... 그리고 작동하는지 듣습니다.

BIOS 팬 제어 비활성화

작동하지만 설정 속도 (Dell Latitude 랩톱의 많은 사용자가보고 함)에 맞서 싸우는 경우 예정된 SMM 세션이 팬 속도를 다시 설정하기 때문입니다. 다행히 SMM 레지스터에 기록하여 BIOS 팬 제어 를 비활성화 하는 방법이 있습니다.

경고 : smm.c 상단의 경고를 참조하십시오. 이 방법은 SMM 레지스터에 씁니다. 그러나이 문제를 일으킨 사용자 보고서가 없습니다. 또한이 시도에 대한 모든 보고서는 BIOS 팬 제어 비활성화에 성공했음을 나타냅니다.

i8kutils프로그램의 소스를 포함 smm하지만 i8kutils패키지에는 컴파일 된 바이너리가 포함되지 않습니다. 우리가 할 일은의 소스 코드를 다운로드하고 i8kutils프로그램을 컴파일 smm한 다음 적절한 인수로 실행하여 SMM 레지스터에 기록하여 BIOS 팬 제어를 비활성화하는 것입니다.

빌드에 필요한 패키지를 다운로드하십시오.

$ sudo apt-get build-dep i8kutils

i8kutils소스 코드 다운로드 , 디렉토리 추출 및 입력 (i8k 버전에 따라 정확한 이름) :

$ apt-get source i8kutils
$ tar xvf i8kutils_1.33.tar.gz
$ cd i8kutils-1.33/

컴파일 smm:

  • A의 경우, 32 비트 시스템 :

    $ make
    

    (위에서 실행 gcc -g -O2 -Wall -I. -o smm smm.c됩니다.)

  • A의 경우, 64 비트 시스템 :

    $ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
    

smm인수 30a3로 실행 하여 SMM 팬 제어를 비활성화 하십시오 .

$ sudo ./smm 30a3

이제 BIOS 팬 제어가 비활성화되어야합니다. 로 속도를 설정 i8kctl하고 팬의 소리를 듣고 속도가 지속되는지 확인하십시오.

참고 : 이것은 재부팅 및 전원 끄기를 유지하는 설정입니다. 로 BIOS 팬 제어를 다시 활성화 할 수 있습니다 $ sudo ./smm 31a3.


* 1 : 나는 이것에 대한 공식적인 출처를 보았습니다. 지금 그것을 찾을 수 없습니다. 하드웨어에 하드웨어가 없는지 확인하려면 다음 지침을 따르십시오. https://wiki.ubuntu.com/DebuggingACPI

* 2 :이 실행 pwmconfig을 검증 : sudo apt-get install fancontrol, sudo pwm-config의 PWM 지원 팬이 존재인지 아닌지 말할 것이다


실제로 ACPI 매개 변수 인을 사용하여 acpi_osi='!Windows 2012'Dell Inspiron 15R 5520의 팬이 온도에 관계없이 항상 최대 속도로 회전하므로 팬을 제어 할 수있었습니다.
— user311982

이것이 정답이어야합니다. 정보가 풍부하고 관련성이 높습니다!
— ppr

좋은 대답입니다. 또한 여기
— malat

1
너무 감사합니다. 이것은 다른 모든 것을 시도한 후에 나에게 도움이되었습니다. smm을 컴파일하려고 할 때 sys / cdefs.h가 누락되었지만 sudo apt-get install g++-multilib가져 왔습니다 ( askubuntu.com/questions/470796/… 참조 )
— Philip Daniels

조금 늦을 수 있지만 최대 속도로 설정하는 데 단점이 있습니까?
— Zerquix18

14

lm- 센서 패키지 lm- 센서 설치가 원하는 것일 수 있습니다.

그리고 당신이 fancontrol 을 제안 했습니다fancontrol 설치 .

소프트웨어를 통해 제어하려는 모든 팬에 4 핀 커넥터가 있는지 확인하십시오.

"PWM 가능 팬은 4 핀 커넥터 (핀아웃 : 접지, + 12V, 감지, 제어)에 일반적으로 연결되어 있습니다." 출처

내가 pwmconfigfancontrol의 일부인 실행하면 얻을

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed 호환되는 하드웨어가 있으면 안내해드립니다.

다음 은 생성 된 구성 파일과 함께 사용할 스크립트입니다. 여기서 더 높은 값을 설정할 수 있다고 가정합니다.

label fan1 "Side Fan"
set fan1_min 1000
label fan2 "PSU Fan"
set fan2_min 1000
label fan5 "CPU Fan"
set fan5_min 1000

그러나 내가 말했듯이 내 하드웨어는 지원하지 않기 때문에 직접 테스트 할 수는 없지만 바이오스에서 팬을 제어 할 수는 있지만 3 등급입니다. 팬의 속도를 느리고 조용하게 유지하는 데 사용합니다.


1
/ usr / sbin / pwmconfig : pwm 가능 센서 모듈이 설치되어 있지 않습니다. 다른 방법이 있습니까?
— RobinJ

일반적으로 sensors-detect먼저 실행 하고 온도 및 팬 속도 판독 값을 얻기 위해 모듈을로드 한 다음 pwmconfig가이를 조작 할 수 있습니다.
— psusi

@RobinJ, 인식 / 지원되는 칩이없는 것 같습니다.
— psusi

나는 이것이 대부분의 다른 사람들을 도울 수있는 가장 유익한 답변 이었으므로 당신에게 현상금을 수여 할 것입니다.
— RobinJ

5

좋아, 이것은 당신이 찾고있는 대답이 아닐 수도 있지만, 환기구에 진공 청소기를 넣어 먼지를 제거하면 과열 문제가 해결되었습니다. 낮은 CPU 주파수에서 과열이 발생하면 시도해 볼 가치가 있습니다. 작은 부품이 흡입 될 수 있습니다. 운이 좋으면이 방법으로 과열 문제를 해결할 수 있습니다.


가장 유익한 정보이기 때문에 위의 답변에 현상금을 수여했지만 내 문제는 하드웨어와 관련된 것으로 보이므로 귀하의 답변이 솔루션에 가장 가깝습니다. 그러나 랩톱의 하드웨어를 망칠 정도로 확신이 들지 않아서 여전히 보증 기간 동안 상점에 가져 왔습니다.
— RobinJ

방금 시도해 보았습니다. 감사! 팬이 더 커지기 시작했고 과열로 인해 하나 또는 두 개의 셧다운이 발생했습니다. 잘만되면 이것이 해결되었습니다. 팬은 정상적인 CPU 사용률로 항상 껐다가 껐습니다 (항상 유지되기 전).
— Cymen

@Cymen 진공이 정전기 방지 진공인지 확인하십시오. 나는 압축 공기 캔을 사용하여 통풍구를 청소합니다. 대안으로도 가능합니다.
— user311982

3

Dell Latitude e4200이 있는데 BIOS에서 i8kfan 설정을 무시했기 때문에 다음과 같은 결과가 나타났습니다. 컴퓨터의 초기 온도는 105F도였으며이 단계 (팬 설정 = 2)를 사용한 후 약 10 분이지나 CPU / 코어 온도가 96F로 떨어졌습니다. 이 절차는 이미 누군가에 의해 게시되었습니다.

단계 1. i8ktutils를 다운로드하여 설치하십시오.

# sudo apt-get install i8kutils

단계 2. BIOS를 재정 의하여 사용자 정의 팬 설정을 방해하지 않도록합니다. 이렇게하려면 소스 코드를 다운로드하고 프로그램 (SMM)을 컴파일하십시오.

# sudo apt-get build-dep i8kutils

그때:

# apt-get source i8kutils

단계 3. 소스 코드를 추출하고 디렉토리로 cd하십시오.

# tar xvf i8kutils_1.33.tar.gz

그때:

# cd i8kutils-1.33/

4 단계. SMM 컴파일

For 32-bit systems:

# make SMM

(Output: # gcc -g -O2 -Wall -I. -o smm smm.c.)

For 64-bit systems

# make SMM:

(Output: # gcc -g -O2 -Wall -I. -o smm -m32 smm.c)

단계 5. 매개 변수를 사용하여 SMM을 실행하십시오.

# sudo ./smm 30a3

단계 6. 팬 속도를 설정하십시오.

# i8kfan 2 2 (Listen as this will set fans to maximum speed)

# i8kfan 1 1 (This will set fans to slow speed)

이제 BIOS 팬 제어는 팬 설정을 무시하지 않아야합니다. 이 설정은 시스템이 재부팅 되더라도 유지됩니다. 어떤 이유로 BIOS를 다시 제어하려면 다음 절차를 수행하십시오.

# sudo ./smm 31a3.

lm_sensors를 사용하여 temp를 확인하는 방법도 있습니다.

http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/

1
Ubuntu 14.04의 최신 버전의 i8kutils-1.41에 대해 이것을 시도했으며 "smm.c : 27 : /usr/include/features.h에서 /usr/include/stdio.h:27:0에 포함 된 파일에 있습니다. 374 : 25 : 치명적인 오류 : sys / cdefs.h : 해당 파일 또는 디렉토리 없음 "그러나이 문제는 askubuntu.com/questions/470796/…
— k-den
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.