Boot from SD-Card

  • 16 Antworten
  • Neuester Beitrag
Diskutiere Boot from SD-Card im Root / Hacking / Modding für HTC Desire im Bereich HTC Desire Forum.
burst

burst

Stammgast
[ITS WORKING] Boot from SD card - xda-developers

heute im laufe des Tages soll es eine Anleitung geben, wie man es fertig bringt, das das Desire per "Home" Drücken beim anschalten von der SD-Karte bootet.

so kann man später ein neues Rom testen, ohne das alte zu verlieren
 
C

Colgate

Gast
Ui das wär domma was :)
 
G

Gast5050

Gast
Das wäre wirklich nen schickes Feature
 
electroman

electroman

Fortgeschrittenes Mitglied
Gibts da eine deutsche anleitung im forum? Wäre geil!
Ich will android 2.3 testen, aber vielleicht nicht behalten.
Dann müsste ich nicht flashen.
Mfg
 
D

Desire:D

Stammgast
Ja das ist doch mal nen Feat.!...Sobald es eine Deutsche Anleitung gibt werde ich dabei sein
 
C

Cordezz

Erfahrenes Mitglied
Ihr seit lustig... Die Anleitung ist in simpelstem Englisch geschrieben. Wenn ihr das nicht versteht, wollt ihr trotzdem mit Linux-Befehlen hantieren ohne zu wissen was eigentlich passiert? Einfach mal c&p und schauen ob es klappt?
 
Z

Zipfelklatscher

Gast
<OFFTOPIC>
Ich verstehe auch immer nicht, warum man für alles eine deutsche Anleitung haben muss. Wenn man sich mit sowas wie Rooting von Mobiltelefonen befasst, sollte ein Mindestmaß an Englisch-Kenntnissen selbstverständlich sein.
</OFFTOPIC>
 
C

cargo

Gast
Zipfelklatscher schrieb:
<OFFTOPIC>
Ich verstehe auch immer nicht, warum man für alles eine deutsche Anleitung haben muss. Wenn man sich mit sowas wie Rooting von Mobiltelefonen befasst, sollte ein Mindestmaß an Englisch-Kenntnissen selbstverständlich sein.
</OFFTOPIC>
Nochmal OT//

Jeder der einen PC hat, sollte einige wenige Englisch Grundkenntnisse haben...//OT:huh:
 
D

Desire:D

Stammgast
huhu..
Ich habe verstanden wie es funktionieren soll..
ABER:
Ich habe nicht so ganz verstanden was ich amchen soll :p


Und zwar

1. To make a 1GB empty file, issue dd if=/dev/zero of=altboot.ext2 bs=1M count=1000
2. Make a EXT2 filesystem on the file: mkfs.ext2 altboot.ext2
3. Mount the file as a loopdevice: mount -o loop -t ext2 altboot.ext2 <mountpoint>
4. Copy files from the attached initfiles.zip to <mountpoint>
5. Copy all files from a rom of your choice to <mountpoint>
6. Issue a chmod -R 0755 <mountpoint>
7. Issue umount <mountpoint>
8. Copy altboot.ext2 to the root of the SD-card
9. Flash my kernel image
10. Reboot your phone, and press the Home key repeatedly


Soll ich das fett geschriebene einfach ... worein kopieren... wenn ja was ist mit mountpoint gemeint... auf dem handy... i.wo auf dem pc... oder sonstwas ???

Oder soll ich

#include <unistd.h>
#include <sys/stat.h>
#include <sys/mount.h>
#include <linux/loop.h>
#include <fcntl.h>

#define BB_LOOP_SET_STATUS LOOP_SET_STATUS64
#define BB_LOOP_GET_STATUS LOOP_GET_STATUS64
typedef struct loop_info64 loop_info;


