Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
ISDN: kernel-4.8, vbox3 hebt nicht ab
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
hopsi
n00b
n00b


Joined: 02 Jul 2017
Posts: 5

PostPosted: Sun Jul 02, 2017 6:38 pm    Post subject: ISDN: kernel-4.8, vbox3 hebt nicht ab Reply with quote

Hallo,

ich nutze eine XEN-VM unter Gentoo als Faxserver und Anrufbeantworter. Dazu wird eine Fritz-PCI durchgereicht. Treiberseitig nutze ich fcpci mit einem Patch, der das Kompilieren unter Kernel >4.1 ermöglicht.

Kernel-config
Code:
CONFIG_ISDN=y
CONFIG_ISDN_I4L=y
# CONFIG_ISDN_PPP is not set
CONFIG_ISDN_AUDIO=y
CONFIG_ISDN_TTY_FAX=y

#
# ISDN feature submodules
#
CONFIG_ISDN_DIVERSION=y

#
# ISDN4Linux hardware drivers
#

#
# Passive cards
#
# CONFIG_ISDN_DRV_HISAX is not set
CONFIG_ISDN_CAPI=y
CONFIG_CAPI_TRACE=y
CONFIG_ISDN_CAPI_CAPI20=y
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPIDRV=y
CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE=y

#
# CAPI hardware drivers
#
# CONFIG_CAPI_AVM is not set
# CONFIG_CAPI_EICON is not set
# CONFIG_ISDN_DRV_GIGASET is not set
# CONFIG_HYSDN is not set
# CONFIG_MISDN is not set
# CONFIG_NVM is not set


Versionen:
net-dialup/isdn4k-utils-3.27
net-misc/hylafax-6.0.6
net-dialup/vbox3-0.1.9.4

Bis einschließlich Kernel 4.7.10 alles wunderbar. Mit Kernel 4.8.16 (und auch 4.9 und 4.10) habe ich das Problem, daß vbox3 den Anruf nicht mehr entgegennimmt. Log:
Code:
02-Jul 18:32:56 <D> Parsing day(s) "SO"...
02-Jul 18:32:56 <D> Range SO: match.
02-Jul 18:32:56 <D> Call will be answered after 1 ring(s).
02-Jul 18:32:56 <D> Reading modem answer (6s timeout)...
02-Jul 18:33:02 <D> *** Timeout [14] ***
02-Jul 18:33:02 <W> Can't read from modem [0] (timeout).
02-Jul 18:33:02 <D> Hangup modem (drop dtr 400 ms)...
02-Jul 18:33:02 <D> Flushing modem (with timeout)...


Korrekte Annahme bis 4.7 sieht so aus:
Code:
02-Jul 18:36:48 <D> Parsing day(s) "SO"...
02-Jul 18:36:48 <D> Range SO: match.
02-Jul 18:36:48 <D> Call will be answered after 1 ring(s).
02-Jul 18:36:48 <D> Reading modem answer (6s timeout)...
02-Jul 18:36:53 <D> Creating directory "/var/spool/vbox/phone"...
02-Jul 18:36:53 <D> Creating directory "/var/spool/vbox/phone/new"...
02-Jul 18:36:53 <D> Creating directory "/var/spool/vbox/phone/msg"...
02-Jul 18:36:53 <D> Creating directory "/var/spool/vbox/phone/tcl"...
02-Jul 18:36:53 <A> Answering call...
02-Jul 18:36:53 <D> Tcl variable "vbxv_savetime" set to "0".


Hylafax funktioniert mit 4.8 und folgenden übrigens einwandfrei.

Mir ist klar, daß vbox3 schon lange nicht mehr gepflegt wird, aber ich habe bisher keine brauchbare Alternative für mich gefunden.

Wer kann mir sagen, was sich mit Kernel 4.8 geändert hat, daß dieses Verhalten im ISDN-Bereich erklärt. Mir war nicht aufgefallen, daß 4.8 Änderungen bei ISDN enthält.

