Autor Téma: Provedení skriptu před a po uspání  (Přečteno 2383 krát)

lukas.v1

  • Jr. Member
  • **
  • Příspěvků: 90
  • Karma: +3/-0
    • Zobrazit profil
Provedení skriptu před a po uspání
« kdy: Listopad 09, 2013, 21:38:51 »
Zdravím všechny.

Potřebuju poradit, jak spustit skript před a po uspání PC (uspání do paměti i na disk). Jedná se o to, že mám TV kartu Technisat Airstar 2. Aby tato karta fungovala po probuzení PC ze spánku, musí se znovu načíst ovladače.

V Mageii 2 se mi automaticky spouštěl tento skript uložený jako /etc/pm/sleep.d/99_dvb:
Kód: [Vybrat]
#!/bin/bash

PATH=/sbin:/usr/sbin:/bin:/usr/bin

case "${1}" in
        hibernate|suspend)
                rmmod b2c2_flexcop_pci
                rmmod b2c2_flexcop
                rmmod mt352
                ;;
        resume|thaw)
                modprobe b2c2_flexcop_pci
                ;;
esac

Nyní mám Mageiu 3. Zatím vždy po probuzení pomocí tohoto skriptu vždy odstraním a následně načtu moduly do paměti (jako root). Poté příjem TV opět funguje.
Po studeném startu PC funguje příjem TV bez problémů.

Zkoušel jsem do skriptu vložit kód, který by mi do /var/log/soubor zapsal, co skript udělal (i mimo blok case), ale skript tento soubor vůbec nevytvořil. Zdá se, že skript není vůbec spouštěný.

V příloze posílám soubor /var/log/pm-powersave.log obsahující chybové hlášení a soubor /usr/lib64/pm-utils/power.d/pcie_aspm, na který se chyba odkazuje.
Soubor /var/log/pm-suspend.log je prázdný.

Software:
  • Mageia 3 64 bit
  • KDE 4.10.5
  • moduly TV karty jsou v jádru
  • repositáře používám pouze oficiální pro Mageiu (core, nonfree, tainted)
výstup uname -a:
Kód: [Vybrat]
Linux Lukas-PC 3.8.13.4-desktop-1.mga3 #1 SMP Thu Jul 4 13:56:21 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

HW:

Automaticky po probuzení nefunguje od: instalace Mageii 3 na nové PC
Poslední bezproblémové fungování: v Mageii 2 na starém PC.

mig31

  • Full Member
  • ***
  • Příspěvků: 100
  • Karma: +0/-0
    • Zobrazit profil
Re:Provedení skriptu před a po uspání
« Odpověď #1 kdy: Listopad 10, 2013, 10:00:30 »
Ja bych zkusil spustit tento skript z souboru /etc/rc.d/rc.local jako root.

Vse co je v tomto souboru se vykonava, az na konci.
Desktop: Corei3-4160@3,6GHz 4 GB RAM Nvidia GTX650 1GB VRAM Mageia 6 64-bit KDE5
Notebook: Hp Pavilion dm1 Intel Pentium 1,3Ghz 3GB RAM Mageia 5 64-bit KDE4

lukas.v1

  • Jr. Member
  • **
  • Příspěvků: 90
  • Karma: +3/-0
    • Zobrazit profil
Re:Provedení skriptu před a po uspání
« Odpověď #2 kdy: Listopad 10, 2013, 14:29:36 »
Tebou navrhovaný skript /etc/rc.d/rc.local jsem musel vytvořit. Spouští se jen při startu OS.
Jak píšu, při startu problém nemám. Problém je s nahráním ovladačů zpět do paměti po probuzení PC.
Nyní mám Mageiu 3. Zatím vždy po probuzení pomocí tohoto skriptu vždy odstraním a následně načtu moduly do paměti (jako root). Poté příjem TV opět funguje.
Po studeném startu PC funguje příjem TV bez problémů.

Ale zkusil jsem tvůj nápad a po probuzení TV nefunguje. Musím se přihlásit jako root a spustit příkaz pro odebrání a opětovné nahrání modulů do paměti.

