ipcs报错:kernel not configured for shared memory、semaphore、message queues [解决方法]

article/2025/10/7 15:15:34

前言 

今天在复习linux进程间通信的shared memory 共享内存时,在PC端的VMare Workstation虚拟机的Ubuntu上测试我写的shared_memory_CREAT.c 和shared_memory_CONSUME.c 时正常在PC端运行,就想着把程序用交叉编译器编译成arm格式放到linux开发板上运行试试,结果运行的时候给我报了下列错误:

$ ./shared_memory_CREATshmget:Function not implemented

我一看人懵了,在虚拟机上运行根本就没有这个错误啊

 紧接着我敲了一行查看共享内存的命令 

$ ipcskernel not configured for shared memorykernel not configured for semaphorekernel not configured for message queues

linux开发板画面​​​​

 我真的人傻了,内核没配置共享内存、信号量、消息队列???

一上百度一搜,这个问题竟然没有好的什么解决方法,匹配关键字百度第一条竟然是老外论坛上的

 点进去看老外也没说什么玩意儿,就是有一群人在那说,“啊呀呀我也遇到了相同的问题bro。”

折腾了很久,在各式各样的搜索引擎上找不到解决办法就只能自己动手了,终于折腾出来解决方法!!!

解决方法

进入linux内核的make menuconfig界面,</>键,搜索shm

这里默认显示是SHMEM[=n]

你将会看到最下面一行出现一个描述为: Use full shmem filesystem(使用完整的shmem文件系统)

没错就是它!!!

进入 ->General setup

在<>System V IPC和<>POSIX Message Queues前输入<Y> ,勾选编译这两个模块

回车<Yes>保存配置 

编译内核:

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8

经过(喝一杯奶茶的时间)漫长的编译后,成功生成zImage,

把生成的zImage拷贝到TF卡对应的zImage应该处于的位置,给开发板上电,跑程序

 大功告成!

这里在我运行程序后ipcs命令里什么都没有是因为我的第二个程序执行完后把创建的共享内存删除了,当执行第一个creat程序时:

硬件:荔枝派zero

内核版本:linux4.10.15

以上


http://chatgpt.dhexx.cn/article/YnwDQv96.shtml

相关文章

ipcs

&#xfeff;&#xfeff; linux命令-ipcs 格式&#xff1a;ipcs [-asmq] [-tclup] ipcs [-smq] -i id ipcs -h 功能描述&#xff1a;ipcs命令用来显示系统存在的ipc&#xff08;进程间通信&#xff09;相关信息。 参数&#xff1a;-i 显示指定id的ip…

IPC方案

近期了解了不少网络摄像头相关知识&#xff0c;主要功能组成如下&#xff1a; WIFI&#xff0c;USB接口或者SDIO接口实现 RJ45 本地TF存储 IR CUT&#xff0c;滤光片切换 移动侦测&#xff0c;人体感应 夜视功能&#xff0c;依靠红外灯 云台控制&#xff0c;PWM控制Moto&#…

Linux15 --- 信号量、ipcs

1、IPC机制&#xff1a; 进程间通信&#xff08;管道、信号量、共享内存、消息队列、套接字&#xff09; 2、信号量&#xff1a; 可以类比于红绿灯&#xff0c;对于路口这个共享的通行权&#xff0c;谁得到红绿灯的通行信号&#xff0c;才可以得到路口的通行权&#xff0c;没…

Linux ipcs命令与ipcrm命令的用法详解

转载地址&#xff1a;http://www.jb51.net/article/40805.htm linux/uinx上提供关于一些进程间通信方式的信息&#xff0c;包括共享内存&#xff0c;消息队列&#xff0c;信号 ipcs用法 ipcs -a 是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息 ipcs -m 打印出…

ipcs命令详解——共享内存、消息队列、信号量定位利器

多进程间通信常用的技术手段包括共享内存、消息队列、信号量等等&#xff0c;Linux系统下自带的ipcs命令是一个极好的工具&#xff0c;可以帮助我们查看当前系统下以上三项的使用情况&#xff0c;从而利于定位多进程通信中出现的通信问题。目前也有一些帖子介绍ipcs命令的使用方…

(1)IPC简介

Unix/Linux IPC简介 简述1. 消息传递演变过程2. 同步形式演变 进程、线程与信息共享IPC对象的持续性名字空间fork、exec和exit对IPC对象的影响总结参考资料 简述 IPC是进程间通信(interprocess communication)的简称。用来描述运行在一个操作系统之上的不同进程间各种消息传递…

Linux——信号量(定义、示例、信号量接口、ipcs命令)

目录 1、信号量 2、信号量举例 3、信号量的接口 4、通过控制进程来完成打印机操作 5、ipcs命令 1、信号量 &#xff08;1&#xff09;定义:​​​​​​ ​信号量是一个特殊的变量&#xff0c;一般取正数值。它的值代表允许访问的资源数目&#xff0c;获取资源时&#xff…

