Warboy ubuntu 22.04 커널 5.15.0-177 에서 드라이버 설치 오류

DKMS make.log for furiosa-driver-warboy-1.9.11 for kernel 5.15.0-177-generic (x86_64)
Thu May  7 09:56:49 AM UTC 2026
make -C /lib/modules/5.15.0-177-generic/build M=/var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda EXTRA_CFLAGS+="-DCONFIG_NPU_PCI_VENDOR_ID=0x1ed2 -DCONFIG_NPU_PCI_DEVICE_ID=0x0000 -DCONFIG_NPU_MGMT_DEVICE -DCONFIG_NPU_MGMT_GROUP -DCONFIG_NPU_PDMA_DMA_TIMEOUT_MS=5000" modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-177-generic'
  CC [M]  /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.o
In file included from /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.c:20:
/var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.h:41: warning: "MIN" redefined
   41 | #define MIN(a,b) \
      |
In file included from ./include/linux/kernel.h:17,
                 from /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.h:23,
                 from /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.c:20:
./include/linux/minmax.h:314: note: this is the location of the previous definition
  314 | #define MIN(a, b) __cmp(min, a, b)
      |
In file included from ./include/linux/array_size.h:5,
                 from ./include/linux/kernel.h:7,
                 from /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.h:23,
                 from /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.c:20:
/var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.c: In function ‘npu_pdma_get_user_pages’:
./arch/x86/include/asm/uaccess.h:74:16: error: implicit declaration of function ‘__access_ok’; did you mean ‘access_ok’? [-Werror=implicit-function-declaration]
   74 |         likely(__access_ok(addr, size));                                \
      |                ^~~~~~~~~~~
./include/linux/compiler.h:77:45: note: in definition of macro ‘likely’
   77 | # define likely(x)      __builtin_expect(!!(x), 1)
      |                                             ^
/var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.c:48:28: note: in expansion of macro ‘access_ok’
   48 | #define __access_ok(X,Y,Z) access_ok(Y,Z)
      |                            ^~~~~~~~~
/var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.c:363:14: note: in expansion of macro ‘__access_ok’
  363 |         if (!__access_ok(VERIFY_WRITE, (void __user *)addr, size)) {
      |              ^~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:297: /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.o] Error 1
make[1]: *** [Makefile:1928: /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-177-generic'
make: *** [Makefile:43: all] Error 2
 

__range_not_ok 라는 macro 지우면서 __access_ok 라는 macro 가 생겼는데, 이게 warboy 드라이버 내부에 있는 macro 랑 이름이 겹쳐서 문제가 발생하는 것으로 보입니다.

안녕하세요, 퓨리오사에이아이 정주희입니다.

말씀 주신 것처럼 해당 문제는 커널 5.15.0-177에 backport된 __access_ok() 함수가 드라이버 내부 매크로(npu_pdma.c:48)와 이름이 겹쳐 발생한 빌드 충돌로 확인됩니다.

다만, 현재 Warboy 드라이버는 차기 릴리즈가 예정되어 있지 않아 정식 패치 제공은 어려운 상황이라, 부득이하게 이전 커널을 사용하시는 방향을 권장드립니다. (해당 변경은 5.15.0-172 ABI 부터 적용되어 있어 5.15.0-171 까지 회귀가 필요한 것으로 보입니다.)

추가 문의 있으시면 회신 부탁드립니다.

감사합니다.

Dude! This is a Compilation Conflict between the two systems so stuff like Symbolic Linking won’t solve this… Definitely if you cannot wait for the Furiosa Team for Warboy Driver’s to solve this why not try it this way…Go to /var/lib/dkms/furiosa-driver-warboy/1.9.11/build/npu_plda/npu_pdma.c

The driver is trying to be “helpful” by defining its own version of __access_ok. Since the kernel now has its own version, they are fighting. Change the driver’s definition:

From: #define __access_ok(X,Y,Z) access_ok(Y,Z)

To: #define FURIOSA_ACCESS_OK(X,Y,Z) access_ok(Y,Z)

This Compilation conflicts between two files with similar header’s