在手机中insmod模块出错,大侠急救!

yangkunhenry 2010-09-30 10:15:09
在手机/data中push了一个自己写的hello.ko模块,在insmod hello.ko的时候出现

# insmod hello.ko
insmod hello.ko
insmod: init_module 'hello.ko' failed (No such file or directory)

我ls了一下,data中有hello.ko文件啊。为什么会出现这种错误呢?是我SDK版本太低了?

D:\AppAndroid\android-sdk-windows-1.5_r3\tools>adb push hello.ko /data/
910 KB/s (29121 bytes in 0.031s)

D:\AppAndroid\android-sdk-windows-1.5_r3\tools>adb shell
# cd data
cd data
# ls
ls
hello.ko
busybox
tmp
gps_nmea_fifo
reboot.chk
pvcodec.txt
rtsp_proxy
http_proxy
system
anr
tombstones
backup
agent
agent_htc
wimax
app-cache
DxDrm
dalvik-cache
drm
property
app
app-private
local
hello.o
misc
dontpanic
data
lost+found
# insmod hello.ko
insmod hello.ko
insmod: init_module 'hello.ko' failed (No such file or directory)

...全文
1101 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangkunhenry 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 deep_pro 的回复:]
lz 难道你编译模块的时候没有报警告说有未知的符号?

还有,如果你编译模块使用的内核头文件就是编译出了目标板上正在跑的内核的源文件,是不会出现这种问题的
[/Quote]
我编译模块的时候没有出现警告。
恩,有道理!我编译模块的环境是我自己机器上配置的虚拟机中的环境,目标板上的环境是别的公司的,应该是这个问题吧
deep_pro 2010-10-09
  • 打赏
  • 举报
回复
lz 难道你编译模块的时候没有报警告说有未知的符号?

还有,如果你编译模块使用的内核头文件就是编译出了目标板上正在跑的内核的源文件,是不会出现这种问题的
yangkunhenry 2010-10-09
  • 打赏
  • 举报
回复
在dmesg中查看错误信息

hello: Unknown symbol __gnu_mcount_nc

这是什么东东,怎么都这么怪啊?
jxj141 2010-09-30
  • 打赏
  • 举报
回复
应该是android根文件系统不能识别+x模式,用chmod 777 hello.ko
yangkunhenry 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 deep_pro 的回复:]
应该要加执行权限
chmod +x hello.ko

我想还是2楼说对
[/Quote]
奇怪了,我加了执行权限,但push到手机里面就仍然只有读写权限……
而我在手机里面chmod的话,就提示Bad mode
deep_pro 2010-09-30
  • 打赏
  • 举报
回复
应该要加执行权限
chmod +x hello.ko

我想还是2楼说对
yangkunhenry 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jxj141 的回复:]
ls -l看一下权限
[/Quote]
这样的权限可以吗,超级用户和普通用户的权限都这样

# ls -l hello.ko
ls -l hello.ko
-rw-rw-rw- root root 29121 2010-09-30 10:00 hello.ko
yangkunhenry 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 deep_pro 的回复:]
仔细检查你的hello.ko
用file命令

有时候类型不对也会报这个错误,即使这个文件存在
[/Quote]
手机中的shell太精简了,不支持file命令。
在我的Android的kernel中file是这个样子,不知道所说的类型对不对

vanpersie@ubuntu:~/myandroid/kernel/drivers/char/hello$ file hello.ko
hello.ko: ELF 32-bit LSB relocatable, ARM, version 1, not stripped

还有问一下deep_pro,你说的类型不对指的是……?
jxj141 2010-09-30
  • 打赏
  • 举报
回复
ls -l看一下权限
deep_pro 2010-09-30
  • 打赏
  • 举报
回复
仔细检查你的hello.ko
用file命令

有时候类型不对也会报这个错误,即使这个文件存在
deep_pro 2010-09-30
  • 打赏
  • 举报
回复
我加了执行权限,但push到手机里面就仍然只有读写权限
----------------
文件的属性不是文件本身的一部分
push程序本身没有义务替你把文件的属性也保持原样

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