2 votes

Undervolting d'un AMD A8-4500M sous Linux

J'ai un HP Pavilion g7 Le mien ne s'éteint pas, mais il devient bruyant, ce qui est très ennuyeux (et très dangereux). 91°C J'ai fait des recherches sur Internet et j'ai trouvé que certaines personnes sous-voltaient les processeurs et obtenaient des résultats satisfaisants. 5 - 20°C Voici ce que j'ai essayé d'installer pour Linux PHC.

J'ai téléchargé PHC pour AMD K8 (mon CPU est K10) à partir d'ici http://www.linux-phc.org/forum/viewtopic.php?f=13&t=2 (celui du haut), l'a décompressé et l'a exécuté. sudo make dkms_install Puis j'ai ajouté cpufreq_driver=phc-k8 à la ligne de commande de démarrage et redémarré .

J'ai appuyé Esc afin que je puisse voir les messages de démarrage et j'ai vu une panique du noyau bien que le système ait démarré (probablement le module PHC) sans le pilote CPUFreq.quand il a démarré le module PHC n'était pas chargé donc cela n'a pas fonctionné.

Comment puis-je installer PHC sur Ubunut Ubuntu 14.04 avec un processeur AMD K10.

Message de panique :

[   46.670211] kernel BUG at /var/lib/dkms/phc-k8/0.4.6/build/phc-k8.c:667!
[   46.670253] invalid opcode: 0000 [#1] SMP 
[   46.670281] Modules linked in: phc_k8(OE+) kvm_amd(+) dm_multipath scsi_dh kvm crct10dif_pclmul crc32_pclmul aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd snd_seq_midi snd_seq_midi_event snd_rawmidi snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_codec_generic arc4 psmouse snd_hda_intel bnep snd_hda_controller snd_seq snd_hda_codec snd_hwdep rt2800pci serio_raw rt2800mmio snd_seq_device rt2800lib rt2x00pci rt2x00mmio rt2x00lib k10temp mac80211 rtbth(OE) snd_pcm r8169 rfcomm rtsx_pci mii cfg80211 i2c_piix4 snd_timer bluetooth eeprom_93cx6 crc_ccitt snd shpchp soundcore amd_iommu_v2 hp_accel lis3lv02d input_polldev hp_wireless mac_hid parport_pc ppdev lp parport binfmt_misc nls_iso8859_1 ahci libahci wmi video
[   46.670758] CPU: 2 PID: 548 Comm: systemd-udevd Tainted: G           OE  3.19.0-59-generic #66~14.04.1-Ubuntu
[   46.670817] Hardware name: Hewlett-Packard HP Pavilion g7 Notebook PC/184B, BIOS F.15 10/04/2012
[   46.670871] task: ffff8800aecc89d0 ti: ffff88018b9a0000 task.ti: ffff88018b9a0000
[   46.670916] RIP: 0010:[<ffffffffc080ea14>]  [<ffffffffc080ea14>] freq_from_fid_did+0x44/0x50 [phc_k8]
[   46.670975] RSP: 0018:ffff88018b9a3b28  EFLAGS: 00010202
[   46.671009] RAX: 0000000000000015 RBX: 0000000000006800 RCX: 000000000000000f
[   46.671053] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000000000c
[   46.671096] RBP: ffff88018b9a3b28 R08: ffff88019ec0a108 R09: ffff880198801a00
[   46.671140] R10: ffffffffc0810c21 R11: 0000000000000005 R12: 0000000000000004
[   46.671183] R13: ffff88018b97b300 R14: ffff88018b9a3bc8 R15: ffff88018b9ba200
[   46.671227] FS:  00007f2a08f56880(0000) GS:ffff88019ed00000(0000) knlGS:0000000000000000
[   46.671275] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   46.671311] CR2: 00007f2a08f14360 CR3: 000000018b9e5000 CR4: 00000000000407e0
[   46.671353] Stack:
[   46.673098]  ffff88018b9a3b58 ffffffffc080eb23 00000000ffffffed ffff88018b97b300
[   46.674891]  0000000000000004 000000000000a100 ffff88018b9a3c08 ffffffffc08116ad
[   46.676686]  0000000000000096 ffffffff81c546d0 ffff88018b9ba200 ffff88018b9a3bc8
[   46.678498] Call Trace:
[   46.680308]  [<ffffffffc080eb23>] print_basics+0x103/0x130 [phc_k8]
[   46.682152]  [<ffffffffc08116ad>] powernowk8_cpu_init+0x12bd/0x14e0 [phc_k8]
[   46.682158]  [<ffffffff8164b1d2>] __cpufreq_add_dev.isra.24+0x312/0xa10
[   46.682162]  [<ffffffff817a613e>] ? klist_next+0x7e/0xf0
[   46.682167]  [<ffffffffc08118d0>] ? powernowk8_cpu_init+0x14e0/0x14e0 [phc_k8]
[   46.682170]  [<ffffffff8164b8de>] cpufreq_add_dev+0xe/0x10
[   46.682175]  [<ffffffff814f82c9>] subsys_interface_register+0xa9/0xf0
[   46.682178]  [<ffffffff8164bdb8>] cpufreq_register_driver+0x118/0x330
[   46.682182]  [<ffffffffc0811a78>] powernowk8_init+0x1a8/0x20f [phc_k8]
[   46.682187]  [<ffffffffc08118d0>] ? powernowk8_cpu_init+0x14e0/0x14e0 [phc_k8]
[   46.682191]  [<ffffffff81002144>] do_one_initcall+0xd4/0x210
[   46.682200]  [<ffffffff811d1085>] ? kmem_cache_alloc_trace+0x1d5/0x270
[   46.682204]  [<ffffffff810f9c5c>] ? load_module+0x164c/0x1ce0
[   46.682207]  [<ffffffff810f9c95>] load_module+0x1685/0x1ce0
[   46.682209]  [<ffffffff810f55a0>] ? store_uevent+0x40/0x40
[   46.682215]  [<ffffffff810fa466>] SyS_finit_module+0x86/0xb0
[   46.682220]  [<ffffffff817bdbcd>] system_call_fastpath+0x16/0x1b
[   46.682247] Code: c7 64 89 f1 5d 05 20 03 00 00 d3 e8 69 c0 e8 03 00 00 c3 0f 1f 40 00 6b c7 64 89 f1 5d 05 40 06 00 00 d3 e8 69 c0 e8 03 00 00 c3 <0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 
[   46.682252] RIP  [<ffffffffc080ea14>] freq_from_fid_did+0x44/0x50 [phc_k8]
[   46.682253]  RSP <ffff88018b9a3b28>

