[HowTo] Erweiterter USB-Printserver, insbesondere Drucker ein und aus schalten

Er hat ja das AVM strace benutzt. Das ist wahrscheinlich nicht die neue Version?

Gruß
Oliver
 
Gut möglich. Dann wäre es noch interessant, unser strace ohne Replace Kernel auszuprobieren.
Habe ich heute morgen gemacht, und da endet die Ausgabe auch nach dem fork().

Wenn Du strace mit Option -f aufgerufen hast, dann ist schon mal die Frage geklärt, ob die Option -f mit dem original Kernel funktioniert.
Ich habe es genau so aufgerufen, wie von dir vorgeschlagen:
Code:
strace -fs200 -o /tmp/printserv.txt printserv ...

Ich bin mir nicht sicher. Aber das Thema hatten wir schon mal. Zum Einen haben wir auch für 2.6.32 noch den scall-32 Kernel Patch.
Ist der Patch immer aktiv wenn ich "replace kernel" auswähle? Im kernel-menuconfig konnte ich auf Anhieb nichts dazu finden.

Weitere Tests folgen heute Abend...
 
Ja, du musst nur "replace kernel" auswählen.

Gruß
Oliver
 
Das ist das freetz-strace mit replace kernel.
Da scheint es nicht in den Hintergrund zu gehen, sondern bleibt in der Shell hängen, egal ob ich printserv oder rc.printserv aufrufe.

