小编Ste*_*itz的帖子

如何在Yocto中使用自己的设备树和修改后的内核配置?

我正在努力用yocto构建一个自己的"embeeded linux".它基于SAMA5D3x-MB + SAMA5D3x-CM(RONETIX)和SAMA5D35.我有两个问题:

1.)更改设备树

我根据以下内容构建了一个图像:MACHINE ?? ="sama5d3xek"

在生成过程之后,我在deploy dir中找到了5D35的两个设备树文件:

  • 的zImage - 4.1 + git0 + 19291d7be4-R0-sama5d35ek-.dtb
  • 的zImage - 4.1 + git0 + 19291d7be4-R0-sama5d35ek-REVC-.dtb

因为主板是revD我使用zImage - 4.1 + git0 + 19291d7be4-r0-sama5d35ek-.dtb.

在此文件中,只定义了can0和i2c1.

我也喜欢使用can1和i2c0.为此我想我需要创建一个自己的dts文件并将其包含在内核构建过程中.

到目前为止,我将dts文件放在我的元测试配方中.想法如何将其复制/修补到内核中?

2.)更改内核配置

我用bitbake virtual/kernel -c menuconfig检查了内核

因为我没有使用SAMA5D2等,只有控制台我停用了这些内核配置.我将新的".config"保存到my-recipe目录中.我有一个类似的问题,如1 - 如何修补/复制到内核?

我是yocto和内核黑客的新手.知道怎么做吗?

linux-kernel embedded-linux bitbake yocto

7
推荐指数
1
解决办法
2万
查看次数

如何配置yocto使用最新的git commit?

我是一个非常懒惰的人.在处理硬件/软件项目时,软件会永久更改.在这个开发阶段,更改配方中的commit/reversion-tags非常讨厌.我希望Yocto获取最新的git提交.这可能/如何做到这一点?我的示例食谱:

SUMMARY = "my test"
SECTION = "test"
LICENSE = "CLOSED"

inherit cmake
SRCREV = "f9bdbd6c631f07e427c010086c7c26a95eb2924e"

SRC_URI = "gitsm://myGit/mytest;protocol=http;branch=develop"

S = "${WORKDIR}/git/"
Run Code Online (Sandbox Code Playgroud)

git recipe bitbake yocto

7
推荐指数
1
解决办法
6638
查看次数

如何设置Yocto食谱以从本地git来源构建?

j

我在玩Yocto,Raspberry Pi和我编写的一些代码。现在,我希望Yocto正在构建包含我编写的程序的图像。我想知道如何设置获取程序以从本地git repro获取。

我的设置很简单。代码在目录中:

/home/user/git/myTest
Run Code Online (Sandbox Code Playgroud)

我将该目录链接到我的Yocto元层的食谱目录中。

/home/user/poky/meta-test/myApp/myTest
Run Code Online (Sandbox Code Playgroud)

由于它是本地git repro,因此存在“ .git”文件夹。

/home/user/git/myTest/.git
Run Code Online (Sandbox Code Playgroud)

还有更多文件:

/home/user/git/myTest/CMakeLists.txt
/home/user/git/myTest/src/main.cpp
/home/user/git/myTest/src/...
Run Code Online (Sandbox Code Playgroud)

我想知道如何设置食谱来使用git fetcher:

SUMMARY = "test"
SECTION = "app"
LICENSE = "CLOSED"

inherit cmake

SRCREV = "${AUTOREV}"

SRC_URI = "git://.git"

S = "${WORKDIR}/git"
Run Code Online (Sandbox Code Playgroud)

我确实检查了Yocto / Bitbake文档。但是我没有找到如何做的例子。有任何想法吗?

git cmake bitbake yocto

6
推荐指数
1
解决办法
4768
查看次数

如何在 yocto 中设置系统日志?

我喜欢配置系统日志。似乎设置系统日志的方法不止一种。我要求通用的方法/步骤来做到这一点。

我有几个用例。为简化起见,我想问一下如何配置 syslog 以在 /var/log/ 中写入无限长的日志文件。

以下步骤:

1.) 配置什么消息

1.1)创建自己的“syslog.conf”(定义/var/log/myLog)

1.2) 将其附加到“recipes-core/busybox”

2.) 配置如何登录

??

我找到了两个可能的地方:

@meta-poky -> "meta-poky/recipes-core/busybox/busybox/poky-tiny/defconfig"

#
# System Logging Utilities
#
CONFIG_SYSLOGD=y
CONFIG_FEATURE_ROTATE_LOGFILE=y
CONFIG_FEATURE_REMOTE_LOG=y
CONFIG_FEATURE_SYSLOGD_DUP=y
CONFIG_FEATURE_SYSLOGD_CFG=y
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
CONFIG_FEATURE_IPC_SYSLOG=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
CONFIG_LOGREAD=y
CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
CONFIG_KLOGD=y
CONFIG_FEATURE_KLOGD_KLOGCTL=y
CONFIG_LOGGER=y
Run Code Online (Sandbox Code Playgroud)

添加/更改:

"CONFIG_FEATURE_ROTATE_LOGFILE=n" by adding that line to meta-mylayer/conf/layer.conf"
Run Code Online (Sandbox Code Playgroud)

等等。

???

@“/etc/syslog-startup.conf”

# This configuration file is used by the busybox syslog init script,
# /etc/init.d/syslog[.busybox] to set syslog configuration at start time.

DESTINATION=file        # log destinations (buffer file remote)
LOGFILE=/var/log/messages   # where …
Run Code Online (Sandbox Code Playgroud)

