hikaru 0 Posted December 7, 2021 I wanted to use an Arduino compatible machine and tried to make a driver for CH34x but couldn't. (Tinker Board 2 Debian 10 V2.0.0) I tried the method posted on this site. https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/linux I put the linux header like this. wget https://github.com/TinkerBoard2/kernel/releases/download/tinker_board_2-debian_10-2.0.0/linux-headers-4.4.194_4.4.194-1_arm64.deb dpkg -i linux-headers-4.4.194_4.4.194-1_arm64.deb Has anyone succeeded? Or, if you have an installable ch34x.ko, I would appreciate it if you could share it. sudo insmod ch34x.ko As a side note, in the case of Tinker board S, Arduino compatible machines were recognized without installing any drivers. (Tinker Board S Debian 10 V3.0.11) Thank you. Share this post Link to post Share on other sites
Joe 3 Posted December 8, 2021 Hi @hikaru I use Tinker2S version 2.0.0-20210413 CONFIG_USB_SERIAL_CH341=y Actually insert CH340 USBtoUART linaro@linaro-alip:~$ ls -al /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 0 Dec ?8 04:04 /dev/ttyUSB0 If you have any questions, Please provide dmesg kernel log information. Thanks 1 Share this post Link to post Share on other sites
hikaru 0 Posted December 8, 2021 Thank you, Joe! I didn't know how to set "CONFIG_USB_SERIAL_CH341 = y", so I sent a question via dmesg.? Share this post Link to post Share on other sites
hikaru 0 Posted December 8, 2021 Sorry, Joe. I misunderstood dmesg as a direct message. Rewrite in the thread. I have little knowledge about linux and I don't know if I can ask the question correctly, but I investigated how to do it. And I referred to the method on this page. https://tinkerboarding.co.uk/forum/archive/index.php/thread-576.html Yes, you need rebuild the kernel. step 1. download kernel git clone https://github.com/TinkerBoard/debian_kernel.git step 2. add the following line to arch/arm/configs/miniarm-rk3288_defconfig CONFIG_USB_SERIAL_CH341=y step 3. rebuild the kernel make ARCH=arm miniarm-rk3288_defconfig make zImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- then you will get a new zImage file under arch/arm/boot step 4. replace the zImage file which is in your boot sdcard When building the kernel Which file describes "CONFIG_USB_SERIAL_CH341 = y" on 2S version 2.0.0-20210413? Or is there an easier way to get an OS with "CONFIG_USB_SERIAL_CH341 = y" set? Thank you for your advice. Share this post Link to post Share on other sites
hikaru 0 Posted December 9, 2021 I tryed this method on 2S version 2.0.0-20210413. make ARCH=arm64 tinker2_defconfig Then I got ".config" file. And It have line "CONFIG_USB_SERIAL_CH341=y". Next step make ARCH=arm64 rk3399-tinker_board_2.img -j24 I got these errors. drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.o drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c: In function '_iqk_reload_iqk_setting_8822b': drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c:449:14: warning: '~' on a boolean expression [-Wbool-operation] error, forbidden warning:halrf_iqk_8822b.c:449 report = ~(p_iqk_info->IQK_fail_report[channel][path][idx]); ^ drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c:449:14: note: did you mean to use logical not? report = ~(p_iqk_info->IQK_fail_report[channel][path][idx]); ^ ! drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c:453:14: warning: '~' on a boolean expression [-Wbool-operation] error, forbidden warning:halrf_iqk_8822b.c:453 report = ~(p_iqk_info->IQK_fail_report[channel][path][idx]); ^ drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.c:453:14: note: did you mean to use logical not? report = ~(p_iqk_info->IQK_fail_report[channel][path][idx]); ^ ! make[6]: *** [scripts/Makefile.build:277: drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/halrf/rtl8822b/halrf_iqk_8822b.o] Error 1 make[5]: *** [scripts/Makefile.build:484: drivers/net/wireless/rockchip_wlan/rtl8822be] Error 2 make[5]: *** Waiting for unfinished jobs.... drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux.c: In function 'dhd_ethtool': drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux.c:6965:39: warning: argument to 'sizeof' in 'strncpy' call is the same expression as the source; did you mean to use the size of the destination? [-Wsizeof-pointer-memaccess] error, forbidden warning:dhd_linux.c:6965 strncpy(drvname, info.driver, sizeof(info.driver)); ^ make[7]: *** [scripts/Makefile.build:277: drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux.o] Error 1 make[7]: *** Waiting for unfinished jobs.... make[6]: *** [scripts/Makefile.build:484: drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd] Error 2 make[5]: *** [scripts/Makefile.build:484: drivers/net/wireless/rockchip_wlan/rkwifi] Error 2 make[4]: *** [scripts/Makefile.build:484: drivers/net/wireless/rockchip_wlan] Error 2 make[3]: *** [scripts/Makefile.build:484: drivers/net/wireless] Error 2 make[2]: *** [scripts/Makefile.build:484: drivers/net] Error 2 make[1]: *** [Makefile:1036: drivers] Error 2 How Can I build kernel ? Share this post Link to post Share on other sites
Joe 3 Posted December 21, 2021 Hi @hikaru Please try the following command 1) wgethttp://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz 2) tar -Jxvf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz -C ~ 3) make ARCH=arm64 rk3399-tinker_board_2.img -j24 CROSS_COMPILE=~/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- Thanks Share this post Link to post Share on other sites