Christian
Back to top
View user's profile Send private message
arfe
Apprentice
Apprentice


Joined: 24 Aug 2005
Posts: 186
Location: Essen

PostPosted: Fri Jul 07, 2017 5:30 pm    Post subject: Reply with quote

Vermutlich verwendest Du meine Patches, weil AVM für die Fritz-PCI die Treiberentwicklung komplett eingestellt hat.

Aktuell gibt es von mir diese Patches und laufen bis Kernel 4.11 und vermutlich auch für 4.12, aber ich es habe
noch nicht getestet und würde ggf. auch dazu ein Patch nachliefern.

-rw-r--r-- 1 portage portage 444 26. Jun 2015 fcpci-gcc-4.9.patch
-rw-r--r-- 1 portage portage 4358 26. Jun 2015 fcpci-kernel-2.6.34.patch
-rw-r--r-- 1 portage portage 1663 26. Jun 2015 fcpci-kernel-2.6.39-amd64.patch
-rw-r--r-- 1 portage portage 850 26. Jun 2015 fcpci-kernel-2.6.39.patch
-rw-r--r-- 1 portage portage 781 26. Jun 2015 fcpci-kernel-3.10.0.patch
-rw-r--r-- 1 portage portage 336 26. Jun 2015 fcpci-kernel-3.2.0.patch
-rw-r--r-- 1 portage portage 342 26. Jun 2015 fcpci-kernel-3.4.0.patch
-rw-r--r-- 1 portage portage 1838 26. Jun 2015 fcpci-kernel-3.8.0.patch
-rw-r--r-- 1 portage portage 315 3. Jul 2015 fcpci-kernel-4.1.0.patch
-rw-r--r-- 1 portage portage 519 13. Dez 2016 fcpci-kernel-4.9.0.patch
-rw-r--r-- 1 portage portage 903 3. Jul 2015 fcpci-kernel-warnings.patch
Back to top
View user's profile Send private message
hopsi
n00b
n00b


Joined: 02 Jul 2017
Posts: 5

PostPosted: Fri Jul 07, 2017 8:50 pm    Post subject: Reply with quote

Die Patches sehen bei mir so ähnlich aus.

4.1.0 und 4.9.0 haben bei mir eine andere Länge, dürften aber ähnlich aussehen.

Code:
nodi ~ # cat /usr/local/portage/local/net-dialup/fcpci/files/fcpci-kernel-4.1.0.patch
diff -urN s01/src/driver.c s02/src/driver.c
--- s01/src/driver.c    2014-01-14 21:25:32.000000000 +0100
+++ s02/src/driver.c    2015-10-03 23:16:55.717706993 +0200
@@ -91,6 +91,14 @@
 # error You must define a card identifier...
 #endif

+/* deprecated IRQF_DISABLED is a NOOP for a long time.
+ * The flag was removed entirely with kernel 4.1.
+ */
+#ifndef IRQF_DISABLED
+# define IRQF_DISABLED 0x0
+#endif
+
+
 /*---------------------------------------------------------------------------*\
 \*---------------------------------------------------------------------------*/
 card_t *                       capi_card               = NULL;


Code:
nodi ~ # cat /usr/local/portage/local/net-dialup/fcpci/files/fcpci-kernel-4.9.0.patch
--- fritz/src/driver.c~ 2017-05-24 12:10:41.000000000 +0200
+++ fritz/src/driver.c  2017-05-24 12:36:10.303778208 +0200
@@ -24,5 +24,4 @@
 #include <asm/irq.h>
 #include <asm/atomic.h>
-#include <asm/switch_to.h>
 #include <linux/version.h>
 #include <linux/ioport.h>
