분류 전체보기 170

The Wayland Protocol 개요

0. Intro   오늘날, 리눅스 UX 관련해서 부각되는 것 중에 하나는 바로 WAYLAND 이다. (WAYLAND 는 기존의 윈도우 매니저를 개발하기 위해 사용해왔던 X11 프로토콜을 대체하는 프로토콜이다.) 대다수의 핵심 UX 관련 프로젝트들(GTK+, Qt, Clutter 등등)이 Wayland를 백엔드로 지원하기 위한 작업들을 진행 중이고, 짧은 시간 동안 상당 부분 진척이 이루어졌다..    사실 현재 X11은 Wayland에서 제공하는 기능들을 전혀 제공하지 못하는 것은 아니다. (심지어 X12 프로젝트 또한 진행 중이다.) 하지만 중요한 것은 이와 같은 여러 가지 이유로 모두가 X 를 버리고 새롭게 시작하기를 원한다는 것이다.다음은 기술적인 그리고 구조적인 몇 가지 이유를 설명하도록 하겠다..

Wayland vs X11

0. Wayland란   Wayland는 리눅스 데스크탑 환경을 구현하기 위한 프로토콜로, 데스크탑 환경은 크게 컴포지터와 쉘로 구분합니다.  Wayland는 컴포지터와 쉘의 구현을 돕는 API와, 쉘이 어플리케이션과 통과할 수 있도록 프로토콜을 제공합니다.    1. Wayland의 장점   1.1  성능  Wayland는 X 서버에 비해 대기 시간을 줄이고 전반적인 성능을 향상시키는 것을 목표로 간결하고 효율적으로 설계되었습니다. 이는 X Server에 존재하는 레거시 기능과 오래된 메커니즘 중 일부를 제거하여 더 부드럽고 응답성이 뛰어난 사용자 인터페이스를 제공함으로써 이를 달성합니다.     1.2  보안  Wayland는 처음부터 보안을 염두에 두고 구축되었습니다. 보다 안전한 아키텍처를 채택하..

디스플레이 서버-클라이언트 구조 - 리눅스 GUI

1. 윈도우 매니저의 서버-클라이언트 구조   주로 사용하는 리눅스 UX 프로토콜로는 Wayland와 X11(X Window Manager)가 있다.  먼저, X11을 통해 윈도우 매니저의 구조를 살펴보자.   X11 서버-클라이언트 구조의 이해  X 서버와 X 클라이언트를 이해하기 위해, 메모장을 예로 들어보자. 메모장은 X 클라이언트가 된다. 웹브라우저, 동영상 재생기, 게임 같은 모든 GUI 프로그램을 X 클라이언트라고 생각해도 무리는 없다. 메모장을 실행하면X 클라이언트 메모장에 실행 명령이 전달되고호출을 받은 메모장은 X 서버에 "가로세로 크기는 이만큼, 배경색과 글자색은 이렇게, 커서는 깜빡일 것." 하고 X 서버로 X 프로토콜을 날린다.이제 X 서버는 그래픽 카드와 모니터로 하여금 메모장이 ..

윈도우 매니저 (Window Manager) - 리눅스 GUI 개요

Window Manager   윈도우 매니저를 크게 보면 컴포지터와 쉘로 나눌 수 있다.   컴포지터는 각각의 윈도우 화면을 갱신하고, 겹쳐진 윈도우들의 내용을 가져와서 하나의 화면(클라이언트의 화면)으로 실제 스크린에 출력해주는 과정을 담당한다.  쉘은 클라이언트의 윈도우를 옮기거나, 크기를 변경하는 역할과 배경화면과 시작 메뉴, 패널 등을 관리하는 역할을 한다.   그래서 컴포지터는 기능적인 부분에 대한 최적화가 주요 이슈이고, 쉘은 정책적인 부분들에 대한 결정들이 주로 다루어진다. ※ 디스플레이 서버    1.  Compositor (컴포지터)   컴포지터는 화면 위에 겹쳐있는 모든 윈도우들을 하나의 스크린 위에 합쳐서 보여주는 역할을 한다.   예를 들어, 우리가 두 개의 웹브라우저를 겹치게 띄워..

Docker in i.MX

