Yocto 환경에서 커널에 Clang/LLVM 빌드 환경 적용하기
아래는 (1) 커널 레시피만 Clang으로 빌드하는 방법과, (2) 배포판 전체를 Clang toolchain으로 전환하는 방법을 각각 “Yocto에서 실제로 적용 가능한 형태”로 정리한 것이다.핵심 변수/흐름은 Yocto의 toolchain/clang 체계와 meta-clang의 TOOLCHAIN 스위치에 기반한다.…
아래는 (1) 커널 레시피만 Clang으로 빌드하는 방법과, (2) 배포판 전체를 Clang toolchain으로 전환하는 방법을 각각 “Yocto에서 실제로 적용 가능한 형태”로 정리한 것이다.핵심 변수/흐름은 Yocto의 toolchain/clang 체계와 meta-clang의 TOOLCHAIN 스위치에 기반한다.…
Clang/LLVM은 컴파일러 도구 체인을 구성하는 기술 묶음이다. LLVM: 컴파일러를 만들기 위한 공통 기반 인프라 Clang: LLVM 위에서 동작하는 C / C++ / Objective-C 컴파일러 프론트엔드 LLVM ? LLVM은 원래 Low…
quilt는 여러 개의 패치를 스택(stack) 형태로 관리하는 도구다.각 패치는 순서대로 쌓이며, 위에 있는 패치가 아래 패치의 변경 내용을 기반으로 동작한다. 커널 개발에서 quilt를 쓰는 이유는 명확하다. 패치 단위로 작업을 나눌…
Ubuntu 또는 다른 리눅스 환경에서 vi 또는 vim 에디터를 사용할 때, 방향키를 누르면 A, B, C, D 같은 이상한 영문자가 입력되는 문제가 발생하는 경우가 있다. 이 문제는 대부분 터미널 설정,…
커널 소스를 수정하다 보면 아직 업스트림에 올리지 않은 패치 여러 개를 순서대로 관리해야 하는 경우가 많다. quilt만 쓰면 패치 적용 순서는 관리되지만 이력 추적이 약하고, Git만 쓰면 커밋 이력은 남지만…
quilt은 Linux 커널이나 오픈소스 프로젝트에서 패치 세트를 관리할 때 자주 사용하는 도구이다. 여러 개의 패치를 순서대로 적용하고, 수정하고, 제거할 수 있게 도와준다. 기본적인 사용법은 다음과 같다. 1. 초기 설정 quilt…
시스템을 다루는 모든 개발자와 운영자는 자신이 입력한 커맨드가 언젠가 필요할 수 있음을 직감한다. bash history는 그러한 순간을 위해 존재한다. 단순한 명령 기록 이상의 도구로 bash history를 적극적으로 활용해 보자. Bash…
ssh no matching key exchange method found 오류는 SSH 클라이언트와 서버가 서로 지원하는 키 교환 알고리즘(KEX)이 일치하지 않을 때 발생한다. 특히 최신 OpenSSH 클라이언트와 구형 SSH 서버 간의 연결에서 자주…
임베디드 리눅스 디바이스를 개발할 때, 시리얼 콘솔을 통해 커널 디버깅 또는 긴급 명령을 보내는 경우가 있다. 그중 하나가 Magic SysRq 키 조합을 시리얼 포트를 통해 보내는 기능이다. Magic SysRq는 리눅스…
RISC-V는 오픈소스 명령어 집합 아키텍처(ISA)로, 임베디드 시스템부터 고성능 컴퓨팅까지 다양한 용도로 쓰인다. RISC-V 개발 환경을 구축하려면 GCC 기반의 RISC-V Toolchain을 빌드해야 한다. 이 글에서는 RISC-V Toolchain을 빌드하는 방법을 알아본다. RISC-V…