커널소스 디바이스드라이버의 단독 모듈 컴파일

imcjswo의 이미지

안녕하세요
커널을 새로 컴파일 후
커널소스안의 특정 디바이스 드라이버만을 모듈로 컴파일해서 드라이버를 추가 사용하고 싶은데요
( 즉, 전체 커널 컴파일없이 특정 드라이버의 xxxx.o 의 모듈용 오브젝트 파일을 생성해서 insmod로 올려 사용하고 싶습니다.)

단지 해당 소스가 있는 경로에서
gcc -c xxxx.c -D__KERNEL__ -DMOUDLE -O 만으로도 가능할까요? :oops:
혹시 위의 방법으로 안된다면 방법을 사사해주시면...감사하겠습니다 :D

kiwist의 이미지

제가 보기엔 별 문제 없는 것 같은데요...

모듈 컴파일시 -O 옵션은 신중하게 사용해야하는 것으로 알고 있습니다.

간단한 코드라면 상관없겠지만, 되도록 -O0 로 설정하는것이 좋다는 얘길 들은 기억이... ^^;;;

고수님들이 더 부가적인 설명을 해주시겠죠?

j8508의 이미지

반드시 넣을 필요는 없지만...
넣는게 좋다고 하네요...

(o'reilly의 Linux device driver에 따르면..)
플래그에 -O를 포함 해야 gcc에서는 inline 함수를 디버그 할 수 있다고 하네요..

그렇지만 -O2 이상의 옵셥의 경우에는 inline으로 선언되어 있지 않은 함수도 inline 함수로 취급될 수 있다고 합니다.... 그래서 위험하데요~

그런데 그게 무슨 뜻인지 명확히는 모르겠어요~

아아.. 이렇게 부실한 답변이라니..

Seven..의 이미지

다수의 .c를 하나의 모듈로 묶어서

.o를 만들기 위해서는 어찌 해야하나요?

하나씩 하나씩 적었더니..

각각 .o가 생겨버리고..

뭉치자고 -o를 할 수도 없는 거 같고요;;;;

file system 모듈 컴파일 하는데요...

여러 .c파일을 어떻게 하나의 .o로 만들죠?

VENI VIDI VICI

hys545의 이미지

Seven.. wrote:
다수의 .c를 하나의 모듈로 묶어서

.o를 만들기 위해서는 어찌 해야하나요?

하나씩 하나씩 적었더니..

각각 .o가 생겨버리고..

뭉치자고 -o를 할 수도 없는 거 같고요;;;;

file system 모듈 컴파일 하는데요...

여러 .c파일을 어떻게 하나의 .o로 만들죠?


ar 린 명령어로 xx.a라고 o파일 뫃은 파일 만들수 잇습니다.

즐린

Seven..의 이미지

Quote:
ar 린 명령어로 xx.a라고 o파일 뫃은 파일 만들수 잇습니다.

그렇게 하면... insmod가 되나요? -0-;;

저것은 library만드는거 아닌가요? 음..ㄱ

VENI VIDI VICI

sjpark의 이미지

morris의 이미지

gcc -o modulename.o firstfile.o secondfile.o

그냥 이렇게 해주시면 됩니다

imcjswo의 이미지

gcc -o modulename.o firstfile.o secondfile.o 

그냥 이렇게 해주시면 됩니다

다수의 .o 파일을 묶는게 아니라 다수의 .c 파일들을 하나의 .o 파일로
만들려면 먼저 각자 .o 파일로 만든 후 위처럼 하라는 말씀인가요?

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.