debootstrap geht nicht ?(

mit
Code:
uname -a
kannst du dir die kernel version ansehen, mit
Code:
modprobe -l
kannst du alle verfügbaren module auflisten.

Wenn du den kernel ersetzten kannst seh ich nicht mehr den Sinn hinter deinem ganzen Projekt, dann könntest du ja gleich mit dem neuen kernel ins debian booten.
 
Richtig. Es muss schon hier gehen.

Danke erstmal.

Blöd gefragt, kann ich dem aktuellen Kernel nicht per modul zum Nachziehen das Kexec bzw. chroot übergeben. Klingt gewagt, aber wäre doch einen Versuch wert, oder?

Servus
 
Mit chroot kannst du nur ein Programm in einer anderen Umgebung ausführen, aber keinen neuen kernel laden. Wenn du ein Modul für kexec hast kannst du es natürlich laden, wenn du sowas nicht hast wirst du den kernel anders ersetzen müssen, als mit kexec, sprich gleich beim booten einen anderen laden.
 
Danke.

Ja ja, das mit chroot verstehe ich. Das mit dem Modul, muss ich es besitzen oder gibt es solche Module (sind ja in Maschinensprache übersetzte Programmbibliotheken bzw. –treiber…hoffe ich irre mich nicht ) irgendwo zum Downloaden? Ich lade es herunter, schmeiße es in den lib-Ordner und ziehe es an. Kann dann kexec ausführen und weitermachen.

PS: Wahrscheinlich wurde das erwähnt oder ich habe es vergessen. Ich bekomme bei diesem Client kein Bootfenster, wie Grub oder so, sonder er bootet sofort ins DSL. Somit habe ich auch keine Möglichkeit einen anderen Kernel während des Bootvorgangs auszuwählen. Das Ding bootet immer mit dem gleichen Kernel und deshalb wollte ich nach dem Booten eingreifen.
 
Wenn es für dsl das kernelmodul gibt wirs im Paketmanager sein, wenns dort nicht ist würde ich mir keine Hoffnungen machen.

Was kein grub Fenster kommt bedeutet gar nichts, ich hätte ansich schon erwartet, dass du den bootvorgangn genauer ansiehst, bevor du mit kexec udgl. herumspielst.

Bevor du den grub install angehst sicher den master boot record von der Platte mit
Code:
dd if=/dev/sda of=/mbr.img bs=512 count=1
 
Hallo marcellus,

der Bootvorgang ist so:

du schaltest ein und er fragt nach einem USB-Stick wo das DSL drauf ist und bootet dann diesen. Der Bootloader ist auf der Firmware integriert. Ich habe auch probiert ein eigenes Linux-Image zu kreieren, aber habs nicht geschafft (siehe Bitte: http://www.x95.us/winterm/3230/)
Ich habe dasselbe Wurzelverzeichnis von meinem Ubuntu-Rechner auf den Stick gezogen, doch er blieb mit init Fehlern stehen. Ich weiß direkt nicht einmal ob er den Kernel in dem /boot-Verzeichnis auf der Image (linux24) und die initrd anzieht. Am Besten wäre es natürlich für meine Kiste ein eigenes Image zu kreieren, aber dazu weiß ich noch zu wenig 

Es gibt da auch kein MBR. Du kopierst die Dateien auf einen Stick und voila es funktioniert.

PS: wenn du jetzt abspringen willst, würde ich es verstehen
 
In dem winterm image liegt in /boot/grub/menu.lst sehr wohl eine grub config drinnen.

Hast du das ganze installiert? Ansich sollte grub mit 15 sekunden timeout laufen. Das Kernelimage, dass er verwendet ist /boot/linux24, du kannst probieren das auszutauschen.
 
Hallo marcellus,

Danke für die Antwort. Du hast recht, da habe ich auch geschaut und mir das so gedacht. Nun aber um sicher zu sein, bin ich hin und habe in der menu.lst ganz andere fiktive Kernel eingetragen und zu meinem entsetzen hat es gestartet :think:
Normal müsste er doch eine Meldung bringen wo gesagt wird, hey da ist doch kein kernel mit diesem Namen??? Ich glaube auch, dass da etwas spannendes unter /lib/modules passiert. Aber allgemein könnte ich es nochmal mit einem anderen Kernel probieren. Reicht es da aus, wenn ich ein kompilierten Kernel nehme und es in Grub schmeiße, natürlich müsste ich auch die /lib/modules anpassen?

Danke
 
Du brauchst in erster instanz gar keine kernel module, du kannst einfach /boot/linux24 austauschen.

Das Format der kernel module hat sich von 2.4 auf 2.6 geändert, also keine sorge du kannst die alten module sowieso nicht laden.
 
Ok, Danke. Ich werde mal probieren, wie Du gesagt hast, unter sarge (da gibt es 2.6er) einen Kernel zu installieren. Er wird sicherlich ein paar upgrades verlangen......hoffe es geht so wie ich mir das vorstelle :D
Dann installiere ich einen aus den Repos und mal schaun, hoffentlich gehts... :))

