특정 모듈을 올리기위해 커널을 컴파일 하려면..

innu의 이미지

예를들면...

현재 리얼텍 8139칩셋(모듈명 8139too)의 랜카드를 사용하고 있는데 어느날 갑자기 랜카드가 맛이 가서 3com(모듈명 3c59x)꺼로 바꾸어야 한다고 칩시다.

현재 랜카드 모듈은 8139 칩셋밖에 안올라와 있다고 가정합니다.

Quote:

# ls /lib/modules/2.4.22/kernel/driver/net
8139too.o

일단 3com꺼로 바꿔달고 인식시키기 위해서 커널을 컴파일 해야합니다.

Quote:

일반적인 커널컴파일과정
# make mrproper
# make menuconfig
# make dep
# make clean
# make bzImage
# make modules
# make modules_install
....

그런데 위와 같은상황(딸랑 모듈하나만 올리면될때..)에서는 따로 커널 이미지를 만들필요는 없을거 같습니다.

Quote:

버전 그대로고 모듈하나만 올릴때..
# make menuconfig // 다른거 놔두고 3com꺼만 "M"으로 선택
# make dep
# make clean
# make modules
# make modules_install

이전 컴파일 환경을 그대로 사용하니까 make mrproper 빼버리고..
이미지를 만드는게 아니고 모듈만 올리는거니까 make bzImage도 생략해버리고 모듈만 컴파일하면 되지않나요?

mycluster의 이미지

그러면 됩니다.
그런데 그렇게 안해도 되는 것이 모듈소스를 열어보면 맨 끝에 모듈소스만 컴파일하는 명령어 보통 써둡니다.
그거 사용하면 됩니다.

Quote:

/*
* Local variables:
* compile-command: "gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c 3c509.c"
* version-control: t
* kept-new-versions: 5
* tab-width: 4
* End:
*/

이런 부분을 보고 그대로 컴파일하면 모듈이 나오고 그걸 /lib/modules 아래에 옮기면 됩니다.

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

innu의 이미지

답변 감사합니다.

그대로 해보니까 성공적으로 컴파일 되는군요...
그런데 위의 내용은 모듈만 올리는 경우였는데요.
만약 커널이미지에 올려야 하면 상황이 달라지겠죠?

예를들면, Quota를 설정하기위해 File System의 Quota Support 항목을 "Y"로 선택하면 ...
이는 모듈로 올리는게 아니고 커널이미지로 만드는거니까 make bzImage를 해줘야겠죠?
그리고 새로 생성된 /usr/src/linux/arch/i386/boot/bzImage를 /boot에 특정이름으로 복사하고 lilo 작업수행하고...

제말이 맞죠?

그런데 한편으로 생각해보면 딸랑 하나만 커널이미지에 추가하는데(위에서는 Quota Support => "Y") 커널이미지를 다시 만든다는건 좀 비효율적이라 생각을 합니다.
혹시 다른 방법이 있나요?

Debian Spirit !!!

mycluster의 이미지

맞습니다.
그래서 달랑 하나만 이미지에 추가하고 싶으면 원래 저장되었던 configuration이 남아 있읍니다. 거기에다가 저 옵션만 켜준다음에,

# make mrproper
# make menuconfig
# make dep
# make clean
# make bzImage
# make modules
# make modules_install

과정에서 make clean만 안해주면 됩니다. make clean을 안하면 아시다시피 obj는 다 남아있고, 방금 옵션을 켬으로서 영향을 받는애들만 다시 컴파일합니다.
아마 한 30초면 다 끝날겁니다.

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

댓글 달기

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