목록기술, 나의 공부를 공유합니다. (83)
yoncho`s blog
AutoPi 구조AutoPi의 구조는Raspberry Pi OS에 SaltStack을 올리고그 위에, AutoPi System을 올려서 동작시킨다.1.0 SaltStack 이란?인프라 규모가 커질 수록 서버 부담과 급증하는 트래픽 증가에대처하는 서버를 구축하기 위해선 자동화가 필수다.SaltStack은 이런 대규모 인프라 관리를 위한 자동화 관리 시스템이다.1.1 SaltStack 구조Salt-MasterSaltStack에서 Server역할을 담당한다.Master는 등록된 Minion에게 명령을 publishing하고그 결과를 취합해 보여주는 역할이다.1 Single Master는 수천 Minion을 관리할 수 있다.Salt-MinionAgent 역할이며, 구성 자동화를 하기 위한 대상 서버에 설치하면된..
1.0 FlexRay차량에서 많은 장치들끼리 통신은 주로 CAN을 통해서 이루어지며,간단한 통신이 필요한 장치들은 LIN을 통해 이루어진다.차량 안에 들어가는 장치들간 이루어지는 통신에서 데이터의 양들이점점 증가하고 한정된 시간에 전송해야할 데이터가 증가하면서시간 결정과 오류 한계등 관련 수요를 해결해야하는데.이를 해결하기위해 FlexRay프로토콜이 나타났다.FlexRay는 내고장성 고속 버스 시스템이다.x-by-wire App을 위한 오류 허용과 시간 확정 성능을 제공한다.FlexRay는 Drive-by-Wire, 액티브 서스펜션, 적응 크루즈 컨트롤에 사용된다.1.1 특징X-by-Wire를 위한 LAN 통신차량의 고속 제어를 위한 통신 인프라 제공, 타임 트리거 프로토콜로 주기적 전송되는 데이터 전송..
1.0 LIN [Local Interconnect Network]LIN이란, 자동차 네트워크 컴포넌트 사이의 통신을 위한 직렬 통신 시스템이다.CAN과 같이 네트워크 보완하기 위해 고안된 저가형 임베디드 네트워킹 표준이다.저가형 8bit MCU에 내장된 표준 시리얼 유니버셜 비동기 송수신기(UART)를사용하면 LIN통신을 구현할 수 있다고 한다..LIN은 CAN의 고대역폭과 다기능을 필요로 하지 않는 장치들의 통신에 사용된다.즉, 고기능을 요구하지 않는 간단한 동작을 위한 장치들에서 사용된다.1.1 LIN 사용 애플리케이션ROOF : Sensor, Light Control, Sun RoofSteering Wheel : Cruise Control, Wiper, radio, Climate ControlSea..
1.0 CAN [Controller Area Network]CAN이란, 차량 내에서 호스트 컴퓨터 없이MCU(Micro Control Unit)들이 서로 통신하기 위해설계된 표준 통신 규격이다.차량 내에있는 수많은 ECU(Electronic Control Unit)이CAN프로토콜을 사용해 통신한다.위 그림의 CAN Controller와 CAN Transceiver에 대해 설명하겠다.CAN Controller는 내부 버퍼를 가지며, Transceiver에서 전달되는 수신 메시지에 대해ID를 기반으로 유효한 데이터인지 판단하며, 유효한 데이터인 경우 MCU로 전달한다.CAN Transceiver는 CAN Bus 혹은 MUC에서 전달되는 송수신 데이터를 전기적 신호로 변환한다.MCU로부터 온 데이터는 CAN통..
이번 학습에서는 타깃 시스템을 만들 수 있는 타깃 시트템 Image와 타깃 머신과 관련된 BSP Layer를 학습할 것이다.학습을 통해 만들고자 하는 시스템은 great이라고 할 것이고 시스템 전체 구조는 아래와 같다. 위 구조에서 Custom Layer 中 배포 Layer와 BSP Layer 작업을 이번 학습에서 진행하겠다. #목차1. Custom Image Recipe 생성2. BSP Layer3. bitbake 문법4. Custom BSP Layer 생성5. 최종 [1] Custom Image Recipe 생성앞 글에서 진행한 meta-great Layer에 추가 작업을 진행하겠다. *meta-great Layer는 우리가 별도로 커스텀한 빌드 환경과 패키지 그룹화 등을 적용한 이미지 생성 레시피..
이번 학습에서는 패키지들을 묶어 한번에 이미지 빌드 레시피에 등록하는 패키지 그룹과 커스텀 빌드 스크립트를 만들어 원하는 빌드 환경을 구축할 것이다. #목차1. IMAGE_INSTALL, IMAGE_FEATURES 변수2. Package Group3. 이미 정의된 Package Group4. Custom Build Script를 통한 빌드 환경 구축5. 최종 [1] IMAGE_INSTALL, IMAGE_FEATURES 변수(1) IMAGE_INSTALL 변수IMAGE_INSTALL 변수는 rootfs에 설치할 패키지를 나열한 변수다.우리가 앞서 hello/ nano 예제에서 core-image-minimal.bbappend 레시피 확장 파일에IMAGE_INSTALL += "" 작업을 함으로써 rootf..
개발자라면 의존성을 모를 수 없다. 우리가 만드는 모든 S/W와 사용하는 패키지들은 의존성을 가지고있다.Yocto에도 Bitbake가 제대로 이미지 빌드 및 실행 되기 위해 다른 패키지 혹은 라이브러리를 필요로한다.이를 의존성이라 하고 #목차1. 의존성의 종류2. 의존성을 제공하는 PROVIDES 변수3. 최종 [1] 의존성의 종류Yocto에는 두가지 의존성이 있다.I. 빌드의존성II. 실행 시간 의존성 짧게 각각을 설명해보면 *빌드 의존성 : 어떤 S/W 패키지를 빌드하기 전에 설치되어있어야하는 패키지 관계를 말한다.=> 즉, 빌드 의존성을 가진 패키지는 사전 설치가 완료되어야한다.*실행 시간 의존성 : 빌드와는 상관 없이 어떤 S/W가 실행 중에 사용해야하는 패키지가 있는데. 그런 패키지와의 관계를..
이번 포스트에서는 빌드 최적화에 대해 배우겠다. 크게 autotools, build history, rm-work, externalsrc가 있다. #목차1. GNU Autotools 이용 nano editor build2. Build History 3. rm-work로 disk 용량 절감4. externalsrc 이용 외부 소스로부터 소스 빌드5. 최종 [1] GNU Autotools 이용 nano editor buildGNU Autotools는 GNU build system으로 UNIX 기반 시스템에서 소스 빌드에 도움이되는 빌드 툴이다.리눅스도 이용 가능하다. Autotools는 다양한 H/W 환경을 개발자에게 동일한 빌드 환경으로 설정해주는 매우 착하고 좋고 똑똑한 친구다.oe-core build ..