# saa7134 und Software-Suspend [Solved]

## Psycho Dad

Hallo,

meine AVerMedia Cardbus TV/Radio (E500) (analoge PCMCIA-Karte, basierend auf dem saa7134-Chip) funktioniert eigentlich gut unter Linux.

Allerdings kommt nach einem Software-Suspend mit mplayer nur ein grünes Bild und kein Ton.

Tvtime findet keinen Sender (so, als ob kein Kabel dran wäre).

Jemand ne Idee?

Hier noch ein paar Infos:

Output von mplayer nach dem Software-Suspend:

```
mplayer -tv driver=v4l2:alsa:adevice=hw.1,0:amode=1:audiorate=32000:forceaudio:volume=100:immediatemode=0:width=320:height=240: tv:// -vo sdl -fs -brightness 21

MPlayer 1.0pre8-4.1.1 (C) 2000-2006 MPlayer Team

CPU: mobile AMD Athlon (tm) 2400+     (Family: 6, Model: 10, Stepping: 0)

CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0

Kompiliert für x86 CPU mit folgenden Erweiterungen: MMX MMX2 3DNow 3DNowEx SSE

93 Audio- & 211 Videocodecs

Spiele tv://.

Selected driver: v4l2

 name: Video 4 Linux 2 input

 author: Martin Olschewski <olschewski@zpr.uni-koeln.de>

 comment: first try, more to come ;-)

Selected device: AVerMedia Cardbus TV/Radio (E50

 Tuner cap: STEREO LANG1 LANG2

 Tuner rxs: MONO STEREO LANG1 LANG2

 Capabilites:  video capture  video overlay  VBI capture device  tuner  read/write  streaming

 supported norms: 0 = PAL; 1 = PAL-BG; 2 = PAL-I; 3 = PAL-DK; 4 = NTSC; 5 = SECAM; 6 = SECAM-DK; 7 = SECAM-L; 8 = SECAM-Lc; 9 = PAL-M; 10 = PAL-Nc; 11 = PAL-60;

 inputs: 0 = Television; 1 = Composite1; 2 = S-Video;

 Current input: 0

 Current format: BGR24

v4l2: current audio mode is : STEREO

TV channel names detected.

Selected channel: 39 - Receiver (freq: 615.250)

==========================================================================

Öffne Audiodecoder: [pcm] Uncompressed PCM audio decoder

AUDIO: 32000 Hz, 2 ch, s16le, 1024.0 kbit/100.00% (ratio: 128000->128000)

Ausgewählter Audiocodec: [pcm] afm: pcm (Uncompressed PCM)

==========================================================================

[VO_SDL] Benutze Treiber: x11.

==========================================================================

Öffne Videodecoder: [raw] RAW Uncompressed Video

VDec: VO wird versucht, auf 320 x 240 (Bevorzugter Farbraum: Planar YV12) zu setzen.

VDec: using Planar YV12 as output csp (no 0)

Film-Aspekt ist undefiniert - keine Vorskalierung durchgeführt.

VO: [sdl] 320x240 => 320x240 Planar YV12  [fs]

[VO_SDL] Info - bitte benutze -vm oder -zoom, um zur besten Auflösung zu wechseln.

Ausgewählter Videocodec: [rawyv12] vfm: raw (RAW YV12)

==========================================================================

AO: [oss] 32000Hz 2ch s16le (2 bytes per sample)

Starte Wiedergabe...

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0 1 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0 2 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0 3 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0 4 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0 5 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0 6 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx =. 0 7 0

v4l2: ioctl dequeue buffer failed: Input/output error, idx = 0 8 0

Fehler beim Lesen des Tons: Input/output error

v4l2: 0 frames successfully processed, 1 frames dropped.
```

Ohne Suspend kommt nach dem "Starte Wiedergabe..." sowas wie

```
v4l2: 384 frames successfully processed, 0 frames dropped.0.4% 1 0
```