linux syslog bitbake yocto

5
推荐指数
1
解决办法
1万
查看次数

如何使用io在内存中将数据流生成为文件之类的对象?

我喜欢在 Python 中生成内存(临时文件)数据流。一个线程用数据填充流,另一个线程使用它。

在检查了用于处理流io-Core 工具后,在我看来该io模块是它的最佳选择。

所以我举了一个简单的例子:

#!/usr/local/bin/python3
# encoding: utf-8

import io

if __name__ == '__main__':
    a = io.BytesIO()
    a.write("hello".encode())
    txt = a.read(100)
    txt = txt.decode("utf-8")
    print(txt) 
Run Code Online (Sandbox Code Playgroud)

我的例子不起作用。"hello"未写入 a 且之后无法读取。那么是我的错误吗?我必须如何更改我的代码才能在内存中获取类似对象的文件?

python io file temporary-files

5
推荐指数
1
解决办法
1300
查看次数

如何将专有库包含到 Yocto 生成的嵌入式 Linux 的工具链 (SDK) 中?

我正在寻找一个示例,展示如何将专有库包含到工具链中。

我们给图书馆打电话吧myLib。为此,我创建了一个食谱myLib.bb并添加了:

BBCLASSEXTEND = "native nativesdk"
Run Code Online (Sandbox Code Playgroud)

在我的“local.conf”中我添加了:

IMAGE_INSTALL_append = " myLib"
Run Code Online (Sandbox Code Playgroud)

构建 SDK 时:

$ bitbake myTarget -c populate_sdk
Run Code Online (Sandbox Code Playgroud)

它生成 SDK 的安装程序和两个清单文件。myLib仅包含在目标清单中,而不包含在主机上。如何包含myLib在主机系统上?


这个想法是,另一个人可以在他的系统上构建软件,而无需 Yocto 系统。只有使用工具链,他才能生成二进制文件,可以在评估板上传输和执行。

sdk cross-compiling toolchain bitbake yocto

4
推荐指数
1
解决办法
1535
查看次数

如何在Windows上与cmake + arm-none-eabi交叉编译?

我喜欢在Windows构建服务器上自动交叉编译多个项目.我有一些arm交叉编译器的问题.设置似乎有点困难.cmake编译器检查失败并出现链接错误(参见下文).

我的实验项目如下:

main.cpp - a test programm
CMakeLists.txt - the cmake build script
cmake/STM32F2xx.cmake - the special settings for the ARM STM32F2xx-series
Run Code Online (Sandbox Code Playgroud)

我使用3个包:

cmake-3.8.0-win64-x64.msi -cmake for windows
mingw-w64-install.exe - mingw 64 for windows
gcc-arm-none-eabi-6-2017-q1-update-win32.exe - arm x compiler
Run Code Online (Sandbox Code Playgroud)

main.cpp包含:

int main(void) {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

CMakeLists.txt包含:

cmake_minimum_required (VERSION 3.0)
# module name
set(PrjName testPrj) 

project (${PrjName})
# module version
set(PCK_MAJOR 1)
set(PCK_MINOR 0)
set(PCK_REVISION 0)

#####################
# Features switches
#####################

#####################
# architecture
#####################
# possible values:
#   NATIVE
# …
Run Code Online (Sandbox Code Playgroud)

windows arm g++ cmake cross-compiling

4
推荐指数
1
解决办法
1万
查看次数

如何用Yocto构建包含CMake的SDK?

我想为我的嵌入式系统分发交叉编译工具链(SDK).我创建了一个自己的图层,其中包含所有的lib等.输入:

bitbake core-image-minimal -c populate_sdk
Run Code Online (Sandbox Code Playgroud)

我可以生成一个工具链,其中包含所有头文件和库.现在我想要不仅包括lib而且还包括cmake.

怎么做?

sdk cmake yocto

3
推荐指数
1
解决办法
1008
查看次数

C中的Const表达式 - 如何散列字符串?

我正在创建一个内核模块.在这个模块中,我需要检查一些预定义字符串的输入.在C++中,可以创建一个constexpr函数,用于在编译时计算哈希值.我正在寻找一种方法来做到这一点.

一些使用Jenkins哈希函数的伪代码:

u32 hash(const char *key)
{
    u32 hash, i;
    size_t len;

    len = strlen(key);
    for(hash = i = 0; i < len; ++i)
    {
        hash += key[i];
        hash += (hash << 10);
        hash ^= (hash >> 6);
    }
    hash += (hash << 3);
    hash ^= (hash >> 11);
    hash += (hash << 15);
    return hash;
}


const u32 myStringList [] = {
    hash("hello"),
    hash("this is a text"),
    hash("good morning")
};

int findString(const char * searchStr) {
    u32 …
Run Code Online (Sandbox Code Playgroud)

c hash constexpr

3
推荐指数
1
解决办法
117
查看次数

如何设置bluepy无需sudo即可扫描的环境?

我编写了一些 Python3 脚本,用于扫描设备。如果他们匹配一个“名字”,我就会连接到他们并做一些事情。该脚本构建在模块之上bluepy

我认为我不喜欢的是,我需要运行设备扫描sudo(如sudo python3 getDev.py)。有什么想法如何使用户能够在没有 root 权限的情况下进行扫描吗?

我想我需要将本地用户添加到组等中。欢迎任何想法

python linux bluetooth-lowenergy

3
推荐指数
1
解决办法
2319
查看次数