android/device/amlogic/redi/build.config.meson.arm64.trunk这个文件需要再看看是怎么用的,
要编译的驱动目录需要加到上面文件。
$ modinfo ./out/target/product/redi/vendor/lib/modules/dts6004.ko
filename: /home/philip/source/dev_sda1/bjtof_test/android/./out/target/product/redi/vendor/lib/modules/dts6004.ko
author: polarisic's software buddy
description: PLS FlightSense Time-of-Flight sensor driver
license: GPL
version: V1.0.3
vermagic: 5.4.125-android11-2-g3bcd0e7f9d40 SMP preempt mod_unload modversions aarch64
name: dts6004
depends:
alias: i2c:dts6004
./mk redi -v 5.4可以自动编译vendor/asu下的驱动,但是编译的ko只会在android/common/drivers/misc/dtof/dts6004.ko目录。只有全编译后,才会拷贝到out目录。
ko编译完成后在Android下的生成目录,主要是表黄的三个目录:
./out/target/product/redi/obj/PACKAGING/target_files_intermediates/redi-target_files-eng.philip/VENDOR/lib/modules/dts6004.ko
./out/target/product/redi/obj/PACKAGING/depmod_vendor_stripped_intermediates/dts6004.ko
./out/target/product/redi/obj/PACKAGING/depmod_VENDOR_intermediates/lib/modules/0.0/vendor/lib/modules/dts6004.ko
./out/target/product/redi/vendor/lib/modules/dts6004.ko
./device/amlogic/redi-kernel/5.4/lib/modules/dts6004.ko
./common/drivers/misc/dtof/dts6004.ko
备注:
北极芯微是直接把驱动目录拷贝到android/common/drivers/misc目录下,用make编译,这里需要设置工具链的环境变量,不能用ubuntu的环境变量,应该用Android源码自带的arm工具链进行编译。
即使硬件TOF模组不存在或者是怀的,只要在kernel设备树里进行了配置,驱动对应的ko存在,就应该有probe的log,参考如下:
philip@philip-Precision-3650-Tower:~/source/dev_sda1/bjtof_test/android/vendor$ adb shell dmesg | grep dts600
[ 21.265955] <6>[ 21.265955@1] load module: dts6004
[ 21.265982] <6>[ 21.265982@1] dts6004_init: enter
[ 21.267333] <6>[ 21.267333@1] dts6004_probe: enter
[ 21.270720] <6>[ 21.270720@1] dts6004_parse_devtree: xshut_gpio = 492
[ 21.275877] <3>[ 21.275877@1] dts6004_probe: parse devtree failed! ret = -22
[ 21.275886] <6>[ 21.275886@1] dts6004_init_config: driver version: 01.00.03
[ 21.292144] <6>[ 21.292144@1] dts6004_init_config: DTS6004 initialization in progress
[ 21.293788] <3>[ 21.293788@1] dts6004_i2c_read: dts6004_i2c_read: i2c_transfer err:-6, addr:0x30, reg:0xf
[ 21.301895] <4>[ 21.301895@1] dts6004_init_config: get_mucver_failed
[ 21.301906] <6>[ 21.301906@1] dts6004_init_config: mcu_ver:0
[ 21.311435] <3>[ 21.311435@1] dts6004_i2c_read: dts6004_i2c_read: i2c_transfer err:-6, addr:0x30, reg:0x0
[ 21.319580] <4>[ 21.319580@1] dts6004_init_config: get_mucid_failed
[ 21.319590] <6>[ 21.319590@1] dts6004_init_config: mcu_id:0
[ 21.328957] <3>[ 21.328957@1] dts6004_i2c_read: dts6004_i2c_read: i2c_transfer err:-6, addr:0x30, reg:0x3
[ 21.337122] <4>[ 21.337122@1] dts6004_init_config: set_int_failed
[ 21.337133] <3>[ 21.337133@1] dts6004_probe: dts6004_init_config failed! ret = -1
[ 21.341959] <4>[ 21.341959@1] dts6004: probe of 2-0030 failed with error -1