Andere Outputs wie gl2 machen keinen Unterschied.

Hardware ist ein Amilo A 7600 Laptop

Distri ist Gentoo mit Kernel 2.6.18-gentoo-r2

Der cvs-Code von v4l unter

http://linuxtv.org/hg/v4l-dvb

bringt auch nichts.

Für Software Suspend wurde der stabile Patch 2.2.8 für Kernel 2.6.18 verwendet.

----------

## Psycho Dad

Auch mit dem neuen 2.6.20ger Gentoo-Kernel und dem neuesten Development-Software-Suspend2-Patch 2.2.9.3 besteht das Problem weiter.

Ist der saa7134-Treiber denn prinzipiell softwaresuspend2-kompatibel?

Gibt es jemanden, bei dem Fernsehgucken nach einem Software-Supend mit dem saa7134-Modul funktioniert?

----------

## moe

Keine Ahnung vn der TV-Karte, aber kannst du nicht das entsprechende Treibermodul entladen und nach dem aufwachen neu laden? Dazu gibts ja in der configdatei (mir fällt der Name gerade nicht ein, hibernate.conf?) entsprechende Möglichkeiten..

Gruss Maurice

----------

## Psycho Dad

Hab ich schon versucht, das Biest lässt sich aber schon manuell net entladen:

```
rmmod saa7134

ERROR: Module saa7134 is in use by saa7134_alsa

schleppi pd983 # rmmod saa7134-alsa

ERROR: Module saa7134_alsa is in use

```

Mit "Gewalt" gehts auch net:

```

schleppi pd983 # rmmod -f saa7134-alsa

Speicherzugriffsfehler

```

Das saa7134-alsa-Modul ist nötig, andernfalls gibts kein Ton.

Wie kann man denn sehen, von was das saa7134-alsa Modul benutzt wird?

----------

## andix

 *Psycho Dad wrote:*   

> Das saa7134-alsa-Modul ist nötig, andernfalls gibts kein Ton.
> 
> Wie kann man denn sehen, von was das saa7134-alsa Modul benutzt wird?

 

Normalerweise mit lsmod. Ich weiß aber nicht ob dir das in deinem Fall etwas hilft.

So schaut das bei mir aus:

```
$ lsmod

Module                  Size  Used by

tuner                  63912  0 

saa7134               111904  0 

video_buf              20932  1 saa7134

ir_kbd_i2c              6992  1 saa7134

ir_common              24324  2 saa7134,ir_kbd_i2c

nvidia               6822740  32 

amd64_agp              10564  
```

----------

## Psycho Dad

Danke für den Tipp

