새 빌드 머신 성능.. 최고는 아니어도 예전의 편안함은 가져오는 8700

Update 09/14 : Linux Native로 옮기고. 한번더
SSD : 72876 01:32:15 R Incremental 이정도면 밥먹고 오면 될정도.
HDD: 80827 03:01:20 S Incremental

i7-8700 에 Windows host – VirtualBox – 6thread 설정, SSD로 빌드시 2시간 정도에서 이전대비 반타작 빌드가 가능하네요. 100% 72876/72876 02:01:23. 속 시원하지 않아도, 이전의 숨막힘은 없어져서 좋습니다. 10 thread로 할당 늘려보고. 리눅스 native로 바꾸어서 해보면 더 나아지겠죠. 이전 PC방출로 고심되네요. 팔릴려나..

근데 요즘 계속 구글이나 페북이나, thinkStation P620 광고가 계속 눈에 들어옴… 얘들아 너네들 그러는거 아냐… 그러라고 광고개인화 허용해준거 아니다.. T.T

오늘은 GKI 빌드를 시도해봅니다.

GKI는 안드로이드에서 Treble의 거진 마지막 단계로, 플랫폼뿐만 아니라, 커널도 단일된 하나의 커널을 쓰겠다는 정책입니다. 현재 안드로이드 플랫폼은 제조사마다 여전히 차이가 있지만, 개발단계에서는 GSI를 사용하여, 업데이트가 벤더에 의존하지 않고 독립적으로 될 수 있도록 테스트등을 진행하도록 하고 있습니다. 물론… 잘 되고 있는지는 의문입니다만, 결국 구글의 것은 구글의 것대로 하나로 관리하겠다는 의도로 보입니다. 여태까지는 제법 잘 굴러가고 있지만, 부담이 없는건 아니겠지요.

아무튼 GSI AOSP던 GKI던 모두 근본 오픈소스 프로젝트에 기반하여, 코드는 공개되어 있고, 모두 확인하고, 빌드하고,, 기회가 있다면, 단말이나, 가삼머신에서 실행해 볼수 있겠죠.. 그래서,, 해봅니다. 오늘은 GKI입니다.

커널 소스는 안드로이드 사이트에 구글치고는 꽤 상세한 설명과 함께, 코드 접근 방법등이 설명되어 있습니다.
https://source.android.com/devices/architecture/kernel

코드는 아래에서 접근이 가능하겠고요.
https://android.googlesource.com/kernel/common/

현재 최신 버전의 안드로이드에 밀고 있는 커널은 5.4커널입니다. 이번에 Ubuntu 20.04 LTS도 5.4커널이라고 하지요. 문서화 된 내용들을 보면, 상당히 깊이가 있고, 뭔가 안드로이드 특화된 기능들이 많이 기술 되어 있는데요. 현재 안드로이드 커널과, 리눅스 커널은 약간 밀당 관계라, 리눅스 mainline upstream으로 들어가는것도 있고, 여전히 못들어가고 Android mainline에서만 들어가고 있는 것들이 있습니다. 나름 기술적인 의도로 대부분 판단하지만, 이게 또 정치판하고 같아서, 패치하나로 설전이 오가는 메일쓰레드 구경하는 것도 재미가 제법 쏠쏠합니다.

아무튼 코드를 받아서 빌드를 시도해봅니다. 머신에 여타 빌드 환경같은것 설정한게 없으니, 무작정 돌려봅니다.
make gki_defconfig 돌리면 처음 맞이하는게
scripts/Makefile.host:9: recipe for target ‘scripts/kconfig/lexer.lex.c’ failed

네 학교에서 배운 기억이 납니다. Lexer가 없네요.. 오픈소스에서 컴파일 하면 들어가야 하는, 그러니까. GCC, G++같은 컴파일러를 만들고자 할때 쓰는. 구문해석기. BISON, FLEX를 깔아줍니다. 원래는 LEX/YACC지만.. 오픈소스 Free Software니까…

빌드 2차시도
error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel
네. 바이너리 관련해서 또 처리를 못하네요.. 앞에 두개만 깔고 다시 시도해봅니다. 근데 libelf-dev는 없다고 나오네요.. Ubuntu 18.04인데.. 그냥 하나만 깔고 시도해봅니다.

scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: 그런 파일이나 디렉터리가 없습니다
#include
^~~~~~~
compilation terminated.
scripts/Makefile.host:107: recipe for target ‘scripts/extract-cert’ failed
make[1]: *** [scripts/extract-cert] Error 1
make[1]: *** 끝나지 않은 작업을 기다리고 있습니다….

자 이제 생각없이 안깔아본 세번째를 깝니다. 세번째도 없네요.. 흠.. 첫번째 제안 패키지만으로는 아직 뭔가 부족한가봅니다.
구글신게 도움을 요청합니다.
https://github.com/TinkerBoard/debian_kernel/issues/26
libssl-dev 라고 하는군요

뭔가 HDRINST라는게 무식하게 많이 찍히고, HDRTEST가 많이 찍히고, 평소 보던 CC/AR 이 간간히 보입니다. 헤더 다루는게 예전보다 더 많아진 모양입니다. Precompiled Header하고 하기에는, 같은게 너무 많이 반복적으로 나오는게, 좀 비효율인 처럼 보이기도 하네요..

빌드가 잘 진행되는데,, 생각보다 많이 느려서, top으로 잠시 살펴봅니다… 별 생각 없이 ntfs로 포맷한 SSD에다 받아놓고 빌드를 했는데, mount.ntfs가 CPU 50%이상을 먹고 있네요 –;; 화딱지 나서, 받아놨던걸 살짝 옮겨놓고, ext4로 다시 밀어버리고 빌드를 합니다. 이제야, 70%대에서 놀던 CPU들이 90%까지 바득바득 일을 하기 시작하네요.. 역시 순정(?)이 좋습니다.