@@ -53,4 +52,5 @@
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
+#include <asm/switch_to.h>

 /*---------------------------------------------------------------------------*\


fcpci-kernel-warnings.patch habe ich nicht. Der Name klingt aber nicht kriegsentscheidend.

patch 4.9.0 ist auch gar nicht aktiv, ich habe die Probleme ja bereits ab 4.8 (auch 4.9 und 4.10). Kernel 4.7 läuft problemlos.

Wie geschrieben, läuft vbox3 ab Kernel 4.8 in einen timeout und nimmt den Anruf nicht an.

Christian
Back to top
View user's profile Send private message
arfe
Apprentice
Apprentice


Joined: 24 Aug 2005
Posts: 186
Location: Essen

PostPosted: Sat Jul 08, 2017 9:54 pm    Post subject: Reply with quote

Du scheinst nur einen Teil von meinen Patches bei Dir zu verwenden.


Für 4.9.0 muss er so aussehen und nicht wie bei Dir:

Code:
--- fritz/src/driver.c_orig     2016-12-13 21:57:40.774608946 +0100
+++ fritz/src/driver.c  2016-12-13 22:06:53.213669425 +0100
@@ -20,13 +20,13 @@
  * Contact: AVM GmbH, Alt-Moabit 95, 10559 Berlin, Germany, email: info@avm.de
  */
 
+#include <linux/sched.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 #include <asm/atomic.h>
 #include <asm/switch_to.h>
 #include <linux/version.h>
 #include <linux/ioport.h>
-#include <linux/sched.h>
 #include <linux/interrupt.h>
 #include <linux/export.h>
 #include <linux/spinlock.h>


4.9.0 unterdrückt nicht nur die Warnings:

Code:
--- fritz/src/driver.c  2015-07-03 22:07:29.722401231 +0200
+++ fritz/src/driver.c.old      2015-07-03 22:08:59.024406871 +0200
@@ -362,7 +362,6 @@
                return FALSE;
        }
 #endif
