mcabber Problem

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Hallo,
ich würde mcabber auf meiner Fritzbox 7170 laufen lassen. Ich habe die sourcen aus dem Freetz-trunk. Als Paket wählte ich das Mcabber Paket aus. Das Kompilieren der Firmware lief ohne probleme. Doch beim Aufrufen von Mcabber kommt nach der Passworteingabe folgende Fehlermeldung:

Error opening Terminal: xterm-color

Was kann ich tun?

viele Grüße
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Hast du mcabber statisch kompiliert?

MfG Oliver
 

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
naja, ich habe in menuconfig packages "statically link libraries" angehakt. meinst du das? Was bedeutet das?
 

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
ja das sieht schonmal gut aus. tatsächlich steht dort xterm-color. Allerdings mit welchem Wert kann ich die Variable sinnvoll setzen? nehme ich einen leeren string, kommt ein "error opening terminal: unknown" Ich habe schon probiert, die variable mit "sh" zu setzen. Allerdings ging auch das nicht.

Viele Grüße
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Wenn man "statical" auswählt, dann landen die terminfos nicht im Image.

MfG Oliver
 

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
vielen vielen Dank, daran lag es! jetzt funktioniert es! Ich habe das statical weggehakt und nun läuft es auch auf der Box. Das einzige Problem ist, dass der Speicherbedarf wohl größer geworden ist, da Lua leider nicht mehr auf das Image passt. Ich habe jetzt nur den dropbear client und mcabber installiert. Ich hätte gerne noch lua, allerdings geht es vielleicht auch mit shellscripts. Schaun wir mal.
Aber wie dem auch sei: nochmal einen herzlichen Dank und ein großes Lob an Freetz!!!
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Mist. Zu früh auf Enter gekommen. Auf alle Fälle ist der Fix jetzt drin... r2653

MfG Oliver
 
Zuletzt bearbeitet:

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
super, vielen Dank!

Ich habe vor, mcabber mit einem Script zu steuern. Das ganze soll mit fifos funktionieren.
Ich habe in make/mcabber/ die Datei mcabber.mk (quick and dirty)

ifeq ($(strip $(FREETZ_PACKAGE_MCABBER_WITH_SSL)),y)
$(PKG)_DEPENDS_ON += openssl
MYLIBS+=-lssl -lcrypto -ldl
$(PKG)_CONFIGURE_OPTIONS += --with-ssl --with-openssl=$(TARGET_MAKE_PATH)/../usr/lib
$(PKG)_CONFIGURE_OPTIONS += --enable-fifo
else
$(PKG)_CONFIGURE_OPTIONS += --without-ssl
$(PKG)_CONFIGURE_OPTIONS += --enable-fifo
endif

entsprechend geändert. Ich würde das gerne als Option für Menuconfig integrieren. Vielleicht ist es möglich, das auch gleich ins SVN einzuchecken?

Viele Grüße!
 

McNetic

Mitglied
Mitglied seit
7 Feb 2007
Beiträge
674
Punkte für Reaktionen
0
Punkte
16
Ich denke schon. Mach am besten ein Ticket auf und häng einen funktionierenden Patch an.
 

matze1985

Aktives Mitglied
Mitglied seit
17 Feb 2007
Beiträge
1,537
Punkte für Reaktionen
0
Punkte
0
könnest du mir sagen, wie das mit fifo funktioniert?
ich kann auch gerne nen patch erstellen, der das ganze per make menuconfig wählbar macht.
 

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Um Fifos zu aktivieren, muss mcabber letztendlich nur mit der Option --enable-fifo compiliert werden. Ich hatte das so gelöst, dass ich die Option einfach in mcabber.mk mit

$(PKG)_CONFIGURE_OPTIONS += --enable-fifo

gesetzt habe. Allerdings weiß ich nicht, wie man das offiziel in das Menu einbindet und dann eincheckt.

Viele Grüße
 

matze1985

Aktives Mitglied
Mitglied seit
17 Feb 2007
Beiträge
1,537
Punkte für Reaktionen
0
Punkte
0
in das menu kann ich das einbinden, kein thema, mache ich etwas später und poste den Patch.

Wie benutzt man das war eher meine frage :)
 

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
achso!
mal in http://www.lilotux.net/~mikael/mcabber/files/mcabber_guide.pdf im Bereich sripting gucken.
Wenn man mcabber mit der richtigen Option compiliert hat, muss man nur ein Feld in der mcabber config setzen, um den fifo support anzuschalten. Dann kann man in die Fifo die Befehle reinschreiben, mit denen man sonst mcabber steuern würde. Die Befehle werden dann asgeführt. Wie zb
echo "/say hallo" > meine fifo
schickt eine chat msg.
Auf Ereignisse reagieren, geht auch. Steht im Userguide.

Ich werde damit versuchen, einige Dinge zu steuern, wie zb Festplatten spindown, solange dein buddy offline ist oä

Da kann man echt viel mit machen!
 
Zuletzt bearbeitet:

matze1985

Aktives Mitglied
Mitglied seit
17 Feb 2007
Beiträge
1,537
Punkte für Reaktionen
0
Punkte
0
danke schaue es mir mal an und werde nachher mal nen patch erstellen.