Die Ausgabe sieht so aus, nur die letzten 6 Zeilen sind neu:
Code:
root@fritz:/var/mod/root# cat /tmp/printserv.txt
5612  execve("/usr/bin/printserv", ["printserv", "-p", "9100", "-d", "/dev/usblp0"], [/* 228 vars */]) = 0
5612  old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x2aaad000
5612  open("/usr/lib/freetz/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
5612  open("/mod/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
5612  open("/lib/libgcc_s.so.1", O_RDONLY) = 3
5612  fstat(3, {st_mode=S_IFREG|0755, st_size=56384, ...}) = 0
5612  old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x2aaae000
5612  read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\200\32\0\0004\0\0\0000\330\0\0\7\20\0P4\0 \0\7\0(\0\32\0\31\0\0\0\0p\24\1\0\0\24\1\0\0\24\1\0\0\30\0\0\0\30\0\0\0\4\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\300\325\0\0\300\325\0\0\5\0\0\0\0\0\1\0\1\0\0\0\300\325\0\0\300\325\1\0\300\325\1\0\200\1\0\0\220\3\0\0\6\0\0\0\0\0\1\0\2\0\0\0,\1\0\0,\1\0\0,\1\0\0\360\0\0\0\360\0\0\0\7\0\0\0\4\0\0\0P\345tdp\311\0\0p\311\0\0p\311\0\0\254\2\0\0"..., 4096) = 4096
5612  old_mmap(NULL, 122880, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabe000
5612  old_mmap(0x2aabe000, 54720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aabe000
5612  old_mmap(0x2aadb000, 1856, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x2aadb000
5612  close(3)                          = 0
5612  munmap(0x2aaae000, 4096)          = 0
5612  open("/usr/lib/freetz/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
5612  open("/mod/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
5612  open("/lib/libc.so.0", O_RDONLY)  = 3
5612  fstat(3, {st_mode=S_IFREG|0755, st_size=418588, ...}) = 0
5612  old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x2aaae000
5612  read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0000\257\0\0004\0\0\0\324_\6\0\7\20\0P4\0 \0\n\0(\0\25\0\24\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0@\1\0\0@\1\0\0\5\0\0\0\4\0\0\0\3\0\0\0\260K\6\0\260K\6\0\260K\6\0\30\0\0\0\30\0\0\0\4\0\0\0\4\0\0\0\0\0\0pt\1\0\0t\1\0\0t\1\0\0\30\0\0\0\30\0\0\0\4\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 L\6\0 L\6\0\5\0\0\0\0\0\1\0\1\0\0\0\224M\6\0\224M\7\0\224M\7\0x\21\0\0"..., 4096) = 4096
5612  old_mmap(NULL, 507904, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aadc000
5612  old_mmap(0x2aadc000, 412704, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aadc000
5612  old_mmap(0x2ab50000, 7948, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x64000) = 0x2ab50000
5612  old_mmap(0x2ab52000, 21888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ab52000
5612  close(3)                          = 0
5612  munmap(0x2aaae000, 4096)          = 0
5612  open("/mod/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
5612  open("/lib/libc.so.0", O_RDONLY)  = 3
5612  fstat(3, {st_mode=S_IFREG|0755, st_size=418588, ...}) = 0
5612  close(3)                          = 0
5612  stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21528, ...}) = 0
5612  mprotect(0x2ab50000, 4096, PROT_READ) = 0
5612  mprotect(0x2aabc000, 4096, PROT_READ) = 0
5612  ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
5612  ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
5612  fork()                            = 5613
5612  exit(0)                           = ?
5613  setsid()                          = 5613
5613  socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
5613  setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
5613  bind(3, {sa_family=AF_INET, sin_port=htons(9100), sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)
5613  listen(3, 1)                      = 0
5613  accept(3, root@fritz:/var/mod/root#
 
Zuletzt bearbeitet:
Zur Klarstellung, das ist strace von Freetz und Kernel von AVM?

In diesem Fall konnte strace dem fork folgen. Die Zeile "bind ... EADDRINUSE" fast ganz unten besagt, dass der Port belegt ist. Dies kann entweder der eingebaute Printserver von AVM sein oder dieser printserv läuft bereits.

Das strace nicht in den Hintergrund geht, ist normal.
 
Sorry, das war das freetz-strace mit replace kernel, ich hab es oben korrigiert.

Beim AVM kernel haben beide strace die gleiche Ausgabe/Verhalten.

Mit der Änderung (close() ... dup()) vor dem fork sieht die strace-Ausgabe (freetz-strace, freetz-kernel) so aus:
Code:
12538 execve("/usr/bin/printserv", ["printserv", "-p", "9100", "-d", "/dev/usblp0"], [/* 68 vars */]) = 0
12538 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x2aaad000
12538 open("/usr/lib/freetz/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/mod/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/mod/usr/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/lib/libgcc_s.so.1", O_RDONLY) = 3
12538 fstat(3, {st_mode=S_IFREG|0755, st_size=56384, ...}) = 0
12538 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x2aaae000
12538 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\200\32\0\0004\0\0\0000\330\0\0\7\20\0P4\0 \0\7\0(\0\32\0\31\0\0\0\0p\24\1\0\0\24\1\0\0\24\1\0\0\30\0\0\0\30\0\0\0\4\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\300\325\0\0\300\325\0\0\5\0\0\0\0\0\1\0\1\0\0\0\300\325\0\0\300\325\1\0\300\325\1\0\200\1\0\0\220\3\0\0\6\0\0\0\0\0\1\0\2\0\0\0,\1\0\0,\1\0\0,\1\0\0\360\0\0\0\360\0\0\0\7\0\0\0\4\0\0\0P\345tdp\311\0\0p\311\0\0p\311\0\0\254\2\0\0"..., 4096) = 4096
12538 old_mmap(NULL, 122880, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabe000
12538 old_mmap(0x2aabe000, 54720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aabe000
12538 old_mmap(0x2aadb000, 1856, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x2aadb000
12538 close(3)                          = 0
12538 munmap(0x2aaae000, 4096)          = 0
12538 open("/usr/lib/freetz/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/mod/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/mod/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/lib/libc.so.0", O_RDONLY)  = 3
12538 fstat(3, {st_mode=S_IFREG|0755, st_size=418588, ...}) = 0
12538 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x2aaae000
12538 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0000\257\0\0004\0\0\0\324_\6\0\7\20\0P4\0 \0\n\0(\0\25\0\24\0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0@\1\0\0@\1\0\0\5\0\0\0\4\0\0\0\3\0\0\0\260K\6\0\260K\6\0\260K\6\0\30\0\0\0\30\0\0\0\4\0\0\0\4\0\0\0\0\0\0pt\1\0\0t\1\0\0t\1\0\0\30\0\0\0\30\0\0\0\4\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 L\6\0 L\6\0\5\0\0\0\0\0\1\0\1\0\0\0\224M\6\0\224M\7\0\224M\7\0x\21\0\0"..., 4096) = 4096
12538 old_mmap(NULL, 507904, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aadc000
12538 old_mmap(0x2aadc000, 412704, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aadc000
12538 old_mmap(0x2ab50000, 7948, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x64000) = 0x2ab50000
12538 old_mmap(0x2ab52000, 21888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ab52000
12538 close(3)                          = 0
12538 munmap(0x2aaae000, 4096)          = 0
12538 open("/mod/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/mod/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
12538 open("/lib/libc.so.0", O_RDONLY)  = 3
12538 fstat(3, {st_mode=S_IFREG|0755, st_size=418588, ...}) = 0
12538 close(3)                          = 0
12538 stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21528, ...}) = 0
12538 mprotect(0x2ab50000, 4096, PROT_READ) = 0
12538 mprotect(0x2aabc000, 4096, PROT_READ) = 0
12538 ioctl(0, TIOCNXCL, 0x7f8f2e08)    = -1 ENOTTY (Inappropriate ioctl for device)
12538 ioctl(1, TIOCNXCL, 0x7f8f2e08)    = -1 EINVAL (Invalid argument)
12538 close(0)                          = 0
12538 close(1)                          = 0
12538 close(2)                          = 0
12538 open("/dev/null", O_RDWR|O_LARGEFILE) = 0
12538 dup(0)                            = 1
12538 dup(0)                            = 2
12538 fork()                            = 12539
12538 exit(0)                           = ?
12539 setsid()                          = 12539
12539 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
12539 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12539 bind(3, {sa_family=AF_INET, sin_port=htons(9100), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
12539 listen(3, 1)                      = 0
12539 accept(3,

und das WebIF bleibt nicht mehr hängen (ohne strace).
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.