```

radeon                120288  2

drm                    70292  3 radeon

saa7134_alsa           10624  1

xt_limit                2176  8

xt_tcpudp               2944  13

iptable_mangle          2176  0

ipt_LOG                 5824  8

ipt_MASQUERADE          2496  0

nf_nat                 14188  1 ipt_MASQUERADE

ipt_TOS                 1792  0

ipt_REJECT              3328  1

nf_conntrack_irc        5528  0

nf_conntrack_ftp        7936  0

nf_conntrack_ipv4      13516  7

xt_state                1984  6

iptable_filter          2240  1

ip_tables               9736  2 iptable_mangle,iptable_filter

x_tables               11588  8 xt_limit,xt_tcpudp,ipt_LOG,ipt_MASQUERADE,ipt_TOS,ipt_REJECT,xt_state,ip_tables

snd_pcm_oss            36640  0

snd_mixer_oss          14016  1 snd_pcm_oss

snd_seq_oss            28672  0

snd_seq_midi_event      6144  1 snd_seq_oss

snd_seq                45456  4 snd_seq_oss,snd_seq_midi_event

snd_seq_device          6348  2 snd_seq_oss,snd_seq

af_packet              15688  0

pcmcia                 29780  4

rtc                    10480  0

nf_conntrack           50648  6 ipt_MASQUERADE,nf_nat,nf_conntrack_irc,nf_conntrack_ftp,nf_conntrack_ipv4,xt_state

nfnetlink               4888  2 nf_conntrack_ipv4,nf_conntrack

floppy                 52644  0

lp                      9156  0

parport_pc             35172  1

parport                32904  2 lp,parport_pc

i2c_dev                 5764  0

usblp                  11328  0

powernow_k7             6440  0

cpufreq_stats           4548  0

cpufreq_ondemand        6076  1

freq_table              3588  3 powernow_k7,cpufreq_stats,cpufreq_ondemand

cpufreq_powersave       1472  0

button                  5648  0

thermal                10952  0

processor              18220  2 powernow_k7,thermal

video                  13380  0

battery                 7876  0

ac                      3524  0

tuner                  57512  0

eth1394                16516  0

prism54                52040  0

firmware_class          7296  1 prism54

saa7134               111392  1 saa7134_alsa

video_buf              19908  2 saa7134_alsa,saa7134

compat_ioctl32          1088  1 saa7134

ir_kbd_i2c              6608  1 saa7134

ir_common              26180  2 saa7134,ir_kbd_i2c

videodev               24448  1 saa7134

v4l2_common            18368  3 tuner,saa7134,videodev

usbhid                 20800  0

hid                    22912  1 usbhid

joydev                  7936  0

snd_ali5451            18764  1

ide_cd                 34912  0

snd_ac97_codec         89760  1 snd_ali5451

psmouse                34312  0

serio_raw               5188  0

8139too                21568  0

ohci1394               31600  0

yenta_socket           22860  6

rsrc_nonstatic          9152  1 yenta_socket

ac97_bus                1856  1 snd_ac97_codec

cdrom                  33888  1 ide_cd

ati_agp                 6668  1

pcspkr                  2304  0

ieee1394               84728  2 eth1394,ohci1394

mii                     4544  1 8139too

i2c_ali15x3             6404  0

pcmcia_core            32784  3 pcmcia,yenta_socket,rsrc_nonstatic

ohci_hcd               18564  0

snd_pcm                62216  4 saa7134_alsa,snd_pcm_oss,snd_ali5451,snd_ac97_codec

agpgart                25456  2 drm,ati_agp

8250_pci               18944  0

usbcore               111384  4 usblp,usbhid,ohci_hcd

snd_timer              18756  2 snd_seq,snd_pcm

evdev                   7808  1

8250                   19876  1 8250_pci

serial_core            17472  1 8250

snd                    43044  14 saa7134_alsa,snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_ali5451,snd_ac97_codec,snd_pcm,snd_timer

soundcore               6048  1 snd

snd_page_alloc          7432  1 snd_pcm

unix                   22384  338

```

Also wird von saa7134-alsa von saa7134, video_buf, snd_pcm und snd gebraucht. 

Leider bekomm ich die aber nicht weg. Denn die brauchen zum Teil saa7134-alsa, was ich aber wegen denen selbst nicht entladen kann.

Ringförmige Abhängigkeit?

```

schleppi pd983 # rmmod video_buf

ERROR: Module video_buf is in use by saa7134_alsa,saa7134

schleppi pd983 # rmmod snd_pcm

ERROR: Module snd_pcm is in use by saa7134_alsa,snd_pcm_oss,snd_ali5451,snd_ac97_codec

schleppi pd983 # rmmod snd

ERROR: Module snd is in use by saa7134_alsa,snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_ali5451,snd_ac97_codec,snd_pcm,snd_timer

```

Auch mit Gewalt geht nichts:

```

schleppi pd983 # rmmod -f video_buf

ERROR: Removing 'video_buf': Resource temporarily unavailable

schleppi pd983 # rmmod -f snd

ERROR: Removing 'snd': Resource temporarily unavailable

schleppi pd983 # rmmod -f snd_pcm

ERROR: Removing 'snd_pcm': Resource temporarily unavailable

```

Die Katze beißt sich da in den Schwanz.

