Erster eigener Kernel mit Bootsplash vom Freak

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
NonIlIteFreak
Beiträge: 73
Registriert: 30.04.2005 22:37:43

Erster eigener Kernel mit Bootsplash vom Freak

Beitrag von NonIlIteFreak » 17.05.2005 07:03:38

Kernel Quellen
Die Kernel Quellen können auf zwei arten aus dem Netz bezogen werden.
  • Mit den (A)vanced (P)acket (T)ools (apt) Code : apt-get install kernel-source-2.6.8
    Oder über die ganz offizielle :hail: http://www.kernel.org
Nach der Instalation der Kernel quellen auf dem Debian Weg befinden sie sich im Verzeichniss /usr/src als handliche und handelsübliche kernel-source-2.6.8.tar.gz.
Dieses kompremierte Verzeichniss ist schnell mit tar entpackt. Code: tar xjf kernel-source-2.6.8

Der Bootsplash Patch
Sollte auf der Offiziellen http://www.bootsplash.org kein Patch für den entsprechenden Kernel Version vorhanden sein kann auf einen Patch von http://www.bootsplash.de verwiesen werden.

Der Kernel Patch muss von Hand geladen werden. Anders die Bootspalsh User Space Tools, hier besteht wieder die Wahl zwischen den apt und dem Weg es von Hand zu machen.
Um die apt nutzen zu können muss die Bootsplash Seite zu den apt Quellen hinzugefügt werden.

/etc/apt/sources.list

deb http://ftp.de.debian.org/debian/ testing main non-free
deb-src http://ftp.de.debian.org/debian/ testing main non-free

deb http://debian.bootsplash.de unstable main
deb-src http://debian.bootsplash.de unstable main

deb http://security.debian.org/ testing/updates main


Um die Bootsplash Userspace Tools nun zu installieren einfach die apt mit
Code:apt-get install bootsplash
aufgerufen. :D
Keine Panic ! der Konfigurationsdialog kann über den Befehl: dpkg-reconfigure bootsplash erneut aufgerufen werden.

Da sich die Kernel Quellen immer noch im Verzeichniss /usr/src/kernel-source-2.6.8 befinden werden sie kurzerhand in das Verzeichniss /usr/src/linux gelinkt.
Code: ln -s /usr/src/kernel-source-2.6.8 /usr/src/linux

Um den Patch in den Kernel einspielen zu können muss einmalig ein config aufgerufen werden.
Code: make menuconfig
Natürlich im Kernel Quellen Verzeichniss /usr/src/linux

Nun kann der Patch eingespielt werden.
Code:patch -p1 ../bootsplash-3.1.6.2.6.8.diff
Der Patch wurde nach /usr/src geladen

patching file drivers/char/console.c
patching file drivers/char/keyboard.c
patching file drivers/char/n_tty.c
patching file drivers/video/Config.in
patching file drivers/video/Makefile
patching file drivers/video/fbcon-jpegdec.c
patching file drivers/video/fbcon-jpegdec.h
patching file drivers/video/fbcon-splash.c
patching file drivers/video/fbcon-splash.h
patching file drivers/video/fbcon-splash16.c
patching file drivers/video/fbcon.c
patching file include/video/fbcon.h
patching file kernel/panic.c


Ein erneuter Blick in die Linux Kernel Configuration zeigt einen neuen Eintrag.
Device Drivers/Graphics support/Bootsplash configuration

Bestehende Kernel Konfiguration laden
Um eine lauffähige Konfiguration in die Kernel Quellen zu laden kann eine vorhandene .config benutzt werden. Diese Dateien befinden sich im /boot Verzeichniss.
Code:cp /boot/config-2.6.8 /usr/src/linux/.config
Wenn für diese Kernel Quellen keine lauffähige Konfiguration vorhanden ist kann es hilfreich sein ein Kernel Paket der selben version zu installieren.
Code:apt-get install kernel-package-2.6.8

Bootsplash Kernel konfiguration
Das Bootsplsh Image wird dem Kernel über die initrd Datei übergeben. In dieser Datei werden normalerweise Module die zur Startzeit benötigt werden, aber zu groß für den Speicher des real Mode sind, außgelagert. Der Support für diesen Dateityp muss in den Kernel hineinkompeliert werden.
  • Device Drivers/Block devices/Initial RAM disk (initrd) support
