[Gelöst] BusyBox v1.18.5: touch -t geht nicht

wichard

IPPF-Promi
Mitglied seit
16 Jun 2005
Beiträge
6,954
Punkte für Reaktionen
0
Punkte
36
Moin,

in Anlehnung an den Thread "BusyBox 1.8.2: [touch -t] geht nicht" ein neuer Thread für den neuen Kernel.

Ich würde gerne auf meiner 7390 (84.05.04freetz-devel-7415M) Asterisk-Callfiles für ein bestimmtes Datum / Uhrzeit anlegen.

Code:
root@fritz:/var/mod/root# touch -t 1107311230 test.txt
touch: invalid option -- t
BusyBox v1.18.5 (2011-07-25 14:58:14 CEST) multi-call binary.

Usage: touch [-c] [-d DATE] [-r FILE] FILE [FILE]...

Update the last-modified date on the given FILE[s]

Options:
        -c      Don't create files
        -d DT   Date/time to use
        -r FILE Use FILE's date/time

root@fritz:/var/mod/root# touch -d 1107311230 test.txt
touch: invalid option -- d
BusyBox v1.18.5 (2011-07-25 14:58:14 CEST) multi-call binary.

Usage: touch [-c] [-d DATE] [-r FILE] FILE [FILE]...

Update the last-modified date on the given FILE[s]

Options:
        -c      Don't create files
        -d DT   Date/time to use
        -r FILE Use FILE's date/time

root@fritz:/var/mod/root#

Die im oben verlinkten Thread in #4 zur Verfügung gestellten coreutils-7.6-mips.tar.gz scheinen auf dem neuen Kernel (?) nicht mehr zu funktionieren:
Code:
root@fritz:/var/tmp# ./touch -t 1107311300 test.txt
./touch: line 1: syntax error: unexpected "("

Bitte um Hilfe... Danke!
 
root@fritz:/var/mod/root#[/code]Die im oben verlinkten Thread in #4 zur Verfügung gestellten coreutils-7.6-mips.tar.gz scheinen auf dem neuen Kernel (?) nicht mehr zu funktionieren:
Code:
root@fritz:/var/tmp# ./touch -t 1107311300 test.txt
./touch: line 1: syntax error: unexpected "("
Bitte um Hilfe... Danke!
Im Anhang ein Paket (mit einem Patch aus openWRT) mit dem Du in deinem Build-System für dein Freetz (Kernel + Architektur), die gestrippten binaries der coreutils in der Version 8.8 selber kompilieren kannst. ACHTUNG: Nicht mit dem Freetz-Image auf die Box flashen, da Überschneidungen mit der busybox sehr wahrscheinlich.
 

Anhänge

  • coreutils_8_8.patch.txt
    3.6 KB · Aufrufe: 1
Busybox kennt diese Optionen, aktiviert sie aber nur mit der Config-Option DESKTOP, seltsamerweise.
In Im aktuellen GIT ist wenigstens die Hilfe so angepasst, dass sie dies berücksichtigt.
Du könntest an Busybox schreiben, dass diese Optionen generell freigeschaltet werden sollten, zumal die Platzeinsprung dadurch sehr klein ist.

Dass das Programme für andere/ältere Firmware nicht funktioniert, liegt nie am Kernel, sondern an den verwendeten Libraries. AVM hat nur zusammen mit dem Kernel auch die Libraries geändert, und seither hält sich das Gerücht, es hätte etwas mit Kernel-Versionen zu tun.

In Deinem Fall vermute ich aber, dass die Architektur nicht stimmt. Du kannst mal schauen, was das Kommando file zu der ausführbaren Datei sagt.
 
..., was das Kommando file zu der ausführbaren Datei sagt.
Auf einer 7240 mit der 88er-Firmware:
Code:
root@fritz:/var/media/ftp/uStor01/ample# /var/media/ftp/uStor01/archiv/[B]file ./touch[/B]
./touch: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
Code:
root@fritz:/var/media/ftp/uStor01/ample#[B] ldd ./touch[/B]
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aabe000)
        libc.so.0 => /lib/libc.so.0 (0x2aadc000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
EDIT:

Im Anhang das Paket (ohne Patches von openWRT ;-) ) für die aktuelle Version 8.12 coreutils.
 

Anhänge

  • coreutils_8_12.patch.txt
    3.1 KB · Aufrufe: 4
Zuletzt bearbeitet:
Sorry für die späte Rückmeldung, aber erst mal musste durfte ich Fußbodenbeläge im Keller verlegen.

Folgendes habe ich versucht, ich bin mir aber eines Erfolgs nicht wirklich sicher:
Im Freetz-Linux (VMware) -> "svn up" auf den aktuellen Trunk
"patch -p0 < coreutils_8_12.patch"
"make menuconfig" - da habe ich aber keine Coreutils gefunden?

OK, zweiter Versuch:
"make coreutils"
Nach kurzer Zeit habe ich wieder den Prompt, das war es aber auch.

Habt ihr noch einen Tipp für einen Linux-Autodidakten? Danke!


Gruß,
Wichard
 
Es gibt kein Paket coreutils in Freetz, es hat wohl jemand einfach dieses Paket übersetzt.

Ich finde es auch etwas übertrieben, dieses Paket einzusetzen. Sinnvoller wäre ein Patch, der diese Optionen in Busybox freischaltet, auch ohne dass man dafür CONFIG_DESKTOP aktivieren muss und damit Unmengen von sonstigen Funktionen aktiviert.
 
Folgendes habe ich versucht, ich bin mir aber eines Erfolgs nicht wirklich sicher:
Im Freetz-Linux (VMware) -> "svn up" auf den aktuellen Trunk
"patch -p0 < coreutils_8_12.patch"
...
Habt ihr noch einen Tipp für einen Linux-Autodidakten?
Nach dem Patchen musst Du nur "make coreutils-precompiled" machen und warten bis die binaries kompiliert sind. Dann überträgst Du im binär-Modus, das gestrippte binary "packages/target-mips_uClibc-0.9.**/coreutils-8.12/root/usr/bin/touch" auf deine Box, machst es ausführbar mit "chmod 755 ./touch" und schaust ob es entsprechend deinen Vorstellungen funktioniert. Wenn ja, dann machst in deinem Build-System "make coreutils-dirclean" und anschließend löscht Du das Verzeichnis "make/coreutils". Wenn es nicht funktioniert, dann suchen wir den Fehler.;)
 
DANKE! Du brauchst keinen Fehler suchen, das so erzeugte touch funktioniert perfekt! Jetzt fehlt mir nur noch eine vernünftig funktionierende Anbindung des Fritzbox-* an den analogen Festnetzanschluss, aber das ist eine andere Baustelle.
 
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.