标签: embedded-linux

如何摆脱 -- openssl 错误

我已经编译并安装 openssl。只是为了检查软件包是否安装正确,我运行以下程序。它为我编译并正确运行。Means openssl is installed correctly& 没有损坏。

#include <openssl/engine.h>
#include <openssl/evp.h>
#include <openssl/err.h>

int main(int c, char **v)
{
    ERR_load_crypto_strings();
    OpenSSL_add_all_algorithms();
    ENGINE_load_builtin_engines();
    ENGINE_register_all_complete();
    puts("Stuff seems okay.");
    return 0;
}
(It build okay with "gcc -Wall -lcrypto test.c -o test"  
 Also run fines )
Run Code Online (Sandbox Code Playgroud)

现在我有程序,它使用 openssl 库。我在这里收到这个错误。如果软件包安装正确,那么为什么在运行时会出现错误。我使用的 openssl 函数是否有一些我错过的依赖项:---

openssl 需要 TOR 吗?此链接表示导致类似的错误:--
https://lists.torproject.org/pipermail/tor-talk/2013-February/027252.html
https://trac.torproject.org/projects/tor/ticket/7215

md5.cpp:---

#include <stdio.h>
#include <openssl/evp.h>

#include "md5.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Cmd5::Cmd5( void )
{
    *m_szDigest = 0;
}

Cmd5::Cmd5( unsigned char *pstr ) …
Run Code Online (Sandbox Code Playgroud)

openssl embedded-linux

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

device_register 和 driver_register 的区别

我正在写一个UART驱动程序。我在第 14.Linux 设备模型一章中遇到了这两个函数。

int device_register(struct device *dev);
int driver_register(struct device_driver *drv);
Run Code Online (Sandbox Code Playgroud)

由于 UART 是一个字符驱动程序,我使用 ( 动态创建了主alloc_chrdev_region)设备号,并使用cdevadd().

我在 omap-serial.c 中遇到了uart_register_driver()和。platform_driver_register()

我可以映射driver_register与 ,platform_driver_register()uart_register_driver映射与 tty 相关的函数。因为我是初学者,所以我不想使用 tty 相关的函数。

uart_register_driver与?有关device_driver()

请解释。

c serial-port linux-device-driver embedded-linux uart

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

在linux内核模块中访问GPIO的步骤是怎样的?

我正在努力找出从 linux 内核模块访问 gpio-pin 需要哪些步骤。也许有人可以通过一个简单的例子向我解释它。我喜欢使用引脚 4(输入)和 33(输出)。到目前为止我的步骤:

1.) 设备树(dts):我保持 dts 文件不变 - 我是否需要通过引脚控制设置引脚 4 和 33?

2.) 内核模块:一些伪代码

gpio_is_valid(4)
gpio_request_one(4, GPIOF_DIR_IN | GPIOF_EXPORT_DIR_FIXED , "myPin4")
gpio_export(4, false)
gpio_get_value(4)

gpio_is_valid(33)
gpio_request_one(33, GPIOF_DIR_OUT | GPIOF_INIT_LOW | GPIOF_OPEN_SOURCE | GPIOF_EXPORT_DIR_FIXED , "myPin33")
gpio_export(33, false)
gpio_set_value(33, 1)
Run Code Online (Sandbox Code Playgroud)

如何以正确的方式做到这一点?

linux linux-device-driver linux-kernel embedded-linux gpio

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

用于 init-ifupdown 的 Yocto Poky-Pyro bbappend 文件不会替换 /etc/network/interfaces

我在 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)

在我构建图像并查看 …

linux embedded-linux bitbake yocto

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

UDP 数据包转发从 sendmsg 获取 EINVAL

