32Bit auf 64Bit "updaten"

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
melatonin
Beiträge: 40
Registriert: 14.09.2009 18:03:55

32Bit auf 64Bit "updaten"

Beitrag von melatonin » 16.09.2009 16:48:24

Hallo, ich habe mir einen neues Board/CPU/RAM gekauft.
Deshalb würde ich nun gerne auf 64 Bit "updaten".
In meiner source.list ist keine Architektur angegeben?
Was muss ich dafür alles machen?

Vielen Dank und Gruss
Tim

Benutzeravatar
towo
Beiträge: 4546
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: 32Bit auf 64Bit "updaten"

Beitrag von towo » 16.09.2009 16:59:33

Das geht so nicht!
Dazu mußt du die 64Bit Version neu installieren.

Benutzeravatar
hikaru
Moderator
Beiträge: 13934
Registriert: 09.04.2008 12:48:59

Re: 32Bit auf 64Bit "updaten"

Beitrag von hikaru » 16.09.2009 17:41:39

rein akademisch:
Ein amd64-Kernelpaket lässt sich in ein i386-System installieren und das System läuft auch hinterher noch. Wenn man das weiterspinnt, sollten sich doch auch andere i386-Pakete durch amd64-Pakete ersetzen lassen und sich ein System prinzipiell von einer Architektur auf eine andere umstellen lassen.
Die Frage nach der Architektur in der sources.list ist eigentlich gar nicht so dumm. Irgendwo muss die Information über die Architektur hinterlegt sein und in uname -pim scheint sie nicht zu stecken. Sonst müsste ein Architekturwechsel beim Kernel dazu führen dass unter diesem Kernel andere Pakete geladen werden. Irgendein Eintrag unter /proc?

Ob so ein Wechsel als akademische Übung funktioniert und zu welchen Komplikationen es dabei kommt, kann ich nicht abschätzen. Weiß da jemand mehr?

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: 32Bit auf 64Bit "updaten"

Beitrag von Lord_Carlos » 16.09.2009 19:16:35

Es gab doch mal hier ein Theard wo jemand auf Arm umstellen wollte (oder davon weg).
Es ging auch irgendwie, aber für normal sterbliche ist es 100x einfach neu zu installieren.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

melatonin
Beiträge: 40
Registriert: 14.09.2009 18:03:55

Re: 32Bit auf 64Bit "updaten"

Beitrag von melatonin » 16.09.2009 19:42:02

Danke ihr habt mich überzeugt ;)
Ich mache die Kiste neu ;)

WEARENOTALONE
Beiträge: 278
Registriert: 19.04.2009 18:55:05

Re: 32Bit auf 64Bit "updaten"

Beitrag von WEARENOTALONE » 22.09.2009 20:34:01

hikaru hat geschrieben:rein akademisch:
Ein amd64-Kernelpaket lässt sich in ein i386-System installieren und das System läuft auch hinterher noch. Wenn man das weiterspinnt, sollten sich doch auch andere i386-Pakete durch amd64-Pakete ersetzen lassen und sich ein System prinzipiell von einer Architektur auf eine andere umstellen lassen.
Die Frage nach der Architektur in der sources.list ist eigentlich gar nicht so dumm. Irgendwo muss die Information über die Architektur hinterlegt sein und in uname -pim scheint sie nicht zu stecken. Sonst müsste ein Architekturwechsel beim Kernel dazu führen dass unter diesem Kernel andere Pakete geladen werden. Irgendein Eintrag unter /proc?

Ob so ein Wechsel als akademische Übung funktioniert und zu welchen Komplikationen es dabei kommt, kann ich nicht abschätzen. Weiß da jemand mehr?
Ich bezweifle, dass die Installation eines *-amd64 Kernels (z.B. linux-image-2.6.26-2-amd64) dein System von 32 Bit auf 64 Bit umstellt. Die *-amd64 Variante des Linux Kernels in den Debian Repositories enthält wohl eher diverse Optimierungen für die Amd Athlon 64 Prozessoren Familie, "unabhängig" von 32 oder 64 Bit.

Es gibt die Möglichkeit von 32bit zu 64bit zu migrieren, wie man hier nachlesen kann (Achtung: Warnung lesen!).
Zuletzt geändert von WEARENOTALONE am 22.09.2009 22:37:44, insgesamt 2-mal geändert.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: 32Bit auf 64Bit "updaten"

Beitrag von Spasswolf » 22.09.2009 20:50:27

