Mageia 2 is fent van a gépen, de az új init (systemd) rendszer nekem még kínai, és hiába a dokumentáció, nekem működő példa kellene, hogy miként is tudnék egy egyedi initet létrehozni.
A Mageia 1-ben még a sysV init van, és ott az /etc/rc.d/rc4.d lett a saját custom initem amiben csak 10 démon van. 42 van például az 5-ösben, mely maga az X. Egyszerű volt létrehozni, mivel csak ki kellett törölnöm a szükségtelen démonokat.
Ezt a 4-es initet a grub-legacy-ban egyszerűen be lehet hívni. Simán paraméterként beírom hogy 4.
title !!! TVRIP !!! - (2.6.38.8-desktop-10.mga)
kernel (hd0,4)/boot/vmlinuz-2.6.38.8-desktop-10.mga root=UUID=11f973ea-887a-4579-805a-3d220e30916a 4 nokmsboot resume=UUID=0bfef48a-0eec-4988-b5cf-ce054ff2d24b vga=794
initrd (hd0,4)/boot/initrd-2.6.38.8-desktop-10.mga.img
Azért is van gondom, mert az eddigi gyakorlattól eltérően sokkal több szolgáltatást sorol fel a rendszer, köztük olyanokat is, melyeknek szerepéről nem is tudom mire valók.
Mageia 2 rendszerben ilyen démonokkal találkozom: fedora-autrelabel, és még 4 fedora nevű, majd jönnek a mandriva nevűek, és egy csomó systemd-valamilyen nevűek.
Tehát nem vagyok tisztában azzal, hogy mi az a minimum amire szükség van.
Mageia 1-ben a 4-es init-emben a 10 démon csak ez volt:
S12rsyslog@ S14acpid@ S17alsa@ S18sound@ S29numlock@ S30tvcard_init@ S40atd@ S53messagebus@ S90crond@ S99rc-local@
Ez éppen elég arra hogy a tévékártya felvegye a műsort. Felesleges démonok kizárva. Nincs net, tűzfal, nfs semmi.
A tvcard_init a saját kreálmányom. Csak annyi van benne hogy feltesz egy kérdést az interlace-val kapcsolatban, Ha nincs válasz 7mp-en belül akkor nincs interlace, ha meg manuálisan megadom akkor van. Ez konkréten vhs digitalizáláshoz kell ennek a kártyának.
A grub-ban például az alapértelmezett init a 4-es. Automata bekapcsolódáskor tökéletes. Ha meg dolgozom a gépen, akkor meg simán lejjebb megyek a grub egy másik menüpontjára, mely már az X-et állítja be. Sima ügy. Ezt szeretném megvalósítani az új systemd-vel is.
Azt sem tudom mit csináljak a tvcard_init-tel?
- 3512 megtekintés
Hozzászólások
Kezdjuk az alapoknal:
- Az /etc/rcX.d mappaban csak symlinkek lehetnek az /etc/init.d -re, fajlok egyaltalan nem.
- Nem veletlen, hogy sok szerviz a 2, 3, 5 szintekre is beepul, mert erre is van szabvany, a sysvinit egyszeruen nem ugy mukodik, ahogy gondolod.
- A systemd-ben nincsenek init szintek, targetek vannak. Szegeny negyes nagyon szerencsetlenul fest a cmdline-ban, tudvan azt, hogy mar nincs is a nevevel femjelzett barakarmi a rendszerben.
- A "sok szolgaltatast sorol fel a rendszer" szamomra ertelmezhetetlen. Mit erdekel, hogy mit sorol fel, ha a `ps fax` kimeneteben pont ugynaaszok a binarisok latszanak, mint eddig?
- A tvcard_init az legalabb szabvanyosan lett megirva? Vagyis, van a fejleceben ilyesmi?
### BEGIN INIT INFO
# Provides: tvcard
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the recording from TV Card
### END INIT INFO
Mert ha nincs, ne is vard, hogy barmi mukodni fog.
Igazabol azt is ketlem, hogy utanaolvastal volna, hogy kell init scriptet irni, illetve peldakat neztel volna. Ennyibol ne vard azt, hogy egy upgrade utan is mukodik a rendszer. Tessek elkezdeni elolvasni a Mandriva es a RedHat dokumentacioit errol. Ezek a dolgok nem disznek es nem szopatasnak vannak, hanem mert a rendszer epit ra.
Jol lehet pl. az init scriptet ellenorizni a chkconfig paranccsal, ha a "chkconfig tvcard_init on" nem ad hibat, akkor lefutott a kompatibilitasi ellenorzes - no es be is kerult az inditandok koze. Mindent el kell tuntetni, meg a warningokat is.
Ajanlom ezt a linket, minden szava arany: http://wiki.mandriva.com/en/Development/Howto/Initscripts . Ugy tekints ra, mint szentirasra, szorol-szora tessek kovetni a szabalyokat.
Ha ez megvan, es meg midnig nem megy, gyere vissza es beszelunk. De akkor mar hozz magaddal peldakodokat is, meg hibauzeneteket, meg mindent, amit csak tudsz.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Hello hrgy84!
Nos amit írtál az ugyan nem volt teljesen ismeretlen előttem, de így ebben a formában sajnos valami miatt nem úgy működik a script ahogy azt elvárnám.
Íme a script:
#!/bin/bash
### BEGIN INIT INFO
# chkconfig: 345 30 16
# Provides: tvcard
# Required-Start:
# Required-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Description: Start the recording from TV Card
### END INIT INFO
# colors
Green="$(tput bold; tput setaf 2)"
Yellow="$(tput bold; tput setaf 3)"
NC="$(tput sgr0)" # No Color, offblink
rip="tv"
if [ "$RUNLEVEL" = 4 ] ; then
read -p "${Yellow}TvRip, vagy VHSRip (1/2) ? " -t 5 rip
case "${rip}" in
"" )
rip="tv" ;;
"1" )
rip="tv" ;;
"2" )
rip="vhs" ;;
esac
fi
case "${rip}" in
"tv" )
modprobe saa7134 tuner=54 card=77 alsa=0 gbuffers=20 vbibufs=20 latency=64 disable_ir=1 tsbufs=20
echo -e "\r\n ${Green}Az alapértelmezett TvRip lett betöltve.${NC} \n\r" ;;
"vhs" )
modprobe saa7134 tuner=54 card=77 alsa=0 gbuffers=20 vbibufs=20 latency=64 disable_ir=1 tsbufs=20 noninterlaced=1
echo -e "\r\n ${Green}A VHSRip-et választottad.${NC} \n\r" ;;
esac
A chkconfig --add tvcard_init 30 parancsot futtattam le és innentől kezdve nem mutatja az 5 másodperces várakozást, és nem tudok rá reagálni.
Emiatt ez így nem felel meg. Ezért is nem volt benne aztán a ### BEGIN INIT INFO.
Aztán erről a törlésről én szépen el is feledkeztem, és csak megpróbáltam ugyanezt a Mageia 2-ben IS ahol aztán végképp nem működött. Ugyanis be sem hívta.
Tehát ha manuálisan állítottam be és nem a rendszer, értsd én készítettem symlinket a 3-as, 4-es, 5-ös initbe és kitöröltem a ### BEGIN INIT INFO. sorait, akkor a script lefutott, színesen kiírta amit kellett, és várta hogy megüssek egy billentyűt, ellenkező esetben továbbment. Ez is volt a terv, és ez így működött (működik) is A Mandriva 2006 óta.
Szerinted miért nem látom az üzenetet amit ki kellene írnia? Elszöszmötöl a rendszerüzenet busszal, és a végén egy pillanat alatt lefut minden. Kiírja az üzenetet, de egyúttal már be is lehet lépni a rendszerbe. Nincs lehetőség kérdésekre válaszolni. De éppen ezért tettem a 30as sorszámhoz hogy rögtön a numlock után induljon.
- A hozzászóláshoz be kell jelentkezni
A chkconfig --add tvcard_init 30 parancsnak fogalmam sincs mit kellene csinalnia, de akkor elmondom lassabban:
A BEGIN INIT INFO szekcio azert van, hogy ott mondjuk meg, hol es mikor kell elindulnia a scriptnek. A chkconfig szabvanyos hivasi modja: chkconfig tvcard_init on mely egyszeru szolgaltatas engedelyezes, a szukseges szinteket (amit te gondolom a 30 parameterrel gondoltal megadni) a BEGIN INIT INFO-ban kell megadni.
A masik hiba, hogy azt gondolod, hogy egy init script lehet interaktiv. Nos, ki kell abranditsalak: nem lehet. Lehet, hogy vannak olyan implementaciok ahol meg van engedve hogy a terminalon mondjuk peldaul egy enterre, barmi egyebre varakozzunk, a valosagban viszont meg arra sincs garancia, hogy ezek a scriptek egyaltalan valami olyan eszkozon futnak le, ahol az isatty(3) rendszerhivas erteke nulla, vagyis valodi terminal eszkozok. Erdemes ilyenkor pipe-n varakozni, vagy valami marker fajl letet pollozni, es onnan tovabblepni, ha mindenkepp ez szukseges, de ez erosen antipattern, ha lehet, mindenkepp el kell kerulni.
Sot, meg abban sem lehetsz biztos, hogy a varakozas megakasztja a boot folyamatot, mostansag ugyanis a szolgaltatasok parhuzamosan indulnak, es eroteljesen ajanlott nem alkalmazni semmilyen pollozos megoldast, mert ez megkavarhatja a bootoltatast vegzo logikat.
Amit en ajanlok: konfig fajlbol add meg az interlace-t, amikor idozited ezt az egesz tortenetet. Ekkor se pollozni nem kell, se semmi egyebet nem kell csinalni, amit egyebkent is tilos egy init scriptnek csinalnia. Vagyis dontsd el elore, hogy kell-e interlace.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ez sajnos nem megy. Általában nincs szükség interlace-a csak ha éppen VHS-t rippelnék. S arra nincs megoldásom hogy miként oldjam ezt meg máshogyan. Neked van?
Azt nem szeretném, hogy amikor VHS-t veszek fel, akkor át kelljen írni az "/etc/modprobe.conf"-ot minden esetben.
Akkor amikor ezt megcsináltam akkor még nem igazán volt preload, plymouth és egyebek.
A Mandrake 6.1-től használok Linuxot (1999), és akkor még ilyen párhuzamos bootolási folyamatok nem voltak. Tévékártyám 2004 óta van.
Az tény hogy én nem tanultam informatikát, programozást. Minden amit tudok, kísérletezgetésekkel, levlistákról és fórumokról, meg úgy általában a netről szedtem össze.
A 30 paraméter az azt jelentené és azt láthatod is a szkriptben hogy mikor jöjjön a sorban. Mi után töltődjön be.
Éppen ezért furcsa számomra a párhuzamos bootolás. Mert minden valami másra épül. Nincs pld. "ntp" amíg nincs "network" hiába töltődik be nem fog működni.
Amúgy amit te mondtál a chkconfig tvcard_init on az csak bekapcsolja az adott initscriptet az adott futási szinten, de annak ellenére nem oda teszi pld. az 5-ös initben sem, ahová szeretném. Hiába van beleírva hogy chkconfig 345 30 16. Ekkor úgy jelenik meg hogy S-1tvcard_init
De ha chkconfig --add tvcard_init 30 lesz, akkor felveszi a S30tvcard_init értéket és akkor töltődik be amikor kell. A numlock után.
Az interaktívitás meg nem is értem miért probléma? Pont a Mandriva esetén van erre lehetőség hogy az adott initscript egyáltalán elinduljon-e. Csak nyomj egy "I"-t. Ez egyfajta interaktivitás. Ami megakasztja a bootolást. Bár persze a mostani plymouthos időkben amikor el van tüntetve előlünk a konzol, ez nem (l)játszik.
- A hozzászóláshoz be kell jelentkezni
Az, hogy az init rendszer _kepes_ interaktivan _is_ futni, az nem jelenti azt, hogy _mindig_ ugy fut.
Ja, ertem mi a gondod. Be kellene allitani tisztessegesen a fuggosegeket, meg kell nezni, mi indul el utoljara (esetedben a numlock) es attol kell fuggeni. Ez garantalja, hogy a numlock UTAN fogsz elindulni, hiszen a fugges azt mondja, hogy anelkul NEM FUT. Esetedben ez persze nem feltetlen igaz, de ezt nem kell senki orrara rakotni.
Az interlacelesre meg mondtam mi a megoldas: leraksz valahova egy konfig fajlt, es amikor epp VHS-t rippelsz, akkor atirod, a kovetkezo inditasnal meg felolvassa a script. Eleg csak egy 0/1 tartalmat beleirni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni