Unterschiede zwischen den Revisionen 1 und 2
Revision 1 vom 2004-12-16 23:41:50
Größe: 7838
Autor: anonym
Kommentar: missing edit-log entry for this revision
Revision 2 vom 2005-05-13 19:40:43
Größe: 7765
Autor: lars
Kommentar: style
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
== BEWARE: selbst nochmal die docs lesen, sonst ist das Teil schnell Schrott! == [[TableOfContents]]

---

Die folgende Doku beschreibt die Installation der Distribution ''openwrt'' auf einem Linksys-WRT54G.

'''''
BEWARE: selbst nochmal die docs lesen, sonst ist das Teil schnell Schrott!'''''
Zeile 4: Zeile 10:
=== auf dem host ===
 * apt-get install tftp telnet
= auf dem host =
 * `apt-get install tftp telnet`
Zeile 7: Zeile 13:
  * qemu (apt-get install qemu) und /qemu-gnemul (http://fabrice.bellard.free.fr/qemu/) installieren. Dann die Zeilen
<pr
e>
  * qemu (`apt-get install qemu`) und ''/qemu-gnemul'' (http://fabrice.bellard.free.fr/qemu/) installieren. Dann vor die folgenden Zeilen `qemu-i386` setzen {{{
Zeile 10: Zeile 15:
zu
qemu-i386 $(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \
und
$(WRT54G_DIR)/release/tools/addpattern -i openwrt-linux.trx \
zu
qemu-i386
$(WRT54G_DIR)/release/tools/addpattern -i openwrt-linux.trx \
veraendern. Jetzt meldet make Erfolg.
</pre>





 * folgende Scripte ausm Netz ziehen und +x in den path legen:
$(WRT54G_DIR)/release/tools/addpattern -i openwrt-linux.trx \ }}}
 * folgende Skripte ausm Netz ziehen und +x in den path legen:
Zeile 28: Zeile 21:
=== compilieren === = compilieren =
Zeile 32: Zeile 25:
 *WRT anschliessen, Strom rein  * WRT anschliessen, Strom rein
