embedded-linux相关内容

Linux File IO-多线程性能-写入不同的文件

我目前正在开发一个音频记录应用程序,该应用程序可以从网络中获取多达8个音频流,并将数据保存到磁盘上(简体;)). 现在,每个流都由一个线程处理->同一线程也在磁盘上进行保存工作. 这意味着我有8个不同的线程在同一张磁盘上执行写操作,每个线程都写到一个不同的文件中. 您是否认为,如果所有写入工作都由一个公共线程完成(随后会将数据写入特定文件),磁盘I/O性能是否会提高? OS是嵌入 ..
发布时间:2020-05-13 23:43:15 其他开发

Linux中的NFS挂载系统调用

我正在尝试将nfs服务器中的源目录安装到具有linux的嵌入式主板中的目标目录中.以下命令可以按预期在板中的Shell提示符中正常运行. mount -t nfs -o nolock 10.126.62.45:/vol/home/avinoba/Sky /mnt 在程序中用于上述命令的等效系统调用是什么? 我尝试了以下调用,但挂载失败并显示"Invalid Argument"(无效参数) ..
发布时间:2020-05-12 18:51:58 其他开发

在嵌入式Linux中为硬件使用Mono

我正在为一家公司做研究实习.我在使用Mono(.Net平台的跨平台实现)时遇到一些问题.我的公司设计硬件和软件. 我对使用嵌入式Linux的知识非常有限.我从事实习的公司确实非常注重.NET.但是mono的新发展要求他们问自己是否可以针对较小的项目使用linux,这也避免了为其设计软件和硬件的人们支付高昂的许可费用. 我已经研究了单声道可以做什么(现在还不能做什么).现在我要解决嵌入式 ..
发布时间:2020-05-11 22:30:30 C#/.NET

Linux内存过量使用详细信息

我正在开发用于嵌入式Linux的软件,并且由于OOM Killer会不时出现而使系统挂起.在超越之前,我想解决一些关于Linux内核如何分配动态内存的令人困惑的问题,假设/proc/sys/vm/overcommit_memory为0,/proc/sys/vm/min_free_kbytes为712,并且没有交换. 如果我编写这段代码,假设当前可用的嵌入式Linux物理内存为5MB(5MB的 ..

样本示例程序获取malloc合并错误

我想先在PC上测试mcheck功能,以检测malloc合并错误. 这样,我将确保这将有助于弄清楚嵌入式Linux系统上的类似崩溃.不幸的是,飞机坠毁至少需要3-4天.因此,我正在寻找一个示例程序,该程序将产生如下所示的类似崩溃. Program terminated with signal 6, Aborted. #0 0x2c73ebb8 in __syscall_kill (pid= ..
发布时间:2020-05-05 12:34:59 其他开发

Linux从Userland注册读取臂i.mx257-devmem无法正常工作

我目前正在i.mx257平台上工作,想读取一些外设寄存器(具体来说是iomux寄存器)以了解其配置方式或设置是否正确. 我也从busybox和devmem2中了解了devmem.两者都尝试过,并且都出错.当前,定制板从meta-fsl-arm yocto meta包运行Linux内核版本4.6.0-rc7.该系统是使用yocto构建的. root @ system/]#./tmp/de ..
发布时间:2020-05-02 03:52:28 服务器开发

找不到UBI布局卷

