글쎄, 나는 일반적인 공급업체별 방식으로 몇 가지 번거로움을 뛰어넘어 여러 펌웨어를 업그레이드하기에는 너무 늙었다고 생각합니다. 일부 DOS 도구를 다운로드하고 (무료) DOS 부팅 미디어를 만드는 데 시간을 낭비하고 실제로 BIOS가 부팅되고 마지막으로 펌웨어 업그레이드가 플래시됩니다.
이것이 1980년대 스타일이다.
나 좀 만났어리눅스 플래시 도구~에서핵심 스타트업 프로젝트. 다양한 FLASH 칩을 지원하는 것 같습니다. 그러나 실제로는 어떻게 작동합니까?
공급업체에서 제공한 펌웨어 업그레이드를 올바른 형식으로 변환하는 데 몇 가지 함정이 있는 것 같습니다. 아니면 올바른 대상 칩을 결정하는 방법은 무엇입니까?
현재 다음과 같이 업그레이드해야 할 수도 있습니다.
- 일부 Seagate 1.5TB 디스크용 펌웨어
- 기존 Abit Athlon 64 마더보드용 펌웨어(Award BIOS)
- Thinkpad Bios/임베디드 컨트롤러 Bios
Linux 시스템에서 장치 펌웨어를 업그레이드하는 방법은 무엇입니까?
답변1
FreeDOS로 플래싱, 한 번의 재부팅, 이동식 장치 없음
grub-pc
GRUB2를 사용하고 있는지 확인하십시오( Ubuntu에 해당 패키지가 설치되어 있는지 확인 ).- SYSLINUX의 MEMDISK를 구하세요. Ubuntu에서 패키지를 설치하면
syslinux-common
메모리 디스크가 다음 위치에 있게 됩니다./usr/lib/syslinux/memdisk
- 다운로드fdboot.img, 홈 디렉토리 또는 미국 키보드 레이아웃을 사용하여 쉽게 입력할 수 있는 다른 디렉토리에 저장하세요.
- FreeDOS 이미지에 플래시 소프트웨어를 삽입하세요.
sudo -s
mkdir -p /mnt/floppy
mount -o loop -t msdos fdboot.img /mnt/floppy
cp -via FLASH.EXE BIOS.IMG /mnt/floppy/
(FLASH.EXE
그리고BIOS.IMG
예시입니다)umount /mnt/floppy
- 시스템을 부팅하고 GRUB2에서 중단합니다(ESC 누르기).
- c를 눌러 GRUB2 명령줄로 들어갑니다.
- MEMDISK 로드:
- 입력하다
linux16 (hd
. 이제 탭을 누르세요. 하드 드라이브 목록이 표시됩니다. linux16 (hd0,
예를 들어, 이 행이 나타나도록 하드 드라이브 선택을 완료하십시오.- Tab 키를 다시 누르면 파티션 목록이 표시됩니다.
/usr/lib/syslinux
Linux 설치에 설치된 파티션을 찾아야 합니다 . - 이제 하드 드라이브와 파티션 사양이 있으므로 다음과 같이 경로를 완성할 수 있습니다
linux16 (hd0,msdos3)/usr/lib/syslinux/memdisk
. Enter 키를 누릅니다.
- 입력하다
- FreeDOS 로드:
- 동일한 탭 완성을 사용하여 찾기를 수행
fdboot.img
하되initrd16
대신 명령을 사용하십시오linux16
. 다음과 같은 줄이 표시됩니다initrd16 (hd0,msdos3)/home/janus/fdboot.img
. Enter 키를 누릅니다.
- 동일한 탭 완성을 사용하여 찾기를 수행
- 작성
boot
하고 Enter를 누르십시오. - FreeDOS 부팅 메뉴가 나타납니다.
- 드라이버가 필요하지 않으므로 "안전 모드" 옵션을 선택하십시오.
- DOS 프롬프트에서 펌웨어 새로 고침 실행 파일의 이름을 기록합니다(예:
FLASH.EXE
. Enter 키를 누릅니다. - 깜박임이 완료될 때까지 기다리십시오.
- 펌웨어 플래셔가 컴퓨터를 자체적으로 시작하거나 메시지를 표시할 수 있습니다. 메시지가 다시 나타나면 Control-Alt-Delete를 눌러 다시 시작하세요.
- GRUB 구성을 영구적으로 변경하지 않았으므로 즉시 기본 운영 체제로 다시 부팅됩니다.
이미지 공간이 부족할 경우 가장 작은 이미지를 사용하세요.EU 웹사이트. 이미지의 압축을 풀고 필터링합니다 xxd
. 지금 검색55개 아미노산. 그것은해야한다 0x1fe
. offset=$((0x200))
추가 설치 플래그로 이미지를 설치할 수 있습니다 . 구문은 $(())
Bash에만 적용되지만 Zsh에서도 작동합니다.
또는 다음을 참조하세요.https://www.fladi.at/posts/large-freedos-boot-image/
답변2
업그레이드 가능한 펌웨어가 있는 각 장치에는 이를 수행하는 고유한 방법이 있을 수 있습니다. 이와 관련하여 마더보드는 호환되지 않는 것으로 알려져 있습니다.
하드 드라이브의 경우 이는 다시 독점적인 문제입니다. 씨게이트공급liveCD 및 Windows 다운로드는 펌웨어 업데이트를 수행하는 데 사용되지만 Linux 또는 Unix 도구는 포함되지 않습니다.
당신은 만들 수 있습니다부팅 가능한 이미지GRUB에서 부팅 가능한 Thinkpad BIOS 업데이트.
그렇지 않으면 제조업체에 도구를 요청할 수 있습니다.
반면에 마이크로컨트롤러를 사용하는 경우 일반적으로 상당히 일반적인 도구를 사용하여 프로그래밍할 수 있지만 여전히 몇 가지 기본 사항이 있습니다(예를 들어 Atmel 칩은 일반적으로 를 사용하여 프로그래밍할 수 있습니다 avrdude
).
답변3
Seagate 3TB 비디오(ST3000VX000-9YW1):
sg_write_buffer -v -m 5 -I <FW file> <dev>
답변4
당신은 그것을 사용할 수 있습니다플래시 메모리마더보드의 BIOS를 업데이트합니다.
예(ABIT KN9 울트라):
본 마더보드는 2006년에 출시된 AMD Athlon 64 마더보드, AM2 소켓, Nvidia 칩셋입니다. 교체 가능한 256KB 플래시 메모리 칩이 있습니다. BIOS에는 Phoenix 상표인 것처럼 보이는 "Award"라는 단어가 표시되어 있습니다.
Flashrom은 이 칩셋과 플래시 메모리 칩을 지원합니다.
다음 명령을 사용하여 지원을 테스트할 수 있습니다.
# flashrom --programmer internal
Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
먼저 플래시 칩의 현재 내용을 백업하는 것이 좋습니다.
# flashrom --programmer internal -c Pm49FL004 -r backup.bin
그런 다음 공급업체에서 제공한 일반 이미지 파일과 비교할 수 있습니다(예: xxd
및 사용 vimdiff
).
약간의 차이가 예상됩니다. 일부 BIOS는 추가 정보(예: DMI) 및 구성(예: MAC 주소)도 플래시 메모리에 저장하기 때문입니다. ABIT KN9 Ultra도 마찬가지입니다. DMI 데이터는 처음 1872바이트에 저장되며 부팅 중에 BIOS에 의해 쉽게 재생성될 수 있습니다. MAC 주소는 오프셋 0x74E30에 저장됩니다.
awdflash.exe
공급업체 펌웨어 파일은 파일 BIN
(예: ) 을 포함하는 zip 아카이브로 패키지됩니다 M520A_23.BIN
. 이 예에서 bin 파일에는 BIOS 이미지가 그대로 포함되어 있습니다. 즉, 다음과 같은 명령을 사용하여 플래시 칩에 직접 쓸 수 있습니다.
# flashrom --programmer internal -c Pm49FL004 -w M520A_23.BIN
Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
업데이트에 따라 삭제해야 할 수도 있습니다.상호 보완 산화철 반도체다음 재부팅을 위해 - 그렇지 않으면 BIOS가 부팅되지 않을 수 있습니다. 이 보드에서는 점퍼 설정을 통해 CMOS를 지울 수 있습니다. 소프트웨어를 통해서도 지울 수 있습니다(예:CMOS 비밀번호).
고유한 기본 MAC 주소를 유지하려면 새로 고치기 전에 새 공급업체 이미지를 패치하면 됩니다. 예를 들면 다음과 같습니다.
dd if=backup.bin of=mac.bin bs=1 count=16 skip=$(echo 16 i 74E30 p | dc)
dd if=mac.bin of=M520A_23_with_mac.bin bs=1 seek=$(echo 16 i 74E30 p | dc) \
conv=notrunc
덫:
- 마더보드의 특정 이유로 인해 플래시 쓰기가 실패할 수 있음보드 활성화(즉, 쓰기 방지 비활성화) 아직 플래시롬으로 구현되지 않은 코드입니다.