2voto

Argonauts Points 4250

Je pense que vous essayez probablement d'utiliser le mauvais outil pour ce travail.

Il existe un projet appelé TurionPowerControl qui supporte spécifiquement l'underclocking (et l'undervolting) des processeurs AMD K10 sous linux. Le projet est actif depuis un certain nombre d'années.

Depuis le site de leur projet :

TurionPowerControl, malgré son nom, permet de visualiser et de contrôler de nombreuses paramètres des processeurs AMD modernes. Il peut manipuler les états de puissance, fréquences, timings DRAM, paramètres d'alimentation et peut rapporter les températures, surveiller les changements d'état de puissance et l'utilisation précise du processeur. Il est disponible pour Windows et Linux, pour les architectures 32 bits et 64 bits, et prend entièrement et supporte entièrement les machines multiprocesseurs.

Les processeurs actuellement pris en charge sont les suivants :

Famille 10h : Tous les processeurs Phenom, Phenom II, Athlon II, Turion Mxxx et Pxxx .

< \snip >

Qui couvre la plupart des Famille K10

Ils déclarent qu'il compile bien sur les versions récentes d'Ubuntu ( Cas d'utilisation d'Ubuntu ), et a de très une documentation approfondie. .

Une vue d'ensemble de son utilisation et de ses capacités est disponible sur le site suivant ce document , extrait ici :

Modifier la fréquence et la tension

Si vous voulez modifier la tension ou la fréquence de manière simple, vous devez utiliser l'interrupteur de commande -set. Il est vraiment facile à utiliser et assez conviviale.

Prenons un exemple simple. Si vous voulez définir la fréquence de votre pstate 0 à 2000 Mhz à tous les cœurs, il suffit de lancer une telle commande :

TurionPowerControl -­set core all pstate 0 frequency 2000

Le programme vous préviendra s'il n'existe pas de combinaison parfaite correspondant à la fréquence que vous avez demandée, et arrondira le résultat.

Si vous souhaitez régler la tension du noyau, disons 1.200 volts, alors la commande deviendra comme ceci :

TurionPowerControl -­set core all pstate 0 frequency 2000 vcore 1.200

< \snip >

Je pense que c'est l'outil qu'il vous faut utiliser pour atteindre votre objectif ; il semble en fait mieux adapté que ce que vous essayez actuellement de faire fonctionner. Il est possible qu'il ne vous convienne pas, mais sur la base des informations contenues dans votre question, il me semble être une solution solide.

Lien :

Page principale du projet (Github)

Update

Pstates par défaut pour AMD A8-4500M ( source ) :

#1: 1800 MHz, 0.375V
#2: 1700 MHz, 0.275V
#3: 1600 MHz, 0.225V
#4: 1400 MHz, 0.175V
#5: 900 MHz, 0.175V

Dans le contexte de votre question, je n'utiliserais pas la même tension - essayez une légère diminution à 0.165 ou 0.170 pour commencer.

0voto

Uğur Gümüşhan Points 1306

Vous devez utiliser un système d'exploitation dont le noyau possède un module ACPI à jour pour bénéficier des états du package C du CPU. Sinon, votre CPU ne recevra pas d'instructions HALT de l'OS, gaspillera de l'énergie et produira de la chaleur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X