재컴파일하지 않고 vmlinuz를 수정하는 방법

재컴파일하지 않고 vmlinuz를 수정하는 방법

제목으로 임베디드 시스템에 대해 두 개의 vmlinuz 파일이 정지되어 있습니다.

그리고, 나는 그것을 위한 소스와 컴파일러를 가지고 있지 않으며, 이 임베디드 시스템의 개발자도 더 이상 일하지 않습니다.

첫 번째 vmlinuz는 4개의 직렬 포트와 2개의 VGA를 지원합니다.

두 번째 vmlinuz는 6개의 직렬 포트와 1개의 VGA를 지원합니다.

6개의 직렬 포트와 2개의 VGA를 지원하는 vmlinuz를 갖고 싶습니다.

두 번째 vmlinuz에서 첫 번째 vmlinuz로 드라이버를 복사하고 첫 번째 vmlinuz 내부의 원본 드라이버를 교체할 수 있는 방법이 있습니까?

답변1

두 번째 vmlinuz에서 첫 번째 vmlinuz로 드라이버를 복사하고 첫 번째 vmlinuz 내부의 원본 드라이버를 교체할 수 있는 방법이 있습니까?

광범위한 리버스 엔지니어링 및 바이너리 패치가 부족합니다.

vmlinuz나는 6개의 직렬 포트와 2개의 VGA를 지원하는 제품을 갖고 싶습니다 .

소스 없이는 달성이 불가능할 가능성이 높습니다.

소스가 있더라도 서로 다른 기능(예: 직렬 대 VGA 간의 균형)을 가진 두 개의 커널을 제공했다는 사실은 하드웨어 제한(FPGA/CPLD 리소스?)이 있을 수 있음을 의미합니다.

우리는 그 장치가 무엇인지 모르면서 추측하는 것 이상을 할 수 없습니다.


장치 제조업체가 BSP에 대한 소스(예: Yocto)를 출시한 경우 거기에서 이를 조사할 수 있지만 여전히 컴파일해야 할 수 있습니다.무엇.


장치가 메인라인 커널에서 지원되는 경우(예: 모든 소스가kernel.org 저장소), 그러면 구성을 재생성하고 재구축할 수 있는 능력이 생길 수 있습니다.

  1. 시스템을 부팅하고 실행합니다 uname -r. 이것은 커널 릴리스입니다.
    • 예를 들어 4.15.0-48-generic다음을 가리킨다.v4.15풀어 주다
  2. 이름이 지정된 파일을 찾으십시오 /proc/config.gz. 내장된 시스템이나 최신 시스템에는 이 파일이 없을 수 있습니다.
    • 이것은 gzip -d < /proc/config.gz > ~/config커널을 구성하는 동안 압축을 풀고 나중에 사용할 수 있습니다.
    • 이는 커널이 적절하게 구성된 경우에만 사용할 수 있습니다.
      • 배포판에서는 "보안 문제"
      • 임베디드 시스템에서는 커널 이미지 크기를 줄이기 위해 비활성화될 수 있습니다.

커널 구성을 찾을 수 있는 다른 위치로는 /boot및 관련 패키지(배포판을 사용하는 경우)가 있습니다.


이들 중 하나 또는 둘 다 결과가 나오지 않으면 아마도 운이 좋지 않은 것입니다.

관련 정보