Forum de la communauté francophone autour du projet OpenMoko
Vous n'êtes pas identifié.
Bonsoir,
Quelqu'un a-t-il pu utiliser ANDROID depuis une SD ?
J'ai voulu cet après-midi tenter l'expérience, et c'est un sacré "merdier" ! Il y a plusieurs tutoriels plus ou moins complets, et je n'ai pu concrétiser.
A vot' bon coeur ![]()
Hors ligne
Moi je l'utilise tous les jours, voici les explications:
Il faut télécharger les images et noyaux depuis http://www.fragcom.de/android/
Pour la carte SD il suffit de créer une partition fat32 et une ext3 (n'importe quelle distribution doit posséder un outils pour faire ça simplement)
Ensuite ça ce complique un petit peu, mais pas tant que ça, télécharge http://panicking.kicks-ass.org/download … .2.tar.gz, à l'intérieur il y a un script qui permet de transformer tout seul l'image jffs2 en fichiers copiables, ça ne marche pas chez moi car je suis dans une configuration un peu particulière mais ça devrais marcher pour toi, ensuite il suffit de copier les fichiers obtenus sur la partition ext3 et le noyaux (uImage.bin) sur la partition fat32.
Si le script ne fonctionne pas, il faudra attendre ce soir que je prenne le temps d'expliquer la méthode manuelle pour monter l'image mais en gros c'est:
Monter l'image jffs2 (avec mtdblock + block2mtd + jffs2 ...)
Patcher le script init.rc avec le patch inclus dans l'archive.
Copier tout ça sur la partition ext3, créer le répertoire boot sur la partition ext3 et copier le noyaux sur la partition fat32 sous le nom uImage.bin et sur la partition ext3 dans boot sous le nom uImage-GTA02.bin
Voila, je suppose qu'il vas falloir que tu repasse dans les parage car c'est pas toujours simple, n'hésite pas à redemander.
Hors ligne
Et Androïd gère le code PIN maintenant ou toujours pas ?
Hors ligne
Hum je sais pas, j'ai un doute, moi je l'ai désactivé, je peu essayer ce soir éventuellement de remettre le code PIN pour voir ce qu'il ce passe. Il me semble que c'est réglé par Michael Trimarchi.
Hors ligne
Merci SuperZell.
Je vais tenter le coup ce WE, si j'arrive à gérer le partionnement de ma µSD 8 Go : je crée 3 partitions via fdisk, ce qui me donne /dev/mmcblk0p1 et 2 et 3, ensuite mkfs.vfat pour la 1 et mkfs.ext3 pour les autres, mais quand je fais les mount, seule la partition 1 se monte sur /media/card, les autres refusent de se monter (mount point does toto does not exist.
De plus, lorsque je réitère le fdisk /dev/mmcblk0, il me trouve bien les 3 partitions, mais celle que j'ai formatée via mkfs.vfat se retrouve en linux !
Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
4 heads, 16 sectors/track, 243200 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 31251 1000024 83 Linux
/dev/mmcblk0p2 31252 62502 1000032 83 Linux
/dev/mmcblk0p3 62503 243200 5782336 83 Linux
Chuis un peu bloqué. Mais je trouverai ![]()
Hors ligne
Alors, le mieux c'est de tout recommencer, pour partir ce de bases saines puis:
Utilise gparted (ou qparted sous KDE) pour créer tes partitions car il ne suffit pas de les formater a un certains format, il faut aussi le attribuer un "flag" qui correspond, 83 pour du ext3 et b du fat32 (vfat).
Si jamais, pour le faire avec fdisk :
Supprime tout
d puis 3, d puis 2, d puis 1
Crée trous partitions
n puis p puis 1 ...
ensuite met le flag qu'il faut sur la fat 32
t puis 1 puis b
Sauvegarde
w
Formate en FAT32
mkfs.vfat /dev/mmcblk0p1
Formate en ext3
mkfs.ext3 /dev/mmcblk0p2
mkfs.ext3 /dev/mmcblk0p3
reste plus qu'a reprendre ![]()
Dernière modification par SuperZell (06-03-2009 00:18:06)
Hors ligne
OK j'y vais ![]()
Hors ligne
Pb.
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy
Avant de faire fdisk, j'ai tenté umount /media/card :
root@om-gta02:~# umount /media/card
umount: /media/card: device is busy
umount: /media/card: device is busy
Et puis :
root@om-gta02:~# mkfs.vfat /dev/mmcblk0p1
mkfs.vfat 2.11 (12 Mar 2005)
mkfs.vfat: /dev/mmcblk0p1 contains a mounted file system.
Par contre, les mkfs.ext3 vont bien.
Bref, ça n'est pas simple.
Edit : pbs réglés pour les umount et fdisk, en désinstallant le gpe-filemanager. ![]()
Je vais donc pouvoir procéder comme indiqué par SuperZell.
Dernière modification par skipper83 (06-03-2009 01:03:42)
Hors ligne
Bonsoir SuperZell,
Le script ne fonctionne pas chez moi :
[mmo@monolith1 NEO]$ ./convert-image
Image Conversion of the files and is running...
mkdir: ne peut créer le répertoire `/tmp/convert-image-tmp/': Le fichier existe
mkdir: ne peut créer le répertoire `/tmp/convert-image-tmp/image': Le fichier existe
mkdir: ne peut créer le répertoire `/tmp/convert-image-tmp/rootfs': Le fichier existe
cp: opérande du fichier cible manquant après `/tmp/convert-image-tmp/uImage-GTA02.bin'
Pour en savoir davantage, faites: « cp --help ».
cp: opérande du fichier cible manquant après `/tmp/convert-image-tmp/freerunner-android.jffs2'
Pour en savoir davantage, faites: « cp --help ».
your password is nead to mount the image
Password:
sudo: pam_authenticate: Module inconnu
cp: ne peut évaluer `/tmp/convert-image-tmp/image/*': Aucun fichier ou dossier de ce type
cp: ne peut évaluer `/tmp/convert-image-tmp/uImage-GTA02.bin': Aucun fichier ou dossier de ce type
./convert-image: line 21: /usr/share/convert-image-patch/init.patch: Aucun fichier ou dossier de ce type
./
./boot/
./boot/append-GTA02
Password:
sudo: pam_authenticate: Module inconnu
#######################################################################
#if you dont have it, you nead to install the Qi Bootloader on your #
#freerunner. Informations about it can you find here #
#http://wiki.openmoko.org/wiki/Qi #
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
#you nead 2 partitions how you can predare your card can you find here#
#http://wiki.openmoko.org/wiki/Booting_from_SD#Prepare_the_SD_card #
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
#now copy the kernel to your vfat partition on your mircoSDcard #
#example: cp uImage-GTA02.bin /media/disk/uImage.bin #
#and extract your new rootfs to your ext3 partition #
#example: tar -C /media/disk-1/ -xzvf android-freerunner.tar.gz #
#######################################################################
The conversion is done, you can find it under your /tmp directory named android-freerunner.tar.gz
[mmo@monolith1 NEO]$
Merci d'avance si tu peux m'expliciter la procédure manuelle.
Hors ligne
Oups désolé de ne pas avoir répondu plus tôt.
Je n'ai pas mon pc sous la main tout de suite alors je suis pas sur de pouvoir beaucoup t'aider mais déjà je vais commencer par ça:
#Surtout ne pas oublier de remplacer ton_fichier.jffs2, ton_fichier_uImage-vXX.bin et /ton/fichier/de/patch/convert-image-patch/init.patch par les vrais nom de fichiers chez toi
#On monte l'image
sudo modprobe loop
sudo modprobe mtdblock
sudo losetup /dev/loop0 ton_fichier.jffs2
sudo modprobe block2mtd block2mtd=$loop,131072
sudo mknod /dev/mtdblock0 b 31 0 (si pas encore créé)
sudo mkdir /mnt/jffs2 (ou autre point de montage)
sudo mount -t jffs2 /dev/mtdblock0 /mnt/jffs2
#On monte les deux partitions de ta carte.
sudo mkdir /mnt/root
sudo mkdir /mnt/kernel
sudo mount /dev/mmcblk0p1 /mnt/kernel
sudo mount /dev/mmcblk0p2 /mnt/root
#On copie tout ce qu'il faut sur la carte et on patch le fichier init.rc avec le patch fournit dans l'archive de conversion
sudo cp -r /mnt/jffs2/* /mnt/root/
sudo mkdir /mnt/root/boot
sudo cp ton_fichier_uImage-vXX.bin /mnt/kernel/uImage.bin
sudo cp ton_fichier_uImage-vXX.bin /mnt/root/boot/uImage-GTA02.bin
sudo patch /mnt/root/init.rc /ton/fichier/de/patch/convert-image-patch/init.patch
#Enfin on démonte tout
sudo unmount /mnt/kernel
sudo unmount /mnt/root
sudo unmount /mnt/jffs2
Et voilà ![]()
Hors ligne
Ha oui j'allais oublier, tu peu aussi si tu le souhaite re-télécharger les images, car tu n'as peut-être plus les dernières, évite les images "cupcake" le wifi ne fonctionne pas encore.
Hors ligne
Salut SuperZell,
Quand j'arrive au mount, j'ai une erreur :
mount -t jffs2 /dev/mtdblock0 /mnt/jffs2
mount: type inconnu de système de fichiers 'jffs2'
Je suppose que les opérations que tu m'indique doivent être effectuées sur l'ordinateur hôte, pas sur le FR ?
Pas si facile que ça, la manip ! ![]()
Hors ligne
Ooups, c'est ma faute, j'ai oublié un modprobe ![]()
juste après sudo modprobe block2mtd block2mtd=$loop,131072 :
sudo modprobe jffs2
et ça devrais aller.
Hors ligne
Ben non, ça ne va pas : même punition, même motif ![]()
Pourtant, les modules sont bien chargés :
[root@amdopt180 NEO]# lsmod
Module Size Used by
jffs2 138848 0
zlib_deflate 26136 1 jffs2
block2mtd 10112 0
mtdblock 9216 0
mtd_blkdevs 11648 1 mtdblock
mtd 18828 4 jffs2,block2mtd,mtd_blkdevs
Dernière modification par skipper83 (16-03-2009 00:42:00)
Hors ligne
Essai peut être de remplacer
mount -t jffs2 /dev/mtdblock0 /mnt/jffs2
par
mount /dev/mtdblock0 /mnt/jffs2
mais je doute que ça marche, là du coup je ne voit pas, ça marche très bien pour moi comme ça... C'est quelle distribution (moi c'est sous mandriva)?
Hors ligne
Ben effectivement ça ne fonctionne pas :
mount: vous devez spécifier le type de système de fichiers
Moi aussi, je suis sous Mandriva (PWP 2009 X86_64).
J'ai en objectif de décortiquer les scripts que tu m'as indiqué plus haut, pour essayer de comprendre pourquoi ça ne marche pas chez moi, et pour les adapter, mais ça va me demander du temps. C'est un peu frustrant d'être bloqué comme ça !
Hors ligne
Oui c'est ce que j'ai fait moi aussi quand j'ai vu que le script ne marchais pas.
Après moi je ne suis ni en 64bit ni en 2009 (suis en cooker) donc ya peut-être quelques petits changements, je ne sais pas.
En tout cas j'ai re-essayé hier soir et je te confirme que ça marche pour moi.
Enfin si vraiment ça ne marche pas, je te ferais un tar.gz et tu le récupèreras je ne sais pas où.
Hors ligne
Pour monter un jffs2 :
export loop=$(losetup -f)
losetup $loop <rootfs.jffs2>
modprobe block2mtd block2mtd=$loop,131072
modprobe jffs2
modprobe mtdblock
mkdir <mountpoint>
mount -t jffs2 -o ro /dev/mtdblock0 <mountpoint>![]()
Hors ligne
Merci. Je vais tester ça dans quelques heures. ![]()
Hors ligne
Bonsoir Xavier_OM
#export loop=$(losetup -f) entraîne :
losetup : option invalide -- f
usage:
losetup [options] loop_device file # setup
losetup -F [options] loop_device [file] # setup, read /etc/fstab
losetup loop_device # give info
losetup -a # give info of all loops
losetup -d loop_device # delete
losetup -R loop_device # resize
options: -e encryption -o offset -s sizelimit -p passwdfd -T -S pseed
-H phash -I loinit -K gpgkey -G gpghome -C itercountk -v -r
-P cleartextkey
[root@nfr ANDROID]#
D'autre part, le <rootfs.jffs2> de la commande suivante est-il le fichier freerunner-v14.6.jffs2.1 téléchargé depuis le site fragcom.de indiqué par SuperZell ? Parce que si je fais : losetup $loop <rootfs.jffs2>, j'obtiens :
bash: syntax error near unexpected token `newline'
Je ne suis pas assez avancé dans la connaissance du système pour interpréter les scripts d'implantation d'OS. Je suis pour l'instant juste capable de suivre les tutos. Merci d'avance pour votre patience ![]()
Dernière modification par skipper83 (20-03-2009 21:56:26)
Hors ligne
-f semble pourtant être une option standard de losetup... quelle distribution utilises-tu ?
losetup --help
Usage:
losetup loop_device # give info
losetup -a | --all # list all used
losetup -d | --detach loop_device # delete
losetup -f | --find # find unused
losetup [ options ] {-f|--find|loop_device} file # setup
Sinon oui, <root.jffs2> est une notation que j'ai utilisé pour désigner "le fichier jffs2 d'Android"... pas de soucis c'est normal que le shell te fasse une erreur si tu as écris <root.jffs2> donc ![]()
Hors ligne
En tout cas pareil chez moi, le -f ne marche pas
usage:
losetup [options] loop_device file # setup
losetup -F [options] loop_device [file] # setup, read /etc/fstab
losetup loop_device # give info
losetup -a # give info of all loops
losetup -d loop_device # delete
losetup -R loop_device # resize
options: -e encryption -o offset -s sizelimit -p passwdfd -T -S pseed
-H phash -I loinit -K gpgkey -G gpghome -C itercountk -v -r
-P cleartextkeyHors ligne
et donc ta distribution c'est quoi ?
http://gd.tuwien.ac.at/linuxcommand.org … etup8.html
Hors ligne
Mandriva PowerPack 2009 X86_64.
Hors ligne
J'ai continuer le howto concernant Android sur le wiki : http://openmoko-fr.org/wiki/index.php/Android
L'installation sur carte µSD à partir d'une image téléchargée fonctionne.
Par contre, J'ai commencé à écrire un tuto sur la création d'image via les sources koulu. J'ai eu pas mal de difficulté car il me manquait des outils (que j'ai mis dans les prérequis). Mais j'ai encore eu une érreur. Si quelqu'un peut m'aider à ce niveau, merci ![]()
Dernière modification par FreedomSound (15-04-2009 14:16:06)
Hors ligne