0.  Intro 이 설정은 docker를 사용하여 격리된 환경에서 i.MX BSP를 구축하는 데 도움이 됩니다.    1.  사전 설정   1.1  Install Docker  docker를 설치하는 방법에는 docker 스크립트를 사용하는 등 다양한 방법이 있습니다.  $ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh get-docker.sh    1.2  Run Docker without sudo  sudo 없이 docker를 더 잘 사용하려면 사용자를 docker 그룹에 추가하세요.$ sudo usermod -aG docker    그룹 멤버십을 재평가하려면 로그아웃했다가 다시 로그인하세요.    1.3  Set Docker to wor..

MCU Bootloader

대부분의 임베디드 시스템은 온보드 부트로더와 함께 제공된다. 부트로더(Bootloader)는 컴퓨터 시스템 또는 임베디드 시스템을 시작하는 데 사용하는 프로그램이다. 부트로더는 JTAG과 같은 특수 하드웨어를 사용하지 않고도 시스템을 업데이트할 수 있도록 도와준다. 이를 통해 소프트웨어 업데이트시마다 서비스 센터를 찾아가지 않아도 되는 이점이 있다. 부트로더는 임베디드 시스템의 무결성을 확인하는 가장 빠른 시점이 될 수도 있다. 이는 부트로더가 시스템 이미지를 관리하기 때문이다.   임베디드 부트로더는 다양한 크기와 특징을 가지고 있다. 요구사항에 따라 부트로더 상태도 UART, CAN, I2C, Ethernet, USB와 같은 다양한 프로토콜을 통해 통신할 수 있으며, 두 개 이상의 어플리케이션 이미지..

MCU : DIE, PAD, Drive Strength, Pad Level, Hysteresis

MCU : DIE, PAD, Drive Strength, Pad Level, Hysteresis   DIE “DIE”는 일반적으로 반도체 패키지 또는 칩 내부에 있는 실리콘 칩, 집적회로(IC)이다. 웨이퍼 디스크의 한 조각이었던 Die는 ‘칩’에 장착되고 연결되면서 아래 사진처럼 에폭시로 덮이게 된다.    PAD “PAD”는 Die에서 외부로 나가는 Wire bonding을 붙이는 연결판과 pin(또는 ball)으로 연결되는 접점을 포함하는 부분으로, 상당히 큰 크기를 가지고 있고 보통 Die의 맨 바깥쪽 4면에 놓여진다. 반도체 칩이 다른 시스템 내의 다른 칩과 실질적으로 연결되는 부분이다. 이러한 PAD는 내부 Die 공간에서 Power Source에 따라 부분적으로 나누어져 있으며, 각각에 PA..

시스템 소프트웨어 개발 프로세스

1.  프로젝트 단계     스펙 검토 → 브링업 → 시스템 안정화(버그수정)    2.  스펙 검토   2.1  하드웨어 부품 검토       *  제품의 특징에 따라 부품 선정      *  가격 경쟁력을 위해 부품 교체     2.2  소프트웨어 스펙 검토       *  리눅스 커널 버전      *  디바이스의 스펙을 맞출 수 있는지 검토     3.  브링업      *  한번도 부팅이 된 적이 없는 디바이스를 살리는 작업      *  시스템 소프트웨어 개발에서 가장 중요한 단계      *  여러 소프트웨어, 하드웨어 부품(칩, 메모리, 페리퍼럴)을 초기화하는 과정     3.1  브링업의 종류      *  소스 브링업      *  타겟 브링업 (보드 브링업, 페리퍼럴 브링업)     ..

i.MX 9 BSP Porting Guide - Porting USB

19.1  Intro   USB는 Chip IDEA 하드웨어를 사용하여 i.MX 6 및 i.MX 7 제품군에서 USB 2.0을 지원합니다. 모든 i.MX 8 및 i.MX 9 제품군의 경우 USB는 USB 2.0 및 USB 3.0을 지원합니다. 이 장에서는 USB 포트를 구성하는 방법을 설명합니다. USB 포트 수는 보드마다 다릅니다. i.MX 6Dual/6Quad/6Solo/6DualLite/6UltraLite/7Dual 직렬 애플리케이션 프로세서에는 최대 4개의 USB 포트가 있습니다.      • USB OTG 포트      • USB H1 포트      • USB HSIC1 포트      • USB HSIC2 포트  i.MX 8QuadMax에는 3개의 USB 포트가 있습니다.      • USB O..