我正在关注 Bootlin的嵌入式Linux培训,该培训旨在提供嵌入式Linux. Atmel SAMA5D4 Xplained板(理论幻灯片,实用实验室指示 ),而我将整个系统置于NAND闪存上. 他们要求我将DTB,内核,根文件系统和数据文件系统放入要写入闪存的UBI映像中,但是一旦将其刷新,我将无法访问UBI分区(访问失败,错误代码22 ,或在嵌入式Linux环境中为-22. 详 ..
发布时间:2020-05-02 03:50:41 服务器开发

用内核触发用户空间

我需要从内核向用户空间函数发送一个字符串,而无需特别从用户空间中请求它,而是通过内核中的某个事件在用户空间中触发某种函数或应用程序. 到目前为止,我已经尝试过一个从用户空间中的init开始,然后进入睡眠状态并不断阅读有关netlink的Ioctl,但是找不到适合它的有效示例. 任何建议或示例将非常有必要. 解决方案 这是我的流程的工作方式,我也会对任何改进建议感兴趣: 启动内核模块 ..
发布时间:2020-05-02 03:47:30 其他开发

Linux内核中的netlink套接字与从userland进行轮询有何不同?

我对netlink套接字在内核与应用程序交互上下文中的功能感到怀疑.如我所见,netlink套接字用于从内核到应用程序的基于事件的通知.这样做的好处是不需要轮询应用程序. 但是与netlink套接字一样,它最终也将进行轮询以检查是否已从内核发送了一些数据.所以我的问题是,netlink套接字的这种功能与文件描述符的轮询有何不同? 我引用了此,但是它告诉了如何使用netlink,而不是区别在n ..
发布时间:2020-05-02 03:45:49 服务器开发

Linux,ARM:为什么要使用gpiochip< num>仅在引导时存在I2C GPIO扩展器的情况下创建?

在imx6sx硬件平台(NXP嵌入式ARM)上使用Linux 3.14.52. 问题在于,除非在内核引导过程中存在设备树中指定的PCF8575 I2C GPIO扩展器,否则它们不会被实例化为/sys/class/gpio结构中的设备.这些设备在/sys/bus/i2c/devices/i2c-1(i2c总线1)结构中列出,但在/sys/class/gpio结构中未指定gpiochip. ..
发布时间:2020-05-02 03:45:12 服务器开发

将Linux内核2.6移植到新的MIPS板上

我想将Linux内核2.6.x移植到新的MIPS板上.不幸的是,我无法通过逐步的说明找到好的实际文档.希望你能帮助我.纸质书也可以. 提前谢谢! 解决方案 首先,开始使用MIPS 工具链.您将需要它来编译内核.我已经使用 buildroot 几次,包括用于构建MIPS工具链. 但是buildroot提供的功能远不止于此: Buildroot可以生成任何或全部 交叉编译工具 ..
发布时间:2020-05-02 03:41:32 其他开发

为什么我不应该在ARMv6 +的系统内存上使用ioremap?

我需要从内核保留一个较大的物理上连续的RAM缓冲区,并能够保证该缓冲区将始终使用特定的硬编码物理地址.该缓冲区应在内核的整个生命周期内保留.我已经编写了一个chardev驱动程序作为访问用户空间中此缓冲区的接口.我的平台是具有ARMv7架构的嵌入式系统,运行2.6 Linux内核. 第三版Linux设备驱动程序的第15章对主题进行了以下说明(第443页): 保留RAM的顶部是通过在引导 ..
发布时间:2020-05-02 03:39:49 服务器开发

从S3C6410板引导时无法在未知块(0,0)上安装根fs

我有一个S3C6410板.软件包中的默认Linux是2.6.28,可以正常工作.我想用更新的内核来升级它.我抓住了buildroot 2012.11版.然后,我在DVD中获得了默认的配置文件,并以此编译了内核3.6.8.引导加载程序和根文件系统是相同的旧版本.现在,当我启动内核时,我得到了这个错误: VFS: Cannot open root device "mtdblock2" or un ..
发布时间:2020-05-02 03:39:26 其他开发

如何使用QEMU学习ARM Linux内核开发?

我想像开发一些设备驱动程序一样学习它,并为此使用QEMU,因为我没有像beagle板那样的ARM硬件板.你们有什么建议?我可以使用Qemu模拟器在ARM目标上学习Linux内核吗?或我应该尝试的其他任何选择? 解决方案 这取决于您要学习的内容:硬件还是软件.如果您真的想试验不同的GPIO输出以实现诸如伺服电机控制,LED指示灯闪烁和显示之类的东西,那么最好选择便宜的开发板(例如,Raspb ..
发布时间:2020-05-02 03:39:24 服务器开发

USB端口速度Linux

如何以编程方式确定运行Linux内核的嵌入式设备中的USB端口速度? 解决方案 您可以阅读/sys/bus/usb/devices/usb?/speed-它会为您提供根集线器的总线速度(以Mbps为单位):1.5、12、480或5000 .前两个表示USB1(低速或全速),第三个USB2和第四个USB3. ..
发布时间:2020-05-02 03:38:51 其他开发

在运行时调整MTD分区的大小

我正在使用嵌入式设备,希望使它们能够通过Linux调整MTD分区的大小而无需重新启动. 问题是我的Linux映像大小增加了,并且它所在的当前MTD分区(mtd0)现在太小了.但是,紧随其后的分区(mtd1)是一个JFFS2节,用于存储配置信息,因此不能选择通过重新引导来调整大小,因为配置可能会丢失. 我的目标是: 1. Copy contents of JFFS2 into /t ..
发布时间:2020-05-02 03:37:26 其他开发