Kann man da irgendwas machen?

----------

## firefly

öhm kann es sein, das da noch ein programm läuft, welches auf die karte zugreift, und dadurch die module blockiert?

----------

## Psycho Dad

Hab gemerkt , das ich saa7134-alsa und saa7134 entladen kann, wenn ich den alsasound-Service beende.

Leider startet der alsasound-Service nach dem Resume nicht korrekt, wenn er beim Suspend beendet wird.

Muss da noch n bissle rumprobieren.

----------

## Psycho Dad

Jetzt gehts so einigermaßen.

Hab in die /etc/hibernate/hibernate.conf sowas eingetragen:

```

OnSuspend 10 sudo /etc/init.d/alsasound stop

OnResume 90 /etc/init.d/alsasound restart

OnResume 70 sudo /sbin/modprobe saa7134-alsa

OnResume 40 /usr/kde/3.5/bin/kmix

```

Dann die Module saa7134_alsa und saa7134 in die /etc/hibernate/blacklisted-modules eingetragen.

Hibernate wird mit 

```
"hibernate --force"
```

 gestartet, sonst kommt

```

hibernate: 1 Executing CheckLastResume ...

hibernate: 1 Executing CheckRunlevel ...

hibernate: 1 Executing LockFileGet ...

hibernate: 1 Executing NewKernelFileCheck ...

hibernate: 1 Executing EnsureSwsusp2Capable ...

hibernate: 1 Executing MiscLaunchAuxFunc1 ...

Executing sudo /etc/init.d/alsasound stop...

 * Storing ALSA Mixer Levels ...                                                                                                                                [ ok ]

 * Unloading ALSA ...                                                                                                                                           [ ok ]

 * Unloading ALSA modules ...                                                                                                                                   [ !! ]

hibernate: Aborting suspend due to errors in MiscLaunchAuxFunc1 (use --force to override).

hibernate: 1 Executing NoteLastResume ...

hibernate: 1 Executing LockFilePut ...

```

und der Hibernatevorgang bricht ab.

Leider beendet sich kmix, wenn der Alsasoundservice beendet wird.

Deswegen starte ich es wieder mit "OnResume 40 /usr/kde/3.5/bin/kmix" in der

/etc/hibernate/hibernate.conf.

Das hat aber den Nachteil, das kmix dann beim Resume als root gestartet wird.

Kann man kmix irgendwie als User starten lasssen?

Oder kann mann den Absturz von kmix beim Beenden von alsasound irgendwie verhindern?

Falls wichtig, Soundkarte ist ein ALI5451-Chip, der im Notebook eingebaut ist.

----------

## Finswimmer

su $user -c $Befehl sollte als root gehen

Tobi

----------

## Psycho Dad

Danke, der Tipp führt in die richtige Richtung. Da kmix ja unter X läuft, kommt da aber erstmal ne Fehlermeldung:

```

su pd983 -c /usr/kde/3.5/bin/kmix

Xlib: connection to ":0.0" refused by server

Xlib: No protocol specified

kmix: cannot connect to X server :0.0

ERROR: KUniqueApplication: Registering failed!

ERROR: Communication problem with kmix, it probably crashed.

```

aber nach einem 

```

xhost +

```

gehts.

Hab jetzt die /etc/hibernate/hibernate.conf angepasst (nur das in dem Zusammenhang nötige):

```

OnSuspend 70 sudo /etc/init.d/alsasound stop

OnSuspend 80 sudo /sbin/rmmod saa7134-alsa

OnSuspend 90 sudo /sbin/rmmod saa7134

OnResume 90 /etc/init.d/alsasound restart

OnResume 70 sudo /sbin/modprobe saa7134-alsa

OnResume 40 xhost +

OnResume 30 su pd983 -c /usr/kde/3.5/bin/kmix

OnResume 20 xhost -

```

Hätte net gedacht, das das so klappt, funktioniert aber.

Danke für die Hilfe.

----------