Der Bootsplash wird über ein Framebuffer Device ausgegeben. Dieses muss ebenfalls in den Kernel hineinkompeliert werden.
  • Device Dreivers/Graphics support/Support for Frame buffer devices
    Device Dreivers/Graphics support/VESA VGA graphics support
Natürlich muss der Bootsplash kernel patch auch noch eingeschaltet werden.
  • Device Dreivers/Graphics support/Bootsplash configuration/Bootupsplash screen
kernel-package
Um einen Kernel auf die Debian art zu übersetzen wird das Packet kernel-package benutzt.
Code:dpkg-query -s kernel-package|grep Depends
Depends: perl, dpkg, dpkg-dev, gcc | c-compiler, make
Code:dpkg-query -s kernel-package|grep Recommends
libc6-dev | libc-dev, bzip2
Code:dpkg-query -s kernel-package|grep Suggests
kernel-source, libdb3-dev, libncurses-dev docbook-utils
Und diese sollte auch tunlichst alle vorhanden sein.
libdb3-dev und libncurses-dev sind beispielsweise für ein erfolgreiches make menuconfig unverzichtbar. :!:

Kernel Packet mit Bootsplash erstellen
Im Verzeichniss /usr/src/linux wird unter zuhilfe nahme des Debian Kernel Packge Systems der ein Kernel Packet erstellt.
Code:make-kpkg buildpackage --revision=Splash.01

Kernel installieren und Bootsplash einrichten
Nachdem das make-kpkg seine arbeit gemacht hat kann im Verzeichniss /usr/src mit dem Befehl: dpkg -i kernel-image-2.6.8_Splash0.1_i386.deb das Kernel Image installiert werden werden.

Mit dpkg-reconfigure bootsplash wird nun das standart Theme newLinux an die Datei initrd.img-2.6.8 angehängt.
Der anschießende Dialog fragt welche Auflösung hinzugefügt werden soll. Die entscheidung die hier getroffen wird muss paralel auch dem Bootloader mitgegeben werden. Wenn ein Theme mit der Auflösung 640x480 geladen wird muss der Bootloader das Framebufferdevice auch mit dieser Auflösung starten.

/boot/grub/menu.list

...
title Debian GNU/Linux, kernel 2.6.8
root (hd0,0)
kernel /boot/vmlinuz-2.6.8 root=dev/hdc1 ro vga=785 splash=silent
initrd /boot/initrd.img-2.6.8
savedefault
boot
...


Nun kann der Bootloader (grub) eingerichtet werden
Code:grub-install /dev/hdc

Bei dem nächsten neustart sollten die tristen schwarz/weis Bootupmeldungen einem freundlichem Pinguin platz gemacht haben.

Alternativen Bootsplash Theme installieren
Einige schöne Debian Themes sind im apt cache zu finden.
Code: apt-cache search bootsplash|grep debian

bootsplash-theme-debian - The debian bootsplash Theme
bootsplash-theme-debian-mist - The bootsplash theme debian-mist
bootsplash-theme-debian-sarge - The bootsplash theme debian-sarge
....


Diese Themes können nun auch einfach mit den atp installiert werden.
Code:atp-get install bootsplash-theme-debian-sarge

Der neue Bootsplash Theme muss nun zu der initrd Datei hinzugefügt werden.
Code:dpkg-reconfigure bootsplash

Ok ich hoffe es sind somit alle klarheiten beseitigt. Mfg NonIlIteFreak
:twisted:

Und nun viel spaß beim Klugscheißen :lol:
Oder wie kann man es noch besser auf die Debian art machen ?

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 17.05.2005 09:46:36

wie erzeuge ich die initrd? wird diese bei make-kpkg automatisch mit erzeugt?
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

Benutzeravatar
Sam
Beiträge: 838
Registriert: 10.09.2002 11:02:45
Wohnort: Wuppertal

Beitrag von Sam » 17.05.2005 15:32:56

Hi Freak,
wieso stellst Du es nicht ins Wiki. Da gibt es schon einige Tips zu Kernel:
http://www.debianforum.de/wiki/TippsIndex#K
Das finden die Leute wahrscheinlich leichter. Die Klugscheisser können es zudem ergänzen.
LG,
Sam

