在make 一个模块时,提示:
arm-none-linux-gnueabi-ld cannot open output file XXX.o Permission denied
想到切换用户,但 sudo make 会提示:
command not found
因而用su切换用户.
但用su时:
$ su - rootPassword: su: Authentication failureSorry.
这时候输入
$ sudo passwd rootEnter new UNIX password: Retype new UNIX password: passwd: password updated successfully
可以到root用户.
但再次编译时,出现:
/Makefile: No such file or directorysrc/arch/armgcc: Command not foundnueabi-查了半天,想到应该编译器路径不对,但source envsetup.sh已经把环境搭好了啊.
再查,注意到source envsetup.sh时会出现: command not found的提示,但看了很久,envsetup.sh和原来一样啊,没有改动什么.
最后用比较器比较,终于发现和旧的envsetup.sh相比,这个envsetup.sh里面的回车键全没有了.(不知那个编辑器自动把其去掉了,可能是sourceinsight),替回原来的,就可以了但是最开始的Permission denied问题还没解决啊,可是我重新编译这个模块时,Permission denied这个问题没有了,这是怎么回事?(为什么原先会有呢?和envsetup.sh有关?)
网上说:
最后查找su 和sudo 的区别,终于理解了,原来是工作环境的问题。希望此贴以后对其它人有帮助!su 和 sudo 的区别: 1.共同点:都是root用户的权限; 2.不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境;sudo是完全取得root的权限和root的工作环境。
不知是否正确