Ich bezweifle, dass die Installation eines *-amd64 Kernels (z.B. linux-image-2.6.26-2-amd64) dein System von 32 Bit auf 64 Bit umstellt. Die *-amd64 Variante des Linux Kernels in den Debian Repositories enthält wohl eher diverse Optimierungen für die Amd Athlon 64 Prozessoren Familie, "unabhängig" von 32 oder 64 Bit.
Du hast Recht, dass die Installation eines -amd64 Kernels nicht das gesamte System auf 64bit umstellt, aber der amd64 Kernel ist tatsächlich ein echter 64bit Kernel, mit Athlon Optimierung hat das nichts zu tun.

Benutzeravatar
hikaru
Moderator
Beiträge: 13934
Registriert: 09.04.2008 12:48:59

Re: 32Bit auf 64Bit "updaten"

Beitrag von hikaru » 22.09.2009 20:57:30

WEARENOTALONE hat geschrieben:Ich bezweifle, dass die Installation eines *-amd64 Kernels (z.B. linux-image-2.6.26-2-amd64) dein System von 32 Bit auf 64 Bit umstellt.
Das habe ich auch nicht behauptet, sondern nur, dass ein i386-System mit amd64-Kernel lauffähig ist.
WEARENOTALONE hat geschrieben:Es gibt die Möglichkeit von 32bit zu 64bit zu migrieren, wie man hier nachlesen kann (Achtung: Warnung lesen!).
Wenn ich das richtig sehe ist die Umstellung von libc6 der essenzielle Schritt.

WEARENOTALONE
Beiträge: 278
Registriert: 19.04.2009 18:55:05

Re: 32Bit auf 64Bit "updaten"

Beitrag von WEARENOTALONE » 22.09.2009 22:46:38

Spasswolf hat geschrieben:
Ich bezweifle, dass die Installation eines *-amd64 Kernels (z.B. linux-image-2.6.26-2-amd64) dein System von 32 Bit auf 64 Bit umstellt. Die *-amd64 Variante des Linux Kernels in den Debian Repositories enthält wohl eher diverse Optimierungen für die Amd Athlon 64 Prozessoren Familie, "unabhängig" von 32 oder 64 Bit.
Du hast Recht, dass die Installation eines -amd64 Kernels nicht das gesamte System auf 64bit umstellt, aber der amd64 Kernel ist tatsächlich ein echter 64bit Kernel, mit Athlon Optimierung hat das nichts zu tun.
Das ist sehr interessant, wieder was dazu gelernt ^^ Inwiefern unterscheiden sich die 64bit von der 32bit amd64 von der i386 Version des Linux Kernels? Kann man die beiden Versionen einfach untereinander austauschen, weil sie letztlich identisch sind (meine den Kernel, nicht das deb-Package)?
hikaru hat geschrieben:
WEARENOTALONE hat geschrieben:Ich bezweifle, dass die Installation eines *-amd64 Kernels (z.B. linux-image-2.6.26-2-amd64) dein System von 32 Bit auf 64 Bit umstellt.
Das habe ich auch nicht behauptet, sondern nur, dass ein i386-System mit amd64-Kernel lauffähig ist.
...
Ich benutze auf meinem 32 Bit System seit längerem den *-amd64 Kernel, nur war mir nie bewusst, dass er in Wirklichkeit ein 64 bit Kernel ist. ^^
Zuletzt geändert von WEARENOTALONE am 22.09.2009 23:07:04, insgesamt 1-mal geändert.

Benutzeravatar
hikaru
Moderator
Beiträge: 13934
Registriert: 09.04.2008 12:48:59

Re: 32Bit auf 64Bit "updaten"

Beitrag von hikaru » 22.09.2009 22:59:06

WEARENOTALONE hat geschrieben:Ich benutze auf meinem 32 Bit System seit längerem den *-amd64 Kernel, [..]
Warum?

WEARENOTALONE
Beiträge: 278
Registriert: 19.04.2009 18:55:05

Re: 32Bit auf 64Bit "updaten"

Beitrag von WEARENOTALONE » 22.09.2009 23:20:32

WEARENOTALONE hat geschrieben: ...Inwiefern unterscheiden sich die 64bit von der 32bit amd64 von der i386 Version des Linux Kernels?...
Um meine Frage kurz selbst zu beantworten: Anscheinend nicht stark, denn die Kernel Configs unterscheiden sich nur minimal:

Code: Alles auswählen

--- linux-image-2.6.26-2-amd64_2.6.26-19_i386/data.tar/boot/config-2.6.26-2-amd64       2009-08-19 11:52:26.000000000 +0200
+++ linux-image-2.6.26-2-amd64_2.6.26-19_amd64/data.tar/boot/config-2.6.26-2-amd64      2009-08-20 02:42:21.000000000 +0200
@@ -1,7 +1,7 @@                                                                                                            
 #                                                                                                                         
 # Automatically generated make config: don't edit                                                                         
 # Linux kernel version: 2.6.26                                                                                            