Bis dahin, ciao
 
Hallo marcellus,

also nach langen hin und her und weiterforschen, haben sich meine Vermutungen bestätigt. Der Typ der das mal gemacht hat, hat den Kernel direkt in die Firmware mit hinein gepackt. D.h. der ganze Thin Client startet eben durch diesen Kernel. Ferner denke ich, komme ich so nicht ran. Das hatte ich befürchtet, da ich mal probiert habe die Datei /boot zu löschen und zu meinem Entsetzen hat er gestartet…einwandfrei. Da wo er nur gemeckert hat, war als ich /lib/modules/ veränderte. Für mich bedeutet dies, dass der Kernel aus der Firmware diesen Ordner mit den Modulen, sprich Treibern, anzieht und somit startet. Dies würde auch erklären, warum nur 32 mb erkannt werden, aber auch warum chroot und kexec nicht funktionieren, weil eben einfach nicht mit hinein kompiliert. Jeglicher Versuch einen neuen Kernel zu installieren, würde dann scheitern, da er sowieso nicht verwendet wird.

Nun, wenn man sich unter /lib/modules mal umschaut, gibt es da sehr viele Dateien mit der Endung *.o
Dies sind sicherlich Treiber-Module. Würde es mir helfen, wenn ich so ein Treiber-Modul für chroot und kexec finden könnte (wo bitte auch immer) und per insmod es nach dem Booten installiere?
Vielleicht müsste ich, da ich ja weiß dass das der 2.4.31 Kernel ist, evtl. einen neuen Kernel kompilieren, aber die Funktionen chroot und kexec modular erstellen. Die müssten doch dann als *.o –Dateien entstehen und scheiße ich in diesen lib-Ordner. Könnte so was funktionieren?

Danke
 
Ansich wäre es denkbar andere Kernelmodule reinzuladen, aber 1) chroot hat mit dem kernel nur bedingt was zu tun 2) kexec ist vermutlich zu tief im kernel vergraben, um es als modul kompilieren zu können.

Ich würd an deiner stelle eher probieren ein eigenes firmware image zu erstellen, wenns ganz hart auf hart kommt kannst du ja dem, der die homepage gemacht hat ein e-mail schreiben, das wird schon irgendwie gehen.
 
Hallo marcellus,

so langsam werde ich schlauer, poe-a-poe. Zu meinem Verständnis hätte ich ein paar Fragen an Dich:

- Ich werde evtl. einen Kernel kompilieren und es in den Bios flashen müssen. Dieser Bios hat bei mir aber nur 16 mb (ROM). Da jetzt evtl. noch einige zusätzliche Dateien notwendig sind, wollte ich Dich wissen, wie groß kann den ein Kernel maximal, bei mittlerer und voller „Modulität“ werden?

- Kann ich volle „USB-Erkennung“ mit hinein kompilieren, welche Module wären da am wichtigsten?

- Kann das sein, dass man keine /lib/modules braucht, wenn alles in den Kernel kompiliert wird?

- Die bzImage-Datei liegt doch gezippt auf der Platte. Ganz am Anfang, wenn es bootet, wer und was weiß dass diese Datei entzippt werden soll und wo wird das Programm dafür angezogen bzw. wer weiß wo es liegt?

- Kommt man im Grunde genommen ohne eine initrd aus?

Danke und Grüße
Rasid
 
- Ich werde evtl. einen Kernel kompilieren und es in den Bios flashen müssen. Dieser Bios hat bei mir aber nur 16 mb (ROM). Da jetzt evtl. noch einige zusätzliche Dateien notwendig sind, wollte ich Dich wissen, wie groß kann den ein Kernel maximal, bei mittlerer und voller „Modulität“ werden?

16Mb sind schon eine Menge, ich weiß auch keine genauen Zahlen, aber zwischen Linux-2.4 und Linux-2.6 ist irgendwann der Punkt gekommen, wo du probleme hattest ein Kernel image auf eine Diskette zu geben (1.44Mb), aber du brauchst auch nicht alle Kernelmodule im initrd.

