인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

한국에서 제일 쉬운 리눅스 커널 강의

kernel build 오류

해결된 질문

작성

·

102

0

root@raspberrypi:/project/linuxSrc # ./build.sh

.

.

CC kernel/bounds.s

CHKSHA1 /project/linuxSrc/linux/include/linux/atomic/atomic-arch-fallback.h

DTCO arch/arm64/boot/dts/overlays/spi-rtc.dtbo

DTCO arch/arm64/boot/dts/overlays/spi0-0cs.dtbo

CHKSHA1 /project/linuxSrc/linux/include/linux/atomic/atomic-instrumented.h

CHKSHA1 /project/linuxSrc/linux/include/linux/atomic/atomic-long.h

DTCO arch/arm64/boot/dts/overlays/spi0-1cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi0-2cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi1-1cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi1-2cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi1-3cs.dtbo

In file included from /project/linuxSrc/linux/arch/arm64/include/asm/lse.h:5,

from /project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:14,

from /project/linuxSrc/linux/arch/arm64/include/asm/atomic.h:16,

from /project/linuxSrc/linux/include/linux/atomic.h:7,

from /project/linuxSrc/linux/include/asm-generic/bitops/atomic.h:5,

from /project/linuxSrc/linux/arch/arm64/include/asm/bitops.h:25,

from /project/linuxSrc/linux/include/linux/bitops.h:68,

from /project/linuxSrc/linux/include/linux/log2.h:12,

from /project/linuxSrc/linux/kernel/bounds.c:13:

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:298:9: error: unknown type name ‘u128’

298 | u128 full;

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:305:24: error: unknown type name ‘u128’

305 | static __always_inline u128 \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:332:1: note: in expansion of macro ‘__CMPXCHG128’

332 | __CMPXCHG128( , , )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:306:36: error: unknown type name ‘u128’

306 | __ll_sc__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:332:1: note: in expansion of macro ‘__CMPXCHG128’

332 | __CMPXCHG128( , , )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:306:47: error: unknown type name ‘u128’

306 | __ll_sc__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:332:1: note: in expansion of macro ‘__CMPXCHG128’

332 | __CMPXCHG128( , , )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:306:57: error: unknown type name ‘u128’

306 | __ll_sc__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:332:1: note: in expansion of macro ‘__CMPXCHG128’

332 | __CMPXCHG128( , , )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:305:24: error: unknown type name ‘u128’

305 | static __always_inline u128 \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:333:1: note: in expansion of macro ‘__CMPXCHG128’

333 | __CMPXCHG128(_mb, dmb ish, l, "memory")

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:306:36: error: unknown type name ‘u128’

306 | __ll_sc__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:333:1: note: in expansion of macro ‘__CMPXCHG128’

333 | __CMPXCHG128(_mb, dmb ish, l, "memory")

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:306:47: error: unknown type name ‘u128’

306 | __ll_sc__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:333:1: note: in expansion of macro ‘__CMPXCHG128’

333 | __CMPXCHG128(_mb, dmb ish, l, "memory")

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:306:57: error: unknown type name ‘u128’

306 | __ll_sc__cmpxchg128##name(volatile u128 *ptr, u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/atomic_ll_sc.h:333:1: note: in expansion of macro ‘__CMPXCHG128’

333 | __CMPXCHG128(_mb, dmb ish, l, "memory")

| ^~~~~~~~~~~~

DTCO arch/arm64/boot/dts/overlays/spi2-1cs.dtbo

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:134:15: error: unknown type name ‘u128’

134 | static inline u128 __cmpxchg128##name(volatile u128 *ptr, \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:141:1: note: in expansion of macro ‘__CMPXCHG128’

141 | __CMPXCHG128( )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:134:48: error: unknown type name ‘u128’

134 | static inline u128 __cmpxchg128##name(volatile u128 *ptr, \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:141:1: note: in expansion of macro ‘__CMPXCHG128’

141 | __CMPXCHG128( )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:135:39: error: unknown type name ‘u128’

135 | u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:141:1: note: in expansion of macro ‘__CMPXCHG128’

141 | __CMPXCHG128( )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:135:49: error: unknown type name ‘u128’

135 | u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:141:1: note: in expansion of macro ‘__CMPXCHG128’

141 | __CMPXCHG128( )

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:134:15: error: unknown type name ‘u128’

134 | static inline u128 __cmpxchg128##name(volatile u128 *ptr, \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:142:1: note: in expansion of macro ‘__CMPXCHG128’

142 | __CMPXCHG128(_mb)

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:134:48: error: unknown type name ‘u128’

134 | static inline u128 __cmpxchg128##name(volatile u128 *ptr, \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:142:1: note: in expansion of macro ‘__CMPXCHG128’

142 | __CMPXCHG128(_mb)

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:135:39: error: unknown type name ‘u128’

135 | u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:142:1: note: in expansion of macro ‘__CMPXCHG128’

142 | __CMPXCHG128(_mb)

| ^~~~~~~~~~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:135:49: error: unknown type name ‘u128’

135 | u128 old, u128 new) \

| ^~~~

/project/linuxSrc/linux/arch/arm64/include/asm/cmpxchg.h:142:1: note: in expansion of macro ‘__CMPXCHG128’

