이전 버전의 Linux가 설치된 개발 보드가 있습니다. 공급업체는 크게 수정된 Linux 커널, 일부 로드 가능한 커널 모듈 및 일부 샘플 소프트웨어가 포함된 장치의 이미지를 제공합니다.
장치에 최신 버전의 Linux 커널을 설치하고 싶지만 수정된 Linux 커널이 이전 커널 버전을 기반으로 하기 때문에 공급업체에서 이를 지원하지 않습니다.
내가 이해하지 못하는 것은 드라이버를 커널 모듈로 작성하여 커널이 실행되는 장치와 호환되도록 할 수 있는데 왜 Linux 커널 해킹을 시작하겠습니까? 모든 커널 버전에 대해 문제 없이 쉽게 다시 컴파일할 수 있습니다. 이렇게 하면 공급업체가 특정 커널 버전만 지원하는 경우 "고착"됩니다.
그러나 내가 그것을 놓친 데에는 몇 가지 이유가 있을 것입니다. 많은 프로젝트에서 이 방법을 사용하여 특정 버전의 커널을 얻고 마더보드에 맞게 크게 수정하는 것을 보았기 때문입니다. 내가 관심 있는 것은 다음과 같습니다.
- 커널 모듈을 만드는 대신 Linux 커널을 수정하는 이유는 무엇입니까?
- 최신 커널을 실행해야 하는데 공급업체로부터 지원을 받지 못하는 경우(장치 드라이버는 최신 버전의 커널에서 작동해야 합니다...)
답변1
이 질문에는 많은 가정이 있습니다.
그 이유는 다음과 같습니다.
커널 인터페이스는아니요안정적이므로 한 버전의 모듈이 다른 버전에 대해 컴파일되지 않을 수 있습니다.
커널은 필요한 기능을 노출하지 않을 수 있습니다.
커널은 필수 기능을 노출할 수 있지만 모듈에 특정 라이센스를 요구하는 등 허용 가능한 방식은 아닙니다.
코드를 작성하는 사람들은 이런 식으로 코드를 작성하는 것이 더 빠르다고 생각합니다.
최신 커널이 필요한지 여부를 선택합니다.
- 자신의 코드를 이식한 다른 사람을 찾아보세요.
- 자신을 이식하다
- 다른 사람에게 이식 비용을 지불합니다(돈이 필요하지 않을 수 있습니다. 맥주, 아첨, 호기심이 도움이 될 수 있습니다).