主题 : 請問android的在init.rc如何撰寫mknod 建立節點 复制链接 | 浏览器收藏 | 打印
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
楼主  发表于: 2012-06-20 11:02

 請問android的在init.rc如何撰寫mknod 建立節點

如題,
直接進系統時用busybox
mknod /dev/fm c 193 0
chmod 0664 /dev/fm
是正常

在init.rc
我使用
mkdir /dev/fm
chown system system /dev/fm
chmod 0660 /dev/fm
不能正常啟動
[ 此帖被kazaya在2012-06-20 11:21重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-06-20 11:47
init.rc里所有可用的command都定义在system/core/init/keyword.h里,默认是不包含mknod的。事实上,Android的init进程会通过kenel的uevent来自动创建设备节点(见system/core/init/devices.c里的make_device()函数)。

如果你希望手动调用mknod, 我想你可以
1. 仿照make_device(), 通过定义一个do_mknod()函数,调用bionic libc里的mknod(). 这样就可以在init.rc里加入mknod支持了;
或者
2. 在init.rc里定义一个service来调用一个shell脚本,在脚本中可以调用busybox的mknod命令
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
2楼  发表于: 2012-06-20 16:05
引用第1楼kasim于2012-06-20 11:47发表的  :
init.rc里所有可用的command都定义在system/core/init/keyword.h里,默认是不包含mknod的。事实上,Android的init进程会通过kenel的uevent来自动创建设备节点(见system/core/init/devices.c里的make_device()函数)。

如果你希望手动调用mknod, 我想你可以
1. 仿照make_device(), 通过定义一个do_mknod()函数,调用bionic libc里的mknod(). 这样就可以在init.rc里加入mknod支持了;
或者
.......


謝謝,OK了

init.rc mknod 節點建立與mm 輸出 相關問題是否建議直接放在FAQ查比較快.....
http://www.aiothome.net/read.php?tid-20884.html