QEMU(arm64) 임베디드 리눅스 타깃 만들기 (4) — 루트 파일 시스템과 패키지 설치

3편에서 커널이 ext4 루트를 마운트하는 데까지 갔지만 그 안이 mkfs 직후 상태라 No working init found로 멈췄다. 이제 그 빈 파티션을 채운다. 두 단계로 간다. 먼저 BusyBox 하나로 셸이 뜨는…

Continue ReadingQEMU(arm64) 임베디드 리눅스 타깃 만들기 (4) — 루트 파일 시스템과 패키지 설치

QEMU(arm64) 임베디드 리눅스 타깃 만들기 (3) — 커널 크로스 컴파일과 부팅

2편까지 오면 타깃에 부트로더가 올라가 디스크에서 파일을 읽어 실행하는 데까지 된다. 이제 그 자리에 올릴 커널이 필요하다. 실물 보드라면 벤더가 준 커널 소스를 받아 크로스 컴파일하고 SD 카드에 복사하는 단계인데,…

Continue ReadingQEMU(arm64) 임베디드 리눅스 타깃 만들기 (3) — 커널 크로스 컴파일과 부팅

QEMU(arm64) 임베디드 리눅스 타깃 만들기 (2) — U-Boot 올리기

1편에서 만든 디스크 이미지는 아직 아무도 읽어주지 않는다. virt 머신에는 x86의 BIOS/UEFI 같은 내장 펌웨어가 없어서, 전원을 넣어도 실행할 코드가 없으면 한 글자도 나오지 않기 때문이다. 실물 보드라면 SoC의 부트…

Continue ReadingQEMU(arm64) 임베디드 리눅스 타깃 만들기 (2) — U-Boot 올리기

QEMU(arm64) 임베디드 리눅스 타깃 만들기 (1) — 타깃 디스크 이미지와 virt 보드 구성

임베디드 리눅스 개발은 보드가 손에 있어야 시작되는 일이 많다. 부트로더를 잘못 덮어써 보드를 못 쓰게 만들거나, SD 카드를 다시 굽느라 시간을 흘려보내거나, 사람 수보다 보드가 적어 순서를 기다리는 상황이 반복된다.…

Continue ReadingQEMU(arm64) 임베디드 리눅스 타깃 만들기 (1) — 타깃 디스크 이미지와 virt 보드 구성

Yocto 빌드에서 특정 패키지를 포함/제외하는 방법

Yocto로 이미지를 만들다 보면 패키지 하나를 넣거나 빼야 할 일이 계속 생긴다. 그런데 local.conf에 IMAGE_INSTALL += "strace"라고 적어도 이미지에 strace가 들어가지 않는다. 이미지 레시피가 IMAGE_INSTALL을 다시 할당해버리기 때문인데, 이처럼 변수마다…

Continue ReadingYocto 빌드에서 특정 패키지를 포함/제외하는 방법

메모리가 작은 시스템을 위한 커널 경량화 (1) — 측정 방법론과 베이스라인

컨테이너나 저사양 임베디드 보드처럼 메모리가 1GB 이하로 제한된 환경에서는 배포판 defconfig 커널조차 여유 공간을 상당히 잡아먹는다. 배포판 커널은 다양한 하드웨어를 지원하기 위해 수많은 드라이버와 서브시스템을 켜둔 상태라, 실제 타깃 환경에서는…

Continue Reading메모리가 작은 시스템을 위한 커널 경량화 (1) — 측정 방법론과 베이스라인