Linux

Posts filed under Linux

SIP-Trunk auf Telekom Company Flex braucht Contact-Header

Filed in Asterisk, Linux, Telefonie

Die Umstellung von Asterisk mit chan_pjsip war aufwendiger, als gedacht. Ankommende Gespräche sind gut im Netz dokumentiert, abgehende eher widersprüchlich. Die Fehlermeldung im Debug-Protokoll ist 403, Asterisk meldet dann ein „Everyone is busy/congested at this time“. Die eine, entscheidende Anpassung war, in der pjsip.conf im Eintrag mit „type=endpoint“ die mit „+49199“ beginnende Anschlussnummer des Trunks hinzuzufügen:

contact_user=+49199296XXXXXXXXXXXX

Dann gehen abgehende Gespräche. Steht so auch in der Telekom-Dokumentation für den SIP-Trunk Telekom-Dokumentation für den SIP-Trunk auf Seite 25, mögen andere auch heulen, dass es in den RFCs anders steht oder dass niemand dies Feld auswerten würde.

Pulseaudio Startprobleme

Filed in Allgemein, Linux, xfce

Nach dem dem Upgrade und Wechsel zu Devuan stellte ich fest, dass auf den Diskless betriebenen Arbeitsplätzen unter XFCE kein Lautstärkeregler mehr in der Leiste war. Ein manueller Start von pavucontrol brachte ein Fenster mit dem Text »Baue Verbindung zu PulseAudio auf. Bitte Warten…«. Erwartungsgemäß hätte ich da lange warten können. Die Suche nach den Ursachen brachte viele wenig hilfreiche Hinweise, die meisten Menschen, die Linux nutzen, halten anscheinend Deinstallieren und Neuinstallieren für eine Lösung.

Relativ zügig stellte ich fest, dass Pulseaudio wohl über »Automatisch gestartete Anwendungen« unter »Einstellungen->Sitzungs und Startverhalten« gestartet wird, aber wo liegen eigenlich die Konfigurationsseiten dafür? Über die Freedesktop-Seite fand ich den Ordner dafür, /etc/xdg/autostart für systemweite Konfiguration, ~/.config/autostart für persönliche, dort wird aber mit /etc/xdg/autostart/pulseaudio.desktop nur vermittels /usr/bin/start-pulseaudio-x11 das Pulseaudio-Modul für die Anbindung an den Session-Manager gestartet.

Mit etwas Mühe brachte dann aber Google doch brauchbares, es stellte sich heraus, dass der Pulseaudio-Daemon automatisch gestartet wird, wenn Audiofunktionen über die libpulse-Bibliotheken angesprochen werden, insofern ist die Beschreibung von Pulseaudio auf Ubuntu Users falsch, es handelt sich nicht um einen Systemd Service. Nebenbei musste ich feststellen, dass Pulseaudio tatsächlich aus der Hand von Lennart Poettering stammt, von dessen Systemd ich so garnichts halte.

Unter Freedesktop fand ich eine Erläuterung, wie Pulseaudio in den Konzepten von Freedesktop eingebettet wird. Dieser Autospawn über die Bibliotheken konnte also unterbunden werden über die Konfigurationsdatei von Pulseaudio vermittels:


autospawn=yes

Wie heute üblich gibt es neben der auf Freedesktop genannten Datei /etc/pulse/client.conf auch noch ein Verzeichnis /etc/pulse/client.conf.d/, und ebendort liegt mit /etc/pulse/client.conf.d/01-enable-autospawn.conf zumindest auf Debian-basierten Systemen eine Datei, die diesen Parameter offensichtlich enthalten sollte. Tatsächlich ist diese Datei aber keine Konfigurationsdatei, sondern ein Link zu /run/pulseaudio-enable-autospawn, aber auf einer Standardinstallation mit eben dem Inhalt »autospawn=yes«.

Es stellte sich also die Frage, wie füllt sich diese volatile Datei? Ein


grep pulseaudio-enable-autospawn /etc

brachte als Ergebnis die Datei /etc/init.d/pulseaudio-enable-autospawn, was so gesehen ja auch ein recht offensichtlicher Ort war. Dieses Init-Skript füllte die Datei in /run,

Am Ende war dann die Lösung, dass auf den Arbeitsplätzen in /etc/rc2.d kein Verweis auf /etc/init.d/pulseaudio-enable-autospawn vorhanden war, da ich dieses Verzeichnis auf den Arbeitsplätzen nicht automatisch verwalten lasse. Hier kam dann noch ein weiteres spannendes Phänomen zum tragen, doch dazu später mehr.

Telekom Entertain nach Wechsel auf BNG ohne VLAN 8 über Linux Router mit igmpproxy

Filed in Film, IPTV, Linux, Netzwerk

