Seite 1 von 1

Debian Squeeze - Kernel wechseln

Verfasst: Do 21. Apr 2011, 10:55
von feissmaik
Manche hier haben vielleicht schonmal das Problem gehabt, dass die Smargos in nem ThinClient nicht mit dem aktuellen Debian Squeeze Kernel zurecht kommen und deswegen öfter Probleme machen...

Manch einer gibt dafür stumpf Debian6 die Schuld, installiert sich daraufhin wieder Debian5 und erzählt anderen, dass Debian6 noch nicht ausgereift wäre oder son Blödsinn... Obwohl das nur an dem jeweiligen Kernel (bzw alten HW) liegt...


Wer sein Linux von Debian5 auf Debian6 aktuallisiert hat, der hat normalerweise den "alten" Debian5 Kernel auch noch installiert - es wurde einfach nur der neue Kernel als Standard beim Bootvorgang hinterlegt was man nach dem Upgraden auch wieder zurück ändern kann um weiterhin den "alten" Kernel zu benutzen...


Hier beschreibe ich das installiern des 2.6.26-2 Kernels da ich damit die besten Erfahrung machen konnte


...Nachdem Debian 6 (Squeeze) installiert wurde, müssen wir die Datei /etc/apt/sources.list bearbeiten und zunächst alle "squeeze" Einträge auskommentieren und die sources für Lenny eintragen, sodass die Datei dann ungefähr so aussieht:

Code: Alles auswählen

## squeeze
#deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free
#deb-src http://ftp.de.debian.org/debian/ squeeze main contrib non-free
#deb http://security.debian.org/ squeeze/updates main
#deb-src http://security.debian.org/ squeeze/updates main
#deb http://ftp.de.debian.org/debian/ squeeze-updates main
#deb-src http://ftp.de.debian.org/debian/ squeeze-updates main


## lenny
deb http://ftp.de.debian.org/debian-archive/debian/ lenny main contrib non-free
deb-src http://ftp.de.debian.org/debian-archive/debian/ lenny main contrib non-free
Dann müssen wir noch die Datei /etc/apt/preferences anlegen und bearbeiten sodass die älteren Lenny Pakete sich auch installieren lassen (es gibt ja schon neuere Pakete in Squeeze):

Code: Alles auswählen

Package: *
Pin: release a=oldstable
Pin-Priority: 1001
Nun noch die Paketliste aktuallisieren: apt-get update
Und dann kann man sich schon den passenden Kernel aussuchen: apt-cache search linux-image
( ich empfehle aber anstatt apt-cache/get lieber aptitude zu nutzen, also: aptitude update && aptitude search linux-image )

Mit apt-cache search sähe es dann so aus:

Code: Alles auswählen

alsa-base - ALSA driver configuration files
linux-headers-2.6.32-5-amd64 - Header files for Linux 2.6.32-5-amd64
linux-headers-2.6.32-5-openvz-amd64 - Header files for Linux 2.6.32-5-openvz-amd64
linux-headers-2.6.32-5-vserver-amd64 - Header files for Linux 2.6.32-5-vserver-amd64
linux-headers-2.6.32-5-xen-amd64 - Header files for Linux 2.6.32-5-xen-amd64
linux-image-2.6.32-5-amd64-dbg - Debugging infos for Linux 2.6.32-5-amd64
linux-image-2.6.32-5-amd64 - Linux 2.6.32 for 64-bit PCs
linux-image-2.6.32-5-openvz-amd64-dbg - Debugging infos for Linux 2.6.32-5-openvz-amd64
linux-image-2.6.32-5-openvz-amd64 - Linux 2.6.32 for 64-bit PCs, OpenVZ support
linux-image-2.6.32-5-vserver-amd64-dbg - Debugging infos for Linux 2.6.32-5-vserver-amd64
linux-image-2.6.32-5-vserver-amd64 - Linux 2.6.32 for 64-bit PCs, Linux-VServer support
linux-image-2.6.32-5-xen-amd64-dbg - Debugging infos for Linux 2.6.32-5-xen-amd64
linux-image-2.6.32-5-xen-amd64 - Linux 2.6.32 for 64-bit PCs, Xen dom0 support
linux-image-2.6-amd64 - Linux 2.6 for 64-bit PCs (meta-package)
linux-image-2.6-openvz-amd64 - Linux 2.6 for 64-bit PCs (meta-package), OpenVZ support
linux-image-2.6-vserver-amd64 - Linux 2.6 for 64-bit PCs (meta-package), Linux-VServer support
linux-image-2.6-xen-amd64 - Linux 2.6 for 64-bit PCs (meta-package), Xen dom0 support
linux-image-amd64 - Linux for 64-bit PCs (meta-package)
linux-image-openvz-amd64 - Linux for 64-bit PCs (meta-package), OpenVZ support
linux-image-vserver-amd64 - Linux for 64-bit PCs (meta-package), Linux-VServer support
linux-image-xen-amd64 - Linux for 64-bit PCs (meta-package), Xen dom0 support
linux-image-2.6.26-2-amd64 - Linux 2.6.26 image on AMD64
linux-headers-2.6.26-2-amd64 - Header files for Linux 2.6.26-2-amd64
Wohingegen es mit aptitude search linux-image so aussehen würde:

