Swap Space anlegen

Hummert schrieb:
Code:
/ $ swapon /dev/sda1
swapon: /dev/sda1: Function not implemented
Code:
/ $ busybox 
BusyBox v1.5.1 (2007-08-09 18:57:53 CEST) multi-call binary
(...)
        sleep, sort, strings, stty, [B][COLOR="Red"]swapoff[/COLOR][/B], [COLOR="Red"][B]swapon[/B][/COLOR], sync, sysctl,
(...)
Hier hast Du ein swapon Programm, daß Du auch aufrufen kannst. Später schreibst Du, sw<tab> würde kein swapon finden? Seltsam.

Ich vermute mal, mkswap hast Du schon ausgeführt? Bei mkswap kannst Du optional die gewünschte Größe eingaben, da mußt Du noch nicht die Platte umpartitionieren, um verschiedenen Größen zu testen.

Eine 1GB Swap-Datei habe ich ausprobiert, das funktioniert. Allerdings solltest Du berücksichtigen, daß für die Verwaltung des Swap-Bereichs auch Speicher gebraucht wird, und dieser kann nicht ausgelagert werden. Ein zu großer Swap Bereich reduziert also Dein verfügbares RAM und bewirkt, daß mehr ausgelagert werden muß.

Dein Grundproblem ist vermutlich dieses: "Function not implemented".
Du hast einen W900V von der Telekom. bei diesem ist Swap in der Kernel-Konfiguration nicht aktiv. Du brauchst einen eigenen Kernel, bei den Swap aktiv ist.
 
RalfFriedl schrieb:
Hier hast Du ein swapon Programm, daß Du auch aufrufen kannst. Später schreibst Du, sw<tab> würde kein swapon finden? Seltsam.
Genau das hat mich auch sehr irritiert..

RalfFriedl schrieb:
Ich vermute mal, mkswap hast Du schon ausgeführt? Bei mkswap kannst Du optional die gewünschte Größe eingaben, da mußt Du noch nicht die Platte umpartitionieren, um verschiedenen Größen zu testen.
Die Platte habe ich mittlerweile schon umpartitioniert, jetzt 96MB Swap auf sda1 (siehe letzter Beitrag von mir).

RalfFriedl schrieb:
Dein Grundproblem ist vermutlich dieses: "Function not implemented".
ACK

RalfFriedl schrieb:
Du hast einen W900V von der Telekom. bei diesem ist Swap in der Kernel-Konfiguration nicht aktiv. Du brauchst einen eigenen Kernel, bei den Swap aktiv ist.
Klingt nach einer Erklärung. Das funktioniert dann über make kernel-menuconfig und danach ein ganz normales make menuconfig, make, oder muss ich noch irgendwas beachten?

Danke schon mal für die Hinweise!
Lars

[edit:] Also ich habe gerade rausgefunden, dass ich zuerst make menuconfig machen muss, bevor ich an make busybox-menuconfig und make kernel-menuconfig ran komme. In make menuconfig habe ich Replace kernel gesetzt, in make busybox-menuconfig nachgesehen ob swaponoff gesetzt ist und in make kernel-menuconfig bin ich darauf gestoßen, dass Support for paging of anonymous memory (swap) schon gesetzt war.. Muss mich das jetzt irritieren?
 
Zuletzt bearbeitet:
Das muß Dich nicht irritieren. Es mag ja aktiv gewesen sein in unserer Konfiguration, aber wenn Du den Original-Kernel nicht ersetzt, passiert ja nichts damit. Ob das inaktiv ist bei der W900V, weiß ich gar nicht, da stecke ich nicht technisch drin. Gut, daß auch in Olivers Abwesenheit noch andere Leute Bescheid wissen. :D
 
Hummert schrieb:
in make kernel-menuconfig bin ich darauf gestoßen, dass Support for paging of anonymous memory (swap) schon gesetzt war.. Muss mich das jetzt irritieren?
Ich vermute, daß als Default die ds-mod kernel-config genommen wird und nicht die von der Telekom und daß daher SWAP hier schon aktiv ist. Im Telekom Kernel ist SWAP nicht aktiv, und genau genommen wird SWAP im Normalbetrieb auch nicht verwendet, weder bei der Telekom noch bei AVM.

