
Ich würde statt -O3 -Os benutzen. Das macht die Binarys kleiner. Somit sollten sie AFAIK auch weniger RAM verbrauchen wenn sie geladen werden. (Letzteres ist aber evt. nur Teilwissen meinerseits) Auf jeden Fall sind sie damit schneller geladen, weil ja kleiner.ConiKost wrote:Jedoch würde ich gerne wissen, ob ich irgendwie noch den RAM besser nutzen kann?Code: Select all
CFLAGS="-O3 -march=pentium-mmx -pipe -fomit-frame-pointer"
Verstehe dein Problem nicht? Bricht der Server irgendetwas ab? Benutzt er ständig den Swap?ConiKost wrote: Problem ist, dass ich nur 128MB habe (mehr geht nicht!). Und wenn ich Gentoo boote habe ich ca. 50MB noch frei. Kann ich da noch mehr hinkriegen?
Code: Select all
ACCEPT_KEYWORDS="~x86"
Code: Select all
CFLAGS="-O2 -march=pentium-mmx -pipe -fomit-frame-pointer""
Code: Select all
CFLAGS="-OS -march=pentium-mmx -pipe -fomit-frame-pointer""

Dem kann ich mich anschließen, also ein Kernel fast soweit verkleinern wie nen "embedded"-System, also eigentlich alles modular, unbenötigte Dienste abschalten, benötigte Software nur mit den useflags bauen die Du brauchst (das ist das schöne an Gentoo, das man so viel Einfluß aufs System nehmen darf) vielmehr geht glaube ich nicht? Schau Dir eventuell mal Seiten an, wie die so nen "eingeschlossenes" System bauen, da kann man glaube ich viel lernen, ein System optimal zu verkleinern, wobei die teilweise für ihre System schon mehr Ram zur Verfügung haben als Du. Viel Erfolg!borisdigital wrote:Hier mal ein paar Möglichkeiten RAM zu sparen (obwohl ich mich gegen
den Begriff des "Sparens" ausspreche, denn leerer RAM ist ungenutzter RAM)
1. Module im Kernel benutzen um diese bei Nichtbenutzung entladen zu können
2. System mit ulibc statt glibc bauen
3. Bestimmte Coreutils/Linuxtools durch Busybox ersetzen (falls möglich)
4. CFLAGS="-O3 ..." durch CFLAGS="-Os" ersetzen, sollte kleinere Binaries
ergeben, die folglich auch weniger Speicher brauchen
Wenn ein Desktop benötigt wird:
4. Statt xorg-x11 so etwas wie TinyX o.ä. benutzen
5. Als Desktop-Umgebung z.B. Openbox/Blackbox/Fluxbox o.ä. benutzen
usw.
Nicht alleEdtheRat wrote: ...da kann man glaube ich viel lernen, ein System optimal zu verkleinern, wobei die teilweise für ihre System schon mehr Ram zur Verfügung haben als Du. Viel Erfolg!
Hat das jemand inzwischen hinbekommen Gentoo@4MB Laptop? Bin grad auch wiedermal dabei zu basteln, aber der alte Targa-4MB-Laptop mag damit nicht booten. Wenn ich am lilo-Prompt init=/usr/bin/bash übergebe bekomme ich wenigstens eine Shell, ist aber nicht besonders praktisch.obrut<- wrote:was mir aber sorgen macht,ist der ram: 4mb! nicht erweiterbar, da das ein total seltenes format ist, dass schon vor jahren (als das gerät eigentlich schon veraltet war) noch über 800 mark für 4 oder 8 mb gekostet hätte. modul war dann aber doch nicht lieferbar.
Jo, also der hat auch eine Erweiterungskarte auf 8MB, aber die scheint defekt und wird nur bei jedem ~10ten boot mal erkannt. Mit den 8MB bootet der auch, klar langsam, aber mehr als ein ssh-Client und vielleicht bissl zum Coden in Bash soll es nicht werden. Kompiliert wurde der mit uclibc auf nem großen Rechner und dann wurde die Platte in den großen Laptop geschraubt und das System draufkopiert. Wie gesagt, mit 8MB kein Problem, aber bei 4 kommt er nicht weit.borisdigital wrote:Puh, 4MB?
Also ich sage es mal so, ich will es halt probieren. Update würde ich eh nur über den großen Rechner im nfs-exportierem und chrootetem / machen. Also ich hätte schon gern Gentoo, und wenn es nur was ist um mich zu beschäftigen. Ich will mich nicht mit Updates und verschiedenen Systemen auseinander setzen müssen.borisdigital wrote:Da würde ich eher zu so etwas wie buildroot/busybox/slackware raten(s.o.),
das benötigt deutlich weniger Power als Gentoo (Portage auf einem 486SL-33=OMFG-langsam!, glaubt mir *Ächz*)
Interessanter Weg, aber hört sich zu umständlich an. Das RAM-Problem wird das denke ich nicht lösen oder?borisdigital wrote:Ich bin mir auch nicht ganz sicher, ob das funktioniert, aber man
sollte in diesem Fall eventuell in Betracht ziehen, Linux über den Umweg
Dos (z.B.via FreeDos) zu starten (also mit loadlin).
Habe mir mal das reingezogen. Leider reicht mein Wissen nicht ganz aus um zu beurteilen ob es funktionieren würde aber prinzipiell stelle ich mir das wie folgt vor. Also Kernel bootet (tut er auch) dann stelle ich als init ein Script ein welches als erstes Swap mountet, dann wird der root auf / gelegt und das Gentoo-Init angeschoben. Das braucht aber mehr als 4MB, die Frage ist nun ob es dann mit der Swap arbeitet oder nicht. Also momentan bin ich so am einlesen wie ich das mit dem eigenen init anstelle, ich denke ich kann ich was bei den initrds mit RAM-Disk klauen.borisdigital wrote:Btw. man benötigt meist auch mindestens 8MB (bzw.mehr als 4MB),
um die meisten Bootdisketten inklusive Initrd nutzen zu können.
also 2.4er Kernel, vanilla oder gentoo-sources, System ist mit uclibc-Profil gebaut.borisdigital wrote:Erzähl doch mal, welchen Kernel etc. du benutzen willst, technisch muss das machbar sein
und man(n) wächst ja bekanntlich an neuen Herausforderungen!
Wie jetzt? Ist doch hier angehangen, da brauch ich den nicht schliessen, oder wie meinst das?borisdigital wrote:PS: Slick, da du den Thread hier angehängt hast, solltest du den alten schliessen
Aus http://forums.gentoo.org/viewtopic-t-412854.htmlConiKost wrote:Hi!
Wieviel bringt den uclibc in der Praxis ?
Bringt -Os auch wirklich was, wenn man ne 80GB HDD hat? Also viel Space verfügbar!
Weil laut man soll es ja nur auf Größe optimieren.
slick wrote:Also ich bevorzuge (und empfehle daher), abhängig vom Rechner entweder Os oder O2. Os ist wie O2 nur das Optimierungen welche die Binarys größer machen nicht benutzt werden. O3 benutze ich kaum, denn der Geschwindigkeitsvorteil ist nicht spürbar (messbar? k.A.) und teilweise scheint es zu mir aggressiv. Einige Programme (weiß aber nicht mehr welche) hatten Probleme mit O3.
siehe auch das aussagekräftige Post von -BarneY- aus dem gleichem Thread wie im vorherigem Post.ConiKost wrote:Bringt -Os auch wirklich was, wenn man ne 80GB HDD hat? Also viel Space verfügbar!
Weil laut man soll es ja nur auf Größe optimieren.
Hauptsächlich Plattenplatz, wenn der besonders knapp ist (und gelegentlich etwas mehr Probleme) als glibc. Man muß sich uclibc einfach als Mini-Variante der glibc vorstellen.Wieviel bringt den uclibc in der Praxis ?
Code: Select all
Traceback (most recent call last):
File "/usr/sbin/env-update", line 27, in ?
import portage
File "/usr/lib/portage/pym/portage.py", line 75, in ?
from portage_data import ostype, lchown, userland, secpass, uid, wheelgid,
\
File "/usr/lib/portage/pym/portage_data.py", line 85, in ?
if secpass < 1 and portage_gid in os.getgroups():
OSError: [Errno 38] Function not implementedund>>> Emerging (1 of 1) net-misc/dropbear-0.49 to /
* dropbear-0.49.tar.gz MD5... [ ok ]
* dropbear-0.49.tar.gz RMD160... [ ok ]
* dropbear-0.49.tar.gz SHA1... [ ok ]
* dropbear-0.49.tar.gz SHA256... [ ok ]
* dropbear-0.49.tar.gz size... [ ok ]
* checking ebuild checksums... [ ok ]
* checking auxfile checksums... [ ok ]
* checking miscfile checksums... [ ok ]
* checking dropbear-0.49.tar.gz... [ ok ]
* Adding user 'sshd' to your system ...
* - Userid: 22
* - Shell: /sbin/nologin
* - Home: /var/empty
* - Groups: sshd
useradd: unable to lock password file
!!! ERROR: net-misc/dropbear-0.49 failed.
Call stack:
ebuild.sh, line 1630: Called dyn_setup
ebuild.sh, line 702: Called qa_call 'pkg_setup'
ebuild.sh, line 38: Called pkg_setup
dropbear-0.49.ebuild, line 32: Called enewuser 'sshd' '22' '-1' '/var/empty' 'sshd'
eutils.eclass, line 622: Called die
!!! enewuser failed
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/tmp/portage/net-misc/dropbear-0.49/temp/build.log'.
Da die Fehlermeldungen fast gleich sind "unable to lock password/group file" denke ich mal, dass mir da vielleicht irgendein paket fehlt um diese zu locken. Oder liegt es vielleicht auch daran, dass ich mich noch in einer chroot umgebung befinde und das Root-Verzeichnes des langsamen Notebooks einfach auf meinen Athlon exportiert ist (weil da das compilieren nunmal schneller geht)?>>> Emerging (1 of 1) sys-apps/slocate-2.7-r8 to /
* slocate-2.7.tar.gz MD5... [ ok ]
* slocate-2.7.tar.gz RMD160... [ ok ]
* slocate-2.7.tar.gz SHA1... [ ok ]
* slocate-2.7.tar.gz SHA256... [ ok ]
* slocate-2.7.tar.gz size... [ ok ]
* slocate-2.7-debian.patch.bz2 MD5... [ ok ]
* slocate-2.7-debian.patch.bz2 RMD160... [ ok ]
* slocate-2.7-debian.patch.bz2 SHA1... [ ok ]
* slocate-2.7-debian.patch.bz2 SHA256... [ ok ]
* slocate-2.7-debian.patch.bz2 size... [ ok ]
* slocate-2.7-uclibc-sl_fts.patch.bz2 MD5... [ ok ]
* slocate-2.7-uclibc-sl_fts.patch.bz2 RMD160... [ ok ]
* slocate-2.7-uclibc-sl_fts.patch.bz2 SHA1... [ ok ]
* slocate-2.7-uclibc-sl_fts.patch.bz2 SHA256... [ ok ]
* slocate-2.7-uclibc-sl_fts.patch.bz2 size... [ ok ]
* checking ebuild checksums... [ ok ]
* checking auxfile checksums... [ ok ]
* checking miscfile checksums... [ ok ]
* checking slocate-2.7.tar.gz... [ ok ]
* checking slocate-2.7-debian.patch.bz2... [ ok ]
* checking slocate-2.7-uclibc-sl_fts.patch.bz2... [ ok ]
* Adding group 'locate' to your system ...
* - Groupid: 245
groupadd: unable to lock group file
!!! ERROR: sys-apps/slocate-2.7-r8 failed.
Call stack:
ebuild.sh, line 1630: Called dyn_setup
ebuild.sh, line 702: Called qa_call 'pkg_setup'
ebuild.sh, line 38: Called pkg_setup
slocate-2.7-r8.ebuild, line 30: Called enewgroup 'locate' '245'
eutils.eclass, line 749: Called die
!!! enewgroup failed
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/tmp/portage/sys-apps/slocate-2.7-r8/temp/build.log'.