OTA 스 트림 업데이트 및 셸 구현
가장 쉬 운 방법 은 다운로드 와 업 데 이 트 를 분리 하 는 것 이다. 먼저 완전한 패 키 지 를 로 컬 에 다운로드 한 다음 에 로 컬 OTA 패 키 지 를 플래시 에 업데이트 하 는 것 이다.편리 하고 믿 을 만하 다.
그러나 이런 방식 의 문 제 는 로 컬 에 OTA 패 키 지 를 저장 할 수 있 는 충분 한 공간 이 필요 하 다 는 것 이다. 이것 은 일부 플래시 가 작은 제품 에 있어 큰 제한 역할 을 할 수 있 기 때문에 플래시 에 시스템 이 차지 하 는 크기 보다 작 지 않 은 공간 을 남 겨 OTA 패 키 지 를 저장 해 야 한다.
하지만 공간 이 부족 한데 어 떡 하지?이 럴 때 는 인터넷 에서 다운로드 한 데 이 터 를 플래시 에 직접 쓸 수 있 도록 스 트림 업 데 이 트 를 지원 해 야 합 니 다.
안 드 로 이 드 는 AB 업그레이드 방안 에서 OTA 패 키 지 를 임시 공간 에 저장 하지 않 아 도 되 는 스 트 리밍 업데이트 (streaming updates) 방식 을 지원 했다.
그러면 구체 적 으로 어떻게 실현 되 었 는 지, 사실 흐름 식 업데이트 가 가장 간단 한 실현 은 셸 스 크 립 트 몇 줄 만 있 으 면 외부 기 존의 도 구 를 호출 하고 파이프 의 형식 을 통 해 협조 하면 실현 할 수 있 습 니 다.
예 를 들 어 wget 을 사용 하여 ota 가방 을 다운로드 하면 wget 의 - S 인 자 를 사용 하여 OTA 가방 의 길 이 를 걸 러 낼 수 있 습 니 다.
file_length=$(wget -S "$file_download" 2>&1 | grep "Content-Length" | awk '{print $2}')
wget 과 dd 를 통 해 대응 하 는 파 티 션 에 데 이 터 를 직접 기록 합 니 다.
wget "$file_download" -q -O - | dd of="$partition"
마지막 으로 md5 검사 값 을 다운로드 하고 기 록 된 데이터 흐름 식 을 읽 습 니 다. 마찬가지 로 파 이 프 를 통 해 md5sum 에 전송 하여 검사 값 을 계산 하여 검사 합 니 다.
md51=$(wget "$file_download.md5" -q -O -)
md52=$(dd if="$partition" bs=512 count="$file_sectors" | md5sum | cut -d ' ' -f 1)
이상 은 셸 스 크 립 트 를 사용 하여 wget, dd, md5sum 을 호출 하고 파 이 프 를 사용 하여 협조 하여 완 성 된 스 트림 업데이트 의 핵심 부분 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.