Joelp

  • Administrator
  • Sr. Member
  • *****
  • Příspěvků: 374
  • Karma: +10/-0
    • Zobrazit profil
    • Joelp's blog
Re:Provedení skriptu před a po uspání
« Odpověď #3 kdy: Listopad 11, 2013, 16:16:24 »
"Problém" je v tom, že Linuxové distribuce začínají přecházet na systemd a spousta postupů a návodů přestávají fungovat. Je nutné věci začít řešit jinak. Zkus použít /usr/lib/systemd/system-sleep/.

Případně si pročíst wiki:
https://wiki.archlinux.org/index.php/Systemd#Sleep_hooks

Joelp

  • Administrator
  • Sr. Member
  • *****
  • Příspěvků: 374
  • Karma: +10/-0
    • Zobrazit profil
    • Joelp's blog
Re:Provedení skriptu před a po uspání
« Odpověď #4 kdy: Listopad 11, 2013, 16:17:47 »
Mohlo by ti taky pomoct toto vlákno:

https://bbs.archlinux.org/viewtopic.php?id=146790

lukas.v1

  • Jr. Member
  • **
  • Příspěvků: 90
  • Karma: +3/-0
    • Zobrazit profil
Re:Provedení skriptu před a po uspání
« Odpověď #5 kdy: Listopad 11, 2013, 19:49:08 »
Díky, funguje.

Můj skript ze složky /etc/pm/sleep.d/ jsem umístil do zmíněné složky:
/usr/lib/systemd/system-sleep

Jak je v diskuzi na archlinux.org, před uspáním PC se skript spouští s parametrem pre a po probuzení s parametrem post.

Hodnoty jsem přidal do konstrukce case ve skriptu.
Kdyby ho někdo hledal, výsledek je v příloze.

Joelp

  • Administrator
  • Sr. Member
  • *****
  • Příspěvků: 374
  • Karma: +10/-0
    • Zobrazit profil
    • Joelp's blog
Re:Provedení skriptu před a po uspání
« Odpověď #6 kdy: Listopad 11, 2013, 20:54:59 »
Máš +1 za krásně shrnutí tvého problému a jeho řešení :)

jany

  • Host
Re:Provedení skriptu před a po uspání
« Odpověď #7 kdy: Srpen 21, 2015, 09:06:14 »
Zdravim, mam podobny problem, ale pouzivam debian 8 a Sky Star HD2 kartu.
Mne sa do pameti po prebudeni pc nezavedie modul mantis.
Ked som pouzival Mint 17, tak som to riesil cez pm-utils, kde som v
Kód: [Vybrat]
/usr/lib/pm-utils/defaultseditoval
Kód: [Vybrat]
#SUSPEND_MODULES="" na
Kód: [Vybrat]
SUSPEND_MODULES="mantis" Vtedy sa modul zaviedol a vsetko fungovalo.
V debiane defaultne ani pm-utils nebol nainstalovany a po instalacii som to urobil presne ako v minte. Lenze po prebudeni PC sa modul stejne nezavedie.
Jedina moznost (o ktorej viem (ak nepocitam restart)) je
Kód: [Vybrat]
rmmod mantis
modprobe mantis
vtedy sa modul zavedie a karta funguje.
Teraz som vsak nasiel tento skript a mam par otazok:
Kód: [Vybrat]
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin

case "${1}" in
pre|hibernate|suspend)
rmmod b2c2_flexcop_pci
rmmod b2c2_flexcop
                rmmod mt352
                ;;
post|resume|thaw)
modprobe b2c2_flexcop_pci
;;
esac
PATH znamena cesta k comu ? (sorry nie som shellista ani programator)
Moj skript by mohol teda vyzerat asi takto
Kód: [Vybrat]
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin

case "${1}" in
pre|hibernate|suspend)
rmmod mantis
                ;;
post|resume|thaw)
modprobe mantis
;;
esac

jany

  • Host
Re:Provedení skriptu před a po uspání
« Odpověď #8 kdy: Srpen 21, 2015, 12:02:49 »
Takze som to skusal a nejak mi to nefunguje. Na subor som dal chmod 755