Kirjoittaja Aihe: Skriptin/komennon suorittaminen heti lepotilan jälkeen.[Ratkaistu]  (Luettu 985 kertaa)

qwertyy

  • Käyttäjä
  • Viestejä: 4774
    • Profiili
Eli koskien ainakin HP:n 2510p konetta, niin jos herätän koneen suspendista, niin prossutuuletin alkaa huutamaan niin lujaa kuin vaan mahdollista, eikä kone lopeta sitä enää lainkaan.

Ongelmaa on tullut sen verran selvitettyä, että jos tuon jälkeen teen seuraavat:

1. Otan "root" tason oikeudet.
Koodia: [Valitse]
sudo su
2. Komennan
Koodia: [Valitse]
echo "0" > /sys/class/thermal/cooling_device0/cur_stateja tuon jälkeen tilanne rauhoittuu heti ja prossutuuletin näyttää myös ohjautuvan ihan oikein taas päälle lämpötilan mukaan.

Tuon aiheuttaja on ilmeisesti kernel bugi, joka jostain syystä muuttaa koneen herätessään tilaksi lukevan muistaakseni 255, joka ei muutu, ennen kuin itse muuttaa arvoa. Tätä vikaa ei ollut muistaakseni esim. 12.02:ssa.


Eli kuten otsikko kertoo, niin miten ihmeessä 14.04:ssä voisi saada suoritettua tuon skriptin heti koneen noustessa ylös. Mieluiten suoritettuna niin nopeasti, ettei kone kerkeäsi edes alkaa nostamaan tuuletinnopeutta. Äärimmäisen häiritsevää kun hiljaisessa tilassa kone alkaa huutamaan täysillä. Googlella löytyvät vanhat ongelmaan liittyvät kikat ei sitten vaikuta toimivan 14.04:ssä jostain syystä.
« Viimeksi muokattu: 03.05.14 - klo:19.05 kirjoittanut qwertyy »

qwertyy

  • Käyttäjä
  • Viestejä: 4774
    • Profiili
Vs: Skriptin/komennon suorittaminen heti lepotilan jälkeen.
« Vastaus #1 : 03.05.14 - klo:18.04 »
Eli laitetaas uudelle viestille. Vähän lähempänä oikeaa.

Luotu /etc/pm/sleep.d/a_hp2510p_fan niminen tiedosto, joka sisältää seuraavan.

Koodia: [Valitse]
#!/bin/sh

case "$1" in
        hibernate|suspend)
        sleep 3
        echo "0" > /sys/class/thermal/cooling_device0/cur_state
echo "0" > /sys/class/thermal/cooling_device1/cur_state
echo "0" > /sys/class/thermal/cooling_device2/cur_state
echo "0" > /sys/class/thermal/cooling_device3/cur_state
echo "0" > /sys/class/thermal/cooling_device4/cur_state
echo "0" > /sys/class/thermal/cooling_device5/cur_state
echo "0" > /sys/class/thermal/cooling_device6/cur_state
                ;;
        thaw|resume)
echo "0" > /sys/class/thermal/cooling_device0/cur_state
echo "0" > /sys/class/thermal/cooling_device1/cur_state
echo "0" > /sys/class/thermal/cooling_device2/cur_state
echo "0" > /sys/class/thermal/cooling_device3/cur_state
echo "0" > /sys/class/thermal/cooling_device4/cur_state
echo "0" > /sys/class/thermal/cooling_device5/cur_state
echo "0" > /sys/class/thermal/cooling_device6/cur_state
                ;;
        *)
                ;;
esac

Sen jälkeen komennettu tuolle tiedostolle.
Koodia: [Valitse]
sudo chmod +x /etc/pm/sleep.d/a_hp2510p_fan
Tuo hoitaa homman lähes oikein. Eli sensors kertoo tuon jälkeen.

Lainaus
acpitz-virtual-0
Adapter: Virtual device
temp1:        +25.0°C  (crit = +70.0°C)
temp2:        +50.0°C  (crit = +256.0°C)
temp3:        +44.0°C  (crit = +110.0°C)
temp4:        +38.0°C  (crit = +105.0°C)
temp5:        +25.4°C  (crit = +110.0°C)
temp6:        +30.0°C  (crit = +110.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +46.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:       +45.0°C  (high = +100.0°C, crit = +100.0°C)

Device 0 näytti aiemmin +100 astetta, eli se tietystikin laukaisi föönin huutaan hoosiannaa.

Mutta vielä jäi ongelmaksi se, että silti kun kone käynnistyy uudelleen, niin puhallin kerkeää alkaa huutaan. Se ei tosin kestä montaa sekuntia, mutta silti. Oiskohan tuohon mitään ratkaisua?

Tarkkasilmäiset varmaan huomaa, että on jo yritetty laittaa skriptille "prefixi" a_ nimen eteen, että komento suoritettaisiin ensimmäisenä. Ei kuitenkaan auta. Ehkä tuota ei voi mitenkään ohittaa, koska mitä ilmeisimmin tuo on tosiaan kernel bugi, joka sekoittaa antureiden tai nimenomaan ensimmäisen anturin lukeman. Mitä mieltä?
« Viimeksi muokattu: 03.05.14 - klo:18.09 kirjoittanut qwertyy »