Bei mir hat sich gerade die Box neu gestartet als ich versucht habe, sie zum Auslagern zu bewegen. Aber vielleicht habe ich es auch übertrieben.
Inzwischen habe ich es geschafft, die Swap-Nutzung auf knapp 3MB zu bringen, ohne daß die Box neu startet.
 
Also, ich habe die Sachen wie ich es oben beschrieben habe konfiguriert und gebaut. Nach dem Flashen habe ich aber leider immer noch kein swapon.

Hab ich evtl. was falsch gemacht? Folgendes sollte doch anders aussehen, oder?
Code:
/var/mod/root $ cat /proc/version 
Linux version 2.6.13.1-ohio (jpluschke@EmbeddedVM) (gcc version 3.4.3) #5 Fri Aug 25 12:37:20 CEST 2006

Lars
 
Mööp, nicht schlagen bitte, das eben war eigene Blödheit. Ich hatte das Branding auf avm stehen und in voller Euphorie die Augen wohl etwas bei den Logs nach dem Flashen zusammen gekniffen...:doof: Wenigstens hab ich es alleine bemerkt :)

Jetzt sieht alles super aus und ich habe endlich Swap!
Code:
/var/mod/root $ cat /proc/version 
Linux version 2.6.13.1-ohio (lars@blackrabbit) (gcc version 3.4.5) #1 Fri Aug 10 14:12:10 CEST 2007
/var/mod/root $ swapon /dev/sda1
/var/mod/root $ free
              total         used         free       shared      buffers
  Mem:        30432        29132         1300            0         2796
 Swap:        96380            0        96380
Total:       126812        29132        97680

Merkwürdig ist nur etwas, dass ich bei "sw<tab>" immernoch switch_root bekomme, swapon funktioniert aber.

Also einen ganz herzlichen Dank euch beiden! :groesste:


Auf dass es auch Weiteren mit einem Speedport helfen möge..

Lars
 
Evtl. gilt hier die gleiche Logik, die ich gerade im FAT32-Thread identifiziert habe: selbst gebauter Dateisystem-Treiber nur mit selbst gebautem Kernel. Das würde erklären, warum es wie beschrieben funktioniert.
 
Das Swap eine Einstellung des Kernels ist und nicht als Modul dazugeladen wird, glaub ich das nicht.
Im Source-Download der Telekom ist in allen Dateien in GPL-r4884-8mb_26/GPL/kernel_8mb_26_build/Config.* CONFIG_SWAP nicht aktiv. Daher ist "Replace Kernel" notwendig. Es gibt hier aber keine Module, mit denen es Wechselwirkungen geben könnte.
 
Ja, aber wenn es schon einen Kernel-Oops beim Anstecken einer USB-Platte gibt und danach nicht mal mehr der Reboot funktioniert, kann das schon das System instabil machen oder negative Seiteneffekte haben, auch wenn Deine Aussage unbestritten korrekt ist. Also sagen wir einfach, es gibt zwei Gründe, in besagter Konstellation den Kernel zu ersetzen. ;-) Ich nehme nicht an, daß hier nur Swap gemountet werden soll, danach kommt evtl. noch FAT32, ext2/3 oder NTFS dran, könnte ich mir vorstellen.
 
Hallo zusammen,
ich nehme hier mal den alten Thread wieder in Betrieb, vielleicht kann mir ja einer helfen. Und zwar hab ich meine 7170 auf FW29.04.37ds26-15.2 (Replace Kernel) umgestellt. Bisher hab ich alles hinbekommen, die swapnutzung mit loop.ko, das Virtuelle Interface, aber nicht mit virtual IP, sondern den dummy.ko und dummy0 als Interface.
Ich hab permanent ne Windows Kiste in der Garage am laufen, diese wird nie heruntergefahren, darauf eine Freigabe die von cifs gemountet wird, und in einem Verzeichiss eine 96MB große Swap Datei.
Mounten per Hand funktioniert einwandfrei mit
modprobe loop
losetup /dev/loop0 /var/server/swapspace/swapspace.swp
swapon /dev/loop0

