LimeSuite NG Build Error Ubuntu 24.04 (xmit / circ_buf)

I have Ubuntu 24.04 booting on a T2 mac mini, kernel version 6.12.9-1-t2-noble.
I’m running into build errors complaining about circ_buf and xmit. I found a couple XTRX-related threads about it (A, B, C, and D) and I have some idea what’s going on, but none of them made it clear (to me) how to proceed. Any help would be appreciated, full error below.

[  1%] Building Linux kernel module (limepcie) in dir: /home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c: In function ‘limeuart_start_tx’:
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:164:41: error: ‘struct uart_state’ has no member named ‘xmit’
  164 |     struct circ_buf *xmit = &port->state->xmit;
      |                                         ^~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:173:15: error: implicit declaration of function ‘uart_circ_empty’; did you mean ‘uart_lsr_tx_empty’? [-Werror=implicit-function-declaration]
  173 |     else if (!uart_circ_empty(xmit))
      |               ^~~~~~~~~~~~~~~
      |               uart_lsr_tx_empty
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:175:20: error: invalid use of undefined type ‘struct circ_buf’
  175 |         while (xmit->head != xmit->tail)
      |                    ^~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:175:34: error: invalid use of undefined type ‘struct circ_buf’
  175 |         while (xmit->head != xmit->tail)
      |                                  ^~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:177:22: error: invalid use of undefined type ‘struct circ_buf’
  177 |             ch = xmit->buf[xmit->tail];
      |                      ^~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:177:32: error: invalid use of undefined type ‘struct circ_buf’
  177 |             ch = xmit->buf[xmit->tail];
      |                                ^~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:178:17: error: invalid use of undefined type ‘struct circ_buf’
  178 |             xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
      |                 ^~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:178:31: error: invalid use of undefined type ‘struct circ_buf’
  178 |             xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
      |                               ^~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:184:9: error: implicit declaration of function ‘uart_circ_chars_pending’ [-Werror=implicit-function-declaration]
  184 |     if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
      |         ^~~~~~~~~~~~~~~~~~~~~~~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c: At top level:
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:434:15: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  434 |     .remove = limeuart_remove,
      |               ^~~~~~~~~~~~~~~
/home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.c:434:15: note: (near initialization for ‘limeuart_platform_driver.<anonymous>.remove’)
cc1: some warnings being treated as errors
make[5]: *** [scripts/Makefile.build:229: /home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9/limeuart.o] Error 1
make[4]: *** [/usr/src/linux-headers-6.12.7-3-t2-noble/Makefile:1937: /home/galahad/LimeSuiteNG/build/drivers/linux/limepcie/limepcie-0.1.9] Error 2
make[3]: *** [Makefile:224: __sub-make] Error 2
make[2]: *** [drivers/linux/limepcie/CMakeFiles/limepcie.dir/build.make:84: drivers/linux/limepcie/limepcie-0.1.9/limepcie.ko] Error 2
make[1]: *** [CMakeFiles/Makefile2:1129: drivers/linux/limepcie/CMakeFiles/limepcie.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

FIxed limeuart: replace circ_buf with kfifo to allow compiling for latest k… · myriadrf/LimeSuiteNG@4a7a05c · GitHub

1 Like

Updated to clang-format on the develop branch. Build succeeded!
I ran my test script (soapy + python) and I got good data with both a Lime USB and Mini 2, seems like it’s working correctly.
Thanks for the help!