NonIlIteFreak
Beiträge: 73
Registriert: 30.04.2005 22:37:43

Beitrag von NonIlIteFreak » 17.05.2005 17:15:26

Initrd Datei erstellen
Die intitrd kann ich über ein einfaches mkinitrd -r ./ -o ../initrd.img.2.6.8 im Verzeichniss /usr/src/linux erstellt werden. Eine NEU erstellte initrd muss allerdings auch gepatcht werden da die Kernel Quellen ja nicht die Bootsplash Themes enthalten. (dkpkg-reconfigure bootsplash
Die Option -r ./ gibt an das die aktuellen Kernel quellen benutzt werden sollen und die System einstellung ignoriert wird. Die Option -o ist die Outputfile.

Die Option --.initrd kann auch an make-kpkg buildpackage --initrd --revision=splash.01 übergeben werden um diese gleich bei erstellen des Kernels zu erzeugen.


Ach ja.... 8) äh... dieser Tread is parallel zu meiner Bootsplash installaiton entstanden egentlich bin ich ein Linux newb... was ist ein Winki....

freue mich wenn es hilfreich war.

mfg NonIlIteFreak

NonIlIteFreak
Beiträge: 73
Registriert: 30.04.2005 22:37:43

Na Toll !!!!

Beitrag von NonIlIteFreak » 17.05.2005 17:31:05

!"$!"$%&%"
Das steht ja schon im Wiki... 8O . naja geschadet hat es hoffe ich nicht, hoffe ik konnte jemanden eine andere Art der sicht auf diess Thema bieten.... mist.... jetzt kann ich meienn Thread über die installation eines Ati treibers sparen.... aber habe glücklicherweise auch nicht mehr soviel arbeit damit. :evil:

Kann doch nicht sein.... was lernen wir daraus ? Brille beim Internet Sufen auf haben sonst renn man gegen die Wand.

Naja ich nehme es so wie mein großes Vorbild: Bernd das Brot.

Mist

mfg Freak

Benutzeravatar
Sam
Beiträge: 838
Registriert: 10.09.2002 11:02:45
Wohnort: Wuppertal

Beitrag von Sam » 17.05.2005 17:32:20

Hi Freak,
ein Wiki ist eine Seite, die von mehreren Nutzern bearbeitet werden kann. Das Wikipedia basiert z.B. auf Wiki Technologie:
http://de.wikipedia.org/wiki/Hauptseite
Dort kann man z.B. einen Artikel über Wikis erstellen:
http://de.wikipedia.org/wiki/Wiki
Der kann dann von Klugscheissern noch verbessert werden.
Warum wir hier ein Wiki haben ist, damit wenn z.B. NonIlIteFreak sich die Mühe macht und ein Howto schreibt, dieses Howto nicht in die Tiefen des Forums verschollen geht. Nach einem Jahr gibt Jemand bootsplash in die Suche ein und muss erstmal 100 Beiträge anschauen, bis er zu NonIlIteFreaks Beitrag kommt, der genau das ist was er gesucht hat und nicht irgendwas mit bootsplash mit Kernel 2.4 auf einem PPC usw. usf.
Wenn nun NonIlIteFreak sich ins Wiki verewigt hat, wird er sofort gefunden :D
LG,
Sam

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 17.05.2005 17:34:21

hi freak!

hau den text mal ins wiki! mit dem text ausm wiki hab ich noch keinen lauffähigen kernel hinbekommen, mit deinem schon!

und nein gutes tut über ati installation hier im forum fehlt auch noch!
ich mach meine install immer sehr sehr quick und very dirty:

Code: Alles auswählen

dpkg -i --force-overwrite ./fglrx/fglrx-4-3-0_8.12.10-2_i386.deb
cd /lib/modules/fglrx/build_mod/ && sh ./make.sh && cd /lib/moduesl/fglrx/ && sh ./make_install.sh && cd /
exec /usr/bin/X11/fglrxconfig 
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

Benutzeravatar
Sam
Beiträge: 838
Registriert: 10.09.2002 11:02:45
Wohnort: Wuppertal

Beitrag von Sam » 17.05.2005 17:34:29

Schon mal was von Ergänzung gehört?
:D
Du kannst natürlich den bestehenden Wiki Beitrag editieren und ergänzen.
LG,
Sam