int main (int argc, char * argv[]) {
int dfd,ffd;
loop_info loopinfo;

mknod("/sd2" , S_IFBLK|S_IRUSR| S_IWUSR, makedev(179,1) );
mknod("/lo5" , S_IFBLK|S_IRUSR| S_IWUSR, makedev(7,5) );


mkdir("/sd", 0755);
sleep(7);
mount("/sd2","/sd", "vfat",0, NULL) ;


ffd = open("/sd/altboot.ext2", O_RDWR);
dfd = open("/lo5", O_RDWR);

ioctl(dfd, LOOP_SET_FD, ffd);
memset(&loopinfo, 0, sizeof(loopinfo));
strcpy((char *)loopinfo.lo_file_name, "/sd/altboot.ext2");
ioctl(dfd, BB_LOOP_SET_STATUS, &loopinfo);
mkdir("/chrootenv", 0755);
if (mount("/lo5", "/chrootenv","ext2", 0, NULL) != 0 ) {
execv("/init", argv);
}
execv("/chrootenv/altinit", argv);
}

Das hier machen ?
ueber ne Linux cd ?


kann nicht mal jmd schreiben was genau gemacht werden muss und wo ich was wie eingeben muss?
wuerde sich bestimmt auch nicht nur ich drüber freuen.
 
Thyrion

Thyrion

Ehrenmitglied
Schritt 1 bis 7 machst du auf einer Linux-Maschine im Terminal (wobei du <mountpoint> wohl noch durch einen entsprechend Pfad ersetzen musst - eben durch den, wo das Ext2-Image eingehängt werden soll)
Schritt 8-10 erklären sich von selbst

Was du allerdings mit dem C-Programm machen sollst, weiß ich nicht - und ich habe die Anleitung bei den XDA-Devs noch nicht gelesen (und komme wenn dann erst heute Abend dazu).

EDIT: Es werden hier aber wirklich schon etwas mehr Know-How bezüglich des Linux-Betriebssystems (was sind Mount-Points, wie verwende ich diese, wie gehe ich mit Pfaden um, usw.) verlangt :)

EDIT 2: Bei den fettgeschriebenen Bereichen hast du nicht immer den kompletten Befehl erfasst. Daher bitte, erst genau verstehen, was von einem verlangt wird und nicht blind Befehle abtippen.
 
Thyrion

Thyrion

Ehrenmitglied
Ich habe mir die Anleitung und den Thread dazu jetzt mal angeschaut. Mit den beiden Quelltexten musst du gar nichts machen - die sind nur zur Information, falls jemand die gleiche Funktionalität in einen eigenen Kernel einbauen möchte.

Jetzt brauch ich nur noch ein anderes ROM, dass auch mit dem verändertem Kernel läuft um es zu testen :cool:
 
D

Desire:D

Stammgast
aha... ähm.. okaaay... also erst gucken ob der Kernel zum rom passt... dann ne virtuelle ext 2 anlegen... auf der sdkarte vom handy geh ich von aus ?..
also der pfad wird dann etwa so aussehen Wechseldatenträger E:\... oder ?
und dann einfach das machen wies da steht... oben das fett geschriebene ?


Wie finde ich raus ob ein kernel "passt?"
 
Thyrion

Thyrion

Ehrenmitglied
Also...

Es muss eine Datei in das Hauptverzeichnis auf die SD-Karte kopiert werden - Name: altboot.ext2. Diese Datei muss erst erzeugt werden. Das geht am einfachsten (und so ist es auch beschrieben) unter Linux auf dem PC.

Dazu Linux booten, ein Terminal aufmachen und Root-Rechte anfordern. Danach:
# dd if=/dev/zero of=altboot.ext2 bs=1M count=1000 (erzeugt eine 1GB große Datei, in der die Daten nachher liegen sollen)
# mkfs.ext2 altboot.ext2 (und die Rückfrage mit j / y bestätigen - bereitet die Datei so vor, dass sie als virtuelle/Loopback Ext2-Partition verwendet werden kann)

