Help figuring out how to associate a device with GNSS subsystem (gnss_* modules)
John Scott <[email protected]> Tue, 20 Jan 2026 00:17:32 +0000
| Newsgroups | org.kernelnewbies.kernelnewbies |
|---|---|
| Message-ID | <[email protected]> |
--===============1674689921515695498==
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
boundary="=-ub6mlS0SH8AtFtbR0Bxk"
--=-ub6mlS0SH8AtFtbR0Bxk
Content-Type: multipart/signed; micalg="pgp-sha512";
protocol="application/pgp-signature"; boundary="=-tAIWsgzPgt8HD6CRkXtO"
--=-tAIWsgzPgt8HD6CRkXtO
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hello,
I'm trying to figure out how to use the kernel's GNSS subsystem to create d=
evice nodes such as /dev/gnss0 on a conventional (non-embedded) system. Som=
e information from the author about the subsystem is at https://events19.li=
nuxfoundation.org/wp-content/uploads/2017/12/The-GNSS-Subsystem-Johan-Hovol=
d-Hovold-Consulting-AB.pdf#nameddest=3Dpage.17
GNSS receivers usually use a serial interface to send geolocation informati=
on to a host in a text format known informally as NMEA-0183. The hardware I=
have is an Adafruit Ultimate GPS (MediaTek MT3333) with a bundled USB seri=
al converter (Silicon Labs CP2102N) so that the device can be plugged into =
a computer with USB. At=C2=A0https://cdn-shop.adafruit.com/product-files/10=
59/CD+PA1616D+Datasheet+v.05.pdf is a detailed description. I have been usi=
ng it without the GNSS subsystem, just accessing the TTY in user-space appl=
ications like gpsd and GeoClue. Enumerating serial devices is notoriously d=
ifficult in general, but I'm lucky that the serial converter has a manufact=
urer's serial number baked in so I can reliably detect device insertion wit=
h a udev rule like this:
SUBSYSTEM=3D=3D"tty", ATTRS{idVendor}=3D=3D"10c4", ATTRS{idProduct}=3D=3D"=
ea60", ATTRS{serial}=3D=3D"0e30054dff9fec11a7ec8fcfa29c855c", ...
I can use such a udev rule to match the hardware or start a service if I wa=
nt, but without such a rule and out-of-the-box, the cp210x kernel driver ge=
ts loaded for this family of USB-serial converters, and the GNSS receiver i=
s accessible at /dev/ttyUSB0 for example. Then I can read from the device t=
o my heart's content.
What's confusing me, however, is how to tell the appropriate GNSS kernel mo=
dule(s) about this device so they can offer advanced features. (For example=
, some GNSS receivers such as MediaTek's allow changing the serial baud rat=
e on-the-fly using a special command. It's conceivable that a MediaTek GNSS=
driver would take care of this negotiation if a user application does 'stt=
y 115200', say.) There are Devicetree properties recognized by the kernel f=
or setting up GNSS device nodes, but I'm using an ordinary x86_64 PC at the=
moment which doesn't use Devicetree at all. The USB vendor/product ID is f=
or the generic serial converter, and I would like to use a udev rule or som=
ething similar with "smarts" to use my device's serial number for intellige=
nt identification.
There are a couple kernel modules to this subsystem:
=E2=80=A2 gnss
=E2=80=A2 gnss-mtk (depends on gnss-serial)
=E2=80=A2 gnss-serial (depends on gnss)
=E2=80=A2 gnss-usb (depends on gnss)
Technically gnss-mtk is the most specialized to my device; this is for Medi=
aTek receivers. I think gnss-usb is for a non-TTY-type device that sends an=
d receives the NMEA-0183 data from the USB endpoint descriptors directly, s=
o I *think* it's irrelevant for me. In particular, the cp210x driver does a=
great job with the serial converter and exposing the USB serial converter =
as a TTY, so I guess gnss-mtk (and transitively gnss-serial) is supposed to=
"wrap" around the TTY device. The USB device is probably useless without c=
p210x because otherwise there'd be no way to know how to talk to the conver=
ter.
There is a teeny bit of information at https://docs.kernel.org/admin-guide/=
abi-testing.html#abi-sys-class-gnss-gnss-n-type that shows sysfs nodes for =
devices should look like "/sys/class/gnss/gnss<N>". We shouldn't have to wo=
rry about setting the 'type' parameter described there because it's implici=
t in the use of gnss-mtk.
As suggested at https://lwn.net/Articles/143397/ my serial adapter gets exp=
osed as /dev/char/188:0, so I tried doing this:
# printf '188:0' > /sys/bus/serial/drivers/gnss-mtk/bind
but I get "No such device". Also, that LWN article is only using USB device=
s in its example and it's not obvious what syntax I would use for a serial =
device anyway. It also says that the device should not be bound to any driv=
er already, but we need gnss-mtk to "wrap" around the serial converter's ow=
n driver so this is very tricky... I also looked in /sys/class/gnss/ for cl=
ues but that directory is empty.
It looks like in drivers/gnss/core.c there is a gnss_allocate_device() func=
tion that creates device nodes and assigns them names.
In summary, how do I actually use this subsystem? Is Devicetree the only wa=
y to set this up?
Thanks
--=-tAIWsgzPgt8HD6CRkXtO
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part
-----BEGIN PGP SIGNATURE-----
iPsEABYKAKMWIQSiPzylvTnZ6xisfzWz9N0oYfTNugUCaW7JlnIYaHR0cHM6Ly9q
b2huc2NvdHQubWUvLndlbGwta25vd24vbmkvc2hhLTI1Ni9zWUF3OTN6QUVrRkIy
RDREM1hOemRSeHEyMFBjNnByZGdtbEVWeXo0QUZRP2N0PWFwcGxpY2F0aW9uJTJG
cGdwLWtleXMSHGpzY290dEBwb3N0ZW8ubmV0AAoJELP03Shh9M267ooBAOAuLTYB
IJcEiJlZxi4PgCM0NLOaCBGk/FPrCLWSXIZ1AP9t/xOzayku17/CLVOdEQH9X5xg
LooHMYXivBizhMlXAA==
=wcwP
-----END PGP SIGNATURE-----
--=-tAIWsgzPgt8HD6CRkXtO--
--=-ub6mlS0SH8AtFtbR0Bxk
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64
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
MAkGA1UEBhMCUEwxITAfBgNVBAoMGEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEcMBoGA1UEAwwT
Q2VydHVtIFNNSU1FIFJTQSBDQTAeFw0yNTA0MDUwMzQwMjZaFw0yNjA0MDUwMzQwMjVaMD4xGjAY
BgNVBAMMEWpzY290dEBwb3N0ZW8ubmV0MSAwHgYJKoZIhvcNAQkBFhFqc2NvdHRAcG9zdGVvLm5l
dDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMGCQxB2MnqxQXP08/dE2d5v78+3ucS2
UiFvb9FN0b0j/BifMZvN/9bumJzpmpVwd0d5JR9+9M/svSRf4hIBf+hLGtYJrbtte5jYEPPAlXYS
oHyNybf7ko1uJ/rHldKdvga5G6fNfThyMVb7ODDuikIDj8DFnJAi7GDuu/LD6evazvNMIwk0ii6E
1qgzf61kHw3nVp3hGs3SSm4AXj+I9ySiap7f9+h8mjqM/z2WdXfWAp07IRa5TfDhmfMjIKlIHGoO
2zf9D4i7ml12ojv/yycmjRJJnFs0Q5ic4yP5puVkC/yCjH6OMg20PaXTcPyFXhDQsmMeuAQgcD9t
V8O3IzGU4Io9gujZPJxda1yZ7BpZH7jV9xuIKbL4WoQGZSZ0dwXvzpDW9NPVeEXH2us+Xfqc6VbE
znMPPhtCqRgeqt603w87gnf7puzKBPLEoQo9VCLRx5cJPlip05TtRP4PH6uOCwK5BYs3LFSnJkg7
iJ8sTrEfbO+gEeboiO2TGplMGC/6zEcVh4yM5mPjfVkFijCZw+AavzIOlE6NHCEqKET/D7wZzAZ/
/122lLaAZ3lNS1fO9FikACxEJ9EbKZJmzphU3TGCpmobcXiDB/esYIi65In7dKy+B0XE7zDy5KZb
oKYz9o/N4u6lfUJb9Gf6kEmBJDTcyYUZZ2pJPyjwMRUvAgMBAAGjggG2MIIBsjAMBgNVHRMBAf8E
AjAAMEEGA1UdHwQ6MDgwNqA0oDKGMGh0dHA6Ly9jc21pbWVyc2FjYS5jcmwuY2VydHVtLnBsL2Nz
bWltZXJzYWNhLmNybDCBgwYIKwYBBQUHAQEEdzB1MC4GCCsGAQUFBzABhiJodHRwOi8vY3NtaW1l
cnNhY2Eub2NzcC1jZXJ0dW0uY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY3NtaW1lcnNhY2EucmVw
b3NpdG9yeS5jZXJ0dW0ucGwvY3NtaW1lcnNhY2EuY2VyMB8GA1UdIwQYMBaAFGb7ww++9L/gnMmr
Td5HGb3AyqZoMB0GA1UdDgQWBBQej7nlaxX39WVBUY+aBFMp+c99RzBMBgNVHSAERTBDMAkGB2eB
DAEFAQIwNgYLKoRoAYb2dwJkAgEwJzAlBggrBgEFBQcCARYZaHR0cHM6Ly93d3cuY2VydHVtLnBs
L0NQUzAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwDgYDVR0PAQH/BAQDAgTwMBwGA1Ud
EQQVMBOBEWpzY290dEBwb3N0ZW8ubmV0MA0GCSqGSIb3DQEBCwUAA4ICAQB+Oua8ErSAIhxfeM+I
KN89z4gk+OJRLVxhvJ81We2s/NH5DWwxH3kKL+C8a88xuO0LY/kLSiog7zgWl3olyNbnOM6vnfNz
YWRZqC6TZEh+b02vn6h9/UIsNbB5npZS6H5P9bwF7RQzpxhDmstXsw1knfKtqIliG5EU06D3Npuy
TkDFTsBvGaMiMOLMA9IzELyg8VDjJNbQ+PlVh+ZALKlbBhAjR869mwsqRYK1YHGArNndyUvgGF2J
2JlOhUvhfkiFS0IKCa1fYCJU+xQVKxSO4j2fob1wuLFRqP2luNh2G7LsD1mOw3qKcLSf/l8608On
JVZYtJDdSBgldpeugvC72bar0DvC0E9YFCkQLylwuuk4ISuexe+ieT0cXAbM3m7jJ2iYWXAc8WZZ
SuIUXEPKccQlu6ElHIwTQuUpIuUgKp6dkZY8EnYqdGM2Jn9DSh6kUFr4ePIxi6LZUdFfzjVS6w2i
TObtpE4FSUe000wciTADR0VvmLb8qrAp+uhOm/Oi6X0QHND7p2OpRCs+MqUdT5GT5oR58pKG+cMG
EZchJ3B45vmp2fDD7tVz/lFuZjcm9JM8a/xRkMy+luwqFb3y20bY8pAMi1Ov7Fut6LokemaL28r4
d0bPAeBfmj9i12tRygZpN5SZy/kZ+PfbbTrDBfBxWA0kMdhsvChinxZAGzCCBs4wggS2oAMCAQIC
ECVSDRtr8FpV2nzxlWEVFsgwDQYJKoZIhvcNAQELBQAwTjELMAkGA1UEBhMCUEwxITAfBgNVBAoM
GEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEcMBoGA1UEAwwTQ2VydHVtIFNNSU1FIFJTQSBDQTAe
Fw0yNTA0MDUwMzQwMjZaFw0yNjA0MDUwMzQwMjVaMD4xGjAYBgNVBAMMEWpzY290dEBwb3N0ZW8u
bmV0MSAwHgYJKoZIhvcNAQkBFhFqc2NvdHRAcG9zdGVvLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAMGCQxB2MnqxQXP08/dE2d5v78+3ucS2UiFvb9FN0b0j/BifMZvN/9bumJzp
mpVwd0d5JR9+9M/svSRf4hIBf+hLGtYJrbtte5jYEPPAlXYSoHyNybf7ko1uJ/rHldKdvga5G6fN
fThyMVb7ODDuikIDj8DFnJAi7GDuu/LD6evazvNMIwk0ii6E1qgzf61kHw3nVp3hGs3SSm4AXj+I
9ySiap7f9+h8mjqM/z2WdXfWAp07IRa5TfDhmfMjIKlIHGoO2zf9D4i7ml12ojv/yycmjRJJnFs0
Q5ic4yP5puVkC/yCjH6OMg20PaXTcPyFXhDQsmMeuAQgcD9tV8O3IzGU4Io9gujZPJxda1yZ7BpZ
H7jV9xuIKbL4WoQGZSZ0dwXvzpDW9NPVeEXH2us+Xfqc6VbEznMPPhtCqRgeqt603w87gnf7puzK
BPLEoQo9VCLRx5cJPlip05TtRP4PH6uOCwK5BYs3LFSnJkg7iJ8sTrEfbO+gEeboiO2TGplMGC/6
zEcVh4yM5mPjfVkFijCZw+AavzIOlE6NHCEqKET/D7wZzAZ//122lLaAZ3lNS1fO9FikACxEJ9Eb
KZJmzphU3TGCpmobcXiDB/esYIi65In7dKy+B0XE7zDy5KZboKYz9o/N4u6lfUJb9Gf6kEmBJDTc
yYUZZ2pJPyjwMRUvAgMBAAGjggG2MIIBsjAMBgNVHRMBAf8EAjAAMEEGA1UdHwQ6MDgwNqA0oDKG
MGh0dHA6Ly9jc21pbWVyc2FjYS5jcmwuY2VydHVtLnBsL2NzbWltZXJzYWNhLmNybDCBgwYIKwYB
BQUHAQEEdzB1MC4GCCsGAQUFBzABhiJodHRwOi8vY3NtaW1lcnNhY2Eub2NzcC1jZXJ0dW0uY29t
MEMGCCsGAQUFBzAChjdodHRwOi8vY3NtaW1lcnNhY2EucmVwb3NpdG9yeS5jZXJ0dW0ucGwvY3Nt
aW1lcnNhY2EuY2VyMB8GA1UdIwQYMBaAFGb7ww++9L/gnMmrTd5HGb3AyqZoMB0GA1UdDgQWBBQe
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
--=-ub6mlS0SH8AtFtbR0Bxk--
--===============1674689921515695498==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Kernelnewbies mailing list
[email protected]
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
--===============1674689921515695498==--