- Kann ich volle „USB-Erkennung“ mit hinein kompilieren, welche Module wären da am wichtigsten?

Ich nehm an du meinst usb disks, das wäre usb 2.0 support + scsi disks, also CONFIG_USB_EHCI_HCD + CONFIG_BLK_DEV_SD

- Kann das sein, dass man keine /lib/modules braucht, wenn alles in den Kernel kompiliert wird?
Ja, Kernel Module sind nicht zwingend Notwendig, aber wenn du keine Module verwenden willst muss alles, was du überhaupt an kernel Modulen hättest immer geladen haben.

- Die bzImage-Datei liegt doch gezippt auf der Platte. Ganz am Anfang, wenn es bootet, wer und was weiß dass diese Datei entzippt werden soll und wo wird das Programm dafür angezogen bzw. wer weiß wo es liegt?
Du übergibst dem Kernel beim booten gewisse Parameter, unter anderem auch die Position von deinem / filesystem, das kann auch in komprimierter Form vorliegen, das entpacken kann der kernel selber mit CONFIG_RD_GZIP, CONFIG_RD_BZIP2, CONFIG_RD_LZMA, ...

- Kommt man im Grunde genommen ohne eine initrd aus?

Dein initrd brauchst du nur, um Kernel Module zu laden, die du brauchst, um auf die Festplatte zuzugreifen, zb das Kernelmodul für ext4 support kannst du schwer von einer ext4 Parititon laden, sata support von einer Sata Platte usw. Zusätzlich hast du noch gerne solche Programme, wie lvm, cryptsetup und mdadm im initrd file, dass du nur ein initrd brauchst, um von einem zb raid 5 zu booten.
 
Hallo marcellus,

ich habe es probiert (das Kompilieren) und diesen Fehler bekommen, eine Idee?

Code:
CC fs/sysfs/group.o
LD fs/sysfs/built-in.o
LD fs/built-in.o
LD ipc/built-in.o
CC security/commoncap.o
LD security/built-in.o
CC crypto/api.o
CC crypto/cipher.o
CC crypto/digest.o
CC crypto/compress.o
CC crypto/algapi.o
CC crypto/scatterwalk.o
CC crypto/proc.o
LD crypto/crypto_algapi.o
CC crypto/blkcipher.o
CC crypto/cryptomgr.o
CC crypto/sha1_generic.o
CC crypto/sha256_generic.o
CC crypto/ecb.o
CC crypto/arc4.o
LD crypto/built-in.o
CC block/elevator.o
CC block/ll_rw_blk.o
block/ll_rw_blk.c: In Funktion »ll_back_merge_fn«:
block/ll_rw_blk.c:1452: interner Compiler-Fehler: Segmentation fault
Bitte senden Sie einen vollständigen Fehlerbericht auf Englisch ein;
bearbeiten Sie die Quellen zunächst mit einem Präprozessor, wenn es
dienlich ist.
Fehler in der deutschen Ãbersetzung sind an 
translation-team-de@lists.sourceforge.net zu melden.

Gehen Sie gemäà den Hinweisen in <URL:http://gcc.gnu.org/bugs.html> vor.
For Debian GNU/Linux specific bug reporting instructions,
see <URL:file:///usr/share/doc/gcc-4.2/README.Bugs>.
make[1]: *** [block/ll_rw_blk.o] Fehler 1
make: *** [block] Fehler 2

Dank Dir.
Rasid
 
Wieso ist das deutsch?

Aber interner compiler fehler sieht mir nach einer alten/faulty gcc version aus. Womit, wo, was und wie kompilierst du das?
 
Hallo marcellus,

ich weiß nicht wieso das deutsch ist, dachte es hängt mit der Spracheinstellung zusammen.

Ich wollte auf einem ubuntu 8.04 – Rechner kompilieren. Dazu habe ich gemacht:
- kernel 2.6.24 als source heruntergeladen und entpackt
- im Ordner habe die .config mit make menuconfig erstellt
- habe dann make bzImage eingegeben….es ist ja bis dahin einwandfrei gelaufen
So hatte ich es mal gelesen. Ich glaube er zieht irgendwie die gcc-4.2 an.

Danke
 
ubuntu 8.04? Warum?

Das ganze ist ja komplett veraltet, hol dir doch aktuelle software, zwischen gcc-4.2 und gcc-4.7 sind riesige unterschiede.
 

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

dovecot und postfix Konfiguration Problem

Wo sind die Geräte?

Zurück
Oben