-# Wed Aug 19 05:16:14 2009                                                                                                
+# Wed Aug 19 21:57:56 2009                                                                                                
 #                                                                                                                         
 CONFIG_64BIT=y                                                                                                            
 # CONFIG_X86_32 is not set                                                                                                
@@ -2198,7 +2198,7 @@                                                                                                      
 CONFIG_SYNCLINKMP=m                                                                                                       
 CONFIG_SYNCLINK_GT=m                                                                                                      
 CONFIG_N_HDLC=m                                                                                                           
-# CONFIG_RISCOM8 is not set                                                                                               
+CONFIG_RISCOM8=m                                                                                                          
 CONFIG_SPECIALIX=m                                                                                                        
 # CONFIG_SPECIALIX_RTSCTS is not set                                                                                      
 CONFIG_SX=m
hikaru hat geschrieben:...Warum?
Ich dachte, dass die *-amd64 Version für AMD Athlons optimiert wurde (CONFIG_MK8). Das ist aber zumindest bei den folgenden Versionen nicht der Fall:
  • linux-image-2.6.26-2-686_2.6.26-19_i386
  • linux-image-2.6.26-2-amd64_2.6.26-19_amd64
  • linux-image-2.6.26-2-amd64_2.6.26-19_i386
Jetzt wo ich ein wenig drüber nachdenke, wird mir auch klar, warum CONFIG_MK8 nicht gesetzt ist. Immerhin ist der amd64 Port nicht nur für AMD Prozessoren, sondern auch für Intel Prozessoren...

Gruß,
WANA

Benutzeravatar
hikaru
Moderator
Beiträge: 13934
Registriert: 09.04.2008 12:48:59

Re: 32Bit auf 64Bit "updaten"

Beitrag von hikaru » 22.09.2009 23:48:14

WEARENOTALONE hat geschrieben:--- linux-image-2.6.26-2-amd64_2.6.26-19_i386/data.tar/boot/config-2.6.26-2-amd64 2009-08-19 11:52:26.000000000 +0200
+++ linux-image-2.6.26-2-amd64_2.6.26-19_amd64/data.tar/boot/config-2.6.26-2-amd64 2009-08-20 02:42:21.000000000 +0200
Was vergleichst du denn hier?
(Hervorhebungen von mir)

WEARENOTALONE
Beiträge: 278
Registriert: 19.04.2009 18:55:05

Re: 32Bit auf 64Bit "updaten"

Beitrag von WEARENOTALONE » 23.09.2009 17:25:45

Da es das Paket linux-image-2.6.26-2-amd64 sowohl für den i386 Port als auch für den amd64 Port gibt, aber beide 64 Bit Kernel sind, wollte ich wissen, wo die Unterschiede genau liegen. Aus diesem Grund habe ich mir beide Pakete heruntergeladen, entpackt und die /boot/config-* Dateien beider Kernelpakete verglichen (diff -Naur ...). Beantwortet das deine Frage?

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Re: 32Bit auf 64Bit "updaten"

Beitrag von armin » 23.09.2009 18:03:18

Die Frage ist nur: Was bringt dir diese Information? Es ist doch eigentlich klar, dass ein 64bit-Kernel (der übrigens für 64bit-Prozessoren optimiert ist) die gleiche configuration hat. Dem Kernel selbst ist es eigentlich total egal, ob der Userspace 32 oder 64 Bit hat (vielleicht etwas gewagt die Aussage, aber vom Prinzip der schon).
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

WEARENOTALONE
Beiträge: 278
Registriert: 19.04.2009 18:55:05

Re: 32Bit auf 64Bit "updaten"

Beitrag von WEARENOTALONE » 23.09.2009 19:12:32

armin hat geschrieben:Die Frage ist nur: Was bringt dir diese Information? Es ist doch eigentlich klar, dass ein 64bit-Kernel (der übrigens für 64bit-Prozessoren optimiert ist) die gleiche configuration hat. Dem Kernel selbst ist es eigentlich total egal, ob der Userspace 32 oder 64 Bit hat (vielleicht etwas gewagt die Aussage, aber vom Prinzip der schon).
Mir war das bisher nicht so klar ;)

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: 32Bit auf 64Bit "updaten"

Beitrag von ThorstenS » 24.09.2009 09:03:14

Ich hätte vermutet, dass mit einem einfachen Neusetzen der Architektur ein 'Upgrade' leicht möglich sei:

Code: Alles auswählen

