![드라이버 작성을 시작하는 방법은 무엇입니까?](https://linux55.com/image/43569/%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84%20%EC%9E%91%EC%84%B1%EC%9D%84%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
가지고 놀고 싶은 오래되고 값싼 노트북이 있는데, 그것은 Thinkpad SL 500입니다.
나를 괴롭히는 점은 두 개의 LED(무선 연결용 LED와 최대 절전 모드용 LED)가 제대로 작동하지만 전혀 켜지지 않는다는 것입니다. Windows에서 이것을 시도해 보았습니다.
그래서 저는 그들을 위한 커널 드라이버를 작성하려고 생각했습니다. 별거 아니지만 커널을 가지고 놀아보는 것이 좋은 생각인 것 같았습니다.
내 질문은이러한 LED를 담당하는 장치를 찾으려면 체계적으로 어떤 방법을 따라야 합니까?(일반적으로 내 하드웨어에만 국한된 것은 아닙니다.) 다른 두 개의 작동 LED, 블루투스 및 배터리 표시기를 담당하는 드라이버는 무엇입니까?
내가 방법론이라고 말할 때, 내가 실제로 의미하는 것은 방법론, 단계별, 각 단계마다 이유가 있다는 것입니다. 제가 여기서 다른 사람들에게 제공한 답변과 같습니다.void *p = &&abc; &&는 무엇을 의미하나요?
나는 정적 코드 분석기 등을 사용하여 대규모 코드 저장소를 탐색하는 데 능숙하지만 하드웨어 지식이 부족하여 이 문제를 해결하는 데 방해가 되는 것 같습니다.
추신: 저는 ArchLinux를 사용하고 있으므로 거의 최신 커널 버전입니다.
답변1
이러한 LED를 담당하는 장치를 찾으려면 체계적으로 어떤 방법을 따라야 합니까?
이상적으로는 노트북 LED가 작동 중인 커널 OS의 (공개) 소스 코드를 찾은 다음 LED를 담당하는 코드를 찾을 때까지 커널의 일부를 주석 처리할 수 있습니다. (그리고 정지되는 일부 시스템도 있지만 그게 재미있는 부분이에요).
Linux에서 LED가 작동하지 않고 다른 운영 체제에서 LED를 구동하는 하드웨어가 무엇인지 모르는 경우 드라이버를 어떻게 작성할 수 있다고 생각하십니까?
유감스럽게도 그것은 누구나 줄 수 있는 최선의 대답이고, 그것이 당신을 (거의) 이전보다 더 현명하게 만들지 못하게 만듭니다. 더 많은 작업을 수행하려면 보유하고 있는 하드웨어가 무엇인지 정확히 알아야 한다는 점만 지적하면 됩니다.
추가 도움이 필요하면 다음 두 가지 사항을 확인하세요.
일반적으로 사용되는 IDE 또는 SATA 칩 중 하나는 Intel의 ICHX 또는 ICHXr 시리즈(ICH5, ICH6, ICH7... 또는 ICH6R, ICH7R...)입니다.
세 번째 조언도 드리고 싶지만 Gorkypi가 이미 위에 썼듯이 반복할 수 있습니다.Linux 장치 드라이버, 버전 3, PDF 형식, 무료.