Getting "shared memory ID" error on Linux - linux

Running this version of Linux:
Linux trhtmxslsp01b02 2.6.32-358.14.1.el6.x86_64 #1 SMP Mon Jun 17 15:54:20 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux
I attempt to start a process but getting the following error
OpenShmMemory(): Cannot get shared memory ID, No such file or directory.
The app/process I'm running read the shared memory segment. I don't know how to troubleshoot this. This is a third party app. Can someone provide some guidance please?

Related

Runtime error "undefined symbol g_malloc0_n" - but only on old Debian5

We have a legacy Linux application, written in C, using GTK.
We compile it on Ubuntu14/32-bit, we can also launch it
In production, we run it on Debian10/32-bit
We have some very old hosts, which runs Debian 5. The old version of the application runs on Debian 5, but when we compile a new one, we got a runtime message:
.../bin/gui: symbol lookup error: .../lib/libmkt.so: undefined symbol: g_malloc0_n
It's strange, because nm finds it:
$ nm .../lib/libmkt.so | grep g_malloc
U g_malloc0
U g_malloc0_n
Also the application has a good reference entry to the library:
$ ldd .../bin/gui | grep libmkt
libmkt.so => .../lib/libmkt.so (0xb7257000)
This is happening only on the old machine with Debian 5:
$ uname -a
Linux kiosk 2.6.26-2-686 #1 SMP Mon Aug 30 07:01:57 UTC 2010 i686 GNU/Linux
On the new machine, with Debian 10, the application starts:
$ uname -a
Linux kiosk 4.19.0-17-686-pae #1 SMP Debian 4.19.194-1 (2021-06-10) i686 GNU/Linux
The developer machine with Ubuntu14, the application starts:
$ uname -a
Linux ubuntu-build-server 4.4.0-142-generic #168~14.04.1-Ubuntu SMP
Sat Jan 19 11:28:33 UTC 2019 i686 i686 i686 GNU/Linux
We start the application with LD_LIBRARY_PATH=.../lib .../bin/gui, we have a bunch of .so files in the .../lib directory, including the .../lib/libmkt.so, which indicates the error.
My hint is that the compiler uses some feature for libmkt.so, which the 2.6 kernel does not like, but I haven't found such issue on the internet.
UPDATE: .../lib/libmkt.so does not contain the missing g_malloc0_n symbol, but it refers to the GTK library, which does. What should I do in order to find such second-hop symbols?

Self-compiled linux kernel can't boot on btrfs

I'm a newcomer for linux kernel development. This is second question about loading self-compiled kernel(current stable version 4.8.6). The error messages printed during booting are as below:
linux-05e3 mount[282]: mount: unknown filesystem type 'btrfs'
linux-05e3 systemd1: Dependency failed for Initrd Boot File System
linux-05e3 systemd1: Dependency failed for Reload Configuration
Actually the file system type of my root partition is 'btrfs', and it is no problem with kernel version 4.1.12.1-default.
My partition table is :
Result of uname -a is :
Linux linux-05e3 4.1.12-1-default #1 SMP PREEMPT Thu Oct 29 06:43:42
UTC 2015 (e24bad1) x86_64 x86_64 x86_64 GNU/Linux
The .config file is just copied from the one used for 4.1.12.1-default. And I've just ran make menuconfig with nothing modified after copying that file.
Can anyone give some useful tips to me. I really need a linux kernel development expert to give more instructions to me as a beginner. Thanks a million.

Make kernel module for BeagleBoneBlack

I have a BBB with Linux pre-installed from the vendor. Here is output from uname -a:
Linux beaglebone 3.8.13 #1 SMP Wed Sep 4 09:09:32 CEST 2013 armv7l GNU/Linux
I am trying to make a Kernel Module, for example HelloWorld.ko for it.
I cloned code from git://github.com/RobertCNelson/linux-dev.git and checkout origin/am33x-v3.8. After I built a module on it and tried to insmod it on my BBB, I got error message:
Error: could not insert module Hello.ko: Invalid module format,
I double checked version of the kernel, it is 3.8.13-bone53. Is this the root cause? Where can I get the "exactly" matched kernel source tree for it? There is no version named 3.8.13 in my cloned git commit tree.
Thanks for your help!

Getting cache details in ARM processors - Linux

On Intel processors
Linux linux-epq2.site 3.7.10-1.11-desktop #1 SMP PREEMPT Thu May 16 20:27:27 UTC 2013 (adf31bb) x86_64 x86_64 x86_64 GNU/Linux
to fetch the cache details:
cat /sys/devices/system/cpu/cpu*/cache/index*/
Where * is the respective cpu and cache index numbers
However, on ARM processors, this file/folder is not available. Is there a way to fetch these details?
Linux arndale 3.9.0-rc5+ #8 SMP Tue Apr 9 12:40:32 CEST 2013 armv7l GNU/Linux
From ARMv8A (64bit), it is possible to get cache info from CLIDR register. So cache info can be populated to /sys file system in Linux. Check detail from kernel/arch/arm64/kernel/cacheinfo.c.

libstdc++.so.6: cannot handle TLS data

I have an application compiled at:
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
Linux debian 2.6.18-5-686 #1 SMP Fri Jun 1 00:47:00 UTC 2007 i686 GNU/Linux
and it runs well.
Now I want to run it at:
Linux 2.4.20_mvlcge31-tomas #7 Thu May 7 11:33:21 CEST 2009 i686 unknown
I got following errors:
libstdc++.so.6: cannot handle TLS data
From the web I saw someone suggested to do this: export LD_ASSUME_KERNEL=2.2.5
I tried but get even more errors:
ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
Who can help me with it? thanks
You had compiled the application against much newer libc and kernel version, You can't compile program on 2.6 with newest libc and expect it to run on old kernel.
Also where do you actually still use Linux 2.4?

Resources