Mageia Forum
Nastavení systému a serverových služeb => Nastavení systému => Téma založeno: lukas.v1 Listopadu 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:
#!/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:
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:
- TV karta: Technisat Airstar 2 (v příloze přikládám výstup z HardDrake)
- základní deska: ASRock B75 Pro3 (viz: http://www.abclinuxu.cz/hardware/zakladni-desky/socket-1155/asrock-b75-pro3 (http://www.abclinuxu.cz/hardware/zakladni-desky/socket-1155/asrock-b75-pro3))
- zdroj: Seasonic SS-400ET-F3 400W
Automaticky po probuzení nefunguje od: instalace Mageii 3 na nové PC
Poslední bezproblémové fungování: v Mageii 2 na starém PC.
-
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.
-
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.
-
"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
-
Mohlo by ti taky pomoct toto vlákno:
https://bbs.archlinux.org/viewtopic.php?id=146790
-
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.
-
Máš +1 za krásně shrnutí tvého problému a jeho řešení :)
-
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
/usr/lib/pm-utils/defaultseditoval#SUSPEND_MODULES="" na 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)) jermmod mantis
modprobe mantis vtedy sa modul zavedie a karta funguje.
Teraz som vsak nasiel tento skript a mam par otazok:
#!/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
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin
case "${1}" in
pre|hibernate|suspend)
rmmod mantis
;;
post|resume|thaw)
modprobe mantis
;;
esac
-
Takze som to skusal a nejak mi to nefunguje. Na subor som dal chmod 755