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!
Related
I followed the instructions in this video to compile the Linux kernel for WSL with video drivers. The kernel is running and I do have access to /dev/video0 which was the whole point.
I can also confirm that the correct kernel is running with uname -a, which gives the following output:
Linux DESKTOP-V575QHO 5.15.74.2-microsoft-standard-WSL2+ #1 SMP Wed Dec 7 14:57:03 CET 2022 x86_64 x86_64 x86_64 GNU/Linux
I now installed dkms and used it to compile the akvcam module (a virtual camera driver). Both make and make dkms_install exited successfully.
However, when I'm actually trying to install the module using insmod /lib/modules/$(uname -r)/updates/dkms/akvcam.ko I get the following error:
insmod: ERROR: could not insert module /lib/modules/5.15.74.2-microsoft-standard-WSL2+/updates/dkms/akvcam.ko: Operation not permitted
I've seen here that this might be related to Secure Boot, but I don't really understand how this would translate to WSL2 and how this problem could be solved here.
Any help is greatly appreciated!
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?
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.
When I try to compile one of my old program which uses ext3 structure with new Fedora 16
I get the message
# make
Compile main.c In file included from main.c:8:0:
giis.h:18:28: fatal error: linux/ext3_fs.h: No such file or directory
compilation terminated.
I did yum install kernel-devel and kernel-headers - but still it gives above message.
# uname -a
Linux space 3.2.9-2.fc16.x86_64 #1 SMP Mon Mar 5 20:55:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
The linux kernel does not export a header called ext3_fs.h, or does not do so anymore. Edit your giis.h to do without it. See commit v2.6.25-rc8~52: “Neither of the headers actually compiles when included from userpsace nor should it be made available as userspace tools should be using the libraries or at least headers from e2fsprogs.”
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?