드라이버 작성을 시작하는 방법은 무엇입니까?


21

씽크 패드 SL 500을 둘러보고 싶은 저렴한 노트북이 있습니다.

나를 귀찮게하는 것은 두 개의 LED, 무선 연결 용 및 최대 절전 모드 용으로, 전혀 켜지지 않습니다. 기능적이지만 Windows에서 시도했습니다.

그래서 나는 그들을 위해 커널 드라이버를 작성하고 싶습니다. 큰 것은 아닙니다. 커널을 가지고 놀아 보는 것이 좋습니다.

내 질문은 LED에 책임이있는 장치 (일반적으로 내 하드웨어에만 국한되지는 않음)와 작동하는 다른 두 개의 LED, 블루투스 및 배터리 표시기를 담당하는 드라이버 를 찾으려면 체계적으로 어떤 방법론을 따라야 합니까?

그리고 방법론을 말할 때, 나는 여기에 다른 사람에게 준 대답과 같이 단계별로 방법론을 단계별로 의미합니다. &&의 의미 void * p = && abc;

정적 코드 분석기 및 공동을 사용하여 큰 코드 리포지토리를 통해 효율적으로 처리 할 수 ​​있지만 하드웨어 지식이 부족하여이 문제를 방해한다고 생각합니다.

추신 : 저는 거의 최신 커널 버전 인 ArchLinux를 사용하고 있습니다.


커널에서 CONFIG_IDEAPAD_LAPTOP을 활성화하려고 했습니까?
Paweł Rumian

@ gorkypl : 아니, 왜 내가? 문제는 문제를 해결하는 것이 아니라 문제를 스스로 해결하는 데 사용되는 전략에 관한 것입니다 (프로그래머로서).
Flavius

3
알았어요 어쨌든 IDEAPAD_LAPTOP 커널 모듈은 SL 시리즈 Thinkpad에서 이러한 일을 담당하므로 소스 코드를 살펴볼 수 있습니다. : 또한, kernelnewbies에 예를 들어, 일부 독서에 관심이있을 수 있습니다 kernelnewbies.org/KernelHacking 또는 LKH에 의해 쓰여진 좋은 책 : kroah.com/lkn 내 마음에 와서 두 개의 다른 좋은 소스 : lwn.net/Kernel/ LDD3amazon.com/dp/0596005652/?tag=stackoverfl08-20
Paweł Rumian

답변:


5

해당 LED를 담당하는 장치를 찾으려면 어떤 방법론을 체계적으로 따라야합니까?

이상적으로는 랩톱 LED가 작동하는 커널 OS의 소스를 찾아서 열어야합니다. 그런 다음 LED를 담당하는 코드를 찾을 때까지 커널의 일부를 주석 처리 할 수 ​​있습니다. 그러나 그것은 재미있는 부분입니다).

Linux에서 LED가 작동하지 않고 다른 OS에서 어떤 하드웨어를 구동하는지 모르는 경우 어떻게 드라이버를 작성할 것이라고 생각하십니까?

그것은 누군가가 줄 수있는 가장 좋은 대답입니다. 두렵습니다. 그리고 그것은 당신을 (거의) 전보다 더 영리하게 만듭니다. 더 많은 것을 할 수 있으려면 정확히 어떤 하드웨어를 가지고 있는지 알아야한다는 것을 지적하기 만하면됩니다.

더 도움이되기 위해 두 가지 포인터 :

  1. 자주 사용되는 IDE 또는 SATA 칩 중 하나는 인텔 시리즈 ICHX 또는 ICHXr (ICH5, ICH6, ICH7 ... 또는 ICH6R, ICH7R, ...)입니다.

  2. 많은 LED를 제어하기위한 소스 코드가있는 Linux 커널 디렉토리

나는 또한 당신에게 세 번째 포인터를 줄 것입니다. 그러나이 고르고는 이미 위에서 썼 듯이 , PDF로 리눅스 장치 드라이버, 3 판 을 무료로 반복 할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.