Code: Alles auswählen

v   linux-image                                -                                                                    
v   linux-image-2.6                            -                                                                    
i   linux-image-2.6-amd64                      - Linux 2.6 for 64-bit PCs (meta-package)                            
p   linux-image-2.6-openvz-amd64               - Linux 2.6 for 64-bit PCs (meta-package), OpenVZ support            
p   linux-image-2.6-vserver-amd64              - Linux 2.6 for 64-bit PCs (meta-package), Linux-VServer support     
p   linux-image-2.6-xen-amd64                  - Linux 2.6 for 64-bit PCs (meta-package), Xen dom0 support          
i   linux-image-2.6.26-2-amd64                 - Linux 2.6.26 image on AMD64                                        
i A linux-image-2.6.32-5-amd64                 - Linux 2.6.32 for 64-bit PCs                                        
p   linux-image-2.6.32-5-amd64-dbg             - Debugging infos for Linux 2.6.32-5-amd64                           
p   linux-image-2.6.32-5-openvz-amd64          - Linux 2.6.32 for 64-bit PCs, OpenVZ support                        
p   linux-image-2.6.32-5-openvz-amd64-dbg      - Debugging infos for Linux 2.6.32-5-openvz-amd64                    
p   linux-image-2.6.32-5-vserver-amd64         - Linux 2.6.32 for 64-bit PCs, Linux-VServer support                 
p   linux-image-2.6.32-5-vserver-amd64-dbg     - Debugging infos for Linux 2.6.32-5-vserver-amd64                   
p   linux-image-2.6.32-5-xen-amd64             - Linux 2.6.32 for 64-bit PCs, Xen dom0 support                      
p   linux-image-2.6.32-5-xen-amd64-dbg         - Debugging infos for Linux 2.6.32-5-xen-amd64                       
p   linux-image-amd64                          - Linux for 64-bit PCs (meta-package)                                
p   linux-image-openvz-amd64                   - Linux for 64-bit PCs (meta-package), OpenVZ support                
p   linux-image-vserver-amd64                  - Linux for 64-bit PCs (meta-package), Linux-VServer support         
p   linux-image-xen-amd64                      - Linux for 64-bit PCs (meta-package), Xen dom0 support 
(i sind die bei mir bereits installierten und i A das dieses Paket automatisch installiert wurde)

Nun sucht ihr euch dort einen für eure Architektur passenden Kernel herraus (32bit = i386 , 64bit = amd64) und installiert diesen:
Achtung!
xen, openvz und vserver sind kernel für den Betrieb von VirtualMaschine's also VM's!
-SMP kernel sind für Systeme mit mehreren Prozessoren oder Kernen


apt-get install linux-image-2.6.26-2-486

( bzw aptitude install linux-image-2.6.26-2-486 )


Nun müssen wir diesen neuen Kernel noch bei jedem Systemstart auch automatisch booten lassen und passen dafür den GRUB Bootloader an...
Achtung! nach JEDER Änderung an den GRUB Einstellungen muss man den Befehl update-grub ausführen damit die Änderungen auch übernommen werden!

Seit Debian6 wird GRUB v2 benutzt der sich (leider) etwas umständlicher konfigurieren lässt...
Zunächst müssen wir die Datei /etc/default/grub öffnen und bearbeiten um GRUB zu sagen das er die RECOVERY Einträge aus dem Bootmenü herrauslassen soll weil man die eigentlich eh nicht brauch... Also ändern wir:

GRUB_DEFAULT=1
GRUB_DISABLE_LINUX_RECOVERY="true"


...Anschliesend weisen wir GRUB an die neuen Einstellungen zu übernehmen (update-grub) und kontrollieren anschliesend nochmals ob der neue Kernel auch wirklich an 2. Stelle steht (0 = 1.Stelle , 1 = 2.Stelle , 2 = 3.Stelle etc)

grep menuentry /boot/grub/grub.cfg

Code: Alles auswählen

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
menuentry 'Debian GNU/Linux, with Linux 2.6.26-2-amd64' --class debian --class gnu-linux --class gnu --class os {
Bei mir ist der 2.6.26-2 Kernel wie oben eingestellt an 2.Stelle also sollte es funktionieren ;)

