c - 我在我的 SAMA5D27 板的 C 程序中找不到问题
问题描述
我正在使用sama5d27-som1-ek1嵌入式板,我为它构建 Linux 映像操作系统和YOCTO项目的交叉编译器。
我想在我的板上测试一个C 代码。此代码创建一个新的用户空间 LED 类设备并对其进行监视。每次亮度变化时都会打印时间戳和亮度值。我用 corss 编译器编译了它,但是当我尝试运行它时,它告诉我:
无法打开 /dev/uleds:没有这样的文件或目录
当我检查 /dev 目录时,我找不到 uleds。我认为这就是问题所在。你有什么建议吗 ?
这是代码:
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <linux/uleds.h>
int main(int argc, char const *argv[])
{
struct uleds_user_dev uleds_dev;
int fd, ret;
int brightness;
struct timespec ts;
if (argc != 2) {
fprintf(stderr, "Requires <device-name> argument\n");
return 1;
}
strncpy(uleds_dev.name, argv[1], LED_MAX_NAME_SIZE);
uleds_dev.max_brightness = 100;
fd = open("/dev/uleds", O_RDWR);
if (fd == -1) {
perror("Failed to open /dev/uleds");
return 1;
}
ret = write(fd, &uleds_dev, sizeof(uleds_dev));
if (ret == -1) {
perror("Failed to write to /dev/uleds");
close(fd);
return 1;
}
while (1) {
ret = read(fd, &brightness, sizeof(brightness));
if (ret == -1) {
perror("Failed to read from /dev/uleds");
close(fd);
return 1;
}
clock_gettime(CLOCK_MONOTONIC, &ts);
printf("[%ld.%09ld] %u\n", ts.tv_sec, ts.tv_nsec, brightness);
}
close(fd);
return 0;
}
解决方案
首先检查您的内核配置CONFIG_LEDS_USER
是否应该像 built-in (compiled in) moduley
或 loadable module m
。您可以在已编译和运行的内核上检查它
zcat /proc/config.gz | grep LEDS_USER
cat /boot/config | grep LEDS_USER
cat /boot/config-$(uname -r) | grep LEDS_USER
在配置中启用此选项并重建您的内核。如果我没记错的话,你可以将这一行添加到内核配置中,YOCTO 应该按原样使用它。或者另一种方法是让它像 config 的补丁,并将这个补丁添加到 .bb 内核规则中,YOCTO 在项目构建期间应用它。
如果它配置为可加载模块,则insmod
用于插入您的模块m
。如果您选择y
选项/dev/uleds
,则默认情况下应存在
在这些步骤之后/dev/uleds
应该出现。
推荐阅读
- python - multiprocessing.apply_async 在传递 queue.Queue 对象时实际上并没有启动
- python-3.x - Pymongo 与 MongoDB 地图集的连接 - 错误 111 连接被拒绝
- javacard - Java Card OwnerPin - APDU 命令
- python - ImportError:无法从“urllib3.connection”导入名称“port_by_scheme”
- java - \app\src\main\res\layout\activity_login.xml:AAPT:错误:文件编译失败
- c++ - 以 8 位数字形式输入日期并显示为英文形式
- javascript - Javascript - 通过 javascript 将 -webkit-overflow-scrolling css 属性设置为正文
- javascript - 将 iframe 调整为嵌入的 facebook 视频的原始高度/纵横比
- python - 我如何定期更改图像并标记值
- ruby - xcversion更新`:NoMethodError:未定义的方法`first'为nil:NilClass