soweit so gut, dieses will ich aber in der debug.cfg verankern damit es beim booten automatisch ausgeführt wird.
Leider ist zu dieser Zeit die Freigabe noch nicht gemountet, sodas die Swap Datei logischerweise nicht gefunden wird. Egal ob ich sleep 40 oder sleep 120 mache. Der cifs mount, wird scheinbar erst nach der Verarbeitung der debug.cfg ausgeführt. Habt ihr eine Idee dazu um das evtl. zu übergehen, dann den mount abzuwarten und dann erst die Swap Datei aus der debug.cfg mounten?

Andere Lösung wäre evtl. der swapon, swapoff skript aus dem ds-mod menü, weiss jemand ob der für ds26-15.2 anwendbar ist? Immerhin ist der noch für den alten 2.0.4-2.0.9 geschrieben worden.

Mfg Igi
 
Keine Ahnung, was dummy.ko macht. Brauchst Du überhaupt ein virtuelles Interface? Man kann Freigaben auf die Box auch via ar7.cfg machen, falls es darum geht.

Zum Thema: Es ist immer ganz toll, wenn Leute Fragen zu ihrer Konfiguration stellen, diese aber nicht posten. :rolleyes: Wieso geht denn jeder davon aus, daß ich Gedanken lesen kann? Aber wenn ich meine Kristallkugel mal bemühe, würde ich sagen, Du versuchst den Mount im Vordergrund, also synchron während der Ausführung der debug.cfg, zu machen. Cifsmount ist Bestandteil des DS-Mod, wird also tatsächlich erst im Anschluß an die debug.cfg initialisiert. Dafür gibt es ja die rc.custom, um nach dem DS-Mod noch andere Sachen zu initialisieren. Unabhängig davon, ob Du Deinen Swap Space aus debug.cfg oder rc.custom heraus mountest - beides geht, wenn man es richtig macht - wäre eine Warteschleife, die alle paar Sekunden schaut, ob der CIFS-Share schon da ist, sinnvoll - zur Sicherheit. Wenn er da ist, kann man den Swap mounten.

Kritische Anmerkung: Swap übers Netzwerk zu mounten, ist eine potentiell problematische Angelegenheit: Wenn für eine Sekunde die Verbindung abbricht, kann die Box abstürzen, weil sie ihren virtuellen Speicher nicht mehr sieht. Ich würde das lieber nicht machen.
 
Nabend nochmal,
danke für die rasche antwort. Also dummy.ko nutze ich für die Portfreigabe auf die Box von aussen, Hatte das auch erst in der ar7.cfg da Virtual IP bei mir irgendwie nicht funktioniert. Aber sofern man dann ne Freigabe hinzufügen will oder ändern will, meckert die Box das eine Freigabe auf die eigene IP existiert und diese nicht erlaubt ist. Das geht mit der Zeit ziemlich auf den Wecker, immer diese erst deaktivieren, dann wieder aktivieren und rebooten. Deshalb die dummy.ko weil das alte ifconfig eth0:1 192...... nicht mehr angenommen wird.

Nun ja, zum thema Swapspace, ich hab das Swap jetzt schon seit zwei wochen auf der Windoof Freigabe geladen, ohne Probleme da der Rechner immer an ist und nie rebootet wird. Desweiteren hab ich das schon paar mal getestet, was passiert wenn der rechner nicht verfügbar ist. Solange die Box das Swap noch nicht benutzt hat, ist gar nichts passiert. Sie lief stunden durch ohne absturz. Nach direktem einstecken, war das swap wieder verfügbar. Hab gleich darauf Tor gestartet und die Box hat auf das Swap zugegriffen als ob nix gewesen wäre. Wo er ca. 8MB Daten auf das Swap ausgelagert hatte, hab ich den Stecker mal gezogen, dann ist sie angestürzt. Also von dem her mach ich mir da keine Gedanken.
Ich habe jetzt mal über die debug.cfg eine /var/tmp/swapload.sh erzeugt wo die mountparameter eingetragen sind. Ich befürchte aber wenn ich ne schleife in die debug.cfg einfüge die erst wartet bis die Swapdatei verfügbar ist und dann erst die swaplod.sh auführt, bleibt die Box in der schleife hängen da ja cifsmount erst nach abarbetung der debug.cfg gestartet wird. Wäre ja eigentlich logisch. Also muss da eine andere Lösung her. Ein Scriptstart erst am Ende aller geladenen mods.

