修改linux内核中的MPU3050驱动(Android)以使用MPU6050

Modify the MPU3050 driver in linux kernel (Android) to use MPU6050

我有一个 运行 设备(gsensor,MPU6050)和 Android 系统。 我不能直接构建它,因为它不存在于 3.4 内核中,但我想知道我是否可以修改 MPU3050 驱动程序以适应我的设备工作。

我找到了这个 readme,但我想知道它是否有效?

编辑: 工作过半*,这里是dmesg的一部分:

<7>[   13.283019] i2c-core: driver [mpu3050] registered
<6>[   13.283119] init: command 'insmod' r=0    
<4>[   13.312403] industrialio: module is from the staging directory, the quality is unknown, you have been warned.
<6>[   13.315656] init: command 'insmod' r=0
<4>[   13.320725] kfifo_buf: module is from the staging directory, the quality is unknown, you have been warned.
<6>[   13.321687] init: command 'insmod' r=0
<4>[   13.329837] ring_sw: module is from the staging directory, the quality is unknown, you have been warned.
<6>[   13.330847] init: command 'insmod' r=0
<6>[   13.354793] hub 4-0:1.0: [hub_activate 872]
<4>[   13.392922] inv_mpu_iio: module is from the staging directory, the quality is unknown, you have been warned.
<7>[   13.395860] i2c-core: driver [inv-mpu-iio] registered

i2ctools 检测到这个:

# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- UU -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU UU UU UU UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU UU UU UU UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
# i2cdetect -y 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU UU UU UU UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
# i2cdump -f -y 2 0x68
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 89 75 81 e1 1e 0f fb 1e fe 8d 00 a8 28 51 50 b9    ?u????????.?(QP?
10: 86 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00    ...........@....
70: 00 00 00 00 00 68 00 00 00 00 00 00 00 00 00 00    .....h..........
80: 89 75 81 e1 1e 0f fb 1e fe 8d 00 a8 28 51 50 b9    ?u????????.?(QP?
90: 86 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00    ...........@....
f0: 00 00 00 00 00 68 00 00 00 00 00 00 00 00 00 00    .....h..........
# i2cget -f -y 2 0x68
0x75
# i2cget -f -y 2 0x68
0xe1
# i2cget -f -y 2 0x68
0x0f
# i2cget -f -y 2 0x68
0x1e
# i2cget -f -y 2 0x68
0x8d
#

*只是编译了驱动,没有修改内核。以下here.

是的,你可以。

请查阅数据表以了解每个设备的功能和寄存器之间的差异,但我相信您会发现 mpu-6050 是 mpu-3050 的超集,因此扩展一个驱动程序以适应另一个应该是一个简单的例子编程案例。

你问的问题在这里是不合适的 - Whosebug 的存在是为了为 特定问题 提供帮助,你没有说明任何实际问题,除了想知道是否可能,答案是什么上面给出的是肯定的,前提是您完成工作并从可用的资源中学习。