[완료] 커널 프로그래밍 할 때 FEATURE 처리(관리)하는 방법?

bbyongi의 이미지

이번에 안드로이드 커널을 수정해보면서 리눅스 환경에서 개발을 처음 시작하고 있습니다.

때문에 커널 소스를 빌드하고 테스트를 할 때
제가 건드린 소스들을 #ifdef TEST_CODE ... #endif 로 피쳐링하여 관리하려는데
그동안 작업하던 환경에서는 최상위 급의 .h 파일이 있었기 때문에
이 헤더에다가 #define TEST_CODE 해두면 소스 전체에 다 적용되어 FEATURE 처리가 간단했었습니다.

그런데 안드로이드 커널소스를 만지면서 추가되는 여러가지 FEATURE들을
어디에다가 #define을 해둬야 커널 전체에 다 적용이 되는건지를 모르겠습니다.

초보적이지만 제가 고친 소스들을 확인할 때 가장 필요한것이라서
커널 소스에서 FEATURE 관리하는 방법좀 조언 부탁드립니다.

drinkme의 이미지

이전에 feature폰 개발하셨던거 같은데요....

어짜피 kernel을 수정하시는게 아닐테고,
driver 작업을 하실거 같은데.
이미 있는 driver에 #ifdef 넣어서 수정하지 마시고요,
code를 clone해서 만드시는게 좋습니다.
관리도 편하고요.

커널 전체에 include되는 header 파일은 찾기 불가능하실거고요,
#define하실 것이 한두개라면,
Kconfig에 만들어 넣으면,
build시에 전체 커널에서 참조가 가능하리라 보입니다.

bbyongi의 이미지

예. 예상하신대로 피쳐폰 디바이스 드라이버쪽 개발을 하다가
이번에 안드로이드 디바이스 드라이버를 하게 되었는데...
개발환경이 손바닥 뒤집듯이 확 바뀌다 보니 하나부터 열까지 너무 다 새롭고 어지럽습니다.

질문을 올리고 이틀정도 정보를 찾아보면서 Kconfig 활용법에 대한 정보는 찾았는데
말씀해 주신대로 전체 커널 소스들에 다 FEATURE가 적용될 필요도 없더라구요.
작업하는 모듈별로 FEATURE 처리만 해도 문제가 크게 없어 보이는것 같습니다.

혹시 제 답글을 보시고 피쳐폰하다가 안드로이드 디바이스 드라이버쪽 개발 처음할 때
개념잡아 둬야할 키포인트 같은걸 조언해 주실 수 있다면 한말씀 부탁 드립니다.
현재로서 모르는거 천지라서 일단 무슨 팁이건 머리속에 집어넣어 배경지식 키우고 있습니다.

댓글 달기

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