Mfg Igi
 
kriegaex schrieb:
Es gibt sowas wie Hintergrundausführung mit "&". Shell-Grundlagen. Lies bitte das: http://www.netzmafia.de/skripten/unix/index.html

P.S.: Du hast immer noch nicht Deine debug.cfg gepostet, und ich habe immer noch keine Kristallkugel.

Mist, jetzt weiss ich was du mit der Kriatallkugel meintest...sorry.

meine debug.cfg

Code:
#Virtuelles Inteface für Fernwartung einrichten
sleep 35
modprobe dummy

ifconfig dummy0 192.168.178.253 netmask 255.255.255.0 broadcast 192.168.178.255 up

#Swapspace von NTFS FTP mountpartition laden
#sleep 70

touch /var/tmp/swapload.sh
chmod +r+x /var/swapload.sh
echo "modprobe loop" > /var/tmp/swapload.sh
echo "losetup /dev/loop0 /var/server/swapspace/swapspace.swp" >> /var/tmp/swapload.sh
echo "swapon /dev/loop0" >> /var/tmp/swapload.sh
sleep 70

Das ist jetzt die aktuelle die die swapload.sh erzeugt. Die rc.custom hab ich im Filesystem nicht gefunden, aber das brachte mich auch grad auf die Idee diese über die debug.cfg zu erzeugen und darin den eintrag das die swapload.sh startet.

Das mit dem "&" weiss ich ja, ich habs nur nicht so mit schleifen schreiben.


xEdit: So, ich nochmal,
also nach langer rumspielerei funktioniert auch das jetzt. Direkt nach der erzeugung der swapload.sh wird die rc.custom in /tmp/flash erzeugt und darin der Eintrag das die swapload.sh gestartet werden soll. Die rc.custom wird jetzt zuletzt gestartet und bindet somit die auf meinem FTP Server liegende Swapdatei ein.

Danke für den Hinweis auf die rc.custom, für die werden mir bestimmt noch einige nette Sachen einfallen.

Mfg Igi
 
Zuletzt bearbeitet von einem Moderator:
Forenregel: nicht mehrmals direkt hintereinander posten, bestehenden Beitrag editieren (Button "Ändern")!

Außerdem habe ich mal Dein Zitat in einen Code-Bereich umgewandelt (erweitertes Editieren, Icon sieht wie "#" aus).

Zum Thema: Jetzt hast Du zwar eine Konfiguration gepostet, aber die vorherige. Wie die jetzige aussieht, sehe ich wieder nicht, also muß ich Hinweise zu einer Version loswerden, die Du gar nicht mehr so im Einsatz hast. :noidea:

  • Erst mal zu "&": Das hat nicht mit einer Schleife zu tun, sondern mit Hintergrundausführung eines oder mehrerer Befehle.
  • Worauf warten Deine sleep-Befehle, und wozu so lange? Da während der Wartezeit die Ausführung des Startvorgangs angehalten wird, kannst Du genausogut ewig warten, daß etwas passiert.
  • Wozu Du dummy.ko brauchst, ist mir immer noch unklar. Ein virtuelles Interface kannst Du auch anders anlegen und darauf über AVM-Web-Interface zugreifen.
  • Die Datei rc.custom erzeugst Du einmalig, machst sie ausführbar und editierst sie. Nach jedem Editiervorgang speicherst Du sie mit modsave. Sie wird dadurch persistent gespeichert und automatisch bei der Initialisierung des Mods geladen, Du brauchst sie nicht jedesmal zu erzeugen:
    Code:
    touch /var/tmp/flash/rc.custom
    chmod +x /var/tmp/flash/rc.custom
    # Jetzt editieren mit Deinem Lieblings-Editor, also (vi, nano, mcedit)
    modsave

