标签: embedded-linux

将特定标头添加到 bitbake wget fetcher

我需要设置一个特定的标头来使用获取器从资源中获取存档wget,类似于:

wget --header "PRIVATE-ACCESS-TOKEN:blablablablabla https://some-resource...." 
Run Code Online (Sandbox Code Playgroud)

如何使用该获取器设置特定标头?

提前致谢!

embedded-linux bitbake yocto

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

Yocto 添加自定义 UBoot 环境变量

我正在尝试通过 Yocto 构建过程添加两个新的 u-boot 环境变量。

我的文件u-boot-imx_2021.04.bbappend包含

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += " file://uboot.patch"
Run Code Online (Sandbox Code Playgroud)

我的文件uboot.patch包含

--- a/configs/mx6ull_14x14_evk_emmc_defconfig   2023-02-23 10:49:03.969189476 -0600
+++ a/configs/mx6ull_14x14_evk_emmc_defconfig   2023-02-23 10:50:06.401233950 -0600
@@ -91,3 +91,14 @@
 CONFIG_FASTBOOT_BUF_SIZE=0x40000000
 CONFIG_FASTBOOT_FLASH=y
 CONFIG_EFI_PARTITION=y
+
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
+CONFIG_ENV_OFFSET_REDUND=0xE2000
+CONFIG_BOOTCOUNT_BOOTLIMIT=3
+CONFIG_SYS_MALLOC_F_LEN=0xF000
+CONFIG_CMD_SAVEENV=y
+CONFIG_CMD_LOADENV=y
+
+CONFIG_SWUPDATE_BOOTCMD="setenv bootargs console=ttymxc0,115200 root=/dev/ram0 rootfstype=ext4 rw;load mmc 1:3 0x83000000 /swupdate-image-imx6ull14x14evk.ext4.gz.u-boot;load mmc 1 0x82a00000 imx6ull-14x14-evk.dtb;load mmc 1 0x80800000 zImage;load mmc 1 0x83000000 300000 100000;setenv root /dev/ram0;setenv rootfstype ext4;setenv fw_env_config /etc/fw_env.config;bootz 0x80800000 0x83000000 0x82a00000;"
+CONFIG_SWUPDATE_KERNEL=0
+
Run Code Online (Sandbox Code Playgroud)

该补丁已应用,例如我可以看到CONFIG_SYS_REDUNDAND_ENVIRONMENT,并且 …

embedded-linux u-boot yocto

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

Buildroot - 构建了一个文件系统,如何登录?引导挂起

有人可以帮助我理解我需要如何配置buildroot,以便我能够成功启动自己的文件系统并登录到它?

我有一个(貌似)工作内核,现在我创建了自己的文件系统(除了将控制台设置为ttyAMA0之外,没有真正更改构建根目录中的任何设置),但启动过程似乎挂起而没有任何问题:

....
[    3.130000] VFS: Mounted root (ext3 filesystem) on device 179:2.
[    3.140000] Freeing init memory: 144K
Starting logging: OK
Starting network...
ip: RTNETLINK answers: Operation not permitted
ip: SIOCSIFFLAGS: Permission denied
Run Code Online (Sandbox Code Playgroud)

这里可以看到整个启动日志:http://paste.ubuntu.com/1364407/

我知道/ etc/inittab控制启动过程,内容如下所示:

# Startup the system
null::sysinit:/bin/mount -t proc proc /proc
null::sysinit:/bin/mount -o remount,rw / # REMOUNT_ROOTFS_RW
null::sysinit:/bin/mkdir -p /dev/pts
null::sysinit:/bin/mkdir -p /dev/shm
null::sysinit:/bin/mount -a
null::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS

# Put a getty on the sttyAMA0::respawn:/sbin/getty …
Run Code Online (Sandbox Code Playgroud)

linux embedded boot embedded-linux buildroot

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

'i2c_get_clientdata'和"i2c_set_clientdata"有什么用?

我一直在研究I2C驱动程序(客户端)代码.我在每个地方看过这个函数"i2c_get_clientdata"和"i2c_set_clientdata".

我在这里看到了这个问题. 使用指针结构而不是创建静态本地副本

有时我觉得像"container_of"宏一样得到指向结构的指针.但我仍然没有正确理解为什么要使用它以及何时使用它.

下面我发布一个示例代码,我看到它的用法.如果有人可以帮助我理解为什么在那里使用它,当我们编写自己的驱动程序时我们将使用它.

struct max6875_data {
    struct i2c_client       *fake_client;
    struct mutex            update_lock;

    u32                     valid;
    u8                      data[USER_EEPROM_SIZE];
    unsigned long           last_updated[USER_EEPROM_SLICES];
};

