라즈베리파이에 NoMachine 설치하기

라즈베리파이를 원격으로 제어하는 방법은 여러 가지가 있지만, NoMachine은 빠른 화면 전송 성능과 낮은 지연(latency), 쉬운 설정 덕분에 개발자나 시스템 엔지니어에게 매우 좋은 선택이다.특히 GUI 환경에서 디버깅하거나 IDE를 사용할 때 VNC보다…

Continue Reading라즈베리파이에 NoMachine 설치하기

Yocto 환경에서 커널에 Clang/LLVM 빌드 환경 적용하기

아래는 (1) 커널 레시피만 Clang으로 빌드하는 방법과, (2) 배포판 전체를 Clang toolchain으로 전환하는 방법을 각각 “Yocto에서 실제로 적용 가능한 형태”로 정리한 것이다.핵심 변수/흐름은 Yocto의 toolchain/clang 체계와 meta-clang의 TOOLCHAIN 스위치에 기반한다.…

Continue ReadingYocto 환경에서 커널에 Clang/LLVM 빌드 환경 적용하기

Ubuntu에서 Xbox 컨트롤러(Xpad) 사용하기

리눅스 환경에서 게임을 하거나 테스트 자동화를 구성하다 보면, 입력 장치로 Xbox 패드를 사용하는 경우가 많다. Ubuntu에서는 기본적으로 xpad 드라이버가 제공되며, 별도 드라이버 설치 없이도 대부분의 Xbox 컨트롤러를 사용할 수 있다.…

Continue ReadingUbuntu에서 Xbox 컨트롤러(Xpad) 사용하기

SoC 벤더 커널을 Clang으로 옮길 때 깨지는 패턴 정리

메인라인 커널은 이미 Clang / LLVM 빌드를 공식 지원한다.하지만 SoC 벤더 커널(특히 4.x/5.4 계열)이나 오래된 BSP 트리는 여전히 GCC 전용 코드가 많다. 리눅스 커널 Clang 빌드 호환성은 아래 글에서 대략의…

Continue ReadingSoC 벤더 커널을 Clang으로 옮길 때 깨지는 패턴 정리

Linux 커널 Clang/LLVM 빌드 호환성 타임라인

Linux 커널은 오랫동안 GCC 중심으로 개발되어 왔다.하지만 최근 몇 년 사이 Clang / LLVM 기반 빌드가 빠르게 안정화되었다. 이 글은 커널에서 Clang 빌드가 어떻게 발전해왔는지를 실제 메인라인 흐름 기준으로 정리한…

Continue ReadingLinux 커널 Clang/LLVM 빌드 호환성 타임라인

ARM64 inline asm 포팅 가이드 (커널/Clang 포팅 관점)

ARM64(AArch64)에서 inline asm은 “문법이 어렵다”보다 컴파일러가 더 엄격하고 최적화가 더 공격적이라서 사고가 난다.특히 벤더 커널을 Clang으로 옮길 때는 constraint 선택 + clobber + barrier 3개가 대부분의 원인이다. 이 글에서는 ARM64에서…

Continue ReadingARM64 inline asm 포팅 가이드 (커널/Clang 포팅 관점)

Clang/LLVM로 Linux 커널 빌드 하기

이 글은 Ubuntu 환경에서 Clang / LLVM 툴체인을 이용해 Linux 커널을 실제로 빌드하는 방법을 단계별로 정리한다. Clang/LLVM 툴체인 설치는 아래 글을 먼저 확인한다. https://junorionblog.co.kr/linux-%ec%bb%a4%eb%84%90-clang-llvm-%ed%88%b4%ec%b2%b4%ec%9d%b8-%ec%a4%80%eb%b9%84%ed%95%98%ea%b8%b0/ Ubuntu 커널 빌드에 대한건 아래 글을…

Continue ReadingClang/LLVM로 Linux 커널 빌드 하기

Linux 커널 Clang/LLVM 툴체인 준비하기

이 글은 리눅스 커널을 Clang/LLVM 툴체인으로 빌드하기 위한 실전 가이드다.LLVM=1 기반의 표준 빌드 플로우, 크로스 컴파일(arm64 포함), LLD/IAS, BTF(pahole), LTO까지 한 번에 정리한다. 커널에서 말하는 “LLVM 빌드”의 의미 커널 문서에서…

Continue ReadingLinux 커널 Clang/LLVM 툴체인 준비하기