Nun braucht ihr nurnoch die Datei /etc/apt/sources.list wieder zurück bearbeiten sodass auf Squeeze einkommetiert und Lenny auskommentiert ist, ein kurzes " apt-get update " um die Paketliste wieder auf Squeeze zu stellen und dann braucht ihr nurnoch reboot eingeben um mit dem neuen/alten Kernel zu booten... Kontrollieren mit: uname -a

Fertig :-)


Weitere Links dazu:

http://de.wikipedia.org/wiki/Linux_%28Kernel%29
http://wiki.ubuntuusers.de/kernel
http://www.thomas-krenn.com/de/wiki/Neu ... nux_Kernel


/EDIT: Es kommt zb auch oft vor das beim Igel fälschlicherweise ein SMP Kernel installiert wird aber es sich garnicht um ein dual-core/cpu system handelt - in dem Fall würde es ebenfals etwas bringen einen non-smp Kernel zu installieren...

Re: Debian Squeeze - Kernel wechseln

Verfasst: Fr 6. Mai 2011, 18:07
von gifftstaub
Kernel entfernen, auf Debian-Art

Vorallem wenn man Testing-Versionen von Debian nutzt oder gar Unstable oder Experimental, sammeln sich mit der Zeit viele Kernel an, aber auch wenn man selbst Regelmässig welche baut. Hier ein kleiner Leitfaden um diese Kernel zu suchen und zu entfernen.

Um sich eine Übersicht zu verschaffen, welche Debian-Kernel und -Headers aktuell installiert sind, nutzt man am Besten eine Kombination aus dpkg und grep:

Code: Alles auswählen

#dpkg -l | grep ^i | grep linux-[hi]
Dabei listet "dpkg -l" alle Pakete auf, "grep ^i" begrenzt die Liste auf die (vollständig) installierten Pakete und zu guter Letzt begrenzt man die Auswahl weiter mit "grep linux-[hi]" auf Paketnamen mit "linux-h" oder "linux-i", was auf Paketnamen wie "linux-headers*" oder "linux-image*" zutrifft welche - oh Wunder! - die Pakete der Kernels und deren Headers sind. (Selbst gebaute Kernel-Pakete können natürlich auch anders heissen, gegebenen Falles den Suchstring anpassen.)

Es gibt bestimmt auch noch andere Möglichkeiten, sollte jemand eine einfachere kennen, nur zu. :)

Das sieht dann beispielsweise wie folgt aus:

Code: Alles auswählen

#dpkg -l | grep ^i | grep linux-[hi]

ii  linux-headers-2.6.30-1-686-bigmem         2.6.30-6          [...]
ii  linux-headers-2.6.30-1-common             2.6.30-6          [...]
ii  linux-headers-2.6.30-2-686                2.6.30-8squeeze1  [...]
ii  linux-headers-2.6.30-2-686-bigmem         2.6.30-8squeeze1  [...]          
ii  linux-headers-2.6.30-2-common             2.6.30-8squeeze1  [...]
ii  linux-headers-2.6.32-trunk-686-bigmem     2.6.32-5          [...]
ii  linux-headers-2.6.32-trunk-common         2.6.32-5          [...]
ii  linux-image-2.6-686                       2.6.32+23         [...]
ii  linux-image-2.6.30-1-686                  2.6.30-6          [...]
ii  linux-image-2.6.30-1-686-bigmem           2.6.30-6          [...]
ii  linux-image-2.6.30-2-686                  2.6.30-8squeeze1  [...]
ii  linux-image-2.6.30-2-686-bigmem           2.6.30-8squeeze1  [...]
ii  linux-image-2.6.32-trunk-686              2.6.32-5          [...]
ii  linux-image-2.6.32-trunk-686-bigmem       2.6.32-5          [...]
Nun zum eigentlichen entfernen des Kernels. Dies geschieht mit "apt-get purge" (oder mit aptitude purge)

Code: Alles auswählen

# apt-get purge linux-image-2.6.30-1-686

[...]

Die folgenden Pakete werden ENTFERNT:

  linux-image-2.6.30-1-686*

0 aktualisiert, 0 neu installiert, 1 zu entfernen und 3 nicht aktualisiert.
Nach dieser Operation werden 69.8MB Plattenplatz freigegeben.
Möchten Sie fortfahren [J/n]? J [Enter]
[...]
Entferne linux-image-2.6.30-1-686 ...
[...]
Und schon wäre der Kernel "linux-image-2.6.30-1-686" entfernt und die Grub-Einträge aktualisiert... Das Selbe kann man mit den Headers vollziehen.

Das wars schon. :)

Re: Debian Squeeze - Kernel wechseln

Verfasst: Sa 7. Mai 2011, 10:09
von feissmaik
obiger Beitrag von gifftstaub ist copy&pastet von http://xig.ch/index_11__1.html ( oder http://xig.ch/18_1_Kernel.html )