static ssize_t max6875_read(struct file *filp, struct kobject *kobj,
                        struct bin_attribute *bin_attr,
                        char *buf, loff_t off, size_t count)
{
    struct i2c_client *client = kobj_to_i2c_client(kobj);
    struct max6875_data *data = i2c_get_clientdata(client);
    int slice, max_slice;

    if (off > USER_EEPROM_SIZE)
            return 0;

    if (off + count > USER_EEPROM_SIZE)
            count = USER_EEPROM_SIZE - off;

    /* refresh slices which contain requested bytes */
    max_slice = …
Run Code Online (Sandbox Code Playgroud)

i2c linux-device-driver linux-kernel embedded-linux

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

Linux内核启动方法预先构建的rootfs

我正在学习linux内核启动过程并尝试在我的beagleboard xM上安装linux.我在使用SD卡时遇到了两种方法.1.将MLO,initrd,uboot.bin和uImage放在一个分区中.2.在一个分区中使用MLO,uboot.bin和uImage,在第二个分区中使用预先构建的rootfs(Angstrom).

在第一种方法中,如何将initrd转换为第二个分区上的完整文件系统.当uboot从uImage中提取内核并将其粘贴到第二个分区时,内部会发生什么.哪些目录将被修改为init rootfs.如何调用内核的init进程.

boot linux-kernel embedded-linux bootloader

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

简单休眠(使用wait_event _*()函数)和高级休眠(使用prepare_to_wait()函数)有什么区别?

在LDD3一书中,它介绍了简单的休眠(wait_event*()函数)和提前休眠(prepare_to_wait()函数).

如果我的理解是正确的,那么wait_queue_t似乎是一个进程条目,但wait_queue_head_t似乎是等待队列来存储正在添加(wait_queue_t)的进程列表.

因此,令我感到困惑的是,我应该使用wait_event _*()函数与prepare_to_wait使用指定等待进程的情况.

我能告诉的唯一原因是我可以在睡觉前指定过程状态与简单睡眠.但是,简单的睡眠确实提供了可中断和不间断的wait_event功能.

所以,我有点困惑为什么从设计和实现的角度来看我们都需要两个.谢谢.

linux-device-driver linux-kernel embedded-linux

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

了解内核dmesg时间戳

我想在内核日志中解码下面的时间格式.有没有任何笔记可以理解如何将时间戳分解为min:sec:msec格式.<3> [107.236115]

<3> [107.245076]

<4> [107.521858]

<3> [107.522098]

找到一些解码哪些脚本正在运行但在运行时,这里我已经有了并且想要手动解码.

logging android kernel linux-kernel embedded-linux

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

在yocto中找不到bitbake命令

我正在使用Yocto(poky)freescale linux来创建新软件.我已经在Poky 1.6雏菊上编译了我的二进制文件.但是要在这个系统上构建配方,我找不到bitbake命令.

我搜索谷歌上的每一个地方,但没有运气.任何人都可以告诉我如何在提到的机器中安装bitbake,以便我可以为该机器创建rpm包.

提前致谢.

linux embedded embedded-linux yocto

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

Yocto Jethro:没有gdbserver的软件包提供程序

我正在使用freescale.github.io飞思卡尔社区BSP。

在local.conf中MACHINE ?? = "wandboard",我添加了EXTRA_IMAGE_FEATURES += "tools-debug"

这会将gdb,gdbserver和其他一些工具添加到rootfs。

SUMMARY = "Debugging tools"
LICENSE = "MIT"

inherit packagegroup

PR = "r3"

MTRACE = ""
MTRACE_libc-glibc = "libc-mtrace"

RDEPENDS_${PN} = "\
    gdb \
    gdbserver \
    strace \
    ${MTRACE} \
    "
Run Code Online (Sandbox Code Playgroud)

但是,我收到了以下错误,即bitbake无法找到PN gdbserver。

Computing transaction...error: Can't install packagegroup-core-tools-debug-1.0-r3@all: no package provides gdbserver

gdbserver是否已从bsp中删除?为什么将其删除?如果没有,在哪里可以找到gdbserver?

embedded-linux openembedded yocto

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

在Pepper上安装东西

我如何在Pepper上安装东西,因为我不知道它使用什么包管理器.我通常在我的Ubuntu机器上使用apt,并希望在Pepper上安装一些软件包.我不确定包管理器Pepper有什么(如果有的话)并希望安装一些软件包,但也只知道使用apt的软件包名称(不确定软件包名称是否与其他软件包管理器相同).如果可能的话,我能否在Pepper上安装apt.谢谢.

注意:从我所做的研究中,Pepper正在使用基于Gentoo的NaoQi,它使用了portage.

gentoo package-managers embedded-linux pepper

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