Автор Тема: Как да изпълня ето тия команди в скрипт:  (Прочетена 1264 пъти)

ctrl0l

  • Участници
  • ***
  • Публикации: 10
    • Профил
Искам да изпълня следните три команди:
modprobe saa7134-oss
sox -c 2 -sw -r 32000 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
kdetv

Проблемът е, че първите две трябва да се изпълнят като root, а третата като обикновен потребител.
И още, след като свършим да гледаме телевизия (след като спрем kdetv), искаме да спрем и sox-a.

Някой има ли идея какъв скрипт да съставим, че да се получи това?
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1464
    • Профил
Как да изпълня ето тия команди в скрипт:
« Отговор #1 -: Apr 22, 2007, 08:15 »
Здравейте,

Първата е най-добре да се изпълни още при началното зареждане.
В зависимост от дистрибуцията: /etc/conf.d/local.start | /etc/rc.local (?) и т.н.
За втората става и със sudo (man sudo, visudo, cat etc/sudoers).
Успех. Румен
Активен

acidrain

  • Напреднали
  • *****
  • Публикации: 119
    • Профил
Как да изпълня ето тия команди в скрипт:
« Отговор #2 -: Apr 22, 2007, 10:12 »
Цитат

#!/bin/sh
sox -c 2 -s -w -r 32000 -t ossdsp /dev/dsp1 -t ossdsp -w -r 32000 /dev/dsp &
kdetv --mixer=/dev/mixer:pcm
wait kdetv
t=`pidof sox`;
kill $t;
amixer -c 0 sset PCM 80%,80%  unmute


взето от тук



Активен

Все идет по плану

Invincible

  • Напреднали
  • *****
  • Публикации: 115
    • Профил
Как да изпълня ето тия команди в скрипт:
« Отговор #3 -: Apr 22, 2007, 11:12 »
Ако става въпрос за същата като моята карта - АверТВ 007. Аз ползвам следния скрипт за да гледам ТВ.
Цитат

#!/bin/bash


killall aplay
killall sox

# Activate sound from tvcard
aumix -d /dev/mixer1 -1 R

# Get volume
SAVE_VOLUME=$(aumix -v q|cut -f 2 -d",")

# Mute sound to avoid noise
#aumix -d /dev/mixer0 -v M
#sleep 1

# Pipe sound from tv to sound card Oss version:
#sox -c 2 -sw -r 32000 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp0&

# Pipe sound from tv to sound card Alsa version(allow dmix):

# using rate of 32050 to avoid delay between audio & video.

sox -c 2 -sw -r 32050 -t ossdsp /dev/dsp2 -t sw - | aplay -c 2 -r 32050 -f S16_LE&


# Start tvtime

tvtime --mixer=/dev/mixer:vol


# Restore volume:
aumix -v $SAVE_VOLUME

# Kill sound pipe:
sleep 1
killall aplay
killall sox



Като аз ползвам TvTime за гледане на ТВ и /dev/dsp2 за звука. Дистрибуцията е Ubuntu.

Драйвера за картата - saa7134-oss го зареждам при стартиране на ситемата в следния скрипт:
Цитат

options saa7134 card=57 tuner=54 gbuffers=4

който се намира в директорията - /etc/modprobe.d/
това как ще си кръстиш файловете няма значение.
Активен

Аз съм българче обичам нашите планини зелени и да пиша на кирилица е чест за мен.

ctrl0l

  • Участници
  • ***
  • Публикации: 10
    • Профил
Как да изпълня ето тия команди в скрипт:
« Отговор #4 -: Apr 22, 2007, 16:15 »
Мда, стана, макар и с малко допълнителни промени. Моето OpenSUSE упорито не искаше да зарежда saa7134-oss, а зареждаше само saa7134. Поправих малко в /etc/modprobe.d/tv и стана.
Относно скрипта, ето на какво се спрях:

---------------------------------------------
#!/bin/sh
sox -c 2 -s -w -r 32000 -t ossdsp /dev/dsp1 -t ossdsp -w -r 32000 /dev/dsp &
kdetv
t=`pidof sox`;
kill $t;
amixer -c 0 sset PCM 80%,80%  unmute
----------------------------------------------

Другото, което направих, беше да сложа suid бит на sox-a (chmod +s)
И последното, да сложа "Video4Linux Plugin" (author George Staikos), а не другия ("Video4Linux2 Plugin"). С втория, след като промениш размера на KDETV, или я минимизираш, трябва да изчакаш 5-6 секунди, за да се възстанови нормалния изглед на програмата. С този на George Staikos всичко е наред.

Поздрави и благодаря.
Активен