如何知道android系统中GPS在 /dev/tty*下具体生成的节点名称?
本文是原「蜗窝讨论区」的历史存档(2018-07-17),来自版块「Linux kernel技术问答」,共 3 帖。讨论区已停止服务,此处仅供查阅。
题目可能描述的不是很清晰,我通过Google大概了解了GPS通过UART接口并且在/dev/tty*下生成设备节点,我知道bluetooth的节点是/dev/ttyHS0(歪打正着), 但其他的tty[1-24]完全不知道是什么设备.....
[== Undefined ==]
%ls /dev/tty*
/dev/tty /dev/tty12 /dev/tty17 /dev/tty21 /dev/tty26 /dev/tty30 /dev/tty35 /dev/tty4 /dev/tty44 /dev/tty49 /dev/tty53 /dev/tty58 /dev/tty62 /dev/ttyHS0
/dev/tty0 /dev/tty13 /dev/tty18 /dev/tty22 /dev/tty27 /dev/tty31 /dev/tty36 /dev/tty40 /dev/tty45 /dev/tty5 /dev/tty54 /dev/tty59 /dev/tty63 /dev/ttyprintk
/dev/tty1 /dev/tty14 /dev/tty19 /dev/tty23 /dev/tty28 /dev/tty32 /dev/tty37 /dev/tty41 /dev/tty46 /dev/tty50 /dev/tty55 /dev/tty6 /dev/tty7
/dev/tty10 /dev/tty15 /dev/tty2 /dev/tty24 /dev/tty29 /dev/tty33 /dev/tty38 /dev/tty42 /dev/tty47 /dev/tty51 /dev/tty56 /dev/tty60 /dev/tty8
/dev/tty11 /dev/tty16 /dev/tty20 /dev/tty25 /dev/tty3 /dev/tty34 /dev/tty39 /dev/tty43 /dev/tty48 /dev/tty52 /dev/tty57 /dev/tty61 /dev/tty9
这些tty设备的名字是在内核源码你固定并映射至X传感器,还是动态分配的, tty存在空闲的节点吗(如没有映射任何硬件设备的ttyXXX),还是按照需要自动创建....
我对内核源码的结构也不是清晰,大概知道在driver/tty/serial/* 下,
[== Undefined ==]
% ls shared/superuber-kernel-angler/drivers/tty/serial
21285.c arc_uart.c crisv10.h ioc4_serial.c m32r_sio.h mpsc.c msm_smd_tty.c pmac_zilog.h serial_core.c suncore.c ucc_uart.c
68328serial.c atmel_serial.c dz.c ip22zilog.c m32r_sio_reg.h mrst_max3110.c msm_smd_tty.o pnx8xxx_uart.c serial_core.o sunhv.c vr41xx_siu.c
8250 bcm63xx_uart.c dz.h ip22zilog.h Makefile mrst_max3110.h mux.c pxa.c serial_ks8695.c sunsab.c vt8500_serial.c
altera_jtaguart.c bfin_sport_uart.c efm32-uart.c jsm max3100.c msm_serial.c mxs-auart.c rp2.c serial-tegra.c sunsab.h xilinx_uartps.c
altera_uart.c bfin_sport_uart.h icom.c Kconfig max310x.c msm_serial.h netx-serial.c sa1100.c serial_txx9.c sunsu.c zs.c
amba-pl010.c bfin_uart.c icom.h kgdb_nmi.c mcf.c msm_serial_hs.c nwpserial.c samsung.c sh-sci.c sunzilog.c zs.h
amba-pl011.c built-in.o ifx6x60.c kgdboc.c mfd.c msm_serial_hs_hwreg.h of_serial.c samsung.h sh-sci.h sunzilog.h
apbuart.c clps711x.c ifx6x60.h lantiq.c modules.builtin msm_serial_hs_lite.c omap-serial.c sb1250-duart.c sirfsoc_uart.c timbuart.c
apbuart.h cpm_uart imx.c lpc32xx_hs.c modules.order msm_serial_hs_lite.o pch_uart.c sc26xx.c sirfsoc_uart.h timbuart.h
ar933x_uart.c crisv10.c ioc3_serial.c m32r_sio.c mpc52xx_uart.c msm_serial_hs.o pmac_zilog.c sccnxp.c sn_console.c uartlite.c
如果需要阅读源码,那么具体在那些地方有tty*节点的定义(如Bluetooth的节点为ttyHS0)....
试试 ls -l 看下用户名,如果是GPS生成的,owner也应该是gps
据我所知,GPS是通过conf配置文件选择串口的,framework会读取该配置。 或者是GPS hal库直接指定某个串口 蓝牙,GPS这些uart口,指定用哪一个串口大多是由conf一类的配置文件指定的,与驱动关系不大。 建议看下android system/etc/下的一些配置
