我正在尝试创建一个简单的内核模块.我正在尝试将消息打印到dmesg,但我一直在努力
insmod:init_module'hello.ko'在android中失败(Exec格式错误)
之后:dmesg:未知搬迁:27
#include <linux/module.h>
#include <linux/kdb.h>
int init_module(void)
{
printk(KERN_ALERT "Hello world!\n");
return 1;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
MODULE_AUTHOR("Robert P. J. Day");
MODULE_LICENSE("Dual BSD/GPL");
MODULE_VERSION("2:1.0") ;
MODULE_DESCRIPTION("You have to start somewhere.");
Run Code Online (Sandbox Code Playgroud)
make文件
obj-m +=hello.o
KERNELDIR ?= ~/android/kernel/common
#KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
CROSS_COMPILE=~/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
ARCH=arm
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
rm *.symvers
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?以及如何使它工作?
我在做了一个readelf之后发现,当它被编译时,重定位部分指向了错误的方向.
Offset Info Type Sym.Value Sym. Name
00000008 0000171b …Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试创建一个圆形文本。我设法通过循环每个旋转的字符来以某种方式做到这一点。但我还是不明白。看不懂角度。有人可以给我一个很好的解释吗?就像在下面的代码中为什么不完全是 90 度?但是在 100 到 120 之间?
Graphics2D g2d = (Graphics2D)g;
AffineTransform xform1, cxform;
xform1 = AffineTransform.getTranslateInstance(200,200);
g2d.setTransform(xform1);
g2d.drawLine(0, -20, 0, 20);
g2d.drawLine(-20, 0, 20, 0);
xform1.rotate(Math.toDegrees(90));
g2d.setTransform(xform1);
g2d.drawString("a", 0, 20);
Run Code Online (Sandbox Code Playgroud)
我的第一篇文章。希望我没有犯任何错误。谢谢