busybox 的insmod can't insert operation not permitted 错误解决
1. 起因
因为要在Mac OS X操作一款Tiny2451的开发板。原本通过串口转USB线进入shell操作 但是Mac OS X 不认识这款非PL2303的USB串口线。
没办法之下,使用网线与电脑直联,用telnet 192.168.1.230 登录上,但是发现只能用用户名plg和密码plg登录。
hxy$ telnet 192.168.1.230
Trying 192.168.1.230...
Connected to 192.168.1.230.
Escape character is '^]'.
Kernel 3.6.0-FriendlyARM on (/dev/pts/0)
FriendlyARM login: plg
Password:
[plg@FriendlyARM plg]#
进去可操作,但是操作insmod 即有错。
/sbin/insmod ov7740_dev.ko
insmod: can't insert './cmos_ov7740_dev.ko': Operation not permitted
经过搜索类似问题,原因在于insmod 必须用root用户来执行,错误提示就是权限不够。
2.解决办法
执行如下命令切换到root用户,然后再执行insmod命令即可。
su root
即可执行,但是有的会执行失败。提示
su: must be suid to work properly
这是busybox 本身权限不够,需要用如下命令修改权限
chmod 4755 busybox
chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。一般拥有root权限,这个命令必须联接在串口用root用户操作才行。