我创建了一个bitbake配方,它将我的两个文件(VPU的固件二进制文件)复制到目标根文件系统上的/ lib/firmware /目录中.
我尝试了很多选项,所以我现在不确定我的食谱中有什么不必要/多余以及需要什么.我认为FILESEXTRAPATHS ..,SRC_URI ..和do_install ..应该足够了,但它不适用于它,也不适用于所有其他的东西.
DESCRIPTION = "VPU libraries provided by fsl"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
PACKAGE_ARCH = "all"
ALLOW_EMPTY_${PN} = "1"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += " \
file://vpu_fw_imx6d.bin \
file://vpu_fw_imx6q.bin \
"
INSANE_SKIP_${PN} += "installed-vs-shipped"
do_install () {
install -d ${D}${base_libdir}/firmware/
cp ${WORKDIR}/vpu_fw_imx6d.bin ${D}${base_libdir}/firmware/
cp ${WORKDIR}/vpu_fw_imx6q.bin ${D}${base_libdir}/firmware/
chmod 755 ${D}${base_libdir}/firmware/vpu_fw_imx6d.bin
chmod 755 ${D}${base_libdir}/firmware/vpu_fw_imx6q.bin
}
PACKAGES = "${PN}"
FILES_${PN} += " \
${D}${base_libdir}/firmware/vpu_fw_imx6d.bin \
${D}${base_libdir}/firmware/vpu_fw_imx6q.bin \
"
Run Code Online (Sandbox Code Playgroud)
能不能指出我做错了什么?
编辑:
安德斯答案真的帮助并解决了这个问题.
我发布"固定"食谱,以防有人发现它有用.
DESCRIPTION = "VPU libraries …
Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的秒表(bash函数)来计算时间,但是现在它以毫秒显示当前时间.
代码:
function stopwatch() {
date +%H:%M:%S:%N
while true; do echo -ne "`date +%H:%M:%S:%N`\r"; done;
}
Run Code Online (Sandbox Code Playgroud)
我尝试按照这个答案中的解释改变它,但它仅适用于自Unix Epoch以来的第二个.
当我使用date
格式时+%s.%N
,由于bash减法只取整数这一事实,上面答案的减法停止了.
如何解决它并有一个终端秒表打印时间如下:
0.000000000
0.123123123
0.435345345
(and so on..)
Run Code Online (Sandbox Code Playgroud)
?
在我的代码中,我使用以下内容:
putenv("TZ=UTC");
tzset();
Run Code Online (Sandbox Code Playgroud)
设置时区.
声明putenv()
(这个答案建议它设置环境变量):
int putenv(char *string);
Run Code Online (Sandbox Code Playgroud)
我正在使用的构建系统设置编译器标志-Wall -Wextra -Werror -std=c++0x
,因为我得到错误:
timeGateway.cpp:80:18: error: ISO C++ forbids converting a string constant to 'char*' [-Werror=write-strings]
putenv("TZ=UTC");
^
Run Code Online (Sandbox Code Playgroud)
我知道可以通过使用以下方法来抑制此错误:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wwrite-strings"
putenv("TZ=UTC");
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)
但这非常难看.
我的问题:在C++中设置环境变量的正确方法是什么?
我对docker的经验很少,但我正在尝试使用gitlab-ci和docker镜像为我的库创建自动构建.
我希望它为raspberrypi构建,所以我找到了一个docker镜像(这里),我已经创建了一个github存储库Dockerfile
.
在下一步中,我在dockerhub中创建了一个自动构建,但构建失败并出现以下错误:
Build failed: rpc error: code = 2 desc = "oci runtime error: exec format error"
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到任何帮助,谷歌也没有任何帮助所以我问:
你知道是什么原因导致这个错误吗?
我的Dockerfile:
FROM resin/rpi-raspbian:wheezy-20160518
MAINTAINER lewicki.pk@gmail.com
RUN apt-get update && apt-get install -y \
automake \
cmake \
g++ \
git \
libboost-all-dev \
libi2c-dev \
libjsoncpp-dev \
libpcre3-dev \
libssl-dev \
libtool \
make \
openssl \
pkg-config \
wget \
&& apt-get clean
Run Code Online (Sandbox Code Playgroud)
来自docker的日志:
Starting build of index.docker.io/piotrlewicki/gitlab-ci_rpi-image:latest...
Step 1 : FROM resin/rpi-raspbian:wheezy-20160518 ---> aefd4527968f …
Run Code Online (Sandbox Code Playgroud) 我在终端玩游戏.它使用ssh连接,每个级别都有一对不同的用户和密码.
我使用我的bash别名存储这些对,即我为每个级别都有一个别名,我用两个参数调用bash函数:密码和级别数.
function log.as.bandit() {
sshpass -p $1 ssh bandit$2@bandit.labs.overthewire.org
}
alias bandit14="log.as.bandit secretPass 14"
alias bandit15="log.as.bandit differentSecretPass 15"
Run Code Online (Sandbox Code Playgroud)
如果我可以作为参数传递密码并从我使用的别名中获取用户名,那对我来说会更容易.
问题:
是否可以在该别名调用的函数中使用别名?
在示例中:
function log.as.bandit() {
sshpass -p $1 ssh $HERE_I_DEREFERENCE_THE_ALIAS_NAME@bandit.labs.overthewire.org
}
alias bandit14="log.as.bandit secretPass"
alias bandit15="log.as.bandit differentSecretPass"
Run Code Online (Sandbox Code Playgroud)