기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

소스도 보고 구글 및 여러곳에서 찾아봤는데, 방법을 찾지 못해

여기에 질문 글을 올립니다.


misc로 driver 등록하면서 permission 을 변경하려고 합니다.

sysfs에서는 생성시 permission 설정이 되는 것으로 알고 있는데,

misc로 생성시에는 permission 설정이나 변경이 안되는지요?

다시 설명하자면 kernel booting 이후  init script에서 chmod 로 permission 변경하는 것 대신

device driver에서 아예 permmsion을 변경해서 생성하고 싶은데

방법을 찾지 못하고 있습니다.


혹시 이와 관련해서 저와 같은 고민을 하셨거나 해답을 알고 계시는 분 계신지요?

이와 관련된 function이나 file name이라도 알려주시면 많은 도움이 될 것 같습니다.


감사합니다.


신현호

2012.11.07 20:23:25
*.214.41.74

안드로이드의 경우, init process가 device node를 만들때 권한을 주는 것 같더라구요.

system/core/init 안을 한번 보세요.(기억이 가물가물) 그 안에 보면

uevent.rc나 uevent.xxxx(플랫폼명).rc 파일을 파싱해서 같은 이름을 가지는

device node는 그 안에 정의된 대로 권한을 주면서 만들어지더군요.

 

고도리

2012.11.08 01:05:42
*.200.239.210

ueventd가 해당 기능을 담당하고요.


uevend.rc 혹은 ueventd.$ro.hardware.rc 파일에서 처리해 주시면 됩니다.

혜정아빠

2012.11.08 01:17:57
*.126.245.241

신현호님, 고도리님 답변 감사드립니다.

그런데 제가 찾고 있는 것은 misc_register() 함수 호출 이후에

device driver에서 권한을 변경하는 방법입니다.

내부 사정상 가급적이면 device driver 내에서 permission을 처리해야하기 때문입니다.


아무튼 답변 다시 한 번 감사드려요~~

고도리

2012.11.08 01:29:35
*.200.239.210

좀 골치 아프긴 한데, 방법은 있습니다만......


순서가 좀 골치겠네요....^^

혜정아빠

2012.11.08 02:02:33
*.126.245.241

현재로는 Timer를 이용하여 일정 시간 이후 Interrupt를 발생시키는 방법 등으로

처리를 하고 있긴 한데... 너무 편법인 것 같아서요.... --;;

고도리

2012.11.08 02:26:51
*.200.239.210

가장 좋은 것은..........


1. 일단 delayed workqueue 같은 것을 써서

device file이 생성되었는지를 확인 후에.....fstat() system call을 커널 내부에서 확인 후


2. 생성이 되었으면 chmod를 이용해서 처리하시면 될겁니다.



혜정아빠

2012.11.08 22:03:51
*.126.245.241

고도리님 답변 감사합니다~~

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인