2019/01

소프트웨어/OTA(on-the-air)

libostree (OStree) 예제 - 리모트 & 로컬 저장소 (1)

목차리모트 저장소 초기화리모트 저장소 내용 추가로컬 저장소 초기화로컬 저장소 활용하기 리모트 저장소 초기화 우선 등장하는 디렉토리부터 정리하자.참고로 /var/www/html 디렉토리는 아파치에서 사용하는 static webserver의 root 디렉토리이다./home/kkangeva/example/rootfs : 가상의 rootfs/var/www/html/server : libostree 리모트 저장소/home/kkangeva/example/local : libostree 로컬 저장소우선 리모트 저장소를 만들어보자. 저장소는 default로 bare 모드로 생성된다.이 모드에서는 저장되는 파일이 실제 파일이다. 그래서 Hard Link를 사용할 수 있는 모드이다. archive 모드는 서버에서 사용하는..

소프트웨어/OTA(on-the-air)

libostree (OStree) 예제 - 시작하기

이전 포스팅(링크)에서 libostree에 대해서 간략하게 살펴봤다. 이번 포스팅에서는 실제 libostree를 사용해보면서 좀 더 깊이있게 살펴보고자 한다. 우분투 기준으로 아래 명령을 통해 ostree 명령어를 설치할 수 있다.$ sudo apt install ostree 임의의 디렉토리에 ostree 저장소를 만들어보자. 아래 명령으로 repo 디렉토리가 생성된다.여러 필요한 디렉토리들 파일이 생성된 것을 확인할 수 있다.저장소 내의 config 파일에는 저장소의 버전과 모드가 표시되어 있다.$ ostree init --repo=repo$ tree repo/repo/├── config├── extensions├── objects├── refs│ ├── heads│ ├── mirrors│ └── re..

소프트웨어/OTA(on-the-air)

Eclipse hawkBit 간략하게 살펴보기

목차들어가기Management UIArchitecture마무리 들어가기 Eclipse hawkBit의 git저장소(링크)에 따르면 hawkBit은 OTA를 위한 디바이스 독립적인 back-end 솔루션이다. hawkBit에서는 back-end 솔루션의 기준을 아래와 같이 제시한다.Technical Scalability : global scale의 device에 대한 OTA 처리Functional Scalability : global scale의 device에 대한 rollout 지원Reliability : 소프트웨어 업데이트는 디바이스 문제의 해결의 마지막이다. (뒤가 없음)Managed device complexity : 디바이스 복잡성에 대한 관리기능Integration flexibility : 표준..

소프트웨어/OTA(on-the-air)

RAUC(Robust Auto-Update Controller) 살펴보기

목차들어가기주요특징RAUC 기초RAUC 사용하기RAUC 커스텀하기마무리 들어가기 github 페이지(링크)를 보면 기본적으로 임베디드 디바이스를 위한 업데이트 솔루션이다.RAUC는 다음과 같이 구성된다.임베디드 디바이스 데몬 : 새로운 버전으로 업데이트를 담당하는 데몬호스트 디바이스 툴 : 업데이트 이미지 생성/수정/점검을 위한 툴RAUC 자체는 GUI나 application을 제공해주지 않는다. 테스팅을 위한 기본적인 CLI를 제공해주지만 결국 특정 플랫폼과 통합하기 위해서는 DBus 인터페이스를 통해야한다. 그리고 잘 정의된 부트로더 인터페이스를 통해서 자체 부트로더와 연동할 수 있도록 지원한다. 호스트에서 툴로써 업데이트 이미지를 생성할 수 있지만 RAUC 자체적으로는 서버를 포함하지 않는다. 다만..

소프트웨어/OTA(on-the-air)

Clear Linux & swupd 살펴보기