-       card->data = (unsigned) &irq_handler;
        tasklet_init (&scheduler_tasklet, scheduler, 0);
        disable_scheduler ();
        result = request_irq (
--- fritz/src/driver.h  2015-07-03 22:07:29.361401208 +0200
+++ fritz/src/driver.h.old      2015-07-03 22:08:51.454406393 +0200
@@ -40,7 +40,6 @@
        unsigned                                                base;
        unsigned                                                irq;
        unsigned                                                info;
-       unsigned                                                data;
        char *                                                  version;
        char *                                                  string[8];
        unsigned                                                count;
--- fritz/src/lib.c     2006-01-05 00:00:00.000000000 +0100
+++ fritz/src/lib.c.old 2015-07-03 22:09:15.622407919 +0200
@@ -40,7 +40,7 @@
 #include "devif.h"
 #endif
 
-#define        PRINTF_BUFFER_SIZE      1024
+#define        PRINTF_BUFFER_SIZE      992
 #define        TEN_MSECS               (HZ/100)
 #define JIFF2MSEC              (1000/HZ)


CAPI/ISDN funktioniert bei > 4.11 immer noch einwandfrei:

[ 3.772262] ISDN subsystem Rev: 1.1.2.3/-21" ready.
[ 3.740212] CAPI 2.0 started up with major 68 (middleware)
[ 3.773660] capidrv-1: now up (2 B channels)
[ 3.773663] capidrv-1: D2 trace enabled

capiinfo
Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.11-07 (49.23)
Serial Number: 1000001
BChannels: 2
Global Options: 0x00000039
internal controller supported
DTMF supported
Supplementary Services supported
channel allocation supported (leased lines)
B1 protocols support: 0x4000011f
64 kbit/s with HDLC framing
64 kbit/s bit-transparent operation
V.110 asynconous operation with start/stop byte framing
V.110 synconous operation with HDLC framing
T.30 modem for fax group 3
Modem asyncronous operation with start/stop byte framing
B2 protocols support: 0x00000b1b
ISO 7776 (X.75 SLP)
Transparent
LAPD with Q.921 for D channel X.25 (SAPI 16)
T.30 for fax group 3
ISO 7776 (X.75 SLP) with V.42bis compression
V.120 asyncronous mode
V.120 bit-transparent mode
B3 protocols support: 0x800000bf
Transparent
T.90NL, T.70NL, T.90
ISO 8208 (X.25 DTE-DTE)
X.25 DCE
T.30 for fax group 3
T.30 for fax group 3 with extensions
Modem

0100
0200
39000000
1f010040
1b0b0000
bf000080
00000000 00000000 00000000 00000000 00000000 00000000
01000001 00020000 00000000 00000000 00000000

Supplementary services support: 0x000003ff
Hold / Retrieve
Terminal Portability
ECT
3PTY
Call Forwarding
Call Deflection
MCID
CCBS

ls -la /dev/isdn* /dev/capi*
crw-rw---- 1 root dialout 68, 0 8. Jul 20:28 /dev/capi20
crw-rw---- 1 root dialout 45, 0 8. Jul 20:28 /dev/isdn0
crw-rw---- 1 root dialout 45, 1 8. Jul 20:28 /dev/isdn1
crw-rw---- 1 root dialout 45, 10 8. Jul 20:28 /dev/isdn10
crw-rw---- 1 root dialout 45, 11 8. Jul 20:28 /dev/isdn11
crw-rw---- 1 root dialout 45, 12 8. Jul 20:28 /dev/isdn12
crw-rw---- 1 root dialout 45, 13 8. Jul 20:28 /dev/isdn13
crw-rw---- 1 root dialout 45, 14 8. Jul 20:28 /dev/isdn14
crw-rw---- 1 root dialout 45, 15 8. Jul 20:28 /dev/isdn15
crw-rw---- 1 root dialout 45, 2 8. Jul 20:28 /dev/isdn2
crw-rw---- 1 root dialout 45, 3 8. Jul 20:28 /dev/isdn3
crw-rw---- 1 root dialout 45, 4 8. Jul 20:28 /dev/isdn4
crw-rw---- 1 root dialout 45, 5 8. Jul 20:28 /dev/isdn5
crw-rw---- 1 root dialout 45, 6 8. Jul 20:28 /dev/isdn6
crw-rw---- 1 root dialout 45, 7 8. Jul 20:28 /dev/isdn7
crw-rw---- 1 root dialout 45, 8 8. Jul 20:28 /dev/isdn8
crw-rw---- 1 root dialout 45, 9 8. Jul 20:28 /dev/isdn9
lrwxrwxrwx 1 root root 9 8. Jul 20:28 /dev/isdnctrl -> isdnctrl0
crw-rw---- 1 root dialout 45, 64 8. Jul 20:28 /dev/isdnctrl0
crw-rw---- 1 root dialout 45, 65 8. Jul 20:28 /dev/isdnctrl1
crw-rw---- 1 root dialout 45, 74 8. Jul 20:28 /dev/isdnctrl10
crw-rw---- 1 root dialout 45, 75 8. Jul 20:28 /dev/isdnctrl11
crw-rw---- 1 root dialout 45, 76 8. Jul 20:28 /dev/isdnctrl12
crw-rw---- 1 root dialout 45, 77 8. Jul 20:28 /dev/isdnctrl13
crw-rw---- 1 root dialout 45, 78 8. Jul 20:28 /dev/isdnctrl14
crw-rw---- 1 root dialout 45, 79 8. Jul 20:28 /dev/isdnctrl15
crw-rw---- 1 root dialout 45, 66 8. Jul 20:28 /dev/isdnctrl2
crw-rw---- 1 root dialout 45, 67 8. Jul 20:28 /dev/isdnctrl3
crw-rw---- 1 root dialout 45, 68 8. Jul 20:28 /dev/isdnctrl4
crw-rw---- 1 root dialout 45, 69 8. Jul 20:28 /dev/isdnctrl5
crw-rw---- 1 root dialout 45, 70 8. Jul 20:28 /dev/isdnctrl6
crw-rw---- 1 root dialout 45, 71 8. Jul 20:28 /dev/isdnctrl7
crw-rw---- 1 root dialout 45, 72 8. Jul 20:28 /dev/isdnctrl8
crw-rw---- 1 root dialout 45, 73 8. Jul 20:28 /dev/isdnctrl9
cr--r--r-- 1 root root 45, 255 8. Jul 20:28 /dev/isdninfo
Back to top
View user's profile Send private message
hopsi
n00b
n00b


Joined: 02 Jul 2017
Posts: 5

PostPosted: Mon Jul 10, 2017 5:35 am    Post subject: Reply with quote

Die capiinfo sieht bei mir genau so aus.

Code:
dmesg unter 4.7.10:
nodi ~ # dmesg |egrep -i "isdn|capi"
[    1.298412] ISDN subsystem Rev: 1.1.2.3/1.1.2.2/none/1.1.2.2/1.1.2.2
[    1.298970] CAPI 2.0 started up with major 68 (middleware)
[    3.439912] fcpci: -- 64 bit CAPI driver --
[    3.668109] kcapi: controller [001]: fcpci-e000-75 attached
[    3.668110] kcapi: controller [001] "fcpci-e000-75" ready.
[    3.668129] capidrv: controller 1 up
[    3.668136] capidrv-1: now up (2 B channels)
[    3.668137] capidrv-1: D2 trace enabled
[    7.195636] isdn: Verbose-Level is 2

dmesg unter 4.10.17:
nodi ~ # dmesg |egrep -i "isdn|capi"
[    1.811838] ISDN subsystem Rev: 1.1.2.3/
[    1.813799] CAPI 2.0 started up with major 68 (middleware)
[    2.661262] fcpci: -- 64 bit CAPI driver --
[    2.892135] kcapi: controller [001]: fcpci-e000-75 attached
[    2.892135] kcapi: controller [001] "fcpci-e000-75" ready.
[    2.892219] capidrv: controller 1 up
[    2.892226] capidrv-1: now up (2 B channels)
[    2.892227] capidrv-1: D2 trace enabled
[    4.258205] isdn: Verbose-Level is 2


Zumindest ist hier mal ein Unterschied zu sehen in der ersten Zeile. Bewerten kann ich das aber irgendwie nicht. Sollte mir das weiterhelfen?

Deinen Patch habe ich eingebaut. Sind die irgendwo online zu finden?

Christian
Back to top
View user's profile Send private message
arfe
Apprentice
Apprentice


Joined: 24 Aug 2005
Posts: 186
Location: Essen

PostPosted: Tue Jul 11, 2017 6:23 pm    Post subject: Reply with quote

Ein Teil meiner Patches liegt hier: http://data.gpo.zugaina.org/dfreise/net-dialup/fcpci/

Dennis pflegt allerdings meine Patches nicht mehr ein, weil er vermutlich keine ISDN-Karte mehr hat.
Solltest Du eine alternative zu vbox suchen, dann nimm capisuite-0.5 aus dem o.g. GITHUB.
Den hatte ich auch damals entsprechend Patches geliefert.
Back to top
View user's profile Send private message
hopsi
n00b
n00b


Joined: 02 Jul 2017
Posts: 5

PostPosted: Tue Jul 11, 2017 6:42 pm    Post subject: Reply with quote

capisuite schaue ich mir mal an. vbox ist ein totes Pferd, fürchte ich.

Kernel 4.7 und 4.8 habe ich mal im ISDN-Zweig verglichen. Da ist nichts von Belang verändert. Von daher muß es irgendwo anders liegen. Und damit wird's schwierig...

Danke für die Hilfe soweit,
Christian
Back to top
View user's profile Send private message
hopsi
n00b
n00b


Joined: 02 Jul 2017
Posts: 5

PostPosted: Fri Jul 21, 2017 4:20 pm    Post subject: Reply with quote

So, capisuite läuft einwandfrei, derzeit mit Kernel 4.10.

Gegenüber vbox3 haben mir ein paar Einstellungsmöglichkeiten gefehlt, die konnte ich aber nachrüsten, so daß ich meine Scripte nur geringfügig anpassen muß.

Nachgerüstet habe ich:
ab_killswitch: wenn Datei vorhanden, dann geht der AB nicht ran
ab_answerall: wenn Datei vorhanden, dann geht der AB immer ran (jeweils unabhängig von den definierten Zeitfenstern)
Zeitfenster: nach Wochentagen konfigurierbar, wann der AB rangehen soll.

In der answering_machine.conf wird das dann in der user-section z.B. so konfiguriert:

Code:
# ab_killswitch: touch file to disable answeringmachine
ab_killswitch="/etc/capisuite/capisuite.off"
# ab_answerall: touch file to answer all calls on voice_number
ab_answerall="/etc/capisuite/capisuite.answerall"
# define times to answer calls on voice_numer
# format: german weekdays mo,di,mi,do,fr,sa,so for monday to sunday
# multiple time-intervals possible
# example: mo="19:00-23:59,00:00-07:39"
# example: so="00:00-23:59"
mo="19:00-23:59,00:00-07:39"
di="19:00-23:59,00:00-07:39"
mi="19:00-23:59,00:00-07:39"
do="19:00-23:59,00:00-07:39"
fr="19:00-23:59,00:00-07:39"
sa="13:30-23:59,00:00-07:39"
so="00:00-23:59"



Code:
files # cat capisuite-add-some-functions.patch
--- scripts/incoming.py.bak     2017-07-13 18:36:02.257048787 +0200
+++ scripts/incoming.py 2017-07-17 09:14:18.780853365 +0200
@@ -14,5 +14,5 @@

 # general imports
-import time, os
+import datetime, time, os

 # CapiSuite imports
@@ -51,4 +51,7 @@
         return

+    now = datetime.date.today()
+    wd = ("mo", "di", "mi", "do", "fr", "sa", "so")[now.weekday()]
+
     for user in config.listUsers():
         # accept a voice call on 'voice_numbers'
@@ -56,4 +59,33 @@
             numbers = config.getList(user, 'voice_numbers')
             if numbers == ["*"] or call.to_nr in numbers:
+                if config.has_option(user, 'ab_killswitch'):
+                    ab_killswitch = config.getUser(user, 'ab_killswitch')
+                    if os.path.isfile(ab_killswitch):
+                        call.log("call from %s to %s ignoring due to off-file" % (call.from_nr, call.to_nr), 1)
+                        call.reject(1)
+                        return
+                if config.has_option(user, 'ab_answerall'):
+                    ab_answerall = config.getUser(user, 'ab_answerall')
+                    if os.path.isfile(ab_answerall):
+                        call.log("answering call from %s to %s due to answerall-file" % (call.from_nr, call.to_nr), 1)
+                        #in_zeitfenster = 1
+                        break
+                if config.has_option(user, wd):
+                    in_zeitfenster = 0
+                    ABactive = config.getList(user, wd)
+                    for ABarray in ABactive:
+                        ABhours = ABarray.split('-')
+                        now = time.strftime("%H:%M")
+                        call.log("AB active on %s: from %s till %s. Now: %s" % (wd, ABhours[0], ABhours[1], now), 1)
+                        if ABhours[0] < now < ABhours[1]:
+                            call.log("%s in timeframe %s, %s - %s" % (now, wd, ABhours[0], ABhours[1]),1)
+                            in_zeitfenster = 1
+                            break
+                        else:
+                            call.log("%s is not in timeframe %s, %s - %s" % (now, wd, ABhours[0], ABhours[1]), 1)
+                    if in_zeitfenster == 0:
+                        call.log("Voice call outside timeframe for %s, do not answer" % wd, 1)
+                        call.reject(1)
+                        return
                 if service in (core.SERVICE_VOICE, ):
                     break


Ich muß dazusagen, daß ich bisher noch nie python-code geschrieben habe. Sofern das also programmiertechnisch alles Käse ist, bitte gerne verbessern.

Aber vielleicht kann das ja jemand brauchen.

Christian
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum