![有没有办法让 MaaS 调试 Raspberry Pi 3B?](https://linux22.com/image/990518/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E8%AE%A9%20MaaS%20%E8%B0%83%E8%AF%95%20Raspberry%20Pi%203B%EF%BC%9F.png)
我有一间小型实验室(字面意思),里面有 3 台 RBP-3B 设备,连接着 SATA 和 SD 驱动器,运行 Ubuntu 16.04 LTS。我已经在它们上面安装了软件来创建 Ceph 集群,但它很棘手而且非常脆弱。
最终,我想用 Juju 来管理这个“世界上最小的云存储集群”概念,并将其作为我在 Openstack 峰会的 OSIC 比赛中赢得的 Intel NUC vBlock 的存储后端。不幸的是,我找不到 PXE 启动 Raspberry Pi 3B 的方法,而且芯片对该功能的支持即将出现,但目前尚未出现。
我想使用出行即服务引导操作系统并将这些小家伙喂入朱朱部署,因为从那里管理一切非常容易,但我很难找到可行的解决方案。我知道 Juju 可以在安装操作系统后添加机器,但如何做到这一点也不清楚,如果我将 Juju 设置为使用现有机器,我不知道是否还可以将其指向 MaaS 控制的系统,以创建异构设备组合而不会破坏功能。
有什么想法吗?
答案1
虽然您可能无法通过 RPi3 上的 MAAS 进行 PXE 启动,但 juju 支持手动配置,包括引导节点 -
https://juju.is/docs/olm/manual-setup#heading--add-machines-to-a-manual-cloud
juju add-machine ssh:[email protected]
通过这个,您可以允许 juju 通过 SSH 将它们配置到环境中。
答案2
编辑:我能够进入 rpi_3_config 部分,但下一个命令出现错误。
编辑#2:我现在可以从官方 u-boot git repo 成功编译 u-boot
编辑#3:到目前为止,它似乎启动成功了。现在无法测试,但我稍后会尝试使用 MaaS!
虽然您可能还无法在没有 SD 卡的情况下通过 PXE 启动 Raspberry Pi 3,但您可以通过在 SD 卡上加载 u-boot 并设置为从网络进行 PXE 启动来完成部分操作。
不幸的是,我曾经遇到过和你一样的情况,尝试通过 PXE 启动树莓派用于 MaaS,但在树莓派真正启动时,我遇到了一点问题。我能够通过 DHCP 获取地址,但在解析 pxelinux 文件时,出现了某种错误。
以防万一您在制作树莓派时能有更好的运气,并且记住我在 Pi 3 发布之前很久就这么做了,我将简要概述我为达到该阶段所采取的步骤,尽管我无法进一步帮助您。
git clone git://git.denx.de/u-boot.git && cd u-boot
git checkout rpi_dev
- 此时,我对 Raspberry Pi 板的配置文件进行了简单的编辑,以便在启动时自动初始化 USB 设备,但看起来
#DEFINE
已经添加了适当的语句。 - 你现在需要获得一个用于树莓派的交叉编译器。最简单的方法是这里在 raspberry pi 网站上,并按照 下的步骤
INSTALL TOOLCHAIN
操作,以适合您的 pi 版本。请记住添加路径条目,这些条目仅在下一步中需要,因此就export
足够了。 - 进入 u-boot git repo 的根目录,并运行以下命令,安装 make:
make CROSS_COMPILER=arm-linux-gnueabi- rpi_3_config
然后实际构建:make CROSS_COMPILER=arm-linux-gnueabi-
u-boot.bin
您的当前目录中现在应该有一个文件。wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-4.4.y/scripts/mkknlimg
./mkknlimg --dtok u-boot.bin kernel7.img
- 将 kernel7.img 复制到你的 SD 卡
祝你好运,如果你成功了,请务必发布你自己的答案,说明你所做的事情,并接受它。
答案3
berryboot 可以让你进行网络启动,但它不是真正的 PXE http://www.berryterminal.com/doku.php/berryboot