什么是IPC?

目录 IPC的简介&#xff1a; IPC的主要功能模块&#xff1a; IPC信号处理过程&#xff1a; IPC硬件构成&#xff1a; IPC的简介&#xff1a; IPC&#xff1a;是IP Camera的简称。它是在前一代模拟摄像机的基础上&#xff0c;集成了编码模块后的摄像机。它和模拟摄像机的区别…

IPC是什么?

IPC是什么&#xff1f; ipc是IP Camera的缩写词&#xff0c;IP是网际协议&#xff0c;Camera是照相机、摄影机&#xff0c;IP Camera顾名思义就是网络摄像机&#xff0c;它是一种由传统摄像机与网络技术结合所产生的新一代摄像机。 网络摄像机又叫IP CAMERA&#xff08;简称IP…

linux ipcs命令详解

进程间通信概述 进程间通信有如下的目的&#xff1a;1、数据传输&#xff0c;一个进程需要将它的数据发送给另一个进程&#xff0c;发送的数据量在一个字节到几M之间&#xff1b;2、共享数据&#xff0c;多个进程想要操作共享数据&#xff0c;一个进程对数据的修改&#xff0c…

ipcs 命令

在unix/linux下&#xff0c;查看共享内存、信号量&#xff0c;队列等共享信息 相应的命令是ipcs [-m|-s|-q] -m列出共享内存&#xff0c;-s列出共享信号量&#xff0c;-q列出共享队列 清除命令是 ipcrm [-m|-s|-q] $id -m 删除共享内存&#xff0c;-s删除共享信号量&#xff0…

Linux的IPC命令

进程间通信概述 进程间通信有如下的目的&#xff1a;1、数据传输&#xff0c;一个进程需要将它的数据发送给另一个进程&#xff0c;发送的数据量在一个字节到几M之间&#xff1b;2、共享数据&#xff0c;多个进程想要操作共享数据&#xff0c;一个进程对数据的修改&#xff0c;…

Linux--ipcs、共享内存、共享接口简介

1.ipcs命令 ipcs -s: 只查看信号量 ; ipcs -m: 只查看共享内存 ; ipcs -q: 只查看消息队列 ; 删除信号量 : ipcrm -s 编号 ; 2.共享内存 共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物 理内存上申请一块空间&#xff0c;多个进程可以将其…

Linux系统中ipcs命令的使用

ipcs命令的学习 多进程间通信常用的技术手段包括共享内存、消息队列、信号量等等。 ipcs 命令的用途主要用于报告进程间通信设施状态。 ①查看帮助&#xff1a; ipcs -help ②查看所有资源&#xff08;设施&#xff09;&#xff1a; ipcs -a 或 ipcs ③三类资源单独查看方式 …

C++的access()函数

文章目录 函数功能头文件函数原型参数说明示例access函数详解 函数功能 确定文件是否存在或者判断读写执行权限&#xff1b;确定文件夹是否存在即&#xff0c;检查某个文件的存取方式&#xff0c;比如说是只读方式、只写方式等。如果指定的存取方式有效&#xff0c;则函数返回…

access数据库

经过连续几天的学习&#xff0c;初步了解access数据库。以下是知识点的总结&#xff0c;对应刚刚学习的人会很有帮助。 ADO.NET是数据的访问架构 它主要包括 connection,command,datareader,dataadapter,dataset,datatable等六个对象 一、connection 作用&#xff1a;连接数…

Access数据库对象包括哪六个?Access与 Excel 最重要的区别是什么?

我们知道微软有两款经典的数据处理软件&#xff1a;Excel和Access。 由于在运行大量数据时&#xff0c;Excel会卡得让你怀疑人生&#xff0c;Access却轻松运转。所以很多人说他俩的时候&#xff0c;大都总结&#xff1a; “小规模数据用Excel&#xff0c;大规模数据用Access。…

access/_access函数

Linux下 1&#xff0c;头文件&#xff1a; #include <unistd.h>2&#xff0c;函数的声明&#xff1a; int access(const char *pathname, int mode);3&#xff0c;函数的作用&#xff1a; access函数用来判断指定的文件或目录是否存在(F_OK)&#xff0c;已存在的文件或…

Linux access函数讲解

函数&#xff1a; #include<unistd.h> int access(const char* pathname, int mode); 参数介绍&#xff1a; pathname 是文件的路径名文件名 mode&#xff1a;指定access的作用&#xff0c;取值如下 F_OK 值为0&#xff0c;判断文件是否存在X_OK 值为1&#xff0c;判…

C语言中access/_access函数的使用

在Linux下&#xff0c;access函数的声明在<unistd.h>文件中&#xff0c;声明如下&#xff1a; int access(const char *pathname, int mode); access函数用来判断指定的文件或目录是否存在(F_OK)&#xff0c;已存在的文件或目录是否有可读(R_OK)、可写(W_OK)、可执行(X…