$ apt-config dump | grep Architecture
APT::Architecture "i386";
In der apt.conf müsste also nur folgendes gesetzt werden:

Code: Alles auswählen

APT::Architecture "amd64";
Zumindest für ein Herunterladen von architekturfremden Paketen habe ich das schon genutzt.

Benutzeravatar
hikaru
Moderator
Beiträge: 13934
Registriert: 09.04.2008 12:48:59

Re: 32Bit auf 64Bit "updaten"

Beitrag von hikaru » 24.09.2009 10:53:18

armin hat geschrieben:Was bringt dir diese Information? Es ist doch eigentlich klar, dass ein 64bit-Kernel (der übrigens für 64bit-Prozessoren optimiert ist) die gleiche configuration hat. Dem Kernel selbst ist es eigentlich total egal, ob der Userspace 32 oder 64 Bit hat (vielleicht etwas gewagt die Aussage, aber vom Prinzip der schon).
Das ist nicht selbstverständlich. Wenn ich aus einem 32bit-Adressraum einen Call an einen 64bit-Kernel mache geht das gut. Wenn allerdings ein 64bit-Kernel einen Call aus einem 64bit-Adressraum an ein 32bit-Programm macht geht das gegen die Wand. Irgendetwas muss also dafür sorgen, dass der 64bit-Kernel in einem 32bit-Adressraum arbeitet wenn das Userland 32bit hat.
Eine andere Möglichkeit wäre, dass auch ein 64bit-Userland in einem 32bit-Adressraum arbeitet. Die Vorstellung gefällt mir nicht.
WEARENOTALONE hat geschrieben:Beantwortet das deine Frage?
Ja. Ich dachte erst an einen Fehler deinerseits, weil beide Architekturen eine Config mit "amd64" im Namen tragen.
ThorstenS hat geschrieben:In der apt.conf müsste also nur folgendes gesetzt werden:
Wer entscheidet über die Architektur, wenn es gar keine apt.conf gibt?

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: 32Bit auf 64Bit "updaten"

Beitrag von ThorstenS » 24.09.2009 12:13:41

hikaru hat geschrieben:
ThorstenS hat geschrieben:In der apt.conf müsste also nur folgendes gesetzt werden:
Wer entscheidet über die Architektur, wenn es gar keine apt.conf gibt?
Gute Frage, dpkg kennt sie jedenfalls:

Code: Alles auswählen

dpkg --print-architecture

Athlux
Beiträge: 543
Registriert: 16.05.2004 22:15:56

Re: 32Bit auf 64Bit "updaten"

Beitrag von Athlux » 24.09.2009 14:54:03

Eine Liste der Architekturen findet man unter: /usr/share/dpkg/archtable
Aber das klärt immer noch nicht die Frage wie er die feststellt.

Für ganz Mutige
http://teddyb.org/~rlpowell/hobbies/deb ... index.html

Offzieller Standpunkt ist ja: Nein geht nicht.
http://alioth.debian.org/docman/view.ph ... l#id292796
Gruß Athlux

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: 32Bit auf 64Bit "updaten"

Beitrag von ThorstenS » 24.09.2009 15:54:16

Athlux hat geschrieben:Eine Liste der Architekturen findet man unter: /usr/share/dpkg/archtable
Aber das klärt immer noch nicht die Frage wie er die feststellt.
Ich hab mal fix in die dpkg-sourcen geschaut und noch den interessanten Schalter --print-installation-architecture gefunden.
Im Changelog:
* src/enquiry.c (printarch): Completely nuke this function, we'll
no longer parse the compiler output and look up things in archtable.
Intern wird immer die Funktion printarch aufgerufen. Beteiligt sind die Dateien main.{c,h} und enquiry.c

Für weitere Recherchen sind meine C-Kenntnisse leider nicht mehr ausreichend. :oops:

Benutzeravatar
mikrokosmos
Beiträge: 225
Registriert: 26.07.2006 19:38:24

Re: 32Bit auf 64Bit "updaten"

Beitrag von mikrokosmos » 24.09.2009 17:48:00

Ich hab mich auch mal ein bisschen schlau gemacht und in die Quellen geschaut. In enquiry.c gibt es die Funktion printarch, welche den Inhalt der Variablen architecture ausgibt. Die Variable architecture stammt aus main.c und wird dort mit

Code: Alles auswählen

const char architecture[]= ARCHITECTURE;
definiert und initialisiert. ARCHITECTURE wird in config.h per #define-Statement angegeben. config.h wird während des Laufes von configure erstellt, welches die Architektur des Systems irgendwann einmal abfragt. Soll heißen: Die Architektur wird beim Kompilieren fest in dpkg reingeschrieben.

Antworten