Jean-Francois Lessard Posted June 24 Author Posted June 24 That should make it. You can always try to see if it works and search online if not. 0 Quote
dale Posted August 29 Posted August 29 (edited) Quote sudo ./display -c [WARN] Display device directory missing at /sys/class/leds/display; attempting module load [INFO] Successfully loaded module: tm16xx [ERROR] Display device not present after modprobe Hi, @Jean-Francois Lessard I'm using a x98h box with self-built image. I have issue with the tm16xx kernel module using a patch https://github.com/paolosabatino/armbian-build/blob/main/patch/kernel/archive/rockchip64-6.16/general-driver-tm16xx-led-driver.patch The vfd controller is AIP1688 which is similar to fd628. Do you have any idea why it fails? Edited August 29 by dale 0 Quote
Jean-Francois Lessard Posted August 29 Author Posted August 29 Hi @dale What is your DTS node for your display? My first guess is that your DT node is not being picked up/inexistent since the module loads but the display device is not present. You can use dtc /proc/device-tree to see your loaded DT and find your display node, if any. Then, have you checked dmesg for any tm16xx kernel message? Then, you can ls /sys/class/leds to see if any device were created. The display-service/display-utils scripts expect /sys/class/leds/display. That should not be your issue here, but I'm not sure that aip1688 is the same as tm1628 variants. Googling aip1688 list it besides aip1618, so that would be the tm1618 variant. Whatsoever, I think you should have partial working display if using tm1628. To be 100% of which compatible string to use, we would need the aip1688 datasheet but I couldn't find it online. Good luck with your experimentation! Let me know how you results. 0 Quote
dale Posted August 30 Posted August 30 (edited) @Jean-Francois Lessard I'm sorry for the typo. Yes the controller is tm1628. ls /sys/class/leds --> shows empty. Dmesg doesn't show any message for tm16xx. I've attached the working overlay source for openvfd which I have the clock digits working at least with. (The full icons would be card, usb, Low wifi, hi wifi, apps and eth) openvfd_x98h.dts Edited August 30 by dale 0 Quote
Jean-Francois Lessard Posted August 30 Author Posted August 30 @dale you need a display overlay that is compatible with tm16xx. OpenVFD overlays are NOT supported. You can read README.md and dt-bindings documentation at https://github.com/jefflessard/tm16xx-display But note that there has been many changes recently to the code base since the driver is currently in review process to be upstreamed into mainline kernel (targeting v6.18). So double check which bindings version format has been integrated into Armbian rockchip64. The GitHub repo also contains a vfd-convert utility to automatically convert OpenVFD configuration files to expected tm16xx DTSO. But : 1. It requires OpenVFD conf file, not dtso. 2. You may need to go through file history to get the version matching of what has been integrated into Armbian rockchip64. 0 Quote
Jean-Francois Lessard Posted September 2 Author Posted September 2 To anyone interested, I am seeking help to test the latest tm16xx changes for the (hopefully) final upstreaming submittal. You will find in-tree patches here: https://github.com/torvalds/linux/compare/master...jefflessard:linux:tm16xx, just suffix with ".patch" to get all patches in a single download. You will find out-of-tree version, device-specific dtso and latest display-service in the https://github.com/jefflessard/tm16xx-display/tree/v4-feedback branch. Thanks to all of you for you help so far! 0 Quote
dale Posted September 2 Posted September 2 @Jean-Francois Lessard sorry for making you confused. Device tree source for tm16xx driver that I convert from a working openvfd.conf is below /dts-v1/; /plugin/; #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/leds/common.h> &{/} { display_client: spi { #address-cells = <1>; #size-cells = <0>; compatible = "spi-gpio"; sck-gpios = < 7 GPIO_ACTIVE_HIGH>; mosi-gpios = < 2 GPIO_ACTIVE_HIGH>; cs-gpios = < 12 GPIO_ACTIVE_LOW>; num-chipselects = <1>; display@0 { compatible = "fdhisi,fd628"; reg = <0>; spi-3wire; spi-lsb-first; spi-max-frequency = <500000>; digits { #address-cells = <1>; #size-cells = <0>; 01 02 03 04 }; leds { #address-cells = <2>; #size-cells = <0>; led@{GRID0},0 { reg = <{GRID0} 0>; function = "apps"; }; led@{GRID1},1 { reg = <{GRID1} 1>; function = "setup"; }; led@{GRID2},2 { reg = <{GRID2} 2>; function = LED_FUNCTION_USB; }; led@{GRID3},3 { reg = <{GRID3} 3>; function = LED_FUNCTION_SD; }; led@{GRID4},4 { reg = <{GRID4} 4>; function = "colon"; }; led@{GRID5},5 { reg = <{GRID5} 5>; function = "hdmi"; }; led@{GRID6},6 { reg = <{GRID6} 6>; function = "video"; }; }; }; }; }; The convert script I downloaded from this commit https://github.com/jefflessard/tm16xx-display/blob/a93b257ed4c73780fcdefbb1f1dd189599cf6ecc/vfdconf-convert Can you please help get it to work? Thanks! 0 Quote
Jean-Francois Lessard Posted September 2 Author Posted September 2 @dale it seems like vfd-convert has not worked well. Perhaps because of some mix between script version and the template files version. Whatsoever, I've looked closer at the patch link you previously posted, this is the older pre-review dt-bindings syntax. You should be go to start with something like: /dts-v1/; /plugin/; #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/leds/common.h> &{/} { display_client: spi { #address-cells = <1>; #size-cells = <0>; compatible = "spi-gpio"; sck-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; mosi-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>; cs-gpios = <&gpio 12 GPIO_ACTIVE_LOW>; num-chipselects = <1>; display@0 { compatible = "fdhisi,fd628"; reg = <0x0>; spi-3wire; spi-lsb-first; spi-rx-delay-us = <1>; spi-max-frequency = <500000>; titanmec,digits = [00 01 02 03]; titanmec,segment-mapping = [03 01 02 06 04 05 00]; #address-cells = <2>; #size-cells = <0>; led@4,0 { reg = <4 0>; function = LED_FUNCTION_ALARM; }; led@4,1 { reg = <4 1>; function = LED_FUNCTION_USB; }; led@4,2 { reg = <4 2>; function = "play"; }; led@4,3 { reg = <4 3>; function = "pause"; }; led@4,4 { reg = <4 4>; function = "colon"; }; led@4,5 { reg = <4 5>; function = LED_FUNCTION_LAN; }; led@4,6 { reg = <4 6>; function = LED_FUNCTION_WLAN; }; }; }; }; Note that I haven't tested it, just made it from some copy-paste. If it doesn't work, even partially, you would most likely need to replace &gpio with the right reference to the gpio controller wired to the display. 0 Quote
dale Posted September 3 Posted September 3 Hi, thanks for checking. I check dmesg -T | grep spi_gpio and see the error spi_gpio spi: probe with driver spi_gpio failed with error -22. Also the /sys/class/leds is empty. Do you think the gpio pins are not correct? Below are current gpio pins I try this time mosi-gpios = <&pio 2 11 GPIO_ACTIVE_HIGH>; /* PC11 = data */ sck-gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 = clock */ cs-gpios = <&pio 7 5 GPIO_ACTIVE_LOW>; /* PH5 = strobe/latch */ 0 Quote
Jean-Francois Lessard Posted September 3 Author Posted September 3 @dale looking at the openvfd_x98h.dtso file you shared, openvfd uses these pins: openvfd_gpio_clk = <&pio 2 7 0>; openvfd_gpio_dat = <&pio 2 2 0>; openvfd_gpio_stb = <&pio 2 12 0>; So you should try with their equivalent: mosi-gpios = <&pio 2 2 GPIO_ACTIVE_HIGH>; /* mosi is the same as openvfd_gpio_dat */ sck-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* sck is the same as openvfd_gpio_clk */ cs-gpios = <&pio 2 12 GPIO_ACTIVE_LOW>; /* cs is the same as openvfd_gpio_stb */ 0 Quote
dale Posted September 5 Posted September 5 (edited) Hi, I finally got my display to work with below DT overlay source. My device is x98h. Thank you! /dts-v1/; /plugin/; #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/leds/common.h> &{/} { display_client: spi { #address-cells = <1>; #size-cells = <0>; compatible = "spi-gpio"; sck-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; mosi-gpios = <&pio 2 2 GPIO_ACTIVE_HIGH>; cs-gpios = <&pio 2 12 GPIO_ACTIVE_LOW>; num-chipselects = <1>; display@0 { compatible = "fdhisi,fd628"; reg = <0x0>; spi-3wire; spi-lsb-first; spi-rx-delay-us = <1>; spi-max-frequency = <500000>; tm16xx,transposed; tm16xx,digits = [00 01 02 03]; tm16xx,segment-mapping = [00 01 02 03 04 05 06]; #address-cells = <2>; #size-cells = <0>; led@4,0 { reg = <4 0>; function = LED_FUNCTION_USB; }; led@4,1 { reg = <4 1>; function = LED_FUNCTION_SD; }; led@4,2 { reg = <4 2>; function = "hi-wifi"; }; led@4,3 { reg = <4 3>; function = "low-wifi"; }; led@4,4 { reg = <4 4>; function = "colon"; }; led@4,5 { reg = <4 5>; function = "apps"; }; led@4,6 { reg = <4 6>; function = LED_FUNCTION_LAN; }; }; }; }; Edited September 5 by dale 0 Quote
dale Posted September 5 Posted September 5 On 9/2/2025 at 8:02 AM, Jean-Francois Lessard said: I am seeking help to test the latest tm16xx changes for the (hopefully) final upstreaming submittal. Can you make a patch for armbian? It will be easy for us to try. 0 Quote
Jean-Francois Lessard Posted September 5 Author Posted September 5 (edited) @dale I'm happy that it's now working! I'll add the x98h dtso to my devices library when I'll have some time (using the latest dt-bindings syntax). You can download the patch of the latest tm16xx version here: https://github.com/torvalds/linux/compare/master...jefflessard:linux:tm16xx.patch Let me know if the latest version works well for you and the updated x98h dtso (if you happen to do it before I have some time). I'll be glad to add you with Tested-by tag when submitting. Edited September 5 by Jean-Francois Lessard 0 Quote
dale Posted September 5 Posted September 5 (edited) 4 minutes ago, Jean-Francois Lessard said: You can download the patch of the latest tm16xx version here: I gave this a try but no success. The structure of original source code doesn't match the one for armbian. It would be great if you could make a patch as in this link Edited September 5 by dale 0 Quote
Jean-Francois Lessard Posted September 5 Author Posted September 5 (edited) Those are standard kernel patches. Do you mean Armbian build system does not support multiple patches in a single file? If so, you can download each of the 14 patches individually and then apply them. Or you can try reformatting the combined patch file as a single patch. Edited September 5 by Jean-Francois Lessard 0 Quote
Hqnicolas Posted October 3 Posted October 3 On 9/5/2025 at 11:32 AM, dale said: I gave this a try but no success. With 3 whipping in a language model you can, please give it a try to use the whip, language models are there to use you need to get updated cd /Downluads/ git clone https://github.com/armbian/build cd buildDocumentation ./compile.sh build BOARD=h96-tvbox-3566 BRANCH=edge BUILD_DESKTOP=yes BUILD_MINIMAL=no DESKTOP_APPGROUPS_SELECTED=browsers DESKTOP_ENVIRONMENT=gnome DESKTOP_ENVIRONMENT_CONFIG_NAME=config_base INSTALL_HEADERS=yes KERNEL_CONFIGURE=yes RELEASE=bookworm #or just ./compile.sh I WANT THE EDGE I WANT TO CHANGE KERNEL CONFIG CTRL+TAB sudo chmod 777 777.sh sudo chmod +X 777.sh sudo ./777.sh Quote #!/bin/bash # --- CONFIGURATION --- # Your Linux kernel working directory. # Make sure this path is correct! DEST_DIR="/Downluads/build/cache/sources/linux-kernel-worktree/6.16__rockchip64__arm64/kernel" # Repository and branch that contain the patch files. REPO_URL="https://github.com/jefflessard/linux.git" BRANCH="tm16xx" # Temporary directory to clone the repository. TEMP_DIR="/tmp/linux-patch-source" # List of files to be copied. FILES=( "Documentation/ABI/testing/sysfs-auxdisplay-linedisp" "Documentation/devicetree/bindings/auxdisplay/titanmec,tm16xx.yaml" "Documentation/devicetree/bindings/leds/common.yaml" "Documentation/devicetree/bindings/vendor-prefixes.yaml" "MAINTAINERS" "drivers/auxdisplay/Kconfig" "drivers/auxdisplay/Makefile" "drivers/auxdisplay/line-display.c" "drivers/auxdisplay/line-display.h" "drivers/auxdisplay/tm16xx.h" "drivers/auxdisplay/tm16xx_core.c" "drivers/auxdisplay/tm16xx_i2c.c" "drivers/auxdisplay/tm16xx_keypad.c" "drivers/auxdisplay/tm16xx_spi.c" "drivers/i2c/i2c-core-slave.c" "include/linux/property.h" ) # --- EXECUTION --- # Ensures the destination directory exists. if [ ! -d "$DEST_DIR" ]; then echo "ERROR: Destination directory not found: $DEST_DIR" exit 1 fi # Removes the temporary directory if it already exists. rm -rf "$TEMP_DIR" echo "➡️ Cloning the repository (only what's needed)..." # Quickly clones (--depth 1) only the specified branch. git clone --depth 1 --branch "$BRANCH" "$REPO_URL" "$TEMP_DIR" # Checks if the clone was successful. if [ ! -d "$TEMP_DIR" ]; then echo "ERROR: Failed to clone the repository." exit 1 fi echo "✅ Repository successfully cloned to $TEMP_DIR" echo "➡️ Copying files to $DEST_DIR..." # Navigate to the cloned directory to facilitate copying. cd "$TEMP_DIR" # Iterate over the list and copy each file. for file in "${FILES[@]}"; do # Check if the source file exists before copying. if [ -f "$file" ]; then echo " - Copying $file" # The --parents command creates the necessary directory structure in the destination. cp --parents "$file" "$DEST_DIR" else echo " - WARNING: File not found in repository: $file" fi done echo "✅ Files copied!" echo "➡️ Cleaning up..." # Remove the temporary directory. rm -rf "$TEMP_DIR" echo "🎉 Process completed!" ps: I'm getting it to work natively on the h96-max-v56, many users want this feature but don't want to install anything it seems that @Jean-Francois Lessard polishing made this project look amazing, congratulations 0 Quote
dale Posted October 3 Posted October 3 (edited) @Hqnicolas I will give it a try, but atm I'm happy with existing working patch for tm16xx. Edit: it seemed that @jock has updated the patch with latest code https://github.com/armbian/build/pull/8679 Edited October 3 by dale 1 Quote
Hqnicolas Posted October 3 Posted October 3 there are many good works being done thos days by the community kernel.zip data for H96 Max RK3566 Box: No external drivers, no external app, just pure mainline..... https://github.com/armbian/build/pull/8708 # lsmod | grep i2c tm16xx_i2c 12288 0 tm16xx 16384 1 tm16xx_i2c i2c_gpio 16384 0 i2c_algo_bit 12288 1 i2c_gpio # ls /sys/bus/i2c/devices/ 0-001c 0-0020 7-0024 i2c-0 i2c-6 i2c-7 Quote check_i2c.py nano check_i2c.py sudo python3 check_i2c.py import subprocess import os def load_i2c_gpio_module(): try: subprocess.run(['sudo', 'modprobe', 'i2c-gpio'], check=True) print("i2c-gpio module loaded successfully.") except subprocess.CalledProcessError as e: print(f"Failed to load i2c-gpio module: {e}") def list_i2c_modules(): try: result = subprocess.run(['lsmod', '|', 'grep', 'i2c'], shell=True, capture_output=True, text=True, check=True) print("Loaded I2C modules:") print(result.stdout) except subprocess.CalledProcessError as e: print(f"Failed to list I2C modules: {e}") def list_i2c_buses(): try: buses = os.listdir('/sys/bus/i2c/devices/') print("Available I2C buses:") for bus in buses: if bus.startswith('i2c-'): print(bus) except Exception as e: print(f"Failed to list I2C buses: {e}") def scan_i2c_bus(bus_number): try: result = subprocess.run(['i2cdetect', '-y', str(bus_number)], capture_output=True, text=True, check=True) print(f"Devices on I2C bus {bus_number}:") print(result.stdout) except subprocess.CalledProcessError as e: print(f"Failed to scan I2C bus {bus_number}: {e}") def main(): load_i2c_gpio_module() list_i2c_modules() list_i2c_buses() # Example: Scan bus 1 scan_i2c_bus(1) if __name__ == "__main__": main() Quote check_again_i2c.py nano check_again_i2c.py sudo python3 check_again_i2c.py import subprocess import os def load_i2c_gpio_module(): try: subprocess.run(['sudo', 'modprobe', 'i2c-gpio'], check=True) print("i2c-gpio module loaded successfully.") except subprocess.CalledProcessError as e: print(f"Failed to load i2c-gpio module: {e}") def list_i2c_modules(): try: result = subprocess.run(['lsmod', '|', 'grep', 'i2c'], shell=True, capture_output=True, text=True, check=True) print("Loaded I2C modules:") print(result.stdout) except subprocess.CalledProcessError as e: print(f"Failed to list I2C modules: {e}") def list_i2c_buses(): try: buses = os.listdir('/sys/bus/i2c/devices/') print("Available I2C buses:") return [bus for bus in buses if bus.startswith('i2c-')] except Exception as e: print(f"Failed to list I2C buses: {e}") return [] def scan_i2c_bus(bus_number): try: result = subprocess.run(['i2cdetect', '-y', bus_number], capture_output=True, text=True, check=True) print(f"Devices on I2C bus {bus_number}:") print(result.stdout) except subprocess.CalledProcessError as e: print(f"Failed to scan I2C bus {bus_number}: {e}") def main(): load_i2c_gpio_module() list_i2c_modules() buses = list_i2c_buses() if buses: for bus in buses: bus_number = bus.replace('i2c-', '') scan_i2c_bus(bus_number) else: print("No I2C buses found.") if __name__ == "__main__": main() Quote Results: sudo python3 check_again_i2c.py i2c-gpio module loaded successfully. Loaded I2C modules: Module Size Used by rfcomm 73728 4 algif_hash 16384 1 algif_skcipher 12288 1 af_alg 24576 6 algif_hash,algif_skcipher bnep 28672 2 sunrpc 487424 1 hci_uart 135168 0 btqca 24576 1 hci_uart btsdio 16384 0 brcmfmac 376832 0 btrtl 28672 1 hci_uart btintel 49152 1 hci_uart brcmutil 16384 1 brcmfmac btbcm 20480 1 hci_uart cfg80211 847872 1 brcmfmac bluetooth 675840 36 btrtl,btqca,btsdio,btintel,hci_uart,btbcm,bnep,rfcomm tm16xx_i2c 12288 0 tm16xx 16384 1 tm16xx_i2c line_display 16384 1 tm16xx gpio_ir_recv 12288 0 rc_core 45056 2 gpio_ir_recv snd_soc_spdif_tx 12288 0 snd_soc_simple_card 20480 1 snd_soc_simple_card_utils 24576 1 snd_soc_simple_card rfkill 28672 6 bluetooth,cfg80211 snd_soc_rk817 40960 0 rk805_pwrkey 12288 0 rk817_charger 20480 0 hantro_vpu 253952 0 rk_crypto2 36864 1 rockchip_vdec 98304 0 rockchip_rga 20480 0 v4l2_jpeg 12288 1 hantro_vpu sm3_generic 12288 1 rk_crypto2 libsm3 20480 1 sm3_generic v4l2_vp9 20480 2 rockchip_vdec,hantro_vpu videobuf2_dma_contig 20480 2 rockchip_vdec,hantro_vpu v4l2_h264 16384 2 rockchip_vdec,hantro_vpu videobuf2_dma_sg 16384 1 rockchip_rga v4l2_mem2mem 24576 3 rockchip_vdec,hantro_vpu,rockchip_rga videobuf2_memops 16384 2 videobuf2_dma_contig,videobuf2_dma_sg videobuf2_v4l2 20480 4 rockchip_vdec,hantro_vpu,rockchip_rga,v4l2_mem2mem videodev 241664 5 rockchip_vdec,videobuf2_v4l2,hantro_vpu,rockchip_rga,v4l2_mem2mem panfrost 73728 1 videobuf2_common 53248 8 rockchip_vdec,videobuf2_dma_contig,videobuf2_v4l2,hantro_vpu,rockchip_rga,videobuf2_dma_sg,v4l2_mem2mem,videobuf2_memops gpu_sched 36864 1 panfrost mc 53248 6 rockchip_vdec,videodev,videobuf2_v4l2,hantro_vpu,videobuf2_common,v4l2_mem2mem drm_shmem_helper 20480 1 panfrost cpufreq_dt 16384 0 zram 40960 2 binfmt_misc 20480 1 dm_mod 126976 0 ip_tables 28672 0 x_tables 36864 1 ip_tables autofs4 45056 2 dw_hdmi_cec 12288 0 dw_hdmi_i2s_audio 12288 0 realtek 40960 1 i2c_gpio 16384 0 i2c_algo_bit 12288 1 i2c_gpio display_connector 16384 0 dwmac_rk 28672 0 stmmac_platform 20480 1 dwmac_rk stmmac 241664 3 stmmac_platform,dwmac_rk pcs_xpcs 28672 1 stmmac rockchipdrm 200704 4 dw_hdmi_qp 20480 1 rockchipdrm dw_mipi_dsi 16384 1 rockchipdrm dw_mipi_dsi2 16384 1 rockchipdrm dw_hdmi 45056 2 dw_hdmi_i2s_audio,rockchipdrm rtc_rk808 16384 1 cec 45056 2 dw_hdmi_cec,dw_hdmi analogix_dp 40960 1 rockchipdrm drm_display_helper 126976 4 rockchipdrm,dw_hdmi,analogix_dp,dw_hdmi_qp drm_dp_aux_bus 12288 1 rockchipdrm Available I2C buses: Devices on I2C bus 6: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: 30 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- 54 -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- Devices on I2C bus 0: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- Devices on I2C bus 7: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: 08 09 0a 0b 0c 0d 0e 0f 10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20: 20 21 22 23 UU 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30: -- -- -- -- -- -- -- -- 38 39 3a 3b 3c 3d 3e 3f 40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70: 70 71 72 73 74 75 76 77 # ls /sys/class/leds/display brightness device map_seg7 max_brightness message num_chars power scroll_step_ms subsystem trigger uevent # ls -l /sys/class/leds/ lrwxrwxrwx 1 root root 0 out 3 14:29 display -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display lrwxrwxrwx 1 root root 0 out 3 14:29 display::alarm -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display::alarm lrwxrwxrwx 1 root root 0 out 3 14:29 display::colon -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display::colon lrwxrwxrwx 1 root root 0 out 3 14:29 display::lan -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display::lan lrwxrwxrwx 1 root root 0 out 3 14:29 display::pause -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display::pause lrwxrwxrwx 1 root root 0 out 3 14:29 display::play -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display::play lrwxrwxrwx 1 root root 0 out 3 14:29 display::usb -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display::usb lrwxrwxrwx 1 root root 0 out 3 14:29 display::wlan -> ../../devices/platform/i2c-aux-display/i2c-7/7-0024/leds/display::wlan lrwxrwxrwx 1 root root 0 out 3 14:29 input3::capslock -> ../../devices/platform/fd000000.usb/xhci-hcd.1.auto/usb2/2-1/2-1:1.0/0003:17EF:6099.0002/input/input3/input3::capslock lrwxrwxrwx 1 root root 0 out 3 14:29 input3::numlock -> ../../devices/platform/fd000000.usb/xhci-hcd.1.auto/usb2/2-1/2-1:1.0/0003:17EF:6099.0002/input/input3/input3::numlock lrwxrwxrwx 1 root root 0 out 3 14:29 input3::scrolllock -> ../../devices/platform/fd000000.usb/xhci-hcd.1.auto/usb2/2-1/2-1:1.0/0003:17EF:6099.0002/input/input3/input3::scrolllock lrwxrwxrwx 1 root root 0 dez 31 1969 led-power -> ../../devices/platform/leds/leds/led-power lrwxrwxrwx 1 root root 0 dez 31 1969 led-status -> ../../devices/platform/leds/leds/led-status lrwxrwxrwx 1 root root 0 dez 31 1969 mmc1:: -> ../../devices/platform/fe310000.mmc/leds/mmc1:: 1 Quote
Berserker Posted 7 hours ago Posted 7 hours ago root@rk3318-box:~/tm16xx-display# make module make EXTRA_CFLAGS="-DCONFIG_TM16XX -DCONFIG_TM16XX_KEYPAD -DCONFIG_TM16XX_I2C -DCONFIG_TM16XX_SPI" -C /lib/modules/6.16.4-edge-rockchip64/build M=/root/tm16xx-display modules make[1]: Entering directory '/usr/src/linux-headers-6.16.4-edge-rockchip64' make[2]: Entering directory '/root/tm16xx-display' CC [M] line-display.o /tmp/cc8iv0mf.s: Assembler messages: /tmp/cc8iv0mf.s:8: Error: junk at end of line, first unrecognized character is `L' /tmp/cc8iv0mf.s:9: Error: junk at end of line, first unrecognized character is `L' /tmp/cc8iv0mf.s:10: Error: junk at end of line, first unrecognized character is `L' /tmp/cc8iv0mf.s:11: Error: junk at end of line, first unrecognized character is `L' make[4]: *** [/usr/src/linux-headers-6.16.4-edge-rockchip64/scripts/Makefile.build:290: line-display.o] Error 1 make[3]: *** [/usr/src/linux-headers-6.16.4-edge-rockchip64/Makefile:2003: .] Error 2 make[2]: *** [/usr/src/linux-headers-6.16.4-edge-rockchip64/Makefile:248: __sub-make] Error 2 make[2]: Leaving directory '/root/tm16xx-display' make[1]: *** [Makefile:248: __sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-6.16.4-edge-rockchip64' make: *** [Makefile:46: module] Error 2 fresh install, box T9 rk3328 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.