edit:
versuch mal den angehängten patch.
 

Anhänge

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
vielen Dank! Werde ich heute Abend mal ausprobieren.

Viele Grüße
 

matze1985

Aktives Mitglied
Mitglied seit
17 Feb 2007
Beiträge
1,537
Punkte für Reaktionen
0
Punkte
0
das schein ja wirklich ne feine sache zu sein.
Es funktioniert wirklich mcabber von außen zu steuern.
meine Konfog sieht so aus:
Code:
set username = XXXXXXX
set server = jabber.org
set resource = console
set priority = 1
#Für den Automatischen Login
set password = XXXXXXX
set ssl = 1
set ssl_verify = 0
set fifo_name = /var/tmp/mcabber.fifo
set logging = 1
set load_logs = 1
set logging_dir = /var/media/ftp/stick/mcabber/logs
set event_log_files = 1
set event_log_dir = /var/media/ftp/stick/mcabber/events
#Ich will unsichtbar sein :)
set hook-post-connect = status invisible
damit kann ich mich automatisch einloggen und auch per fifo steuern, z.b. schreibt
Code:
echo "/say_to [email protected] hallo" > /tmp/mcabber.fifo
mir eine kleine nachricht oder
Code:
 echo "/quit" > /tmp/mcabber.fifo
schließt mcabber.

Leider habe ich erst eine möglichkeit gefunden mcabber im hintergrund laufen zu lassen, nämlich screen, dass sieht z.b. so aus:
Code:
screen -dmS mcabber mcabber
Damit wird eine Screensession gestartet mit dem namen mcabber, in dieser Session wird mcabber gestartet und die Session wird detached (also in den Hintergrund gelegt, man ist also wieder in seiner Konsole).
Wenn man mcabber in dieser session per
Code:
 echo "/quit" > /tmp/mcabber.fifo
beendet wird die session auch automatisch beendet.

Gibt es noch eine andere Möglichkeit dafür(ohne screen)? ("mcabber &" oder "mcabber >> /dev/null 2>&1 &" funktionieren nicht, dort bleib mcabber einfach stehen und initialisiert sich nicht :( )

Echt ne schöne sache, werde nachher mal die events_commands anschauen mit denen man events nach aktionen triggern kann, also z.b. beim online kommen eines bestimmten budduys ne aktion ausführen.

Man kann auch ne menge hinweise in der bsp-config dazu finden.


edit:

hab noch mal etwas mit dem events_command gespielt, wenn man die zeile
Code:
set events_command = /var/media/ftp/stick/mcabber/eventcmd
dann wird das script /var/media/ftp/stick/mcabber/eventcmd bei jedem event in der folgenden weise aufgerufen:
Code:
   /var/media/ftp/stick/mcabber/eventcmd MSG IN [email protected] [file] (when receiving a message)
   /var/media/ftp/stick/mcabber/eventcmd MSG OUT [email protected]       (when sending a message)
   /var/media/ftp/stick/mcabber/eventcmd MSG MUC room_id [file]  (when receiving a MUC message)
   /var/media/ftp/stick/mcabber/eventcmd STATUS X [email protected]      (new buddy status is X)
   /var/media/ftp/stick/mcabber/eventcmd UNREAD N                (number of unread buddy buffers)
Will man also aut ein ereignis einer bestimmten person reagieren, dann muss man die Parameter $1 und $2 und $3 richtig filter. Ist auch nciht sehr schwer.
In dem file bei einkommenden Nachrichten steht dann auch die Nachricht. (so könne man auch Komandos auf der Box ausführen per jabber :) )
 
Zuletzt bearbeitet:

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
Es gäbe noch dteach im Freetz. Ein screen-Ähnliches Verhalten wird dort erzeugt., Man kann Prozesse von der Login-Shell abkoppeln und sie in den Hintergrund schicken. Als weiteres könntest du versuchen , den Prozess mit nohup in den Hintergrund zu schicken, auch dann sollte das Schließen der Shell nichts mehr machen "nohup Command &" . Dort wird dann in die Datei "nohup.out" alles geschrieben, was das Programm denn so von sich gibt.
 

pioupus

Neuer User
Mitglied seit
14 Okt 2008
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Super, dein Patch funktioniert! Die Option erscheint jetzt im menuconfig. Kann man das vielleicht sogar ins svn einchecken?

Das mit der Fifo ist wirklich praktisch. Ich habe auch vor, die Fritzbox damit fernzusteuern. Zusätzlich werde ich einen kleinen USBstick bauen, der ein Solidstate Relais und einen 433MHz Transmitter steuern kann. Und dann wird es wirklich interessant das mit mcabber zu kombinieren, was ja nun offensichtlich geht.
Das Problem, dass die Konsole gesperrt ist, konnte ich mit

nohup mcabber &

wunderbar lösen(Danke @ Silent-Tears!). Wie groß wird denn eigentlich die nohup.out? Kann das ein Problem werden? muss man si hinterher manuell löschen?

Viele Grüße!
 

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
Keine Ahnung, wie groß die nohup.out wird. Aber mit
Code:
nohup befehl > /dev/null 2>&1
ist die Größe = 0 ;)