h1. GSD4t h2. Introduction According to "ifixit":http://www.ifixit.com/Teardown/Samsung-Galaxy-Nexus-Teardown/7182/2 the Galaxy Nexus's GPS is a "GSD4t":http://www.csr.com/products/25/sirfstariv-gsd4t h2. Information gathered so far. * The GPS is connected to /dev/ttyO0 * the init sequence require the following special serial settings: ** part of the init sequence is at 460800 Bps ** part of it is at:
termios.c_cflag = CRTSCTS | CS8 | CREAD | CLOCAL | B115200;** Here are some logs:
$ grep "c_cflags=" -r * strace.903:1345240189.403289 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240195.711608 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240195.712615 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240196.290496 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240196.291015 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240196.291870 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240196.292358 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240196.370361 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240196.370880 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b4, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240201.072235 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b4, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.909:1345240201.073638 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.910:1345240201.398132 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x18b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.910:1345240201.404327 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.910:1345240201.406768 ioctl(13, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.910:1345240201.408294 ioctl(13, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.917:1345240203.624877 ioctl(24, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.917:1345240203.626007 ioctl(24, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.918:1345240204.809295 ioctl(24, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.918:1345240204.809814 ioctl(24, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.918:1345240204.810638 ioctl(24, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0 strace.918:1345240204.811157 ioctl(24, SNDCTL_TMR_START or TCSETS, {c_iflags=0x4, c_oflags=0, c_cflags=0x800018b2, c_lflags=0, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0* After the init sequence the GPS is at 115200 8N1 and is useing the SIRF protoco