Fórum Root.cz
Hlavní témata => Distribuce => Téma založeno: flack 12. 01. 2014, 19:12:27
-
Zdravim mam ubuntu 13.10, chcel by som pouzivat mikrofon z webkamery ktora je USB na skype. Ono to aj funguje problem je v tom ze mi nikto nerozumie lebo zniem ako smolko. Netusim v com by to mohlo byt. Viem ze v minulosti mi to fungovalo na inej verzii ubuntu normalne.
Kamera je Creative Live! Cam Vista IM VF0420 a pouziva ovladac gspca_ov519 pritomny v jadre.
-
Dělá to i při testovacím volání? Jak máš nastaven mikrofon ve skypu? Jaký zvukový server používáš? To všechno pomůže k přiblížení problému.
-
A jako první bych zkusil volnější slipy!
-
Mirage: *facepalm*
flack: Muzu predpokladat, ze nemutujes? Nenaistaloval jsi si tam filtry na zmenu hlasu a pak je zapomel vypnout?
-
Nerobi to len skype. Skusil som sa nahrat do .waw pomocou programu arecord. Pouzivam pulse audio. Popravde do zvuku moc v linuxe nerozumiem. Doteraz som ani nikdy nemusel nad nicim zo zvukom premyslat.
to Mirage:
To sa este nosi?
-
flack: Muzu predpokladat, ze nemutujes?
No, třeba je jen přihřátej a lidi mu to nechtěj říct na rovinu... ;D
-
Vypni pulse a zkus jet jen na alsu ...
-
Nie mutovat by som hadam nemal po 26 roku. Fakt ziadne filtry u mna nehorzia. Tu je nahravka
http://ulozto.cz/xFrZHYTk/root-wav
z prikazu (pomocou prikazu arecord Root.wav).
-
To zni jako Hardyho prednasky na dvojnasobnou rychlost prehravani :-\
-
To zni jako Hardyho prednasky na dvojnasobnou rychlost prehravani :-\
To je přece Aťka Janoušková ;D ;D ;D
-
Zkusil bych vypnout pulse. Můžeš taky zkusit napsat do příkazového řádku:
export PULSE_LATENCY_MSEC=30 && skype
-
Ten záznam je schválně v 8000 Hz?
-
Defaultní samplerate arecord bez uvedení konkrétní hodnoty je 8kHz.
Pokud máš systém nakonfigurovaný na pulseaudio, je defaultní device alsy bridge do PA a arecord bez uvedení zařízení nahrává přes PA.
IMO ti nefunguje správně přepínání vzorkovací frekvence zvukovky. Aktuální hodnota, kterou po zvukovce systém chce, je uvedená při přehrávání v /proc/asound/TVOJEKARTA/pcm0c/sub0/hw_params. Může se ale stát, že ač PA chce třeba 48kHz (default PA), karta je vnitřně nastavená na 24000 a pak je nahraný zvuk zrychlený. Zkusil jsem si v tomto poměru uvedený vzorek převést (1:2) a zní mi to celkem normálně.
V poslední době bylo spoustu změn v usb-audio, třeba je tam zrovna pro tvou zvukovku v kameře bug.
-
"při přehrávání"... samozřejmě má být "při nahrávání".
-
A ještě oprava - default PA je 44100, ale třeba je to přenastavené. Pro 44100 mi to neznělo přirozeně.
-
Dobre rano. Ak som spravne pochopil pana dustin-a. Tak pri zadani prikazu "arecord Root.wav" dostavam nasledovny vypis v /proc/asound/IM/pcm0c/sub0/hw_params
cat /proc/asound/IM/pcm0c/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 1
rate: 16000 (16000/1)
period_size: 16000
buffer_size: 32000
skusil som aj "arecord -f cd Root.wav" kedy je rate nastavene na 44100 Hz no vy vypisu v /proc/asound/IM/pcm0c/sub0/hw_params je to rovnake ako v predchadzajucom pripade.
cat /proc/asound/IM/pcm0c/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 1
rate: 16000 (16000/1)
period_size: 16000
buffer_size: 32000
Pulse audio som este nevypinal. Vecer som sa sice o to pokusal, ale po killnuti sa stale obnovoval.
-
Výborně, už se někam dostáváme. Takže tvoje zvukovka nahrává na 16kHz (resp. je o to požádána). Teď je potřeba zjistit, zda to opravdu jede přes PA (ale velice pravděpodobně ano).
Spusť ten arecord s parametrem -v (verbose) a koukni do výstupu, jaké zařízení použije. Tipuji si na plugin pulse. Pak se posuneme dál.
Výhodou linuxu je snadná diagnostika, tohle by na win vůbec nešlo.
-
Asi mas pravdu vidim tu PulseAudio PCM I/O Plugin.
arecord -v -f cd Root.wav
Nahrávanie WAVE 'Root.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
ALSA <-> PulseAudio PCM I/O Plugin
Its setup is:
stream : CAPTURE
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 22050
period_size : 5512
period_time : 125000
tstamp_mode : NONE
period_step : 1
avail_min : 5512
period_event : 0
start_threshold : 1
stop_threshold : 22050
silence_threshold: 0
silence_size : 0
boundary : 6206523236469964800
-
A jak při takovém nahrávání vypadá ten hw_params? Opravdu je to 16kHz/16bit/mono?
Hoď sem ještě výstup lsusb -v, ať vidíme, co tvoje kamerová zvukovka nabízí. Je možné, že opravdu více neumí a PA si to špatně přebere.
Pak bychom otestovali nahrávání rovnou přes alsu, abychom vyloučili vliv PA.
-
ten hw_params pri "arecord -v -f cd Root.wav" je uplne rovnaky, ako v predchadzajucich pripadoch preto som ho sem ani nedaval.
tu je vystup z lsusb -v http://pastie.org/8628690
-
Jojo, dle toho usb dumpu umí zvukovka jen nahrávání v 16kHz/16bit/1kanál. Takže je přepnutá správně. Teď je otázkou, proč to PA vrací takhle špatně.
Zkusme nahrávat přímo přes alsu:
arecord -v -D hw:IM,0 -r 16000 -c 1 -f S16_LE 16-16-1.wav
Výsledný 16-16-1.wav by měl být správně.
Pak můžeš otestovat automatickou konverzi přímo v alse:
arecord -v -D plughw:IM,0 -f cd 441-16-2.wav
Výsledný 441-16-2.wav by měl být taky OK.
Pak bychom zkusili PA přinutit jet na výstupu v 16kHz, co to udělá.
arecord -v -D hw:IM,0 -r 16000 -c 1 -f S16_LE 16-16-1.wav
-
Ten poslední arecord tam samozřejmě být nemá :)
-
skusil som "arecord -v -D hw:IM,0 -r 16000 -c 1 -f S16_LE 16-16-1.wav"
vysledok bol ale rovnaky :-[ nahravka je stale zle, vo vypisu hw_params sa akurat zmenilo period_size a buffer_size
cat /proc/asound/IM/pcm0c/sub0/hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 1
rate: 16000 (16000/1)
period_size: 2000
buffer_size: 8000
pri "arecord -v -D plughw:IM,0 -f cd 441-16-2.wav" je vypis hw_params rovnaky:
cat /proc/asound/IM/pcm0c/sub0/hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 1
rate: 16000 (16000/1)
period_size: 2000
buffer_size: 8000
-
Aha, takže je docela možné, že zvukovka reportuje něco jiného, než ve skutečnosti dělá. Prosím nahraj něco třeba tím prvním příkazem (přímo na zařízení hw:...) a postni se někam ke stažení. Díky.
-
Nepotrebuje niekto nadabovat nejaku rozpravku? ::)http://ulozto.cz/xSV43pPD/16-16-1-wav (http://ulozto.cz/xSV43pPD/16-16-1-wav)
-
Výsledok je stále rovnaký, ale v 8kHz to zní správně. Zkus si pustit
sox 16-16-1.wav -t raw - | sox -t raw -c 1 -b 16 -s -r 8000 - -t alsa
-
Doporučil bych zlikvidovat tu pulseaudio sračku. ::)
-
Výhodou linuxu je snadná diagnostika, tohle by na win vůbec nešlo.
Uzivatel je vzdy velmi poteseny z takejto "snadnej diagnostiky" problemov ako je tento, ked chce akurat tak s niekym volat cez skype... na Windows by taketo nieco riesit hlavne vobec nemusel.
-
dustin: To mas pravdu uz to znie ako ja. Lenze co spravit? odstranit to pulseaudio alebo sa to da aj nejak inak?
-
V alse je už roky oprava:
http://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/sound/usb/format.c#n193
Bylo to tam už v roce 2010 (po refaktoringu, před tím nemám historii), takže by mělo stačit jen nasadit novější alsu (tj. jádro). Jaké máš?
-
Uzivatel je vzdy velmi poteseny z takejto "snadnej diagnostiky" problemov ako je tento, ked chce akurat tak s niekym volat cez skype... na Windows by taketo nieco riesit hlavne vobec nemusel.
Ano, nainstaloval by ovladač přímo od výrobce, který ten hnusný bug ve svém HW zná a rovnou obchází. S generickými drivery ve windows by dopadl úplně stejně.
-
V alse je už roky oprava:
Přesněji workaround zabugovaného HW, který reportuje něco jiného, než dělá.
-
mam ubuntu 13.10
uname -r
3.11.0-15-generic
-
Aha, přehlédl jsem, že to device ID máš 4064, zatímco v kódu je model 4068. Creative jsou pěkná čuňata.
Takže 2 kroky:
1. opravit ve zdrojáku a zkompilovat si vlastní driver alsy, což není žádná věda. Pokud chceš, pošlu postup.
2. Nahlásit to do alsy, aby to tam přidali (což klidně udělám, až bys mi potvrdil, že to chodí OK).
-
1. Sk posles postup urobim to.
2. Suhlasim ja ti to potvrdim bude lepsie ak to napises do alsy ty. Mas viac skusenosti a urcite vies co robis. ;)
-
Zkusme to takhle:
celé pod rootem (v této fázi pro jistotu):
1. nainstalovat tooly - nejsnáze asi komplet
apt-get install kernel-package
1. Stáhnout zdroják aktuálního jádra
apt-get install linux-source
http://www.cyberciti.biz/faq/installing-full-kernel-source-ubuntu-linux/
V /usr/src bude symlink na ten tar.bz2, ten rozbalit příkazem
tar xjf tenlinuxtar.tar.bz2
cd do vytvořeného adresáře s tím jádrem
2. opravit zdroják - v sound/usb/format.c změnit v tom řádku tvé device ID, tedy na
if (rate == 16000 && chip->usb_id == USB_ID(0x041e, 0x4064))
3. konfigurace jádra aktuální configem z bootu:
cp /boot/config-`uname -r` .config
make oldconfig
4. Dále bych postupoval dle bodu "build preparation" v http://www.pixelbeat.org/docs/rebuild_kernel_module.html , abychom nemuseli dlouze kompilovat a instalovat celý kernel.
make prepare
make modules_prepare
make SUBDIRS=scripts/mod
make SUBDIRS=sound/usb modules
To zkompiluje kromě ostatních usbaudio modulů i nový sound/usb/snd-usb-audio.ko, který stačí přesunout
install -m 744 sound/usb/snd-usb-audio.ko /lib/modules/$(uname -r)/kernel/sound/usb
Odpojit kameru, removnout starý modul (rmmod snd-usb-audio) a kameru připojit, aby se nový modul natáhnul.
Tu kompilaci sem zkoušel, dál už ne, ale mělo by to chodit. Když tak problémy vyřešíme :) Držím palce.
-
Na nieco sa muselo asi zabudnut. Urobil som vsetko, pri kroku
sudo make SUBDIRS=scripts/mod
bol vypis ale prazdny http://pastie.org/8631846
skusil som rebootnut system lebo pomocou "sudo rmmod snd-usb-audio" to neslo- asi som mal restartnut cele pulse-audio.
modul snd-usb-audio sa ale po zastrceni kamery neloadne. Vypis z dmesg |tail
machine1:~$ dmesg | tail
[ 874.927878] snd_usb_audio: no symbol version for module_layout
[ 886.886729] usb 1-1.5: USB disconnect, device number 5
[ 894.268361] usb 2-1.5: new full-speed USB device number 6 using ehci-pci
[ 894.361757] usb 2-1.5: New USB device found, idVendor=041e, idProduct=4064
[ 894.361762] usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 894.361765] usb 2-1.5: Product: VF0420 Live! Cam Vista IM
[ 894.361767] usb 2-1.5: Manufacturer: Creative Labs
[ 894.362032] gspca_main: ov519-2.14.0 probing 041e:4064
[ 894.742007] input: ov519 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/input/input19
[ 894.763899] snd_usb_audio: no symbol version for module_layout
modprobe snd-usb-audio
machine1:~$ sudo modprobe snd-usb-audio
ERROR: could not insert 'snd_usb_audio': Exec format error
-
Mrkni na http://askubuntu.com/questions/14627/no-symbol-version-for-module-layout-when-trying-to-load-usbhid-ko .
Nejdříve bych zkusil tu jednodušší variantu s modprobe -f . Modul si můžeš nahrát dopředu, ještě před připojením kamery. udev jej pak nebude sám nahrávat, protože je už nahraný.
-
Tu druhu variantu som uz skusal ale vysledok je rovnaky.
machine1:~$ sudo modprobe -f snd-usb-audio
ERROR: could not insert 'snd_usb_audio': Exec format error
Ale tej prvej sa priznam moc nerozumiem.
-
V dalsom prispevku citam
cp /usr/src/linux-headers-$YourKernelVersion/Module.symvers . into the kernel source directory
Tak to idem skusit.
-
Opravdu jsi nainstaloval/rozbalil/kompiloval zdroják přesně toho jádra, které máš spuštěné?
Ještě bych zkusil zavolat sudo depmod -a , občas mi to pomohlo. Ale tohle je oblast tenkého ledu pro mě.
Pokud nic, pak zkompilujeme celé jádro, uděláme z něj balík a ten nainstalujeme. To funguje spolehlivě.
Např. http://baldric.net/how-to-build-a-ubuntu-or-debian-kernel-package-the-debian-way/ nebo http://myrddin.org/howto/debian-kernel-recompiling/
-
Zda sa ze to zabralo, ak tomu spravne rozumiem problem bol ze ten upraveny modul nesuhlasil s CRC zoznamom ktory obsahoval este CRC toho stareho "neupraveneho" modulu.
Toto mi nieje celkom jasne ale budem musiet kompilovat vlastny modul pre kazde nove jadro, ktore prijde z aktualizacie?
-
Len pre rekapitulaciu, aby to bolo prehladne. Urobil som vsetko podla toho navodu, ktory si napisal. Ale okrem konfiguraku .config jadra som skopiroval aj ten Module.symvers potom uz sa nezobrazil ani warning pri :
machine1:~/kernel-creative/linux-source-3.11.0$ sudo make SUBDIRS=scripts/mod
Building modules, stage 2.
MODPOST 0 modules
depmode -a som urobil samozrejma.
-
Super, gratuluji. A hlavní otázka - chodí teď už ta kamera správně?
Ano, jádro budeš muset podržet, viz třeba dnešní článek o pinnování. A nebo si napsat dkms skript, ale to jsem nikdy nedělal.
-
Zda sa ze ten mikrofon uz bezi dobre, arecord uz nahrava pekne, zretelne. V skype mi povodne nejak haproval zvuk ale docital som sa ze ho musim spustat ako
PULSE_LATENCY_MSEC=30 skype
Co funguje, uspesne som absolvoval skype test. Dakujem za pomoc uz sa tesim az bude patch aplikovany v kode aj pre ostatnych majitelov kamery.
-
Paráda, díky. Můžeš prosím ještě poslat přesný model té kamery?
-
Podla krabice je to:
Live! Cam Vista IM
Na kamere je napisane:
CREATIVE LABS, INC.
MODEL No: VF0420
linux ju vidi v lsusb ako
ID 041e:4064 Creative Technology, Ltd
stranka produktu je http://support.creative.com/Products/ProductDetails.aspx?catID=218&prodID=16959&prodName=Live!+Cam+Vista+IM+%28VF0420
-
Díky moc za spolupráci
http://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=8c4b79cf216f467faacdfa7c6c40b6b85cc05782
-
To ja dakujem, ze som narazil na spravneho cloveka. :). BTW ak na seba niekedy narazime tak ti beriem pivo ::).
-
Většinu jsi udělal sám, já ti jenom posílal linky :-)
Ne, fakt super, většina lidí by se na diagnostiku a rekompilaci modulu vybodla. I tady na rootu. Díky žes to nevzdal.