NonIlIteFreak
Beiträge: 73
Registriert: 30.04.2005 22:37:43

Beitrag von NonIlIteFreak » 08.06.2005 08:02:03

Ich habe mir das mit dem Wiki mal überlegt und ... nunja ich werde mal ein Tut (from netinstall 2 first own debian system 4 windows newbs like me) machen,tun und schreiben.

Inhalt: Kernel Patchen, Hardware listen, Gfx und Sound Treiber installieren und Konfigurieren, Debian linux Booskonzept (passt eh gut mit dem bootsplash patch der kann ja eh über die init scripte zur Multimedia gebracht werden....)

Aber da hätte ich noch ne frage kann ich zur Bootzeit Sound ausgeben ohne die Soundkarte in den Kernel hineinzukompelieren... ein mpg321 boot.mp3& in dem Initscript müsste doch seinen dienst verrichten... (natürlich nachdem das Soundmodul geladen wurde... oder holt sich das der kernel automatisch... vielicht sogar aus der initrd.img)

(:twisted: Das wird ein Proll System)

Die initrd.img enthält doch Dateien die zur Startzeit benötigt werden....
Wie kann ich diese Datei konfigurieren?


mfg Freak

:twisted: ich sollte mir wohl vorher noch ein programm mit rechtschreibkorrektur saugen ;)

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 08.06.2005 08:16:29

das InitRD enthält eigentlich nur deine Module, so dass der Kernel beim Booten alle Module zur Hand hat, noch bevor die Root Partition gemountet wurde.. ist z.B. dann wichtig, wenn du bei einem Standardkernel nicht weißt, welche IDE Treiber und welche Dateisysteme du brauchst..

Wenn du keine InitRD benutzt musst du diese nämlich fest einkompilieren, da der Kernel sonst die Root Partition nicht mounten und benutzen kann..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

NonIlIteFreak
Beiträge: 73
Registriert: 30.04.2005 22:37:43

Beitrag von NonIlIteFreak » 08.06.2005 09:26:54

Ja ne soweit war ich auch schon. :twisted:

Was mich interessiert kann ich die Module (oder sogar Dateien) die in diese Datei über den Befehl mkinitrd in das Compressed rom filesystem kopiert werden selber beeinflussen ?

Oder anders gefragt wie würde ich sowas per Hand anlegen ?
mkdir /tmp/initrdImage
cp [Dateine für das initrd Image] /tmp/initrdImage
mk[compressed rom Filesystem] -input /tmp/initrdImgae -output /boot/initrd.img

...
moment mal nur mit dem Soundtreiber kann ich ja noch nix ausgeben dazu brauche ich auch noch die alsalib oder die osslib.... richtig.....????

Wird das initrd.img eigentlich wieder aus dem Speicher entfernt...... ne kann ja nicht sont würde das Bootimg ja nicht mehr gefunden werde....

Also wenn das ding je eh im Speicher bleibt kann ich ja auch so verschwenderisch sein und da mp3 Datein und die Libs reinpacken um einen Multimedia boot hinzubekommen oder......

Warum das alles... einfach kann jeder !

:twisted:

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 08.06.2005 10:23:05

ich denke, dass das, was du versuchen willst, nicht funktioniert, da ja der Kernel nur seine Module initialisert (aus dem InitRD) und es zwar theoretisch möglich ist noch andere Sachen zu machen, aber dazu bräuchtest du ein funktionierendes /lib und was weiß ich was noch alles.. sollte auch alles möglichst statisch kompiliert sein und ob du nun wirklich eine komplette Soundumgebung aufbauen möchtest, wage ich zu bezweifeln.. außerdem ist nicht gesagt, dass du dabei nicht den Bootprozess stark abbremst.. selbst Windows bietet dir sowas nicht an.. auch wenn es theoretisch möglich wäre...
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 08.06.2005 10:35:52

den weg den du nimmst, ist nicht möglich, aber schau dir knoppix näher an, da wird das gemacht!
da kommt ein sound beim booten und einer beim shutdown. und der kommt nicht von der KDE
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 08.06.2005 10:44:45

@comes: weißt du ab wann der Sound kommt? Also kommt er dank des SYS V init oder schon während der Kernel bootet?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 08.06.2005 10:51:18

