Bitbake默认生成.rpm文件,但不幸的是.rpm文件在debian或ubuntu系统上不起作用.如何让bitbake直接生成.deb文件?
我想要做的是在SRC_URI中定义文件(http://)或repo(git://)的辅助位置,如果第一个发生故障的话.
就像是:
SRC_URI = "http://site1/mytar.tar.gz \
http://site2/mytar.tar.gz \
Run Code Online (Sandbox Code Playgroud)
要么
SRC_URI = "git://site1/myrepo.git \
git://site2/myrepo.git
Run Code Online (Sandbox Code Playgroud)
如果第一个选项失败,它将尝试第二个选项而不是仅将它们相互下载.
我知道有预镜像,本地缓存和镜像,但我真的只想在BB配方中指定多个位置.
这似乎应该得到支持,但我找不到它.
在yocto文档中找不到为什么某些bbappend文件的文件名中包含“%”。例如“ qtbase _%。bbappend”。
这是否意味着“适用于qtbase可咬食谱的所有版本”?
我遵循了以下内容:https : //wiki.yoctoproject.org/wiki/images/e/e6/Custom_Users_Groups_in_Yocto1.1.pdf 但没有用。
预期成绩:
4.0K -r--r----- 1 根影子 974 2001 年 1 月 3 日 /etc/shadow
我只想在食谱中做类似下面例子的事情。
ExecStartPre=/bin/chmod 440 /etc/shadow ExecStartPre=/bin/chgrp shadow-user /etc/shadow
有谁知道哪个包包含或安装了 /etc/shadow 文件?
谢谢
无法运行 bitbake 命令,如果这样做,我会收到以下错误
joe@joe-O-E-M:~/BeagleBone/poky-dora-10.0.1/build$ bitbake core-image-minimal
ERROR: Traceback (most recent call last):
File "/home/joe/BeagleBone/poky-dora-10.0.1/bitbake/lib/bb/cookerdata.py", line 162, in wrapped
return func(fn, *args)
File "/home/joe/BeagleBone/poky-dora-10.0.1/bitbake/lib/bb/cookerdata.py", line 172, in parse_config_file
return bb.parse.handle(fn, data, include)
File "/home/joe/BeagleBone/poky-dora-10.0.1/bitbake/lib/bb/parse/__init__.py", line 99, in handle
return h['handle'](fn, data, include)
File "/home/joe/BeagleBone/poky-dora-10.0.1/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 147, in handle
feeder(lineno, s, fn, statements)
File "/home/joe/BeagleBone/poky-dora-10.0.1/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 184, in feeder
raise ParseError("unparsed line: '%s'" % s, fn, lineno);
ParseError: ParseError at /home/joe/BeagleBone/poky-dora-10.0.1/build/conf/bblayers.conf:12: unparsed line: 'BBLAYERS ?= " /home/joe/BeagleBone/poky-dora-10.0.1/meta /home/joe/BeagleBone/poky-dora-10.0.1/meta-yocto /home/joe/BeagleBone/poky-dora-10.0.1/meta-yocto-bsp '
ERROR: Unable …Run Code Online (Sandbox Code Playgroud) 我在 BitBake 配方中使用匿名 Python 函数在解析过程中设置变量。现在我想知道是否可以检查是否设置了特定变量。如果没有,那么我想生成一个 BitBake 错误,它会停止构建过程。
我要创建的伪代码:
python __anonymous () {
if d.getVar('MY_VARIABLE', True) == "":
<BITBAKE ERROR with custom message "MY_VARIABLE not found">
}
Run Code Online (Sandbox Code Playgroud) 我喜欢为我的 yocto 项目的内置用户做一些事情:
1.) 将 root 的密码设置为“abc”
2.) 将 ssh 登录表单的 root shell 设置为 /bin/sh 为 /bin/bash
3.) 添加密码为“xyz”的用户“customUser”
认为一个简单的食谱可以做到这一点。到目前为止,我尝试过@myUser.bb:
SUMMARY = "admin + user"
SECTION = "USR"
LICENSE = "CLOSED"
inherit extrausers useradd
# how to
# pw: abc
# at bash: usermod -p $(openssl passwd abc) root
# get a salted hash: openssl passwd abc
# one possible result: 1Cw5PHLy76ps2
# the command now looks: usermod -p 1Cw5PHLy76ps2 root
# set image root password
EXTRA_USERS_PARAMS = "usermod -p …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 16.04 上使用 Yocto poky-pyro。我想替换生成的映像根文件系统上的 /etc/network/interfaces 文件,因此我在我的元公司目录中添加了一个 bbappend 配方,该配方还包含其他正确构建的包配方。
user@BuildMachine:~/bbb/meta-bbb/recipes-custom/init-ifupdown$ tree
.
??? init-ifupdown_1.0
? ??? interfaces
??? init-ifupdown_1.0.bbappend
1 directory, 2 files
Run Code Online (Sandbox Code Playgroud)
bbappend 文件如下所示:
# Extend the base recipe search path to $HERE/init-ifupdown
FILESEXTRAPATHS_prepend := "${THISDIR}/init-ifupdown-1.0:"
Run Code Online (Sandbox Code Playgroud)
该目录中的接口文件如下所示:
user@BuildMachine:~/bbb/meta-bbb/recipes-custom/init-ifupdown$ cat init-ifupdown_1.0/interfaces
# Configure Loopback
auto lo
iface lo inet loopback
# Configure WiFi Infrastructure
auto wlan0
iface wlan0 inet dhcp
# Configure WiFi Hotspot
auto wlan1
iface wlan1 inet static
address 172.24.1.1
netmask 255.255.255.0
network 172.24.1.0
broadcast 172.24.1.255
Run Code Online (Sandbox Code Playgroud)
在我构建图像并查看 …
我正在使用BBB来了解yocto项目。我不确定修补的工作方式。这是我的项目目录
??? meta-testlayer
??? poky
Run Code Online (Sandbox Code Playgroud)
元测试层包含一个helloworld示例
??? conf
? ??? layer.conf
??? COPYING.MIT
??? README
??? recipes-hello
??? helloworld
??? helloworld-0.1
? ??? helloworld.c
? ??? helloworld.patch
? ??? newhelloworld.c
??? helloworld_0.1.bb
Run Code Online (Sandbox Code Playgroud)
helloworld.c和newhelloworld.c的区别仅在于一个printf语句。这是helloworld.c的内容
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hi, this is my first custom recipe. Have a good day\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
newhelloworld.c #include
int main(int argc, char **argv)
{
printf("Let see if patch works\n");
printf("Hi, this patch is from the test-layer\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我使用diff …
我有几个硬件平台(相同的 CPU 等)需要不同的 asound.conf 文件。
我控制目标平台的方式是通过 MACHINE 变量和目标图像(即MACHINE=machine_1 nice bitbake machine-1-bringup-image)
通常,如果只是替换 conf 文件,我只会创建一个 alsa-state.bbappend 并创建一个 do_install_append 函数来替换它。
但是,由于不同的硬件平台需要不同的 conf 文件,我不确定如何处理它。
我已经尝试将一些逻辑放入附加文件 do_install_append 函数中,但它不起作用。它并不总是选择正确的文件(就像它认为没有任何变化,所以它使用以前缓存的 conf?)
这是我尝试过的附加文件之一的示例:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += " \ file://asound_MACHINE1.conf \
file://asound_MACHINE2.conf \ "
do_install_append() {
echo " alsa-state.bbappend MACHINE: ${MACHINE}"
if [ "${MACHINE}" = "machine_1" ]; then
echo " machine_1"
echo " installing ${WORKDIR}/asound_MACHINE1.conf to ${D}${sysconfdir}/asound.conf"
install -m 644 ${WORKDIR}/asound_MACHINE1.conf {D}${sysconfdir}/asound.conf
else
echo " installing ${WORKDIR}/asound_MACHINE2.conf to ${D}${sysconfdir}/asound.conf"
install -m 644 ${WORKDIR}/asound_MACHINE2.conf ${D}${sysconfdir}/asound.conf …Run Code Online (Sandbox Code Playgroud)