web-dev-qa-db-fra.com

Comment flasher Snappy Ubuntu Core sur une eMMC BeagleBone Black?

J'ai suivi avec succès les instructions sous Snappy: Débuter avec un Beaglebone Black et actuellement, mon BeagleBone Black démarre toujours Ubuntu Core à partir de la carte microSD.

Est-il possible de clignoter Ubuntu Core sur la mémoire flash intégrée ( eMMC ) lui-même, de sorte que je n'ai plus du tout besoin de la carte SD? (La capacité de stockage de l'eMMC est d'environ 4 Go.)

1

Le résultat et le problème restant
Cette procédure permet d’amorcer Snappy Ubuntu Core à partir de l’eMMC de Beaglebone Black (BBB) ​​au lieu du démarrage par défaut de la carte SD. Mais pour que cela fonctionne, il rompt le mécanisme de secours a/b construit à l’étape U-boot de l’image par défaut de Snappy Core. Le mécanisme de secours est cassé parce qu'il utilise la commande "saveenv" U-boot qui, pour une raison encore inconnue, ne semble pas fonctionner avec la mémoire eMMC du BBB.

La procédure pas à pas

  1. Créer une carte SD amorçable pour dd le Snappy Core img à la mémoire eMMC du BBB.

    • Téléchargez la dernière image Debian fournie par beaglebone.org:

      $ wget https: // debian.beagleboard.org/images/bone-debian-7.8-lxde-4gb-armhf-2015-03-01-4gb.img.xz

    • Déballez et copiez l’image debian sur votre carte SD. SOYEZ PRUDENT vous pouvez écraser votre système de fichiers racine si vous choisissez le mauvais périphérique! Vérifiez "dmesg | tail" lors de l’insertion de la carte SD pour trouver le bon périphérique.

      $ unxz -c os-debian-7.8-lxde-4gb-armhf-2015-03-01-4gb.img.xz | Sudo dd of =/dev/sdX bs = 32M
      $ sync

  2. Remplacez l'image par défaut eMMC par l'image Snappy Ubuntu Core.

    • Téléchargez une image comprimée Snappy Ubuntu Core sur la carte SD.
      Insérez la carte SD Debian nouvellement créée dans le BBB et démarrez-la à l’aide du bouton de démarrage. Une fois démarré, téléchargez l’image compressée Snappy Ubuntu Core sur la carte SD.

      $ wget http://releases.ubuntu.com/15.04/ubuntu-15.04-snappy-armhf-bbb.img.xz

    • Découvrez quel appareil est l'eMMC.
      Au démarrage, l’image debian montera le système de fichiers racine de la carte SD sur "/". Il s’agit généralement de "/ dev/mmcblk0".

      $ cat/etc/fstab | grep mmc
      /dev/mmcblk0p2/ext4 noatime, erros = remount -ro 0 1

      Vérifiez quel est l'autre périphérique mmc disponible. Cela signifie généralement que l'eMMC est/dev/mmcblk1.

      $ ls/dev/mmcblk?
      /dev/mmcblk0/dev/mmcblk1

    • Décompressez et ddez l’image Snappy Ubuntu Core dans la mémoire eMMC du BBB.

      $ unxz -c ubuntu-15.04-snappy-armhf-bbb.img.xz | Sudo dd of =/dev/mmcblk1 bs = 32M
      $ sync

  3. Modifiez les paramètres U-Boot pour démarrer à partir de eMMC au lieu de la carte SD.
    Par défaut, U-boot ne démarrera pas car son environnement pointe toujours sur la carte SD. J'ai utilisé l'exemple Env.txt pour commencer et ajuster quelques éléments afin de pointer sur l'eMMC. En réalité, 3 lignes sont modifiées:
    • Changer le périphérique mmc de la carte SD (1) en eMMC (0)
      Original
      mmcdev=0
      Nouveau:
      mmcdev=1
    • Changez le système de secours snappy_ab en snappy_kernel = a, qui est maintenant corrigé au premier rootfs (a).
      Original
      snappy_ab=a
      snappy_boot=if test "${snappy_mode}" = "try"; then if test "${snappy_trial_boot}" = "1"; then setenv snappy_os "${snappy_good_os}"; setenv snappy_kernel "${snappy_good_kernel}"; saveenv; else setenv snappy_trial_boot 1; saveenv; fi; fi; run loadfiles; setenv mmcroot /dev/disk/by-label/writable ${snappy_cmdline} snappy_os=${snappy_os} snappy_kernel=${snappy_kernel}; run mmcargs; bootz ${loadaddr} ${initrd_addr}:${initrd_size} ${fdtaddr}

      Nouveau
      snappy_kernel=asnappy_boot=run loadfiles; setenv mmcroot /dev/disk/by-label/system-${snappy_kernel} ${snappy_cmdline} snappy_os=${snappy_os} snappy_kernel=${snappy_kernel} rootfstype=ext4; run mmcargs; bootz ${loadaddr} ${initrd_addr}:${initrd_size} ${fdtaddr}
  4. Retirez la carte SD et redémarrez
2
brechtvc