디바이스 드라이버 공부시 커널에 대한 질문

zmfflr018의 이미지

안녕하세요. 리눅스에 대해 공부하고 있는 직장인입니다.
오늘 가입하자마자 글을 쓰게 되었네요

다름이 아니라 라즈베리파이를 이용해서 디바이스 드라이버를 공부하고 있습니다.

커널 : 4.19.97-v7+
참고 도서 : IT EXPERT 리눅스 디바이스 드라이버

이 책에서 나오는 커널 및 예제는 2.4와 2.6이 있는데, 2.6버전을 참고 하고 있고요.

그런데 커널이 달라서 그런건지 제가 못하는건지 안되는게 있네요...
현재는 메모리 풀 예제에서 에러가 납니다.

이곳에서 공부하셨던 분들께서는

이런 경우 2.6커널을 쓰셨는지 아니면 현재 쓰는 커널에서 소스를 찾아보면서 바꾸고 계신지 궁금합니다.

답변 주시면 감사하겠습니다.

주말 잘 보내시길 바랍니다.

Yi Soo An@Google의 이미지

지금 님에게 중요한건 빨리 개발 환경을 구축하고 책 예제를 시험해서 이해를 하는것이지 책 내용을 4.19에서도 테스트해보는게 중요한게 아니에요.

후자는 커널에 대한 이해가 있고 입맛대로 수정 가능할때나 해야할 일이지 지금 하시면 시간낭비밖에 안되요.

---------------
Happy Hacking!

zmfflr018의 이미지

그렇다면 어떤 커널이든 일단 코드를 작성해서 실행부터 시켜야겠군요.
감사합니다

zmfflr018의 이미지

아 깜빡하고 말씀을 드리지 않았는데, 컴파일할수 있는 환경은 구축해 놓은 상태입니다.
그러다가 컴파일 에러가 계속 뜨니 결과값을 볼 수가 없어
이걸 2.6버전으로 다시 환경 구축을 해서 해야하나 고민인 내용입니다.
제대로 된 문의를 올리지 않아 오해 없으셨길 바랍니다.
다시 한 번 답변 감사합니다.

라스코니의 이미지

리눅스 컴파일 예제의 경우 커널 버전이 다르면 안되는 경우가 허다합니다.
10년 전에 나온 책이면 10년 전의 리눅스 배포판을 해보시는 게 제일 좋습니다.

zmfflr018의 이미지

답변주셔서 감사합니다.
아무래도 라즈베리에서 그냥 쓰고싶다보니... 무작정 써버렸네요..

jick의 이미지

음... 근데 위키피디아에 따르면 2.6 *마지막* 버전이 2011년에 나왔다는데, 2.6을 사용하는 책을 지금 보면 나중에 써먹을 때 문제가 되지 않나요..?

zmfflr018의 이미지

그것도 그거지만 아예 컴파일이 안되니까 그게 더 고민이었습죠... 헤헤....

AustinKim의 이미지

커널 2.6 버전에서 지원하는 API는 10년 버전이라 4.19 버전에서 그대로 사용하기 어렵습니다.
커널 2.6버전의 코드를 분석하는 것보다 차라리 4.19 버전의 커널 소스 트리에서 보이는 샘플 코드를 활용하는게
더 빠를 것 같습니다.

(개인블로그)
http://rousalome.egloos.com

zmfflr018의 이미지

답변 감사합니다.
좋은 하루 되시길 바랍니다 ^^

Stephen Kyoungwon Kim@Google의 이미지

다른 책을 찾으세요. 오래 전 배포판은 일단 bare metal 위에 설치는 장치들이 요즘 것이라면 어려울 수 있습니다. 장치 드라이버가 그렇게 오래 전 커널에는 안 붙을 가능성도 있고요. 설령 장치 인식시켜서 커널을 설치해도 소프트웨어 저장소 관리가 안 되고 있어서 오직 CD에 있는 것만 설치 가능할 수도 있습니다. 가상 머신이라고 해도 커널 입장에서 보면 virtualized된 장치라는 점에선 비슷할 수 있는데, 요즘 VMWare, VirtualBox 같은 걸 쓰면 오래 된 커널과 가상화된 장치가 안 붙을 가능성도 작지 않을 듯 하구요.

이런 문제들을 떠나서도 10년 사이에 아마 커널 디자인과 구현이 상당 부분 변했을 텐데, 굳이 옛날 책으로 공부할 이유가 있는지 모르겠네요.

zmfflr018의 이미지

사실 책을 하도 찾다보니 없어서 내려가고 내려가다 찾으거죠 뭐 하하 ^^;

AustinKim의 이미지

커널 4.19 버전이라면 이 책을 보시는 건 어떨까요?
이 책에서 소개하는 실습 코드도 라즈베리 파이에서 돌린 거거든요.

디버깅을 통해 배우는 리눅스 커널의 구조와 원리
http://www.yes24.com/Product/Goods/90085976

디바이스 드라이버 책은 아닌데 드라이버를 작성하다가 참고하시면 좋을 것 같아서요.

(개인블로그)
http://rousalome.egloos.com

zmfflr018의 이미지

앗 도서 추천 감사합니다

라즈베리 기준이라니...

댓글 달기

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