Linux · Embedded
-
UUU 명령 하나를 eMMC 파형과 드라이버 코드까지 연결해 보기
부팅이 되지 않는 i.MX 8M Mini 보드를 이용해, PC → UUU → Boot ROM/U-Boot → MMC 드라이버 → eMMC 흐름을 한 번에 이해해 보자.
-
BSP와 Linux Kernel을 함께 공부하며 정리한 것들
이 글은 “BSP와 커널을 공부하고 싶지만 어디서부터 연결해야 할지 모르겠다”는 사람을 위한 학습 기록이다. 용어를 먼저 외우기보다, 전원을 켠 뒤 실제 하드웨어가 동작하기까지의 흐름을 따라가며 정리했다.
-
Device Tree와 Linux 플랫폼 드라이버 작성 입문
Device Tree를 단순한 설정 파일로 외우지 않고, 실제 드라이버가 하드웨어를 발견하고 자원을 준비하는 과정까지 연결해 보자. 예제는 메모리 맵 레지스터와 IRQ, 클록, 전원을 가진 가상의 보드 장치다.
-
Linux Kernel 핵심 흐름: System Call부터 동기화까지
이 글은 Linux 커널을 처음 공부하는 사람이 “애플리케이션의 한 줄이 커널과 하드웨어까지 어떻게 이어지는가?”를 따라가도록 만든 학습 기록이다. System Call, Process/Thread, Scheduler, Sleep/Wake-up, I…
-
journalctl 사용법, 서비스 로그를 어떻게 필터하나
한 줄 답: journalctl은 systemd 저널 로그를 조회하는 핵심 도구이며, -u(유닛)와 -b(부팅)로 범위를 자르고 --since/--until과 -p(우선순위)로 시간·심각도를 좁혀 원하는 로그만 빠르게 찾을 수 있습니다.
-
libgpiod
libgpiod는 리눅스 유저 스페이스(Linux userspace)가 GPIO character device를 통해 GPIO 라인과 상호작용하게 하는 C 라이브러리, 언어 바인딩 및 명령줄 도구입니다.
-
systemd timer 설정, OnCalendar로 주기 실행하려면
한 줄 답: systemd timer OnCalendar 설정을 사용하여 주기 작업을 실행하려면 서비스와 이름이 짝을 이루는 .timer 유닛을 만들고 [Timer] 섹션에 OnCalendar= 표현식을 지정합니다. 시스템이 꺼져 있어 놓친 실행은…
-
Kconfig, 커널 옵션을 메뉴에서 고르는 법
Kconfig는 리눅스 커널이 어떤 기능을 넣을지 선택하는 설정 언어이고, make menuconfig는 그 선택을 메뉴로 보여 줍니다.
-
Docker 컨테이너는 어떻게 실행되나|namespaces와 cgroups
Docker 컨테이너는 별도의 커널을 가진 가상 머신(VM)이 아닙니다. 호스트 리눅스 커널 위에서 namespaces로 격리되고 cgroups로 자원이 제한된 프로세스(들)입니다. 이 글은 docs.docker.com을 기준으로 docker run…
-
docker load·save·run으로 보는 이미지 로드와 실행
이미지를 파일로 옮길 때는 레이어·히스토리·태그를 완벽하게 보존하는 docker save와 docker load를 사용합니다. 컨테이너의 파일시스템 스냅샷이 필요한 특수한 경우에만 docker export·import를 사용해야 합니다. 레지스트리…
-
Docker overlay2 스토리지|이미지 레이어가 합쳐지는 방식
Docker의 overlay2는 OverlayFS를 기반으로 이미지의 읽기 전용 레이어(lowerdir)와 컨테이너 쓰기 레이어(upperdir)를 합쳐 하나의 통합된 마운트(merged) 뷰로 보여줍니다. 컨테이너 내부에서 발생한 쓰기 작업은 기본…
-
Docker 레이어 캐시·볼륨·바인드 마운트 실전
Docker 빌드는 위쪽 레이어부터 캐시를 재사용하므로 자주 바뀌는 지시어를 아래에 두어야 빌드 속도를 유지할 수 있습니다. 영속·공유 데이터는 컨테이너가 삭제될 때 함께 사라지는 overlay 쓰기 레이어가 아니라 volume 또는 bind mou…
-
strace, 프로세스가 어떤 시스템 콜을 내는지 보는 법
strace는 프로세스가 커널에 요청하는 시스템 콜과 그 결과를 출력하는 추적 도구입니다.
-
systemd Type= 정리|simple·exec·notify와 서비스 파일 핵심 키워드
Answer First: systemd Type= 지시어는 서비스가 기동(startup)을 언제 완료했는지 매니저에게 알리는 방식입니다. 현재 공식 man 페이지 기준 설정값은 simple, exec, forking, oneshot, dbus, no…
-
디바이스 트리, 리눅스 보드가 하드웨어를 보는 방법
디바이스 트리는 리눅스 커널이 보드 하드웨어(CPU, 메모리, 버스, GPIO, 클록, 장치) 배치를 코드에 붙여 둘 대신 트리 문서로 보는 방식입니다.
-
linux-perf
Linux perf는 커널 성능 카운터(하드웨어 PMU와 소프트웨어 카운터·트레이스포인트)를 다루는 성능 분석 도구로, 샘플이 많이 모인 핫스팟 함수를 프로파일합니다.
-
mcp251xfd FIFO overflow, can0에서 RX가 떨어질 때 먼저 볼 것
mcp251xfd FIFO overflow는 MCP2517FD·MCP2518FD 계열 컨트롤러의 수신 FIFO가 가득 차서, 드라이버가 다음 프레임을 읽기 전에 들어온 CAN 프레임이 손실될 수 있다는 뜻입니다. 먼저 can0 통계와 CAN 에러 프레임, dmesg, IRQ 카운터를…