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


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.