142 | __CMPXCHG128(_mb)

| ^~~~~~~~~~~~

DTCO arch/arm64/boot/dts/overlays/spi2-1cs-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/spi2-2cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi2-2cs-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/spi2-3cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi3-1cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi3-1cs-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/spi3-2cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi3-2cs-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/spi4-1cs.dtbo

make[3]: *** [/project/linuxSrc/linux/scripts/Makefile.build:116: kernel/bounds.s] Error 1

make[2]: *** [/project/linuxSrc/linux/Makefile:1201: prepare0] Error 2

make[2]: *** Waiting for unfinished jobs....

DTCO arch/arm64/boot/dts/overlays/spi4-2cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi5-1cs.dtbo

DTCO arch/arm64/boot/dts/overlays/spi5-1cs-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/spi5-2cs.dtbo

.

.

DTCO arch/arm64/boot/dts/overlays/vc4-kms-v3d-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/vc4-kms-vga666.dtbo

DTCO arch/arm64/boot/dts/overlays/vga666.dtbo

DTCO arch/arm64/boot/dts/overlays/vl805.dtbo

DTCO arch/arm64/boot/dts/overlays/w1-gpio.dtbo

DTCO arch/arm64/boot/dts/overlays/w1-gpio-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/w1-gpio-pullup.dtbo

DTCO arch/arm64/boot/dts/overlays/w1-gpio-pullup-pi5.dtbo

DTCO arch/arm64/boot/dts/overlays/w5500.dtbo

DTCO arch/arm64/boot/dts/overlays/watterott-display.dtbo

DTCO arch/arm64/boot/dts/overlays/waveshare-can-fd-hat-mode-a.dtbo

DTCO arch/arm64/boot/dts/overlays/waveshare-can-fd-hat-mode-b.dtbo

DTCO arch/arm64/boot/dts/overlays/wittypi.dtbo

DTCO arch/arm64/boot/dts/overlays/wm8960-soundcard.dtbo

DTC arch/arm64/boot/dts/overlays/overlay_map.dtb

DTC arch/arm64/boot/dts/overlays/hat_map.dtb

make[1]: *** [/project/linuxSrc/linux/Makefile:234: __sub-make] Error 2

make[1]: Leaving directory '/project/linuxSrc/out'

make: *** [Makefile:234: __sub-make] Error 2

 

답변 3

1

저도 비슷한 문제를 겪었는데 운영체제가 32비트로 설치되어서 그런 것 같습니다.

ojtube5님의 프로필 이미지
ojtube5
지식공유자

네 제가 봐도 그럴 확률이 높네요..
32bit로 설치 하셨다면 u128은 64bit에서만 지원할 수 있는 코드이기 때문에, 저런 에러가 날 수 있겠네요.

0

ojtube5님의 프로필 이미지
ojtube5
지식공유자

에러 메시지를 보면 u128라는 타입이 정의되지 않았다는 오류가 발생하고 있어요.
아주 간단한게 뭔가 꼬여 있을 것 같아요.

예를 들어..
#define u128 long <-- 이런식으로 정의 되어 있는 header파일이 있는데

그 파일 참조하는 경로가 꼬였다던가 하면 발생 할 수 있어요,.

0

안녕하세요, 인프런 AI 인턴입니다. 권호산님.

리눅스 커널 빌드 중 오류가 발생했군요. 제공해주신 로그를 보면 여러 “unknown type name ‘u128’” 에러가 발생하고 있습니다. 이는 128비트 자료형을 위한 정의가 누락된 것으로 보입니다. 이러한 문제는 일반적으로 커널 소스 코드와 사용하는 컴파일러 또는 빌드 환경 간의 불일치에서 비롯될 수 있습니다.

이 오류를 해결하기 위해 몇 가지 사항을 검토해보세요:

  1. 커널 소스 코드의 버전 확인: 사용 중인 커널 소스 코드가 최신인지 확인하십시오. 버전이 오래되었거나 특정 패치를 적용해야 할 수 있습니다.

  2. 컴파일러 버전 확인: 커널 빌드를 위해 적합한 컴파일러가 설치되어 있는지 확인하세요. 일반적으로 GCC를 사용하며, 권장 버전을 사용하는 것이 중요합니다.

  3. 종속성 확인: 커널 빌드에는 여러 필수 패키지가 필요할 수 있습니다. libelf-devlibssl-dev 같은 패키지가 제대로 설치되어 있는지 확인하세요.

  4. 설정 파일 확인: make menuconfig 등을 사용하여 커널 설정 파일을 적절히 구성했는지 확인하세요. 설정과 관련된 문제가 발생할 수 있습니다.

  5. 거의 확실한 문제 기반의 접근: 문제가 발생한 파일(atomic_ll_sc.h)에서 ‘u128’ 유형에 대한 정의가 포함되어 있는지 확인해보세요. ARM Arch64의 컴파일러 설정이나 특정 C 라이브러리에 대비하여 해당 유형을 지원하기 위한 헤더 파일이 필요할 수 있습니다.

이와 관련하여 참고할만한 게시물이 있다면 링크를 올려놓겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기