현재 LibUSB를 사용하여 USB 장치의 펌웨어 컨트롤러에 직접 액세스하려고합니다. USB 장치에서 펌웨어를 직접 다운로드하여 나중에 SCSI 명령 또는 LibUSB 라이브러리를 사용하여 수정할 수 있도록하려면 어떻게합니까?USB 펌웨어 다운로드
답변
표준에 가장 가까운 것은 USB 장치 펌웨어 업데이트 (또는 "DFU") 프로토콜입니다. 그러나 다음과 같은 주요 경고가 있습니다.
대부분의 USB 장치에는 업데이트 할 수있는 펌웨어가 전혀 없습니다. 대부분의 장치는 하드웨어 또는 마스크 ROM에 완벽하게 정의 된 기능을 갖추고 있습니다.
업데이트 가능한 펌웨어가있는 장치 중 대부분은 USB DFU를 사용하지 않습니다.
USB DFU를 지원하는 몇몇 장치조차도 대부분 장치에서 펌웨어를 검색하는 "업로드"명령을 지원하지 않습니다. (그것은 대부분의 장치에있는 약간의 용도로 사용됩니다.)
당신이 이 완전히 DFU를 지원하지 않습니다 드문 장치 중 하나가 발생하면, 당신은 dfu-util
와 상호 작용할 수 있습니다. 그러나 이것은 거의 불가능합니다.
나는 이것이 내 질문에 대한 실제 답변이 아니라는 점을 지적하고, 그 질문에 직접 대답하지 않는 프로토콜이 존재한다는 것을 지적했다. DFU 사양에는 "DNLOAD"가 있지만 그 중에 내가 찾고있는 코드 구현에 대한 참조가 없습니다. 그러나 dfu-util에 관심을 가져 주셔서 감사합니다. – RenegadeTech
@ RenegadeTech 나는 당신이 어떤 장치를 사용하고 있는지 알지 못해서 더 직접적인 대답을 줄 수는 없다. 모든 것을 해결할 수있는 단 하나의 대답은 없습니다. (실제로 많은 장치에서 대답은 단순히 "할 수 없다"는 것입니다.) – duskwuff
정확히 어떤 펌웨어입니까? – leppie
USB 플래시 드라이브 – RenegadeTech
대답은 99.9999 %입니다. 또한 그것을 사용하기위한 계획은 무엇입니까? 어떤 칩이 사용되었는지 알고 있습니까? 펌웨어가 있습니까? 아마도 그렇지 않습니다. – leppie