PCI 드라이버가 없는 리버스 엔지니어링 장치

PCI 드라이버가 없는 리버스 엔지니어링 장치

PCI 드라이버가 없는 장치를 리버스 엔지니어링할 수 있습니까?

문제의 장치는 메인프레임 ESCON 채널을 전용 UNIX 컴퓨터에 연결할 수 있는 PCI ESCON 카드입니다. 내가 아는 한 이 장치에 대해 공개적으로 출시된 드라이버는 없었지만 여전히 표준 PCI 버스를 사용합니다.

기존 리버스 엔지니어링 세트 없이 드라이버를 하나로 묶는 것이 가능한가요?

어떤 정보라도 대단히 감사하겠습니다.

답변1

이는 모두 장비의 복잡성에 따라 다르지만 장비가 매우 단순하더라도 필요한 작업의 성격을 과소평가하고 있습니다.

실제 생활에서는 장치의 설계와 프로그래밍에 대해 노출된 PCI 인터페이스에서 단순히 추론할 수 없는 몇 가지 사항이 있습니다. 즉, 장치는 모든 의도와 목적을 위한 블랙박스입니다. 더욱이 이와 같은 문제에는 많은 자원과 시간이 필요하며 필요한 노력은 매우 비대칭적인 경우가 많습니다(즉, 해결하는 데 수백만(시간, 돈, 사람)이 필요함).

간단한 예는 NVIDIA 하드웨어이지만 사용 가능한 문서는 없습니다. Nvidia의 누보 드라이버에 대해 알아보고 수천 명의 도움을 받아 어떻게 리버스 엔지니어링되었으며 수십 년이 지난 후에도 여전히 알파/베타 수준에서 거의 작동하지 않는 것으로 간주됩니다.

Linux 그래픽 스택은 괜찮은 gfx 하드웨어(특히 모바일 장치)와 커널 개발을 따라갈 수 없는 끔찍한 제조업체 드라이버에 대한 이야기로 가득 차 있습니다. 제조업체는 일부 "비즈니스" 이유(칩 설계 라이센스/특허, 드라이버 하위 구성 요소 라이센스/특허, 순전한 탐욕)로 인해 드라이버를 자체적으로 완전히 지원할 수 없는 상태에서 드라이버를 출시할 수 없습니다. 이 하드웨어는 존재하지만 종종 쓸모가 없습니다.

최대 1~2년 동안 모바일 칩셋 시장의 매출액은 얼마나 됩니까? 회사는 2년이 지나자 이에 대한 관심을 멈췄습니다. 칩으로 얻은 대부분의 돈은 이미 벌어졌고, 현재의 "소비자"가 오래된 소프트웨어를 실행하는 형편없는 제품을 판매하는 값싼 중국 제조업체보다 뒤처지고 있다는 사실도 관련이 없습니다.

따라서 실제 대답은 그렇습니다. 불가능한 것은 없습니다. 실제 질문은 이 노력을 수행하기 위한 자금, 재능 및 가장 중요한 시간을 어디서 찾을 수 있느냐는 것입니다.

가장 좋은 방법은 주어진 문제를 이미 해결하려고 시도한 커뮤니티와 인재를 찾고(예: Linux에서 유사한 escon 장치 작업) 다른 사례를 조사하도록 설득하는 것입니다.

리버스 엔지니어링보다 제조업체로부터 하드웨어 레지스터 수준 문서를 구하고 해당 문서를 기반으로 드라이버를 개발할 커널 드라이버 개발자를 찾는 것이 더 효율적일 수 있습니다. 하지만 리버싱은 "그냥" 정보 수집일 뿐이라는 사실을 기억하세요. 완전한 문서가 있더라도 여전히 새 드라이버를 작성하여 작동시키고 성능을 완전히 다른 수준으로 끌어 올려야 합니다.

일반적으로 제조업체에는 운영 체제의 일부 특정 버전에 대한 드라이버가 있으므로 드라이버를 요청한 다음 "중간"이 제품과 인터페이스하는 오래된 운영 체제를 실행하는 호스트를 잠그고 일부 모험적이고 진취적인 소규모 드라이브를 허용할 수 있습니다. 개발 사람들은 다양한 소프트웨어 API를 통해 현대 시스템 세계에 연결하는 소프트웨어 "대화형 커넥터"를 만듭니다.

나는 이 방법이 가장 효과적이라고 생각한다.

관련 정보