- Lähtökohta
- Asennuksen jälkeen tietokoneeni äänet toimivat, eli esimerkiksi sisäänkirjautumisen yhteydessä soiva äänitehoste kuulu etukaiuttimista. Tietokoneeni, Shuttle SN45G jossa on nForce2-piirisarjalla varustettu FN45-emolevy, tarjoaa surround-äänet eli äänikanavat kahdelle etukaiuttimelle, yhdelle keskikaiuttimelle, kahdelle surround-kaiuttimelle ja lisäksi LFE-kanavan subwooferille. Olen kytkenyt 5.1 -kaiuttimiston tietokoneeseen sen takapaneelissa olevien ääniliittimien kautta ja käynnistänyt tietokoneen lisäksi kaiuttimiston sen virtakatkaisijasta. Olen kirjautunut sisään työpöydälleni. Olen avannut
Rytmilaatikko-musiikkisoittimen
ja pannut musiikkikappaleen soimaan. - Ongelma
- Subwooferista ei kuulu ääntä.
Jos merkitsenÄänenvoimakkuuden hallinnassa
,Kytkimet
-välilehdelläDuplicate Front
-kohdan valituksi, subwooferista kuuluu ääntä, mutta silloin etukanavien ääni toistetaan etukaiuttimien lisäksi takakaiuttimista. Haluan, että LFE-kanava toimii niin, että etukanavien ääni toistetaan ainoastaan etukaiuttimissa vaikka LFE-kanava toistetaankin subwooferissa. - Ongelman syy
- Asetukset Äänenvoimakkuuden hallinnassa ovat pielessä.
- Ratkaisu
- Otan Äänenvoimakkuuden hallinnassa
Muokkaa
-valikosta esilleAsetukset
, ja otan listalta valituksi merkitsemällä pääikkunassa esiin seuraavat raidat:Pää
PCM
Surround
Surround Jack Mode
Center
LFE
Linjatulo
CD
Mikrofoni
Mikrofoni Kaappaus
Mic Boost (+20dB)
PC-kaiutin
Kaappaus
Mix
Channel Mode
- Duplicate Front
Exchange Center/LFE
Swap Surround Slot
Suljen asetusikkunan.
Äänenvoimakkuuden hallinnan
Toisto
-välilehdellä asetan liukusäätimien alapuolella olevia kaiuttimenkuvia käyttämällä PC-kaiuttimen mykistetyksi (jonka merkkinä kaiuttimen päälle tulee punainen ruksi) ja muut pois mykistystilasta (jolloin kaiuttimen päällä ei ole punaista ruksia). Varmistan lisäksi, että Linjatuloa ja PC-kaiutinta lukuunottamatta kaikki välilehden liukusäätimet on asetettu maksimiinsa (yläasentoon).Nauhoitetaan
-välilehdellä varmistan, että Kaappaus ei ole mykistetty kaiuttimen eikä mikrofonin osalta, ja säädän liukusäätimet maksimiinsa.Kytkimet-välilehdellä merkitsen valituiksi kohdat Mikrofoni Kaapppaus, Mic Boost (+20dB), ja Exchange Center/LFE. Valitsemattomiksi jätän kohdat Mix, Duplicate Front ja Swap Surround Slot.
Asetukset
-välilehdellä valitsen Surround Jack Mode -valitsimen alasvetovalikosta kohdanIndependent
. Channel Mode -valitsimen alasvetovalikosta valitsen kohdan6ch
.Suljen Äänenvoimakkuuden hallinnan. Tämän jälkeen LFE-kanavan toisto subwooferilla toimii ilman, että etukanavien signaali toistettaisiin takakaiuttimista etukaiuttimien lisäksi.
- Huomautus
- Äänikanavia voi testata komennolla
speaker-test -Dplug:surround51 -c6 -l1 -twav
, joka toistaa ääninäytteitä kultakin kanavalta erikseen, vuoron perään.
Month: February 2008
-
[Ratkaisu] Subwoofer ei toimi ilman Duplicate Frontin valitsemista
-
[Ratkaisu] Speaker-test ilmoittaa äänentoiston avausvirheestä
- Lähtökohta
- Olen kirjautunut sisään työpöydälleni, käynnistänyt
Rytmilaatikko-musiikkisoittimen
ja pannut sen soittamaan podcast-jaksoa. Olen keskeyttänyt jakson soiton ennen sen loppumista jatkaakseni kuuntelua myöhemmin. Olen avannutPäätteen
. Haluan testata äänentoistolaitteistoni toimintaa, joten komennan päätteestäspeaker-test -Dplug:surround51 -c6 -l1 -twav
. - Ongelma
- Kaiutintestisovellus
speaker-test
ilmoittaa seuraavaa:Äänentoistolaite on plug:surround51 Stream parameters are 48000Hz, S16_LE, 6 channels WAV tiedosto(t) Äänentoiston avausvirhe: -16, Device or resource busy Äänentoiston avausvirhe: -16, Device or resource busy Äänentoiston avausvirhe: -16, Device or resource busy
Äänentoistolaitteen avausvirheestä ilmoittava rivi tulostuu yhä uudelleen kunnes keskeytän speaker-testin ajon näppäinyhdistelmällä
Control + C
. Haluan, että virheilmoituksen sijasta speaker-test toistaa kaiuttimien testaamiseksi ääninäytteitä eri kanavilta. - Ongelman syy
- Speaker-test ei kykene jakamaan äänentoistolaitteistoa toisen ohjelman kanssa, ja Rytmilaatikko on varannut äänentoistolaitteiston käyttöönsä.
- Ratkaisu
- Suljen Rytmilaatikon. Sen jälkeen komennan speaker-testiä uudestaan, jolloin se toimii haluamallani tavalla.
-
Rytmilaatikko ei muista viimeksi soitettua kappaletta
- Lähtökohta
- Olen käynnistänyt
Rytmilaatikko-musiikkisoittimen
ja valinnutSivupaneelista
Podcastit
-näkymän. Olen soittanut aiemmin lataamaani podcast-jaksoa ja pysäyttänyt sen sitten ennen jakson loppumista. Suljen Rytmilaatikon. Myöhemmin käynnistän Rytmilaatikon uudestaan, sillä haluan kuunnella aiemmin aloittamani podcast-jakson loppuun. - Ongelma
- Haluan, että Rytmilaatikko palaa käynnistyessään takaisin näkymään, jossa olin. Haluan, että Rytmilaatikko valitsee valmiiksi viimeksi kesken jättämäni podcast-jakson. Haluan, että Rytmilaatikko muistaa podcast-jaksosta kohdan, johon edellisellä kuuntelukerrallani jäin. Käynnistyessään Rytmilaatikko on kuitenkin avannut
Musiikki
-näkymän. Kun menen takaisin Podcastit-näkymään, viimeksi kesken jättämäni podcast-jakso ei ole valmiiksi valittuna puhumattakaan, että Rytmilaatikko muistaisi jaksosta kohdan, jossa kuunteluni viimeksi keskeytyi. - Ongelman syy
- Rytmilaatikossa ei vielä ole haluamiani ominaisuuksia.
- Ratkaisu
- Ei vielä tiedossa.
-
[Ratkaisu] Web-kamerakuvan lähettäminen www-palvelimella näytettäväksi
- Lähtökohta
- Olen kytkenyt web-kameran tietokoneeseeni. Kameralle on ajurit, ja se toimii, eli pystyn katsomaan kameran ottamaa kuvaa paikallisesti esimerkiksi
xawtv
:llä.
Minulla on käyttäjätunnus ja salasana ftp-palvelimelle, ja niitä käyttäen pystyn päivittämään web-sivuiltani maailmalle näkyvää sisältöä. Palvelimella on web-sivu, joka näyttää palvelintilaani tallennetunwebcam.jpg
-nimisen tiedoston, ja päivittää, eli lataa kuvan automaattisesti uudestaan kerran minuutissa.
Omalla koneellani, kotihakemistossani onbin
-alihakemisto ja se on määritelty komentojenhakupolkujen (PATH
-muuttuja) joukkoon komentoriviprofiilissani. Olen tallentanut bin-hakemistoonrhythmbox-print-playing
-komentojonotiedoston ja todennut sen toimivan.
Pakettienhallinnassaftp
,came
,imagemagick
jarhythmbox
ovat asennettuna. - Ongelma
- Haluan, että tietokoneeni tallentaa web-kamerani näkymän kuvatiedostoon, lisää tiedostoon tallennetun kuvan päälle tekstinä kuvanottohetken ja lisäksi tiedot samalla hetkellä
Rytmilaatikko-musiikkisoittimessa
soivasta kappaleesta, ja lähettää sen jälkeen kuvasta kopion web-palvelimelle. Haluan, että näin tapahtuu automaattisesti kerran minuutissa sen jälkeen, kun olen antanut käskyn, ja aina siihen saakka, että annan kieltävän käskyn. - Ratkaisu
-
- Luon komennolla kotihakemistooni
.camE
-alihakemiston. Hakemiston luomiseen käytänmkdir ~/.camE
-komentoa. Tähän hakemistoon tallennan jatkossa osan tarvittavista tiedostoista. - Luon
camE
:lle kuvan ottamiseen liittyvät parametrit määrittelevän asetustiedoston.
Avaan komennollagedit ~/.camE/camErc
asetustiedoston muokattavaksi. Tiedoston sisältö on seuraavassa:[ftp] do = 0 [grab] archive_shot_every = 0 logfile = /home/jani/.camE/camElog device = /dev/video0 temp_file = /home/jani/.camE/webcam.png blockfile = /home/jani/.camE/BLOCK # lag reduction, takes 5 shots, discards # the first 4, thus clearing mmap buffers lag_reduce = 5 width = 320 height = 240
- Luon kuvan web-palvelimelle lataamista varten ftp-asetustiedoston.
- Avaan komennolla
gedit ~/.netrc
asetustiedoston muokattavaksi. Tiedoston sisältö on seuraavassa:
machine ftp.palvelin.com login tunnukseni password salasanani macdef putcampic prompt off lcd /home/jani/.camE cd kuvakansio bin put webcam.jpg quit
- Muutan komennolla
chmod 600 ~/.netrc
asetustiedoston oikeuksia niin, että kukaan muu kuin minä ei voi sitä avata, sillä tiedosto sisältää ftp-palvelimen salasanani salaamattomassa muodossa.
- Avaan komennolla
- Luon komentojonotiedoston kuvan päälle tulevien tekstien latomiseen.
- Avaan komennolla
gedit ~/bin/camprint
komentojonotiedoston muokattavaksi. Tiedoston sisältö on seuraavassa:
#!/bin/sh # kirjasimen voi säätää tästä. FONT="-font Helvetica -pointsize 10" # ladotaan komentorivillä annetut tekstit. # ensimmäinen parametri ladotaan ylälaitaan, # toinen alalaitaan. convert webcam.png \ -gravity north -stroke '#000C' -strokewidth -2 \ $FONT -annotate 0 "$1" \ -stroke none $FONT -fill white -annotate 0 "$1" \ -gravity south -stroke '#000C' -strokewidth -2 \ $FONT -annotate 0 "$2" \ -stroke none $FONT -fill white -annotate 0 "$2" \ -quality 80 webcam.jpg
Lataa
camprint
(498 tavun komentojonotiedosto) - Muutan komennolla
chmod +x ~/bin/camprint
komentojonotiedoston oikeuksia niin, että siitä tulee suoritettava.
- Avaan komennolla
- Luon komentojonotiedoston, joka kerää toiminnot yhteen. Se ottaa kameralla kuvan, latoo kuvan päälle tekstit ja lataa kuvatiedoston sen jälkeen web-palvelimelle.
- Avaan komennolla
gedit ~/.camE/camEsh
komentojonotiedoston muokattavaksi. Tiedoston sisältö on seuraavassa:
#!/bin/sh cd /home/jani/.camE/ if [ -f BLOCK ] then exit fi # napataan kuva. camE -s -c camErc # parhaillaan soivan kappaleen esittely. NP="`/home/jani/bin/rhythmbox-print-playing`" # kuvanottohetki. DT=$(date -d "`stat -c %y webcam.png | cut -d. -f1`" | \ cut -d+ -f1 | sed 's/[ ]*$//') # ladotaan tekstit. /home/jani/bin/camprint "$NP" "$DT" # jos kuvan luominen on onnistunut, # siirretään se palvelimelle. if [ -f webcam.jpg ] then # tämä vaatii toimivan, putcampic-nimisen # makron ~/.netrc:ssä. echo "\$ putcampic" | ftp mummila.atspace.com rm webcam.jpg webcam.png fi
- Muutan komennolla
chmod +x ~/.camE/camEsh
komentojonotiedoston oikeuksia niin, että siitä tulee suoritettava.
- Avaan komennolla
- Luon komentojonotiedostot kamerakuvan lähetyksen käynnistystä ja lopettamista varten.
- Avaan komennolla
gedit ~/bin/camon
käynnistyskomentojonotiedoston muokattavaksi. Tiedoston sisältö on seuraavassa:
#!/bin/sh rm -f /home/jani/.camE/BLOCK
- Avaan komennolla
gedit ~/bin/camoff
lopetuskomentojonotiedoston muokattavaksi. Tiedoston sisältö on seuraavassa:
#!/bin/sh touch /home/jani/.camE/BLOCK
- Muutan molempien komentojonotiedostojen oikeuksia komennolla
chmod +x ~/bin/camon ; chmod +x ~/bin/camoff
niin, että niistä tulee suoritettavia. - Asetan lopuksi komennolla
camoff
kuvien lähettämisenpois päältä
-tilaan.
- Avaan komennolla
- Luon
crontab
-tiedostoon rivin, joka suorittaa tehtävät kerran minuutissa aina silloin kun olen niin määrännyt.
Avaan komennollacrontab -e
crontab-tiedostoni muokattavaksi. Lisään tiedostoon seuraavan rivin:* * * * * /home/jani/.camE/camEsh
Kaikkien näiden toimenpiteiden jälkeen kuvan ottaminen ja web-palvelimelle päivittäminen tapahtuu kerran minuutissa sen jälkeen, kun olen komentanut
camon
, ja jatkuu kunnes komennancamoff
. - Luon komennolla kotihakemistooni
- Huomautuksia
-
- Tämän ratkaisun lähtökohdissa mainittu webkamerakuvaa näyttävä sivuni löytyy webistä.
- CamE osaa itsekin latoa tekstiä ottamansa kuvan päälle ja kopioida kuvan palvelimelle ftp:tä käyttäen. Jälkikäsittelymahdollisuuksia on kuitenkin enemmän, kun jälkikäsittelyyn käytetään
ImageMagickia
. Tässä ratkaisussa käytin melkein kaikkein yksinkertaisinta tekstinladontatapaa, joka ei juurikaan poikkea siitä mihin camE pystyisi. ImageMagickin mahdollistamia erilaisia hienoja ladontatapoja on esitelty Examples of ImageMagick Usage -oppaassa. - Komennolla
camE -s -c ~/.camE/camErc
voi testata CamE:n asetustiedoston,~/.camE/camErc
:n toimivuutta. Komennon ajamisen jälkeen asetustiedostossa olevantemp_file
-parametrin määrittelemässä paikassa pitäisi olla web-kameran ottama kuva. - Komennolla
echo "\$ putcampic" | ftp ftp.palvelin.com
voi testata ftp-asetustiedoston,~/.netrc
:n toimivuutta sen jälkeen, kun~/.camE
-hakemistossa on webcam.jpg -niminen tiedosto.
-
[Ratkaisu] Cronin suorittama komentojonotiedosto ei toimi
- Lähtökohta
- Olen luonut komentojonotiedoston
komentojono1
, joka kutsuu komentojonotiedostoakomentojono2
seuraavanlaisella rivillä:komentojono2 parametri1 parametri2
Olen tallentanut molemmat komentojonotiedostot kotihakemistoni alla olevaan
bin
-alihakemistoon. Bin-alihakemisto on määritelty komentojenhakupolkujen (PATH
-muuttuja) joukkoon komentoriviprofiilissani. Olen muuttanut molempien komentojonotiedostojen oikeuksia niin, että molemmat toimivat komentoriviltä suoritettuina.
Olen lisännyt komentojono1:ncrontab
-tiedostooni siten, että se suoritetaan kerran minuutissa:* * * * * /home/jani/bin/komentojono1
- Ongelma
- Kerran minuutissa automaattisesti suoritettuna komentojono1 ei toimi odottamallani tavalla, niin kuin se toimii komentoriviltä suoritettuna.
- Ongelman syy
- Olen kutsunut komentojono1:ssä komentojono2:ta ilman täyttä hakemistopolkua sen edessä. Kun
cron
suorittaa komentojono1:n, se ei lue komentoriviprofiiliani sitä ennen, eikä siksi tiedä etsiä komentojono2:ta kotihakemistoni alla olevasta bin-hakemistosta. - Ratkaisu
- Muutan komentojono1:tä niin, että komentojono2:n kutsu tehdään käyttämällä täyttä hakemistopolkua itse tiedoston nimen edessä:
/home/jani/bin/komentojono2 parametri1 parametri2
Tämän jälkeen komentojono1:n automaattinen suoritus toimii tarkoittamallani tavalla.
- Huomautuksia
-
- Yleisesti ottaen cronin suoritus poikkeaa vuorovaikutteisesta komentorivisuorituksesta siksi, että Ubuntussa käytettävien vuorovaikutteisten komentorivien tulkkina toimii
Bash
, ja cron taas puolestaan käyttää/bin/sh
-komentoa, joka on symbolinen linkkidash
-tulkkiin. Kun cron ajaa dashin ei-vuorovaikutteisena, se ei lue mitään profiilitiedostoja, ja siten nämä kaksi ympäristöä (crontab ja vuorovaikutteinen komentorivitulkkisovellus kutenPääte
) voivat poiketa toisistaan huomattavastikin. - Pitemmän päälle tässä kuvattua elegantimpi ratkaisu olisi luultavasti luoda komentojonotiedosto
cron-suoritus
, joka ottaa parametrinä komentojonotiedoston parametreineen. Cron-suoritus lukisi komentoriviprofiilini ja lisäksi selvittäisiDBUS_SESSION_BUS_ADDRESS
-muuttujan arvon ennen kuin suorittaisi sille komentorivillä annetun komentojonotiedoston parametreineen.Sen jälkeen lisäisin
/home/jani/bin/cron-suoritus
-komentojonon aina varsinaisen komentojonotiedoston ja sen parametrien eteen aina, kun haluaisin suorittaa komentojonotiedoston crontabin kautta automaattisesti. Silloin crontabin suorittamien komentojonotiedostojen ajo muistuttaisi enemmän niiden suorittamista komentoriviltä ilman, että jokaiseen komentojonotiedostoon täytyisi tehdä crontabista ajamisen huomioonottavia tarkennuksia ja erityisehtoja.Koska cron-suoritus lukisi komentoriviprofiilini ennen sille annetun komentojonon suorittamista, ei tämän komentojonon eteen tarvitsisi crontabissa lisätä täyttä hakemistopolkua:
* * * * * /home/jani/bin/cron-suoritus komentojono parametri
- Yleisesti ottaen cronin suoritus poikkeaa vuorovaikutteisesta komentorivisuorituksesta siksi, että Ubuntussa käytettävien vuorovaikutteisten komentorivien tulkkina toimii
-
[Ratkaisu] Cron ei pidä lokikirjaa
- Lähtökohta
- Olen lisännyt tavallisen käyttäjän tiliini liittyvään
crontab
-tiedostooni kerran minuutissa suoritettavan komentojonon.
Olen muokannut/etc/syslog.conf
-tiedostoa siten, että siinä on seuraavat rivit:cron.* /var/log/cron.log
ja
*.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages
Olen tämän jälkeen käynnistänyt
cronin
uudestaan komentamallasudo /etc/init.d/cron restart
. Haluan, että cron kirjaa lokia/var/log/cron.log
-tiedostoon. - Ongelma
- Tiedostoa /var/log/cron.log ei ole, eli cron ei pidä lokia lainkaan, tai se ei pidä lokia haluamassani tiedostossa.
- Ongelman syy
- En ole käynnistänyt
syslogd
:tä uudestaan. - Ratkaisu
- Käynnistän syslogd:n uudestaan komentamalla
sudo /etc/init.d/sysklogd restart
. Sen jälkeen /var/log/cron.log alkaa täyttyä cronin lokitiedoilla. - Huomautus
- Syslogd ilmoitti uudelleenkäynnistyksen yhteydessä seuraavaa:
chown: tiedostoa "/var/log/cron.log" ei voi käsitellä: No such file or directory
Ilmeisesti tämä ei kuitenkaan haittaa. Käynnistin syslogd:n välittömästi toisen kerran uudestaan, ja tällä kertaa se ei antanut virheilmoitusta.
-
[Ratkaisu] Cronin suorittama rhythmbox-client –print-playing-format ei toimi
- Lähtökohta
- Olen asentanut
notification-daemon
-paketin. Minulla on komentojonotiedosto, joka ajaarhythmbox-client
-ohjelman--print-playing-format
-parametrilla, joka tulostaa muuttujaan tallennettavaksiRytmilaatikko-musiikkisoittimen
suoritushetkellä soittaman kappaleen nimen. Komentoriviltä suoritettuna komentojonotiedosto tulostaa kappaleen nimen muuttujaan tarkoittamallani tavalla. Olen asettanut komentojonotiedostoncrontab
-tiedostossani suoritettavaksi kerran minuutissa. - Ongelma
Cronin
suorittaessa komentojonotiedostoni kappaleen nimi ei tulostu muuttujaan. Haluan sen tulostuvan muuttujaan samalla tavalla kuin komentoriviltä suoritettaessa.- Ongelman syy
- Rytmilaatikko vaatii toimiakseen, että
DBUS_SESSION_BUS_ADDRESS
-niminen muuttuja on asetettu. Cronin suorittaessa komentojonotiedostoani muuttujaa ei kuitenkaan ole asetettu. - Ratkaisu
- Teen komentojonotiedoston, joka lukee käynnissä olevan rhythmbox-client -prosessin näkemän DBUS_SESSION_BUS_ADDRESS -muuttujan arvon ja ajaa uuden rhythmbox-clientin halutuilla parametreilla.
#!/bin/sh user=`whoami` pid=`pgrep -u $user notification-da | cut -d' ' -f 1` # find DBUS session bus for this session DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS \ /proc/$pid/environ |sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'` # if it was successfull, then we either print it, # or export it or whatever, if we want if [ "x$DBUS_SESSION_BUS_ADDRESS" != "x" ]; then export DBUS_SESSION_BUS_ADDRESS # and we start using rhythmbox-client rhythmbox-client --no-start --print-playing-format "%aa: %tt" fi
Lataa
rhythmbox-print-playing
(530 tavun komentojonotiedosto)Tallennan komentojonotiedoston tiedostonimellä rhythmbox-print-playing kotihakemistossani olevaan
bin
-alihakemistoon, minkä jälkeen muutan sen oikeuksiachmod +x ~/bin/rhythmbox-print-playing
-komennolla niin, että voin suorittaa sen. Sitten muutan Lähtökohta-otsikon alla mainitsemaani, alun perin rhythmbox-clientia suoraan kutsunutta komentojonotiedostoa niin, että rhythmbox-clientin sijaan se suorittaa nyt rhythmbox-print-playing -tiedostoni. Sen jälkeen parhaillaan soiva kappale tulostuu komentojonossa muuttujaan myös silloin, kun komentojonon suoritus tapahtuu cronin tekemänä. - Huomautus
- Mikään löytämistäni valmiista komentojonotiedostoista (esimerkki 1, 2) ei toiminut sellaisenaan. Yllä oleva komentojonotiedosto on niiden perusteella tekemäni oma sovellus.