大家好,我是极客范的本期栏目编辑小友,现在为大家讲解怎样使用Yocto项目为树莓派构建GNU / Linux发行版问题。
第一步:准备好。
对于本教程,您需要:
个人电脑使用GNU/Linux发行版,比如Ubuntu,你将在上面为rubber Pi构建GNU/Linux发行版。
树莓皮
MicroSD还是SD卡,取决于树莓Pi的版本。
HDMI电缆和显示器。
USB键盘
电源
根据您的GNU/Linux发行版,在您的个人计算机上安装所需的软件包:http://www.yoctoproject.org/docs/2.0/yocto-projec。
评论(由Yunus EmreI撰写):
如果主目录是加密的,则无法烘焙图像,因为它不允许长文件名。
如果连接速度较慢,初始构建将需要很长时间。
在将图像刷新到SD卡时,请确保选择master /dev/sdX,而不是/dev/sdXp1或内部零件的其他变体。
第二步:获取源代码。
在您的个人电脑上执行以下操作:
用Git克隆Poky(本例中我下载的是jethro (2.0),Yocto项目的发行版):Git clone-b jethrogit 3360//Git . Yocto project . org/Poky。
转到poky目录:cd poky。
克隆-树莓pi: git克隆-b jethro git ://git . yoctopproject . org/meta-树莓pi。
第三步:配置。
初始化生成环境源oe-init-build-env。
在conf/BBLAYERS.conf中将meta-raspberrypi添加到BBLAYERS,然后看起来像(但在您的情况下使用不同的路径):BBLAYERS?="\
/home/leon/poky/meta \
/home/leon/poky/meta-yocto \
/home/Leon/poky/meta-yocto-bsp \
/home/Leon/poky/meta-rasberrypi \
"
打开conf/local.conf,根据你的树莓pi模型,将MACHINE改为raspberrypi、raspberripi 0、raspberripi 2或raspberripi 3,例如:MACHINE?="raspberrypi2"
在conf/local.conf中添加以下一行来设置GPU内存的兆字节数:GPU _ MEM=“16”。
(可选)在conf/local.conf中添加以下一行,并将System V替换为systemd:distro _ features _ append="systemd"。
VIRTUAL-RUNTIME _ init _ manager="systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = “sysvinit”
VIRTUAL-RUNTIME_initscripts = “”
(可选)将以下行添加到 conf/local。 conf ,将命令行网络管理器 connman 包含在图像:IMAGE_INSTALL_append = “ connman connman-client ”
步骤4:构建图像
执行以下命令为您的Raspberry Pi构建GNU/Linux发行版的最小映像:bitbake rpi-basic-image
请注意,根据所用硬件的不同,构建过程最多可能需要几个小时。您的个人计算机和Internet连接的速度。
步骤5:闪存SD卡
构建完成后,图像将位于以下路径中在您的构建目录中: tmp/deploy/images/raspberrypi2/rpi-basic-image-raspberrypi2.rpi-sdimg。
将microSD卡插入计算机,将X替换为其相应的ID(可通过lsblk或fdisk -l等命令找到该ID),然后执行以下命令以刷新其上的映像:sudo umount /dev/sdX
sudo dd if=tmp/deploy/images/raspberrypi2/core-image-weston-raspberrypi2.rpi-sdimg of=/dev/sdX
sync
sudo umount /dev/sdX
或者,如果您愿意,可以使用 bmaptool 代替 dd 。
请特别注意闪烁SD卡,并确保您使用正确的字母表示设备的路径。这样做需要您自担风险,并请记住,错误可能会损坏个人计算机上的驱动器!
步骤6:引导和测试
引导Raspberry Pi并执行以下步骤,以验证映像是否正常工作:
以root用户身份登录而没有任何密码
如果已安装connman,请验证其systemd服务已加载:systemctl status -l connman 责任编辑:wv
步骤1:准备就绪
对于本教程,您将需要:
个人计算机使用GNU/Linux发行版,例如Ubuntu,您将在其上为Raspberry Pi构建GNU/Linux发行版。
Raspberry Pi
microSD或SD卡,具体取决于Raspberry Pi的版本
HDMI电缆和监视器
USB键盘
电源
根据您的GNU/Linux发行版,在您的个人计算机上安装所需的软件包:http://www.yoctoproject.org/docs/2.0/yocto -projec 。..
注释(由Yunus EmreI撰写):
如果主目录已加密,则无法烘烤图像,因为它不允许长文件名
如果连接速度较慢,则初始构建会花费很长时间
在将映像刷新到SD卡时,请确保选择主/dev/sdX ,而不是/dev/sdXp1或内部零件的其他变体
步骤2:获取源代码
执行以下操作在您的个人计算机上:
使用Git克隆Poky(在这种情况下,我正在下载Yocto项目的发行版Jethro(2.0)):git clone -b jethro git://git.yoctoproject.org/poky
Go到poky目录:cd poky
克隆元- raspberrypi:git clone -b jethro git://git.yoctoproject.org/meta-raspberrypi
步骤3:配置
初始化构建环境source oe-init-build-env
将 meta-raspberrypi 添加到 conf/bblayers.conf 中的 BBLAYERS 中,然后类似于(但在您的情况下使用不同的路径)类似于:BBLAYERS ?= “ \
/home/leon/poky/meta \
/home/leon/poky/meta-yocto \
/home/leon/poky/meta-yocto-bsp \
/home/leon/poky/meta-raspberrypi \
”
打开 conf/local.conf 并将 MACHINE 更改为 raspberrypi , raspberrypi0, raspberrypi2 或 raspberrypi3 取决于您的Raspberry Pi型号,例如:MACHINE ??= “raspberrypi2”
将以下行添加到 conf/local.conf 以设置兆字节的GPU内存:GPU_MEM = “16”
(可选)将以下行添加到 conf/local.conf 将System V替换为 systemd :DISTRO_FEATURES_append = “ systemd”
VIRTUAL-RUNTIME_init_manager = “systemd”
DISTRO_FEATURES_BACKFILL_CONSIDERED = “sysvinit”
VIRTUAL-RUNTIME_initscripts = “”
(可选)将以下行添加到 conf/local。 conf ,将命令行网络管理器 connman 包含在图像:IMAGE_INSTALL_append = “ connman connman-client ”
步骤4:构建图像
执行以下命令为您的Raspberry Pi构建GNU/Linux发行版的最小映像:bitbake rpi-basic-image
请注意,根据所用硬件的不同,构建过程最多可能需要几个小时。您的个人计算机和Internet连接的速度。
步骤5:闪存SD卡
构建完成后,图像将位于以下路径中在您的构建目录中: tmp/deploy/images/raspberrypi2/rpi-basic-image-raspberrypi2.rpi-sdimg。
将microSD卡插入计算机,将X替换为其相应的ID(可通过lsblk或fdisk -l等命令找到该ID),然后执行以下命令以刷新其上的映像:sudo umount /dev/sdX
sudo dd if=tmp/deploy/images/raspberrypi2/core-image-weston-raspberrypi2.rpi-sdimg of=/dev/sdX
sync
sudo umount /dev/sdX
或者,如果您愿意,可以使用 bmaptool 代替 dd 。
请特别注意闪烁SD卡,并确保您使用正确的字母表示设备的路径。这样做需要您自担风险,并请记住,错误可能会损坏个人计算机上的驱动器!
步骤6:引导和测试
引导Raspberry Pi并执行以下步骤,以验证映像是否正常工作:
以root用户身份登录而没有任何密码
如果已安装connman,请验证其systemd服务已加载:systemctl status -l connman 责任编辑:wv
.dfma { position: relative; width: 1000px; margin: 0 auto; } .dfma a::after { position: absolute; left: 0; bottom: 0; width: 30px; line-height: 1.4; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; font-size: 12px; content:"广告"; } .dfma img { display: block; }