Nach der Umstellung durch die Telekom fällt neben dem Passwort-freien Zugang über PPPOE auch die Trennung von regulärem Internet über VLAN 7 und Fernsehen über VLAN 8 weg. Das Fernsehsignal kommt weiterhin per Multicast, nun aber über das normale ppp0  Interface. Zu Anfang gab es einige Probleme, diese wurden gelöst durch das zulassen des eigentlich nicht mehr benötigten Ethernet-Interfaces, das nur zum Zugang zum VDSL-Modem dient, meine Konfiguration:

igmpproxy.conf
==============
## Enable Quickleave mode (Sends Leave instantly)
quickleave

## Configuration for ppp0 (Upstream Interface)
phyint ppp0 upstream ratelimit 0 threshold 1
 altnet 87.141.0.0/16

## Configuration for eth0 (Downstream Interface)
phyint eth0 downstream ratelimit 0 threshold 1
 whitelist 239.35.0.0/16
 whitelist 232.0.0.0/8

## Configuration for eth1 (Dummy Interface)
#phyint eth1 disabled <-------- geht nicht!
phyint eth1 downstream ratelimit 0 threshold 1
 whitelist 239.35.0.0/16
 whitelist 232.0.0.0/8

## Configuration for eth2 (Disabled Interface)
#phyint lo disabled

Bis ich diese Änderung gemacht hatte, trafen die UDP-Datenpakete auf Port 10000 in der INPUT-Chain von IPTABLES auf, nicht in der FORWARD-Chain, natürlich gab es dann kein Fernsehen an den Endgeräten und mit VLC am Arbeitsplatz. Ebenfalls fiel auf, dass das ip-Kommando eine nicht stimmige Ausgabe gab:

# ip mroute
(87.141.215.251, 232.0.10.234) Iif: unresolved Oifs: eth0

Nach der Anpassung der igmpproxy.conf kam dann die richtigere Ausgabe:

# ip mroute
(87.141.215.251, 232.0.10.234) Iif: ppp0 Oifs: eth0

In der igmpproxy.conf ist hier jetzt nur der Source-Bereich für die UDP-Pakete mit den Mediendaten von 87.141.0.0/16 eingetragen, dies müsste natürlich bei etwaigen Änderungen der Telekom nachgeführt werden, die Multicast-Zielbereiche ebenfalls.

Eine gute Quelle für die Nutzung per VLC ist http://iptv.blog/artikel/multicastadressliste/, hier stehen auch Informationen über den Multicast-Stream.

Flash Plugin Linux not Working

Filed in Linux

Bei mir gingen Videos in Facebook nicht mehr, andere Dinge liefen. Die Lösung war das Umbenennen des Konfigurationsverzeichnisses:

mv $HOME/.macromedia $HOME/.macromedia.bak

PHP adodb NewADOConnection Benchmark

Filed in Linux, MySql, PHP

Da ich gerade am basteln bin und nicht gleich was im Netz fand, hab ich es einfach ausprobiert. In einer PHP-Anwendung, die ich gegenwärtig verwalte, wird für jedes SELECT eine neue Verbindung per NewADOConnection aufgemacht, die danach wieder geschlossen wird. Das kann doch nicht effizient sein, dachte ich mir, und siehe, ist es auch nicht. Auf meinem Rechner 35 Sekunden für 100000 SELECTS mit jeweils neuer Verbindung, 8 Sekunden mit einer, die recyclet wird.

Linux erkennt USB Stick nicht automatisch oder nur beim ersten Einstecken

Filed in Allgemein, KDE, Linux

Es gibt auch andere Fehlerursachen und mit diesen andere Lösungen. Diese Fehler traten bei einem Kunden unter Debian Lenny auf. Normalerweise soll unter KDE ein Fenster aufgehen, wenn man einen USB-Stick einsteckt, dies passierte aber auf diesem Rechner nicht immer, vor allem nie beim zweiten Einstecken des gleichen Sticks.

Zur Fehlersuche hatte ich hal im Debug-Modus gestartet (/etc/init.d/hal stop; hald –daemon=no –verbose=yes), hier fanden sich als Hinweise:

...
blockdev.c:1294: scsi.type is unknown
blockdev.c:1473: Not adding device object
...
blockdev.c:970: Ignoring hotplug event - no parent
blockdev.c:1473: Not adding device object
...

Hiernach gesucht fand ich die Lösung in folgendem comp.freedesktop.hal thread über die polnische digipedia:

cat /etc/udev/rules.d/05-udev-early.rules
# sysfs is populated after the event is sent
ACTION=="add", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"

Die Datei fehlte bei mir, in /etc/udev/rules.d fand sich auch keine Datei mit „ioerr_cnt“. Erstellen einer Datei mit diesem Inhalt (und natürlich Beenden des hal-Debug sowie /etc/init.d/hal start) löste beide Probleme.

