Project

General

Profile

Actions

Bug #1936

open

vfork() -> fork()

Added by Anonymous about 10 years ago. Updated over 8 years ago.

Status:
New
Priority:
Normal
Assignee:
Start date:
10/12/2014
Due date:
% Done:

0%

Estimated time:

Description

Der Beitrag wurde aus dem VDR Forum kopiert:

softhddevice bug ( X Speicherzugriff auf VDR )
Hallo alle zusammen,

ich habe in meinem VDR 2.1.6 das softhddevice in der Version: softhddevice (0.6.1rc1-GITa3c0052) installiert.

Hiermit ergibt sich folgendes Fehlerbild.

Es werden von VDR keine Tuningbefehle an meine Sundtek Tuner übermittelt. Dementsprechend ist ein umschalten der Kanäle nicht möglich.

Das ganze macht im Logfile mit folgendem Eintrag auf sich aufmerksam:

ERROR: set frontend/here 0/0: Unpassender IOCTL (I/O-Control) für das Gerät

Ich habe mich mit diesem Problem an den Sundtek Support gewendet und bin hier hervorragend unterstützt worden.

Der Fehler liegt hier:

http://projects.vdr-developer.org/git/vd…fthddev.c#n3095

Das ist der Übeltäter
Mit vfork öffnet das softhddevice einen 2. Prozess
Wenn jetzt im 2. Prozess das Frontend geschlossen wird, wird es auch für den ursprünglichen Prozess geschlossen
Weil diese sich ja den gleichen Speicherbereich teilen.
Mit fork() (nicht vfork()) werden die Speicherbereiche kopiert und da hat der 2. Prozess dann keinen zugriff mehr auf den 1. (also VDR), so sollte das auch sein.

In dieser besagten Zeile sollte anstelle von vfork, nur fork stehen. Dann funktionert das Softhddevice wie zu erwarten.

Ich hoffe ich habe mich verständlich ausgedrückt.

Viele Grüße

Actions

Also available in: Atom PDF