Als Mountpoint (Einhängepunkt) habe ich /mnt/altboot verwendet. Dieses Verzeichnis muss evtl. noch angelegt werden, mit mkdir /mnt/altboot

# mount -o loop -t ext2 altboot.ext2 /mnt/altboot (das Image mounten (ist vergleichbar mit der Zuordnung eines CD-Images zu einem virtuellem Laufwerk)
# cp initfiles.zip /mnt/altboot (die Datei initfiles.zip (zu finden beim XDA-Dev-Thread in Post #1) in das virtuelle "Laufwerk" kopieren

... Nun die nötigen ROM-Dateien kopieren (entpackt und nicht als ZIP) ... (dieser Teil ist hier jetzt nicht explizit beschrieben)

# chmod -R 0755 /mnt/altboot (ein paar Rechte setzen)
# umount /mnt/altboot ("Laufwerk" aushängen und damit die Image-Datei freigeben)

Die Datei altboot.ext2 ist nun erstellt. Wie oben schon gesagt, diese in das Hauptverzeichnis auf der SD-Karte kopieren. Den veränderten Kernel (auch zu finden bei den XDA-Devs) flashen und das Handy mit wiederholtem Druck auf die Home-Taste einschalten.

Voraussetzungen für das alternative ROM: Es muss mit dem veränderten Kernel laufen, da dieser nicht aus dem Image geladen wird. Es wird nur ein anderer Init-Prozess gestartet.


(Der letzte Teil - also das tatsächliche Doing am Handy - ist von mir noch ungetestet und aus der XDA-Dev-Anleitung übernommen).

EDIT: Im Anhang eine altboot.ext2 als Rohling - darin liegt bereits die initfiles.zip - sonst ist das Ding aber leer.
 

Anhänge

  • altboot.ext2.zip
    1,1 MB Aufrufe: 226
Zuletzt bearbeitet:
S

smart42c

Fortgeschrittenes Mitglied
kann das jemanderklären das ich das auch versteh?
okay ich geh her lad mir jetzt das file runter (altboot.ext2)
nur wie flash ich da dann ein android rauf?

muss dazusagen hab selbst noch gar nichts geflasht!
 
PeterSimlock

PeterSimlock

Stammgast
smart42c schrieb:
kann das jemanderklären das ich das auch versteh?
okay ich geh her lad mir jetzt das file runter (altboot.ext2)
nur wie flash ich da dann ein android rauf?

muss dazusagen hab selbst noch gar nichts geflasht!
Also wenn Du die Anleitung von Thyrion nicht verstehst, dann sollst Du erst ein bisschen über Linux und Android lernen da sonst Gefahr besteht , dass Du Dein Handy kaputt machst.


Gruß
Peter
 
Thyrion

Thyrion

Ehrenmitglied
Ich habe das gestern mal selbst ausprobiert und landete prompt in einem bösen Bootloop, den ich auch nicht mehr beheben konnte, in dem ich meinen vorherigen Kernel geflasht habe.

Da der Artikel schon etwas älter ist, könnte es sein, dass es sich bei dem alternativen Kernel um einen Eclair-Kernel handelt und er deshalb mit dem Froyo-ROM nicht klar kam :rolleyes2:
Das muss ich aber noch überprüfen.

@smart42c: Da muss ich Peter Recht geben. In der Anleitung im Original-Thread oder von mir, sind alle notwendigen Schritte genannt (auch wie man das Image so verfügbar machen kann, dass man ein ROM hinein kopieren kann). Wenn hier aber noch das Verständnis fehlt, um nachzuvollziehen, was denn in den einzelnen Schritten gemacht wird (und warum), dann tut es mir leid. Da wirst du nicht umhin kommen, es entweder auszuprobieren (und evtl. teures Lehrgeld zahlen) oder dich vorher noch ein wenig mit den Grundlagen von Linux und den hier verwendeten Befehlen einlesen müssen.




EDIT: Hmm... Der Kernel soll für Froyo sein. Dann ist wohl noch was anderes faul.