wann der sound beim booten genau kommt, kann ich dir nicht sagen, aber ich kann dir sagen, dass der sound beim shutdown kommt, wenn Xserver beendet wurde.
sound kannst du doch via mpg321 aus der /etc/rc.S/ einfach rausstarten.
pack doch einfach nen script der mpg321 sound.mp3 starten in den runlevel rein und schon gehts rund. sagst, dass der unmittelbar nach dem der alsa gestartet hat, den sound ausgeben soll. ich guck mir das heute abend mal genauer an, wie das knoppix macht und dann kann ich dir morgen mehr dazu sagen, wenn du so lange warten kannst!
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 08.06.2005 10:54:18

na dass das über rcS funktionieren dürfte ist mir klar.. nur ich denke, das der Threadinhaber schon von gaaaanz am Anfang an einen Sound hören.. also während der Kernel selber bootet...

und das geht eigentlich nicht 8O !
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 08.06.2005 10:59:33

ne, das wird wohl nicht gehn, aber es sollte gehen, sobald alsa gestartet ist und wenn alsa als erstes startet is der sound ja quasi gleich da...
wobei...
man könnte sich doch ein eigenes modul schreiben was nen midiplayer drin hat und dann nen sound ausgibt. das in die initrd rein. aber ich glaube modul bauen ist etwas sehre aufwendig
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 08.06.2005 11:19:00

und widerspricht zumindest meinem Verständnis, wofür es Module gibt ;-)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 08.06.2005 11:29:38

das ist auch wieder war! aber es sollte dennoch möglich sein über diesen weg, aber das ist etwas kompliziert. lieber mit dem runlevel sound ausgeben, von mir aus auch als erstes.
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22359
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 08.06.2005 11:57:51

Ob man unbedingt die initrd mit dem Alsakram aufblasen will? Die so schon schon groß genug. Debian hat schon den Standardwert raufgesetzt., damit die überhaupt geladen werden kann, und das reicht gerade mal aus. Viel passt da nicht mehr rein.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

DeAtHfIgHtEr
Beiträge: 11
Registriert: 13.07.2005 16:13:18

Beitrag von DeAtHfIgHtEr » 27.07.2006 21:32:50

Ich hab das jetzt auch versucht. Aber bei dem versuch den Kernel zu patchen geht es nicht weiter...

ich geb patch -p1 -f ../bootsplash-3.1.6-2.6.8.diff ein und dann passiert einfach nichts. Keine Statusmeldung oder Fehler.

woran kann das liegen?

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 28.07.2006 06:30:49

patch mal mit dem befehl

Code: Alles auswählen

patch -p0 < bootsplash-3.1.6-2.6.8.diff 
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

DeAtHfIgHtEr
Beiträge: 11
Registriert: 13.07.2005 16:13:18

Beitrag von DeAtHfIgHtEr » 28.07.2006 17:20:19

danke! hätte zuerst ins wiki schauen sollen, da stehts ja richtig...

aber jetzt hab ich das nächste problem: "Cannot mount root filesystem"

der abschnitt in der grub config ist:

Code: Alles auswählen

title           Debian GNU/Linux, kernel 2.6.8-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8-2-686 root=/dev/hda1 ro
initrd          /boot/initrd.img-2.6.8-2-686
savedefault
boot

title           Debian GNU/Linux, kernel 2.6.8
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8 root=/dev/hda1 ro vga=794 splash=silent
initrd          /boot/initrd.splash
savedefault
boot
Root device ist also für beide kernel das selbe. (einer mit bootsplash und einer ohne) aber funktionieren tut es trotzdem nicht! hab ich einen fehler beim kompilieren gemacht?

Benutzeravatar
bollin
Beiträge: 482
Registriert: 01.11.2003 23:31:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von bollin » 28.07.2006 22:24:46

comes hat geschrieben:patch mal mit dem befehl

Code: Alles auswählen

patch -p0 < bootsplash-3.1.6-2.6.8.diff 
Wie wäre es mit einem 'normalen' oder Debian-Kernel und

Code: Alles auswählen

apt-get install splashy
?

Eventuell auch mal in /usr/share/doc/grub/README.Debian.gz nach splash suchen?


Viele Grüße,
Torsten

Antworten