커널 컴파일중 switch_class.c 관련 오류 메세지에 관해 질문드립니다.

rlatjrdnjs의 이미지

패널 포팅을 위해 make menuconfig를 통해 패널드라이브 소스를 포함하는 옵션을 준후 make zImage를 통해 커널 컴파일을 하였습니다.

호스트 pc에서 사용하는 우분투 버전은 "Ubuntu 12.04.4 LTS"를 사용하고 커널버전은 "3.5.0-47-generic"을 사용합니다. //grep . /etc/*-release 명령어와 uname -r 명령어로 확인을 하였는데 맞게 확인한건지 잘 모르겠네요

타겟 보드에서 사용할 리눅스 버전은 2.6.32 이고 삼성의 S5PV210 에서 돌아갑니다.

make menuconfig 에서 새로 추가한 옵션은 Device Drivers -> Graphics support -> Support for frame buffer devices -> Select LCD Type -> TL2796 을 선택하였습니다.

이를 위해서 /drivers/video/samsung/Kconfig 에서 FB_S3C_TL2796의 depends on (MAACH_SMDKC110 || MACH_SMDKV210) 에서 depends on MACH_SMDKV210 || MACH_SMDKC110 || MACK_SV210

으로 수정해 주었습니다.

다음으로 make zImage를 했을때 발생하는 에러 메세지 입니다.

drivers/built-in.o: In function `tl2796_probe':
switch_class.c:(.init.text+0xc10): undefined reference to `backlight_device_register'
make: *** [.tmp_vmlinux1] Error 1

질문 요약
1. switch_class.c 가 무슨 역할을 하는지 궁금합니다.
2. 타겟보드에서 커널이 실행(부팅? 무엇이 맞는 표현인가요) 될때 probe 함수가 가장먼저 call되는게 맞나요?
3. undefined reference to 메세지가 나오는건 링크에러 인것 같은데 혹시 해결법 아시는분 답변 부탁 드릴게요
4. 기타 커널포팅시 주의할점이나 참고할만한 내용알려주시면 대단히 감사드리겠습니다.

고수님들 부탁드립니다. 즐거운 연말 되세요

shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

furmuwon의 이미지

switch class는 gpio중에 switch 형태로 외부 device를 on/off 시키는
switch gpio 드라이버에서 class로 등록 할때 사용하는 파일입니다.(자동으로...)
android 에서 태생 되었고, 오래전에 extcon으로 대체 되었습니다.

http://lxr.free-electrons.com/source/drivers/staging/android/switch/?v=3.4
https://lkml.org/lkml/2012/4/23/166

에러는 저렇게 보여지는데, 제가 봤을때는 스위치 모듈과는 관련이 없을듯 합니다.

backlight_device_register 이 함수를 찾을수 없다는 것인데

위 함수느 원형은
http://lxr.free-electrons.com/source/drivers/video/backlight/backlight.c#L317
에 보이며
커널 피쳐
CONFIG_BACKLIGHT_CLASS_DEVICE 가 enable 되어야
backlight.c 가컴파일 될 것으로 보입니다.

일단 CONFIG_BACKLIGHT_CLASS_DEVICE 가 enable 되어 있는지 살펴 보시고
backlight.c 가 컴파일 되는지 보세요.

댓글 달기

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