Bootstrap

Amlogic-Linux-Driver-TOF

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
 

;