如何将 Snappy Ubuntu Core 刷入 BeagleBone Black 的 eMMC?

如何将 Snappy Ubuntu Core 刷入 BeagleBone Black 的 eMMC?

我已成功遵循以下说明Snappy:开始使用 Beaglebone Black目前我的 BeagleBone Black 总是从 microSD 卡启动 Ubuntu Core。

是否有可能闪光板载闪存上的 Ubuntu Core(嵌入式多媒体卡) 本身,这样我就不再需要 SD 卡了?(eMMC 的存储容量约为 4GB。)

答案1

结果和剩余问题
本演练从 Beaglebone Black (BBB) eMMC 启动 Snappy Ubuntu Core,而不是从 SD 卡默认启动。但要做到这一点,它会破坏在 Snappy Core 默认映像的 U-boot 步骤中构建的 a/b 回退机制。回退机制被破坏的原因是它使用了“saveenv”U-boot 命令,由于未知原因,该命令似乎无法在 BBB 的 eMMC 上运行。

演练

  1. 创建可启动的 SD 卡,将 Snappy Core img 添加到 BBB 的 eMMC。

    • 下载 beaglebone.org 提供的最新 Debian 映像:

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

    • 解压并将 debian 映像复制到您的 SD 卡。 当心如果选择了错误的设备,您可能会覆盖根文件系统!插入 SD 卡时检查“dmesg | tail”以找到正确的设备。

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

  2. 使用 Snappy Ubuntu Core 映像覆盖 eMMC 默认映像。

    • 下载压缩的 Snappy Ubuntu Core 映像到 SD 卡上。
      将新创建的 Debian SD 卡插入 BBB 并使用启动按钮从中启动。启动后,将 Snappy Ubuntu Core 压缩映像下载到 SD 卡上。

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

    • 找出哪个设备是 eMMC。
      在启动过程中,debian 映像会将 SD 卡上的根文件系统挂载到“/”。通常是“/dev/mmcblk0”。

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

      检查其他可用的 mmc 设备。通常这意味着 eMMC 是 /dev/mmcblk1。

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

    • 解压并将 Snappy Ubuntu Core 映像复制到 BBB 的 eMMC。

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

  3. 将 U-Boot 设置更改为从 eMMC 启动,而不是从 SD 卡启动。
    默认情况下,U-boot 将不会启动,因为 U-boot 环境仍指向 SD 卡。我使用了u环境变量.txt示例开始并调整一些内容以指向 eMMC。实际上更改了 3 行:
    • 将 mmc 设备从 SD 卡 (1) 更改为 eMMC (0)
      原始
      mmcdev=0
      新:
      mmcdev=1
    • 将 snappy_ab 后备系统更改为 snappy_kernel=a,现在已固定在第一个 rootfs (a)。
      原版
      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}

      新版
      snappy_kernel=a snappy_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. 移除 SD 卡并重启

相关内容