Zeile 43: Zeile 36:
   *vorher: $(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \
   *nachher: qemu-i386 $(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \
   * vorher: `$(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \`
   * nachher: `qemu-i386 $(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \`
Zeile 48: Zeile 40:
 * eigentlich musste Dich da nur noch durchkaempfen, wenn Du besonderen Wert darauf legst, schliesslich hat p ja schon ein laufendes binary.  * eigentlich musste Dich da nur noch durchkaempfen, wenn Du besonderen Wert darauf legst, schliesslich hat p ja schon ein laufendes binary
Zeile 51: Zeile 43:
=== installieren === = installieren =
Zeile 56: Zeile 48:
 * dann folgende 3 Zeilen bei ping eingeben:
<pre>
 * dann folgende 3 Zeilen bei ping eingeben: {{{
Zeile 60: Zeile 51:
;*/n${IFS}commit
</pre>

 * dadurch wurde die Variable boot_wait gesetzt. Dadurch kann mensch tftpen, ohne das Teil zu killen. lieber nochmal nachgucken unter http://openwrt.ksilebo.net
;*/n${IFS}commit }}}
 * dadurch wurde die Variable `boot_wait` gesetzt. Nun kann mensch tftpen, ohne das Teil zu killen. lieber nochmal nachgucken unter http://openwrt.ksilebo.net
Zeile 66: Zeile 56:
  * tftp mit 192.168.1.1 starten, alles bis inkl letzte Zeile, aber exkl. <enter> bei stromlosem Router
<pre>
  * tftp mit 192.168.1.1 starten, alles bis inkl letzte Zeile, aber exkl. <enter> bei stromlosem Router {{{
Zeile 73: Zeile 62:
> put openwrt-g-code.bin
</pre>

  * router anmachen, 0.5-2 s warten, dann enter druecken, ums binary abzusenden.
> put openwrt-g-code.bin }}}
  * router anmachen, 0.5-2 s warten, dann enter drücken, ums binary abzusenden.
Zeile 78: Zeile 66:


=== Administration ===
 *es gibt ein romfs, das ist das Basissystem. Was $user sieht, das ist ein jffs, das aus symlinks aufs rom besteht. Wenn $user also was veraendern moechte, dann löscht er/sie den entsprechenden Symlink und kopiert das file aus /rom/quelle nach /ziel.
 * ipkg einrichten. Das ist meine ipkg.conf:
<pre>
= Administration =
 * es gibt ein romfs, das ist das Basissystem. Was $user sieht, das ist ein jffs, das aus symlinks aufs rom besteht. Wenn $user also was veraendern moechte, dann löscht er/sie den entsprechenden Symlink und kopiert das file aus /rom/quelle nach /ziel.
 * ipkg einrichten. Das ist meine ipkg.conf: {{{
Zeile 87: Zeile 72:
dest ram /tmp
</pre>
*nachdem ssh installiert wurde, kann z.B. telnet geloescht werden, indem das file ''/etc/init.d/!S50Services'' aus ''/rom'' kopiert und der symlink geloescht wurde. Dann die Zeile mit telnet auskommentieren. Diese Beschreibung spar ich mir ab jetzt.
dest ram /tmp }}}
 * nachdem ssh installiert wurde, kann z.B. telnet geloescht werden, indem das file ''/etc/init.d/!S50Services'' aus ''/rom'' kopiert und der symlink geloescht wurde. Dann die Zeile mit telnet auskommentieren. Diese Beschreibung spar ich mir ab jetzt.
Zeile 97: Zeile 81:
  * Kommando: brctl delif br0 eth1   * Kommando: `brctl delif br0 eth1`
Zeile 101: Zeile 85:
 * ungetestet: um logging zu aktivieren die folgenden beiden Zeilen nach /etc/inittab schreiben:  * ungetestet: um logging zu aktivieren, die folgenden beiden Zeilen nach ''/etc/inittab'' schreiben:
Zeile 108: Zeile 92:
=== kismet === == kismet ==
Zeile 119: Zeile 103:
=== config-Beispiele === == config-Beispiele ==
Zeile 129: Zeile 113:
 *WRT ist client fuer ne ad-hoc-Verbindung zu nem anderen Rechner  * WRT ist client fuer ne ad-hoc-Verbindung zu nem anderen Rechner
Zeile 135: Zeile 119:
=== allgemeine URLS === = allgemeine URLS =
Zeile 145: Zeile 129:
=== misc === = misc =
Zeile 148: Zeile 132:

TableOfContents

---

Die folgende Doku beschreibt die Installation der Distribution openwrt auf einem Linksys-WRT54G.

BEWARE: selbst nochmal die docs lesen, sonst ist das Teil schnell Schrott! Ich habs selbst geschafft, als ich versucht hab, das Ganze auf ppc zu compilen -> siehe naechsten Ansatz.

auf dem host

  • apt-get install tftp telnet

  • wenn mensch sich aufm nicht-x86-Rechner befindet, dann sollte sich ein anderer Rechner gesucht werden. Es sind zwei binaere tools dabei, die sind fuer x86, ich hab qemu benutzt, um sie trotzdem auszufuehren. Schien auch alles zu klappen, nach dem flashen sagte das Teil allerdings keinen Piep mehr. Muss allerdings nicht unbedingt daran gelegen haben, darum im folgenden trotzdem die Anleitung:
    • qemu (apt-get install qemu) und /qemu-gnemul (http://fabrice.bellard.free.fr/qemu/) installieren. Dann vor die folgenden Zeilen qemu-i386 setzen

      $(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \
      $(WRT54G_DIR)/release/tools/addpattern -i openwrt-linux.trx \ 
  • folgende Skripte ausm Netz ziehen und +x in den path legen:
    • ipkg-buildpackage
    • ipkg-build
    • ipkg-make-index

compilieren

  • docs:
  • WRT anschliessen, Strom rein
  • auf http://openwrt.ksilebo.net/ gucken, ob die angebotene Version sehr (paar Tage) nah am aktuellen Datum ist.

    • Wenn nicht: buildroot und root (das ist buildroot-openwrt) von folgenden URLs ziehen:
    • http://openwrt.ksilebo.net/cgi-bin/viewcvs.cgi/buildroot/buildroot.tar.gz

      • entpacken und reingehen
    • http://openwrt.ksilebo.net/cgi-bin/viewcvs.cgi/root/root.tar.gz

      • nach buildroot entpacken
    • im Makefile die Versionen der files anpassen:
      • bei busybox kann snapshot rein

      • fuer uclibc nach make.uclibc.mlkgehen, die URL suchen (die site-Variable), mit nem Browser besuchen und eine aktuelle Version anpassen.
    • bei nicht-x86 im file make/openwrt.mk im vorletzten Absatz bei tools/trx und toos/addchanges jeweils qemu-i386 davorsetzen:
      • vorher: $(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \

      • nachher: qemu-i386 $(WRT54G_DIR)/release/tools/trx -o openwrt-linux.trx \

    • make eingeben und der Dinge harren, die da kommen
    • make zieht noch mindestens 200MB! Die komplette mips toolchain und die wrt54g sourcen werden gezogen.
  • eigentlich musste Dich da nur noch durchkaempfen, wenn Du besonderen Wert darauf legst, schliesslich hat p ja schon ein laufendes binary

installieren

  • in der host box dhcpcd/dhclient eth0
  • Internet port einstellen (Setup). wird nicht genutzt, nur einstellen.
  • ping testen (administration/diagnostics)
  • wenn ping geht: ;ls>tmp/ping.log sollte ein directory listing bringen.

  • dann folgende 3 Zeilen bei ping eingeben:

    ;cp${IFS}*/*/nvram${IFS}/tmp/n
    ;*/n${IFS}set${IFS}boot_wait=on
    ;*/n${IFS}commit 
  • dadurch wurde die Variable boot_wait gesetzt. Nun kann mensch tftpen, ohne das Teil zu killen. lieber nochmal nachgucken unter http://openwrt.ksilebo.net

  • alle Variablen anzeigen lassen geht mit ;*/n${IFS}show>tmp/ping.log

  • jetzt hat das Teil beim Booten ne 3s-Zeitspanne fuer tftp, da kann es geflasht 192.168.1.1 werden:
    • Stecker des routers ziehen
    • tftp mit 192.168.1.1 starten, alles bis inkl letzte Zeile, aber exkl. <enter> bei stromlosem Router

      tftp 192.168.1.1 
      > binary 
      > rexmt 1 
      > verbose 
      > trace 
      > put openwrt-g-code.bin 
    • router anmachen, 0.5-2 s warten, dann enter drücken, ums binary abzusenden.
  • das Teil hat kein Passwort, wenn also doch eins erwartet wird, dann warste beim flashen nicht schnell genug.

Administration

  • es gibt ein romfs, das ist das Basissystem. Was $user sieht, das ist ein jffs, das aus symlinks aufs rom besteht. Wenn $user also was veraendern moechte, dann löscht er/sie den entsprechenden Symlink und kopiert das file aus /rom/quelle nach /ziel.
  • ipkg einrichten. Das ist meine ipkg.conf:

     1.src openwrt http://openwrt.ksilebo.net/ipkg
    src _marc_ http://wrt54g.free.fr/openwrt/b4/ipkg/
    dest root /
    dest ram /tmp 
  • nachdem ssh installiert wurde, kann z.B. telnet geloescht werden, indem das file /etc/init.d/!S50Services aus /rom kopiert und der symlink geloescht wurde. Dann die Zeile mit telnet auskommentieren. Diese Beschreibung spar ich mir ab jetzt.

  • iwconfig scheint irgendwie nicht zu funktionieren. Zeigt alles ok an, aber irgendwie isses komisch. Also: das ipkg-Paket wl installieren. beim _marc_ repository isses dabei.
    • mode managed mit wl:  wl ap 1

    • mode master (also ap): zusaetzlich noch  wl infra 1

    • mode ad-hoc: beides 0
    • essid:  wl ssid <ssid>

  • um ein ad-hoc-Netzwerk einzurichten, muss erstmal die bridge br0 entfernt werden. dafuer hab ich ne ganze Weile gebraucht ;>

  • ungetestet: um logging zu aktivieren, die folgenden beiden Zeilen nach /etc/inittab schreiben:

    • ::respawn:/sbin/syslogd -n 

    • ::respawn:/sbin/klogd -n 

    • nach /etc/init.d/rcS noch  mkdir /var/log  schreiben, weil /var sonst nach /tmp symlinkt.

    • remote loggen geht auch, siehe http://openwrt.ksilebo.net/MiniHowtos

  • ungetestet: wer ne schoene Statuswebsite a la http://rrust.com/sysinfo/rrdtool-graphs/openwrt-index.php haben will (und BTW waere das auch fuer andere Boxen nett), dem/der wird ebenfalls auf der Seite http://openwrt.ksilebo.net/MiniHowtos geholfen.

kismet

  • auf dem wrt:
    • kismet installieren, in der /etc/kismet... eth1 einstellen,
    • kismet_drone starten, das tool sagt dann, wo es hoert
  • aufm host:
    • kismet_server -c drone,ipadresse:port,drone
    • oder, ab v.2004.3: kismet_server -c kismet_drone,ipadresse:port,drone
    • kismet_client
    • fertisch.

config-Beispiele

  • ad-hoc-Verbindung zwischen WRT und nem anderen Rechner (host genannt)
    • WRT:
      • brctl delif br0 eth1 #eth1 aus der bridge entfernen
      • wl ap 0
      • wl infra 0 # jetzt im ad-hoc-mode
      • wl ssid foo
      • ifconfig eth1 192...
    • host:
      • das Uebliche: iwconfig eth1 mode ad-hoc;iwconfig eth1 essid foo;ifconfig eth1 ...
  • WRT ist client fuer ne ad-hoc-Verbindung zu nem anderen Rechner
    • WRT:
    • Rechner am WRT:
    • anderer Rechner:
      • das Uebliche: iwconfig eth1 mode ad-hoc;iwconfig eth1 essid foo;ifconfig eth1 ...

allgemeine URLS

misc

  • auf den Buffalo WBR54G and the ASUS WL-500G solls auch laufen, wenn die billiger sind, dann koennen wir ja mal gucken.
  • Falls Du verkackt hast und der WRT tot ist, dann gibts tipps im Forum von openwrt. Falls alles nix hilft: Gehaeuse oeffnen (Schnappverschluss, aber Garantieverlust) und pin 15 und 16 vom flash chip kurzschliessen, dann die kiste anmachen (das war nur die Kurzbeschreibung, es gibt ne eigene Seite von jemandem namens void main im forum verlinkt).

WRT54GmitOpenWRT (zuletzt geändert am 2012-06-13 21:26:27 durch anonym)


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.