목차들어가기주요특징bundle명령어 살펴보기마무리 들어가기 swupd는 Clear Linux OS의 업데이트를 담당하는 OS 레벨의 업데이트 소프트웨어이다. 기본적으로 아래와 같은 작업을 수행한다.시스템 업데이트 이미지의 유효성 체크이미지 다운로드 및 인스톨시스템 소프트웨어 유효성 체크이전 포스팅 (링크) 정리했지만 swupd는 여러 제약사항을 가진 OTA 솔루션이다.우선 주요특징을 살펴보자. 주요특징 아래와 같은 주요특징을 가진다.File-based 업데이트만 지원한다. 하나의 파티션을 최신의 버전으로 유지하는 솔루션이다. 파티션 레이아웃이나 부팅절차에 대한 고려가 없다.OS에 속하는 파일들은 read-only이다. User 데이터는 read-write이며 업데이트 후에도 그대로 유지된다. 인스톨되는 ..

소프트웨어/OTA(on-the-air)

SWUpdate (Software Update for Embedded Systems) 살펴보기

목차들어가기주요특징SWUpdate 기초SWUpdate 업데이트 모드Future Plan (Road Map)마무리 들어가기 이전 포스팅(링크)에서는 Mender 솔루션에 대해서 살펴봤다. OTA 솔루션에 대한 시작 포스팅은 다음(링크)를 확인하자. 이번 포스팅에서는 SWUpdate에 대해서 살펴보기로 하자. github 홈페이지는 다음과 (링크) 같다. 주요특징 다음과 같은 주요특징을 가지고 있다. 참고로 라이센스는 MIT, GPLv2 그리고 GPLv2+ 이 혼재되어 있다.파티션 레이아웃에 대한 제약사항이 없다. SWUpdate는 순수 flash 이미지, UBI 볼륨, 디스크 파티션 심지어 파일레벨까지 그 대상이될 수 있다.플랫폼 저장에 대한 제약사항 또한 없다. 하나의 파티션에 있을 수도 있고 여러 개의..

소프트웨어/OTA(on-the-air)

Mender (Over-the-air software updates) 솔루션 살펴보기

목차들어가기주요특징ArchitectureA/B System 업데이트 in MenderMender Server보드 & 부트로더 지원Mender의 수익구조마무리 들어가기 이전 포스팅(링크)에서 Yocto 내 존재하는 여러 OTA 솔루션들을 대략적으로 비교해보았다.이번 포스팅에서는 해당 솔루션들 중에 가장 높은 점수를 받은 Mender (링크)에 대해서 알아보기로 하자.기본적으로 Mender 솔루션은 Yocto에 최적화가 되었있다. 아래는 Mender 홈페이지에서 볼 수 있는 유투브 소개 동영상이다. Mender는 기본적으로 서버, 클라이언트 모두 Apache 2.0 라이센스로 제공된다. 주요특징 Yocto wiki (링크)에 따르면 Mender는 아래와 같은 특징을 가진다.최소한 4개의 파티션 레이아웃을 가..

소프트웨어/OTA(on-the-air)

OTA 솔루션비교 in Yocto

목차들어가기비교기준솔루션 비교라이센스마무리 들어가기 Yocto 프로젝트에 OTA를 적용할 일이 생겼다. 관련된 문서를 찾아보다 보니 Yocto wiki 내에 다음 페이지가 있었다.이 포스팅은 해당 wiki 내용을 정리한 내용이다. 이상적인 업데이트는 아래와 같다.업데이트 과정이 깨지면 안된다.업데이트 실패시에도 디바이스는 사용가능해야 한다. (ex : 복구모드)최소한의 시스템 리소스를 사용해야 한다. (네트워크, 디스크, 램)업데이트 중에 디바이스 downtime이 최소화되어야 한다.모든 프로세스는 secure한 방식으로 진행되어야 한다. 비교기준 해당 wiki에서는 여러 오픈소스 OTA 솔루션들을 비교하기 위한 몇 가지 기준을 제시한다.TypeBlock-based update : 파일시스템을 거치지 않..

강에바
'2019/01 글 목록