리눅스 디바이스 드라이버 개발 관련 질문입니다.

ndmnwg의 이미지

제가 현재 CentOS에서 블럭 디바이스 드라이버(이하 모듈)를 개발하고 있는데요

컴퓨터 부팅시 모듈이 자동으로 등록되게 하는 방법을 찾고 있는데 검색을 해도 좀 지난 자료들이라

현재 버전이랑 뭔가 다른거 같아서 이렇게 질문합니다.

제가 알아본 바로는 커널 소스에 포함시켜서 커널 컴파일시 모듈을 같이 컴파일시키는 방법이 있고

modprobe를 써서 포함시키는 방법이 있다는데 제가 커널에 포함시키는 방법은 해봤는데

이 방법은 모듈을 수정하면 다시 커널을 컴파일 해야 되서 시간이 너무 오래 걸리더군요

그래서 다른 방법인 modprobe를 알아보고 있는데 modprobe를 사용해도 커널에 포함시키는것과 같이

커널 컴파일을 해야 하는 건가요? 아니면 모듈만 따로 컴파일하고 재부팅을 하면 수정한 부분이 적용이 되는건가요?

modprobe도 커널 컴파일을 해야 된다면 모듈만 따로 컴파일 해서 재부팅시 수정한 모듈이 자동으로 등록되게 하는 다른 방법이 있다면

알려주시면 감사하겠습니다.

그리고 CentOS 6.2 이상에서 modprobe를 사용해보신분이 있으시면 자세한 방법 좀 알려주세요.

마지막으로 제가 커널에 모듈을 포함시켜 컴파일했을때 부팅시 모듈이 자동으로 등록되는건 확인을 했는데 블록 디바이스(/dev 디렉터리 밑에 생성)를

생성한건 재부팅시 사라지더군요. 생성한 블록 디바이스도 부팅시 모듈이 자동으로 등록되면 그대로 남아있게 하는 방법을 아시는 분이 있다면

알려주시면 감사하겠습니다.

kwchun의 이미지

/etc/modules에 모듈 이름 넣으시면, 부팅 시 자동으로 올라갑니다. 모듈 올리고 내리는 건, modprobe를 이용하시면 되고요.

ndmnwg의 이미지

제가 지금 CentOS 6.3에 커널 버전 2.6.32.59로 환경을 맞췄는데요

kwchun님이 말씀하신 /etc/modules 라는 파일이 없네요..ㅠ

modules라는 파일은 없고 modprobe.d라는 폴더가 있는데

modprobe.d라는 폴더에 blacklist.conf, dist-alsa.conf, dist-oss.conf, dist.conf, openfwwf.conf, vmware-tools.conf

이렇게 6개 파일이 있는데 modprobe를 사용하려면 이 파일들 중에 하나에다가 모듈을 넣어야 되는거 같은데

혹시 아시는게 있나요?

ndmnwg의 이미지

해당 페이지 찾을 수 없다고 뜨네요;;

kwchun의 이미지

링크가 잘렸군요.

http://goo.gl/7a4kb

calmperson의 이미지

모듈만 따로 컴파일 하셔서 올렸다 내렸다 하시면 됩니다
모듈 로딩시에 자동으로 디바이스 파일 생성하는 방법은 udev 라는 것을 한번 찾아보시면 될거에요

"그때의 두려움을 어찌 잊을 수 있으리오!"
왕이 말했다.
"하지만"
여왕은 말을 이었다.
"메모해 두지 않으면 잊고 말 겁니다."

ndmnwg의 이미지

모듈만 따로 컴파일 한다는 말은 부팅하고 나면 직접 모듈을 컴파일 해서 insmod 해야 된다는 말인가요?

calmperson의 이미지

모듈 소스를 커널소스와 분리해서 따로 컴파일 할 수 있게 해놓으신게 아닌가요?
어느 부분이 이해가 안가신다는 건지?
모듈을 올리려면 컴파일해서 insmod 해야겠지요..

"그때의 두려움을 어찌 잊을 수 있으리오!"
왕이 말했다.
"하지만"
여왕은 말을 이었다.
"메모해 두지 않으면 잊고 말 겁니다."

ndmnwg의 이미지

당연히 모듈 컴파일해서 insmod는 되죠...;;

제가 하려고 하는건 부팅시에 모듈이 자동으로 insmod 되는거를 하려고 하는데

모듈 소스를 수정하고 부팅할때에 수정한 소스가 적용이 되어서 insmod 가 되는 방법을 찾고 있는거죠...

커널소스에 추가하고 커널 컴파일하고 하려면 시간이 너무 오래 걸리니까요...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.