Am Ende steht in der debug.cfg nur noch:
Code:
#Virtuelles Inteface für Fernwartung einrichten
modprobe dummy
ifconfig dummy0 192.168.178.253 netmask 255.255.255.0 broadcast 192.168.178.255 up
In der rc.custom steht:
Code:
#Swap Space laden
SWAP_FILE="/var/server/swapspace/swapspace.swp"
modprobe loop

# Diesen Teil im Hintergrund ausführen, damit der Rest des Startvorgangs
# weiter abgearbeitet wird, und Ausgabe ins Nirvana umleiten
{
    # Warten, bis Swap-Datei zugreifbar ist
    while ! [ -r $SWAP_FILE ]; do sleep 2; done
    # Los geht's: let's swap again, like we did last summer...
    losetup /dev/loop0 $SWAP_FILE
    swapon /dev/loop0
}  >/dev/null 2>&1 &
Extra noch ein Skript fürs Mounten des Swap-Speichers anzulegen, ist unnötig, falls Du es nicht öfters brauchst.
 
Hallo,
kenn mich mit Warteschleifen nicht so aus. Deswegendie verschiedenen Startscripte. Das man die rc.custom dauerhaft speichern kann, daran hab ich nimmer gedacht.
Ich hab das Virtual IP mit im ds_mod drin, aber es startet nicht, da der Befehl mit "ifconfig eth0:1...." und "ifconfig lan0:1......." von der Box nicht mehr zugelassen wird. Deswegen hab ich auf die dummy.ko zurückgegriffen. Damit lassen sich dummy Geräte laden, u.a. auch ein virtuelles Interface. Die dummy.ko kann man z.B. auch für virtuelle SCSI Laufwerke einsetzen.

Mfg Igi
 
Deine Aussage ist unlogisch: Mehr Skripte ersparen Dir nicht die Schleifen. Du brauchst sie, wenn Du sauber programmieren und nicht auf gut Glück x Sekunden warten willst. Das kann schief gehen, weil Du entweder nicht lange genug wartest (-> Fehler) oder zu lange (-> Watchdog bootet die Box neu, weil Startvorgang zu lange dauert).

Deshalb sind die Komponenten Hintergrundausführung und Schleifen, die nur so lange warten wie nötig, wichtig und sinnvoll. Du kennst Dich nicht aus mit Schleifen? Lerne es! Es ist nicht schwierig. Sonst suchst Du ewig vermeidbare Fehler oder brauchst meine Hilfe dafür.

Was an diesem ifconfig-Befehl nicht mehr gehen soll, weiß ich nicht. Bei mir funktioniert er. Ich habe gerade
Code:
ifconfig eth0:1 192.168.178.253 up
ausgeführt und danach testweise Port 23 (Telnet) mal im AVM-Web-UI auf 192.168.178.253 durchgereicht. Geht astrein.
 
Nabend,
ich lerne es ja schon so langsam. Geht halt nicht alles von anfang an.

bei ifconfig eth0:1 192........ und auch bei ifconfig lan0:1 192....... bekomme ich folgenden Fehler ausgespuckt: ifconfig: SIOCSIFADDR: No such device.

Deswegen mit dummy

Mfg Igi
 
Muss ein Swapfile als Loop-Device gemountet werden? Ich hab einfach ein Swapfile auf meinem USB-Stick angelegt und swapon aufgerufen:
Code:
dd if=/dev/zero of=/var/media/ftp/uStor01/swapfile bs=1024 count=10k
mkswap /var/media/ftp/uStor01/swapfile 1024
swapon /var/media/ftp/uStor01/swapfile
MfG Oliver
 
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.