Hi @Jean-Francois Lessard Thanks for sharing the new openvfd option for Armbian. I am using a Allwinner H618 Android 12 TV box that got FD6551 controller. I have verified the chip model by opening the box. The headers of respective version is also installed and I have double checked that.
apt install -y linux-headers-edge-sunxi64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
linux-headers-edge-sunxi64 is already the newest version (25.11.2).
From the Android dts file I can find the following. I have tried the configuration mentioned here as well but there is no VFD output. Is there any other configuration I have to check or modify for the VFD to work?
leds {
leds_clk = <0x23 0x08 0x0b 0x00>;
leds_dat = <0x23 0x08 0x0c 0x00>;
status = "okay";
};
fd655_para {
device_type = "fd655_para";
compatible = "Ik,fd655_dev";
fd655_clk_io = <0x23 0x07 0x06 0x01>;
fd655_dat_io = <0x23 0x07 0x07 0x01>;
status = "okay";
};
ald-colorleds {
compatible = "elebao,colorleds";
dev_name = "ald-colorleds";
pinctrl-0 = <0x70>;
colorleds_data_gpio = <0x23 0x07 0x02 0x01>;
status = "okay";
};
I tried to make the module as you have instructed, however I am getting the below given error messages.
/tm16xx-display# make module
make EXTRA_CFLAGS="-DCONFIG_TM16XX -DCONFIG_TM16XX_KEYPAD -DCONFIG_TM16XX_I2C -DCONFIG_TM16XX_SPI -include /root/tm16xx-display/drivers/auxdisplay/tm16xx_compat.h -I/root/tm16xx-display/include/" -C /lib/modules/6.12.11-edge-sunxi64/build M=/root/tm16xx-display/drivers/auxdisplay CONFIG_TM16XX=m CONFIG_TM16XX_KEYPAD=y CONFIG_TM16XX_I2C=m CONFIG_TM16XX_SPI=m CONFIG_LINEDISP=m modules
make[1]: Entering directory '/usr/src/linux-headers-6.12.11-edge-sunxi64'
CC [M] /root/tm16xx-display/drivers/auxdisplay/line-display.o
CC [M] /root/tm16xx-display/drivers/auxdisplay/tm16xx_core.o
CC [M] /root/tm16xx-display/drivers/auxdisplay/tm16xx_keypad.o
LD [M] /root/tm16xx-display/drivers/auxdisplay/tm16xx.o
CC [M] /root/tm16xx-display/drivers/auxdisplay/tm16xx_i2c.o
CC [M] /root/tm16xx-display/drivers/auxdisplay/tm16xx_spi.o
MODPOST /root/tm16xx-display/drivers/auxdisplay/Module.symvers
CC [M] /root/tm16xx-display/drivers/auxdisplay/line-display.mod.o
In file included from /root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:2:
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:13:41: error: expected ‘)’ before ‘LINEDISP’
13 | KSYMTAB_FUNC(linedisp_attach, "_gpl", ""LINEDISP"");
| ^~~~~~~~
./include/linux/export-internal.h:45:28: note: in definition of macro ‘__KSYMTAB’
45 | " .asciz \"" ns "\"" "\n" \
| ^~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:13:1: note: in expansion of macro ‘KSYMTAB_FUNC’
13 | KSYMTAB_FUNC(linedisp_attach, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
./include/linux/export-internal.h:41:12: note: to match this ‘(’
41 | asm(" .section \"__ksymtab_strings\",\"aMS\",%progbits,1" "\n" \
| ^
./include/linux/export-internal.h:62:41: note: in expansion of macro ‘__KSYMTAB’
62 | #define KSYMTAB_FUNC(name, sec, ns) __KSYMTAB(name, KSYM_FUNC(name), sec, ns)
| ^~~~~~~~~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:13:1: note: in expansion of macro ‘KSYMTAB_FUNC’
13 | KSYMTAB_FUNC(linedisp_attach, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:14:41: error: expected ‘)’ before ‘LINEDISP’
14 | KSYMTAB_FUNC(linedisp_detach, "_gpl", ""LINEDISP"");
| ^~~~~~~~
./include/linux/export-internal.h:45:28: note: in definition of macro ‘__KSYMTAB’
45 | " .asciz \"" ns "\"" "\n" \
| ^~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:14:1: note: in expansion of macro ‘KSYMTAB_FUNC’
14 | KSYMTAB_FUNC(linedisp_detach, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
./include/linux/export-internal.h:41:12: note: to match this ‘(’
41 | asm(" .section \"__ksymtab_strings\",\"aMS\",%progbits,1" "\n" \
| ^
./include/linux/export-internal.h:62:41: note: in expansion of macro ‘__KSYMTAB’
62 | #define KSYMTAB_FUNC(name, sec, ns) __KSYMTAB(name, KSYM_FUNC(name), sec, ns)
| ^~~~~~~~~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:14:1: note: in expansion of macro ‘KSYMTAB_FUNC’
14 | KSYMTAB_FUNC(linedisp_detach, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:15:43: error: expected ‘)’ before ‘LINEDISP’
15 | KSYMTAB_FUNC(linedisp_register, "_gpl", ""LINEDISP"");
| ^~~~~~~~
./include/linux/export-internal.h:45:28: note: in definition of macro ‘__KSYMTAB’
45 | " .asciz \"" ns "\"" "\n" \
| ^~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:15:1: note: in expansion of macro ‘KSYMTAB_FUNC’
15 | KSYMTAB_FUNC(linedisp_register, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
./include/linux/export-internal.h:41:12: note: to match this ‘(’
41 | asm(" .section \"__ksymtab_strings\",\"aMS\",%progbits,1" "\n" \
| ^
./include/linux/export-internal.h:62:41: note: in expansion of macro ‘__KSYMTAB’
62 | #define KSYMTAB_FUNC(name, sec, ns) __KSYMTAB(name, KSYM_FUNC(name), sec, ns)
| ^~~~~~~~~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:15:1: note: in expansion of macro ‘KSYMTAB_FUNC’
15 | KSYMTAB_FUNC(linedisp_register, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:16:45: error: expected ‘)’ before ‘LINEDISP’
16 | KSYMTAB_FUNC(linedisp_unregister, "_gpl", ""LINEDISP"");
| ^~~~~~~~
./include/linux/export-internal.h:45:28: note: in definition of macro ‘__KSYMTAB’
45 | " .asciz \"" ns "\"" "\n" \
| ^~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:16:1: note: in expansion of macro ‘KSYMTAB_FUNC’
16 | KSYMTAB_FUNC(linedisp_unregister, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
./include/linux/export-internal.h:41:12: note: to match this ‘(’
41 | asm(" .section \"__ksymtab_strings\",\"aMS\",%progbits,1" "\n" \
| ^
./include/linux/export-internal.h:62:41: note: in expansion of macro ‘__KSYMTAB’
62 | #define KSYMTAB_FUNC(name, sec, ns) __KSYMTAB(name, KSYM_FUNC(name), sec, ns)
| ^~~~~~~~~
/root/tm16xx-display/drivers/auxdisplay/line-display.mod.c:16:1: note: in expansion of macro ‘KSYMTAB_FUNC’
16 | KSYMTAB_FUNC(linedisp_unregister, "_gpl", ""LINEDISP"");
| ^~~~~~~~~~~~
make[3]: *** [scripts/Makefile.modfinal:31: /root/tm16xx-display/drivers/auxdisplay/line-display.mod.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.12.11-edge-sunxi64/Makefile:1870: modules] Error 2
make[1]: *** [Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.12.11-edge-sunxi64'
make: *** [Makefile:50: module] Error 2
root@homeassistant2:~/tm16xx-display# make-module install
make-module: command not found
root@homeassistant2:~/tm16xx-display# make module-install
make -C /lib/modules/6.12.11-edge-sunxi64/build M=/root/tm16xx-display/drivers/auxdisplay CONFIG_TM16XX=m CONFIG_TM16XX_KEYPAD=y CONFIG_TM16XX_I2C=m CONFIG_TM16XX_SPI=m CONFIG_LINEDISP=m modules_install INSTALL_MOD_PATH=
make[1]: Entering directory '/usr/src/linux-headers-6.12.11-edge-sunxi64'
DEPMOD /lib/modules/6.12.11-edge-sunxi64
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/usr/src/linux-headers-6.12.11-edge-sunxi64'
root@homeassistant2:~/tm16xx-display# make service-install
modprobe tm16xx
modprobe: ERROR: could not insert 'tm16xx': Exec format error
make: *** [Makefile:60: service-install] Error 1