기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.

요새 연구실에서 Arndale 보드로

Xen ARM과 ARM의 Hypervisor Extesion쪽을 공부하고 있습니다.


요즘 커널에서는 Kernel 빌드시에 dtb도 같이 빌드하고

부팅시 dtb를  통해 Kernel에게 하드웨어 정보를 전달하는걸로 알고 있습니다.


Anrdale의 u-boot에서

'bootargs = Kernel Address - dtb Address' 사용하고 있습니다.


dts파일을 열어보면 트리형태의 자료구조라는거는 알겠는데...

이걸 왜 컴파일하여 binary형태로 만드는건지 잘 모르겠고,

이 바이너리 실행을 통해? 

Kernel에게 하드웨어 정보를 전달한다는 개념이 잘 이해가 안됩니다.


또한 궁금한점은

dtb를 이용하기 전의 예전 Kernel에서는 디바이스 정보나 CPU Core정보같은

하드웨어 정보를 어떤식으로 얻는지 알고 싶습니다.


감사합니다.




쭈암

2014.07.09 00:59:06
*.131.225.179

바이너리로 안만들면 어떻게? XML파서라도 커널에 내장시켜야 할까요?

Supsupi

2014.07.09 01:53:53
*.254.202.140

예. 그래야 하는거 아닌가요? 바이너리로 바꾸더라도 결국 바이너리를 커널에서 파싱해야하는거 아닌가요?


쭈암

2014.07.12 01:49:20
*.72.195.29

Libc 도 없는데요. 스트링처리하다 커널 패닉이 날수도 있고,

별 소용도 없는 코드로 커널 메모리만 먹을 겁니다

Supsupi

2014.07.09 01:57:17
*.254.202.140

http://www.informit.com/articles/article.aspx?p=1647051&seqNum=5


자문 자답합니다.

예전에 구글링에서 못 발견 했던 곳인데 제가 질문했던 내용들이 위 링크에 다 있는거 같습니다.

하지만 어떤식으로 device tree를 binary 형태로 바꾸는지 내용은 없는거 같습니다.


감사합니다.

고도리

2014.07.09 06:59:44
*.200.239.210

1. parser가 내장되어 있습니다.

2. dtb를 사용하는 이유는 코드의 유지보수 때문이라고 얘기합니다.

다만 실제를 보면.....드라이버 코드는 parser와 연결이 되어 있고, 이 parser는 dtb에서 관련 정보를 받아서

driver코드에 연결해 주는 역할만 합니다.

==> 쉽죠?....ㅎㅎ, 하지만, 실제로는 그 연결부분이 보이지 않기 때문에 꽤 어려운 내용이고


서로 어떤 부분을 어떻게 parsing하는지에 대한 부분을 일일이 알아야 하기 때문에 또 하나의

언어를 공부하는 것과 같다라고 보시면 됩니다.


----------------------

dtb를 만드는 dts를 보시면 관련 cpu에 대한 언급이 있습니다.

이 cpu를 string으로 받아서 적절하게 cpu chip id를 읽은 후에 비교를 해서

관련 코드를 셋업합니다.


그리고, 제가 간단하게 써 놓은 글도 참고가 되실겁니다.

고도리

2014.07.09 07:00:12
*.200.239.210

http://www.aesop.or.kr/Board_Documents_Linux_Kernel/111747

Supsupi

2014.07.09 08:51:21
*.203.232.74

답변 감사드립니다.

Linux문서들도 confidential이라니...

 

이래서 정보를 찾으려 했도 찾을 수 없었군요..

답변 감사드립니다.(_ _)

sakago2862

2014.07.10 23:59:59
*.111.135.254

저도 dtb이해 하는데 무척 애먹은 기억이 있네요.

고도리님 말씀대로 코드 유지보수 때문인데 개발자 입장에서는...유지보수가 되는건지......

예전에는 platform device에 등록을 할려면 일일이 작없을 해주었지만 이제 dtb에 넣어주기만 하면 

sysfs devices에 등록되어지는 부분은 정말 편리 하긴 하더군요,,(노드 작업을 해주어야 되지만....)


Supsupi

2014.07.12 01:40:13
*.254.202.140

답변 감사드립니다.


Xen 4.2 버젼 이하에서는 DomU생성시에 하드웨어 정보를 dtb로 넘겨주는데.

이쪽 코드를 분석중인데 여전히 잘 이해가 안됩니다. ㅠㅠ

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6108 MODULE_DEVICE_TABLE로 선언 했을때 probe 함수 호출 [5] 훌러덩 2011-12-08 2607
6107 [완료] LCD 맨 위에 하얀색 1줄은 정상인지요. [4] 오주열 2007-05-11 2604
6106 6410에 SDIO Wi-fi 질문 입니다. [7] 여정휘 2009-02-14 2602
6105 S3C6410 MFC Encode 문제 [10] Masashi Miyakawa 2009-07-24 2601
6104 라즈베리파이나 cubox의 1080p 동영상 재생 [3] eou4 2013-10-29 2594
6103 partition size 저정과 booting 오류 문제 [4] 전문가가되자 2013-08-28 2593
6102 [질문 혹은 참고] 혹시 BSD계열 올려 보신분 ? [1] 김희만 2007-05-14 2593
6101 kernel 2.6.28.2 포팅 [1] 김광준 2009-01-31 2589
6100 android에서 키맵핑 할때 android 에서 "HOME" 키가 안먹네요.. [1] 신종현 2009-07-03 2589
6099 No private recovery resources for TARGET_DEVICE passion choboja 2010-12-30 2581
6098 [완료] CPU 클럭 스피드 [3] 강덕하 2007-05-15 2578
6097 [완료] LCD에 잔상이 생기네요. [3] 양민철 2007-06-26 2575
6096 [질문][S3C6410]SPI/SDIO/USB 전송속도 [2] 김정희 2011-09-28 2573
6095 Android의 PDK와 SDK의 차이점이 무엇인가요? [1] 아침미소 2010-04-15 2572
6094 [질문]스피커에 대해서요.. [3] 이태간 2007-05-26 2571
6093 driver에서 probe()함수가 호출되는 시점은요 ? [1] 열심히 2013-05-17 2558
6092 u-boot에서 커널을 로드 하지 못할 때 (can't get kernel image!)는... file [3] 혜민아빠 2012-03-16 2556
6091 이더넷 포트 2개를 같은 대역아이피를 사용할수 있는지요? [11] 은민아빠 2012-08-16 2550
6090 [질문] 패널(모니터) 끄기 관련 [2] 김희만 2007-05-12 2549
6089 Exynos4(S5PV310) toolchain관련 문의 [5] 준성아빠 2012-01-04 2547

사용자 로그인