J'ai installé avec succès Ubuntu 18.04 sur une carte SD. Je l'ai fait en créant une table de partition msdos (pi ne supporte pas guid), puis en plaçant U-Boot sur la carte SD sur la partition 1 (fat32, pi ne supporte rien d'autre). Ensuite, j'ai collé le pi-bootloader sur la partition 1 /. Et puis j'ai copié les fichiers du programme d'installation net (mini-iso) sur cette partition également. L'ensemble du processus est aménagé ici .
Tout fonctionne parfaitement bien depuis la carte SD. UBoot démarre, puis il charge le grub2 fourni avec le mini installateur net. cela à son tour, j'ai changé la configuration afin qu'il charge le noyau Linux à partir de la partition 3 (p2 est swap, dans mon cas).
Donc, j'ai tiré une image de cela, le mettre sur un lecteur USB (adaptateur USB à M2 SATA), qui devrait simplement se comporter comme tout autre lecteur flash. Alors, je l'allume. U boot démarre, je ne vois rien de différent de la normale. Ensuite, il charge la bouffe. Mais au lieu d’afficher un menu sympa avec la possibilité de démarrer ubuntu ou de l’installer (car le programme d’installation réseau est toujours là), il m’a envoyé directement dans la console Grub.
en tapant, je reçois (memdisk), et rien d’autre. Il ne semble pas que le lecteur USB soit réellement chargé. sur ce memdisk se trouve un fichier unique à (memdisk) /boot/grub/grub.cfg, mais je n’ai aucun moyen de savoir ce qu’il contient réellement. Edit: (memdisk) se trouve également sur la carte SD, le même contenu, il répertorie uniquement les partitions de la carte SD, mais pas sur le lecteur flash.
Il n'y a pas de modules grub, rien. Je pense que cela me fait voir très brièvement une erreur, mais la console Grub s'ouvre et je n'ai pas le temps de lire ces messages.
Je ne sais plus quoi faire. Peut-être que si je crée ma propre image grub avec des modules usb comme décrit maintenant ici (utiliser grub-mkimage pour créer une image grub avec des modules dans le memdisk)? Bien que je n'aie aucune idée des modules dont j'ai besoin, ou si c'est même la bonne approche.
Toute aide serait grandement appréciée.
Edit: j'ai trouvé this :
En gros, vous avez besoin de modules grub (que je n'ai pas) pour que grub puisse reconnaître le lecteur USB.
la réponse courte est:
insmod usbms insmod ehci insmod uhci insmod ohci
Une seule des lignes * hci est nécessaire (généralement ehci), mais les machines plus anciennes peuvent nécessiter soit uhci soit ohci. L'insertion des 3 fonctionne correctement.
Ces lignes doivent être ajoutées à grub.cfg ou custom.cfg (je recommande ce dernier) dans le dossier/boot/grub/du lecteur non USB.
J'ai obtenu mes modules de ici , cependant usbms ne figure pas parmi eux et [e, u, o] hci non plus. J'ai trouvé ceci à propos de l'écriture de modules grub, mais cela me trouble. Et je ne trouve pas le code source. Utiliser quelque chose de bizarre comme le processeur Armhf 64 bits ne facilite pas la recherche de logiciels compatibles.
Edit2: J'ai téléchargé le code source de grub depuis http://git.savannah.gnu.org/git/grub.git/ et l'ai compilé sur mon Raspberry Pi. Cependant, les fichiers de code source usbms.c et ehci.c sont présents, il ne les a pas compilés dans des modules grub.
J'ai trouvé cette information sur la façon de construire des modules grub ici mais ça ne marche pas pour moi. J'ai essayé de changer Makefile.core.am et enlevé l'instruction if autour de usbms.module, puis d'exécuter autogen et de configurer. Pas de dé. J'ai essayé de construire manuellement grub-core avec make usbms.module, mais il est écrit gcc: erreur fatale: pas de fichier d'entrée.
Je n'ai pas besoin de bouffe. Je veux juste démarrer mon Ubuntu arm64. Si je peux en quelque sorte sauter de u boot directement à là-bas, ça va.
Mes idées actuelles:
Je ne sais pas comment en faire.
Vous pouvez installer ubuntu sur une carte sd, puis échanger uboot (kernel8.img) avec un nouveau noyau tel que https://github.com/sakaki-/bcmrpi3-kernel maintenant, vous configurez une cmdline. txt comme en raspbian, par exemple
dwc_otg.lpm_enabled=0 root=PARTUUID=12345678-03 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
alors vous pouvez copier le fichier config.txt de Raspbian, par exemple
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835) dtparam=audio=on
program_usb_boot_mode=1
ajouter
dtoverlay=rpi-backlight
dtoverlay=rpi-ft5406
jusqu'au bout si vous avez l'écran tactile ft5406 et chargez les modules du noyau dans /etc/modules-load.d/ft5406.conf
rpi_backlight
rpi_ft5406
et ça marche