Telekom IP Telefonie mit Asterisk

Filed in Allgemein, Asterisk, Linux, Netzwerk

Funktioniert hat es schließlich mit folgenden Einträgen:
sip.conf

[telekom-out]
type=friend
username=<Benutzername, wird z.B. zur Anmeldung im Kundencenter genutzt>
secret=<Kennwort, wie es zur Anmeldung im Kundencenter genutzt wird>
host=tel.t-online.de
fromdomain=tel.t-online.de
qualify=yes
canreinvite=no
allow = alaw
allow = g726
allow = gsm
allow = ulaw
dtmfmode=inband
insecure=invite

extensions.conf

exten => _XX.,1,Set(CALLERID(name)=<Tel.Nr.>
exten => _XX.,1,Set(CALLERID(num)=<Tel.Nr.>
exten => _XX.,n,Dial(SIP/${EXTEN}@telekom-out,30,tr)

In der extensions.conf kann man natürlich auch etwas mehr Funktionalität unterbringen, zum Beispiel mehrere Caller-ID:

exten => _XX.,1,Set(CALLERID(name)=${IF($[ ${SIPCHANINFO(peername)} = <Name aus sip.conf>] ? <Tel.Nr. 1> : <Tel.Nr. 2>)})
exten => _XX.,n,Set(CALLERID(num)=${IF($[ ${SIPCHANINFO(peername)} = <Name aus sip.conf>] ? <Tel.Nr. 1> : <Tel.Nr. 2>)})
exten => _XX.,n,Dial(SIP/${EXTEN}@telekom-out,30,tr)

Garmin, Openstreetmap, mkgmap und java.lang.NullPointerException – Lösung

Filed in Linux, OpenStreetMap

Beim Erstellen der gmapsupp.img Datei für ein Garmin Gerät mit dem Aufruf:
java -Xmx2000m -ea -jar /usr/share/mkgmap/mkgmap.jar --family-id=6622 --gmapsupp *.img vel66222.TYP
trat folgender Fehler auf:
Exception in thread "main" java.lang.NullPointerException
at uk.me.parabola.tdbfmt.OverviewMapBlock.setArea(OverviewMapBlock.java:100)
at uk.me.parabola.mkgmap.combiners.TdbBuilder.addToTdb(TdbBuilder.java:112)
at uk.me.parabola.mkgmap.combiners.TdbBuilder.onMapEnd(TdbBuilder.java:101)
at uk.me.parabola.mkgmap.main.Main.endOptions(Main.java:317)
at uk.me.parabola.mkgmap.CommandArgsReader.readArgs(CommandArgsReader.java:123)
at uk.me.parabola.mkgmap.main.Main.main(Main.java:100)

Nach einigem Suchen fand ich die Lösung hier, der Fehler war die vorhandene Datei osm66222_mdr.img, diese wurde durch den Aufruf mit *.img fälschlicherweise miterfasst, diese Datei umbenennen und dann geht es

FastTrak TX2650 Linux Kernel 2.6.35

Filed in Linux, SCSI

Nachdem ich feststellen musste, dass ich den Linux Support des Promis FastTrak TX2650 besser genauer vor dem Kauf angesehen hätte, musste ich nun sehen, wie ich die Investition rette. Glücklicherweise gab es viele Hinweise im Netz. Folgende Änderungn waren nötig:

  1.  Includes von <linux/ioctl32.h>ändern zu <linux/ioctl.h>
  2. Aufrufe von cmd->request_buffer zu scsi_sglist(cmd) ändern
  3. Aufrufe von cmd->use_sg zu scsi_sg_count(cmd) ändern
  4. Aufrufe von cmd->request_bufflen zu scsi_bufflen(cmd) ändern
  5. Aufrufe von sg->page zu sg_page(sg) ändern
  6. Option SA_SHIRQ in request_irq() ändern zu IRQF_SHARED

Hier ein Patch, der all dies erledigt. Ob das alles richtig ist, weiß ich zwar nicht, kompilieren lässt es sich aber so. Was leider nicht geht, ist der Betrieb von SAS-Bandlaufwerken. Hierfür war das Gerät eigentlich gedacht, und als Briefbeschwerer ist er noch dazu zu leicht.

Patch für Promis FastTrak TX2650 für Kernel 2.6.35

loophole8 auf LinuxQuestions.org

Manpage zu request_irq

Linx Kernel Mailing List via DerKeiler

Oenology Post Formats
Click to view/hide
Posts Calendar
Click to view/hide
April 2024
M D M D F S S
« Dez    
1234567
891011121314
15161718192021
22232425262728
2930  
Archive
Click to view/hide
Letzte Beiträge
Click to view/hide