我正在编写我自己的 DNS 黑洞来阻止我家庭网络上的广告和恶意软件。我意识到这种类型的程序已经存在,但我想学习这个过程并编写自己的程序。从 Linux 文档中,似乎可以告诉 sendmsg() 使用不同的返回地址,以便可以转发 UDP 数据包,并且接收服务器会将响应发送给原始请求者而不是我的服务器。从稀疏文档中,我设置了绑定到端口 53 (DNS) 的套接字。我正在接收 DNS 请求,解释它们并在站点被列入黑名单时做出响应。对于“好”域名,我得到了 2 个不同的结果。在 MacOS 上,我发送了转发请求,但响应返回到我的程序而不是原始请求者。在 Linux(Armbian 4.13 内核)上,我从 sendmsg() 调用中获得 EINVAL,但没有发送任何内容。任何人都可以阐明我做错了什么吗?(为简洁起见,已删除所有错误检查)

附加信息...这个方案的一个问题是原始 DNS 请求绑定到 53 以外的套接字端口(显然)。如何告诉 sendmsg() 将响应返回到原始请求的正确端口号?

我的“代理”版本有效。我存储了原始请求的事务 ID 和请求端口号,并且能够成功返回响应

最新消息 - 我能够成功完成我想要的,但没有使用 sendmsg()。通过使用 RAW 套接字并“欺骗”IP 标头中的返回地址,我能够将数据包发送回不同的返回地址和端口号(使用 sendto)。nslookup 认为这是一个问题,但浏览器可以接受。我想我们可以称之为“案件结束”

struct sockaddr_in addr, addrfrom, fwaddr;
socklen_t addrLen = sizeof(struct sockaddr_in);
int rc, listen_sock;

listen_sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
rc = 1;
setsockopt(listen_sock, IPPROTO_IP, IP_PKTINFO, &rc, sizeof(rc));
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(53); // port …
Run Code Online (Sandbox Code Playgroud)

linux dns networking udp embedded-linux

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

Yocto 在不重建系统的情况下更改 psplash 映像

我正在尝试在当前构建的系统中更改 yocto 启动画面(由 psplash 生成),没有 yocto 重建过程......是否有可能更改此图像?我想我必须挂载包含启动映像的启动分区并替换它...

非常感谢,

splash-screen embedded-linux yocto

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

为什么在 linux 中需要连续内存分配?

大多数设备需要连续的内存。例如 GPU、VPU。

CMA 和静态内存分配是连续内存的例子。

为什么需要连续内存?

linux memory-management linux-device-driver linux-kernel embedded-linux

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

是否可以仅使用 HTML、CSS 和 JS 在 Linux Embedded 上开发 GUI?

我一直在对这个主题进行广泛的研究,但仍然没有找到合适的指南。我正在做的是为基于 Linux Embedded 的嵌入式系统创建一个 GUI,我想知道:

  • 是否可以使用 HTML、CSS 和 JS 对 GUI 进行编码?
  • 是否值得研究移植 React JS 等框架?
  • 有没有其他替代方案可以快速开发和满足用户界面?

我对此很陌生,如果有经验丰富的人能指出我正确的方向,我将不胜感激。非常感谢。

embedded user-interface embedded-linux

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

逐步了解如何在 Raspberry Pi 或任何嵌入式板卡上使用 swupdate 进行系统更新

Stackoverflow 社区。我正在尝试设计一个 OTA 更新系统,并希望使用swupdateraspberry pi 进行更新。我发现有关如何实施的信息非常有限。如果有人可以让我知道它是如何完成的,那就太好了。谢谢

embedded-linux yocto meta-raspberrypi

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

发生段错误时何时不调用信号处理程序?

下面是我的程序的操作方法,有一种情况是,由于发生了段错误,程序终止时没有调用注册的处理程序。

是否存在在发生段错误时可以终止注册的处理程序而不调用的情况?

  1. 初始化程序A时,通过signal()函数注册handler。(SIGSEGV, SIGABRT, SIGFPE, SIGTERM)
  2. fork() -> waitpid() 用于程序 B 中的程序 A
  3. 老化
  4. 由于未知原因在A程序中发生Segment Fault
  5. B 程序的waitpid 状态被传递给segment fault(11)。
  6. 在 A 程序中注册的处理程序未被调用并结束。

c c++ linux linux-kernel embedded-linux

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