Beagleplay mikrobus usage issues

Hello! I purchased the GNSS-7 mikroclick making sure it comes with a click id, but I am having issues doing anything with it.

I try to load the manifest file like this:

sudo cat /lib/firmware/mikrobus/GNSS-7-CLICK.mnfb > /sys/bus/mikrobus/devices/mikrobus-0/new_device

I typically get a permission denied, and will then have to perform:

sudo chmod 777 delete_device
sudo chmod 777 new_device

Then:

echo 0 > delete_device

And then again:

sudo cat /lib/firmware/mikrobus/GNSS-7-CLICK.mnfb > /sys/bus/mikrobus/devices/mikrobus-0/new_device

Once I get to this point shouldn’t I be able to look at the data from the click?

Navigating to sys/bus/iio/devices/iio:devices
It looks like the default adc click is loaded since all I can see in this directory is dev, in_voltage0_raw, in_voltage1_raw …etc

Am I doing this wrong?

dmesg output:
debian@BeaglePlay:/sys/bus/iio/devices/iio:device0$ dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.10.168-ti-arm64-r111 (voodoo@AM69-SK-32g-01) (gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1bullseye SMP Tue Sep 26 14:22:20 UTC 2023
[    0.000000] Machine model: BeagleBoard.org BeaglePlay
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 3 MiB
[    0.000000] OF: reserved mem: initialized node ipc-memories@9c800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009cb00000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node m4f-dma-memory@9cb00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009cc00000, size 14 MiB
[    0.000000] OF: reserved mem: initialized node m4f-memory@9cc00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009da00000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9da00000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009db00000, size 12 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@9db00000, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009c7fffff]
[    0.000000]   node   0: [mem 0x000000009c800000-0x000000009e6fffff]
[    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
[    0.000000]   node   0: [mem 0x000000009e780000-0x000000009fffffff]
[    0.000000]   node   0: [mem 0x00000000a0000000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] On node 0 totalpages: 524288
[    0.000000]   DMA zone: 8192 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 524288 pages, LIFO batch:63
[    0.000000] cma: Reserved 144 MiB at 0x00000000f4000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 32 pages/cpu s92824 r8192 d30056 u131072
[    0.000000] pcpu-alloc: s92824 r8192 d30056 u131072 alloc=32*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait net.ifnames=0 quiet
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[    0.000000] Memory: 1806944K/2097152K available (17280K kernel code, 2298K rwdata, 5420K rodata, 3776K init, 720K bss, 142752K reserved, 147456K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
[    0.000000] ITS [mem 0x01820000-0x0182ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
[    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x00000000800d0000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000000800e0000
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000004] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.000359] Console: colour dummy device 80x25
[    0.000399] printk: console [tty0] enabled
[    0.000448] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.000459] pid_max: default: 32768 minimum: 301
[    0.000728] LSM: Security Framework initializing
[    0.000776] Yama: becoming mindful.
[    0.000919] AppArmor: AppArmor initialized
[    0.000926] TOMOYO Linux initialized
[    0.001050] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.001071] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.003397] rcu: Hierarchical SRCU implementation.
[    0.004611] Platform MSI: msi-controller@1820000 domain created
[    0.004905] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.004972] EFI services will not be available.
[    0.005619] smp: Bringing up secondary CPUs ...
[    0.014378] Detected VIPT I-cache on CPU1
[    0.014417] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
[    0.014431] GICv3: CPU1: using allocated LPI pending table @0x00000000800f0000
[    0.014497] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.023349] Detected VIPT I-cache on CPU2
[    0.023373] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
[    0.023385] GICv3: CPU2: using allocated LPI pending table @0x0000000080100000
[    0.023424] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.032209] Detected VIPT I-cache on CPU3
[    0.032233] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
[    0.032243] GICv3: CPU3: using allocated LPI pending table @0x0000000080110000
[    0.032281] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.032383] smp: Brought up 1 node, 4 CPUs
[    0.032395] SMP: Total of 4 processors activated.
[    0.032402] CPU features: detected: 32-bit EL0 Support
[    0.032407] CPU features: detected: CRC32 instructions
[    0.032411] CPU features: detected: 32-bit EL1 Support
[    0.049122] CPU: All CPU(s) started at EL2
[    0.049181] alternatives: patching kernel code
[    0.050922] devtmpfs: initialized
[    0.060975] KASLR disabled due to lack of seed
[    0.061267] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.061317] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.065702] pinctrl core: initialized pinctrl subsystem
[    0.066391] DMI not present or invalid.
[    0.067156] NET: Registered protocol family 16
[    0.069067] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.069218] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.069415] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.069488] audit: initializing netlink subsys (disabled)
[    0.069757] audit: type=2000 audit(0.068:1): state=initialized audit_enabled=0 res=1
[    0.070299] thermal_sys: Registered thermal governor 'fair_share'
[    0.070303] thermal_sys: Registered thermal governor 'bang_bang'
[    0.070307] thermal_sys: Registered thermal governor 'step_wise'
[    0.070310] thermal_sys: Registered thermal governor 'user_space'
[    0.070314] thermal_sys: Registered thermal governor 'power_allocator'
[    0.071001] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.071136] ASID allocator initialised with 65536 entries
[    0.100163] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.100178] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.100183] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.100187] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.103090] cryptd: max_cpu_qlen set to 1000
[    0.106493] raid6: skip pq benchmark and using algorithm neonx8
[    0.106506] raid6: using neon recovery algorithm
[    0.107371] k3-chipinfo 43000014.chipid: Family:AM62X rev:SR1.0 JTAGID[0x0bb7e02f] Detected
[    0.107892] vdd_3v3: supplied by vsys_5v0
[    0.108864] iommu: Default domain type: Translated 
[    0.109583] SCSI subsystem initialized
[    0.109784] usbcore: registered new interface driver usbfs
[    0.109815] usbcore: registered new interface driver hub
[    0.109844] usbcore: registered new device driver usb
[    0.110338] mc: Linux media interface: v0.10
[    0.110363] videodev: Linux video capture interface: v2.00
[    0.110489] pps_core: LinuxPPS API ver. 1 registered
[    0.110493] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.110505] PTP clock support registered
[    0.110536] EDAC MC: Ver: 3.0.0
[    0.111272] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fc9100
[    0.112411] NetLabel: Initializing
[    0.112420] NetLabel:  domain hash size = 128
[    0.112423] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.112487] NetLabel:  unlabeled traffic allowed by default
[    0.113283] clocksource: Switched to clocksource arch_sys_counter
[    0.985813] VFS: Disk quotas dquot_6.6.0
[    0.985917] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.986108] FS-Cache: Loaded
[    0.986562] CacheFiles: Loaded
[    0.987077] AppArmor: AppArmor Filesystem Enabled
[    0.994112] NET: Registered protocol family 2
[    0.994372] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.995667] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.995903] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.996145] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.996370] TCP: Hash tables configured (established 16384 bind 16384)
[    0.996734] MPTCP token hash table entries: 2048 (order: 3, 49152 bytes, linear)
[    0.996850] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.996907] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.997129] NET: Registered protocol family 1
[    0.997938] RPC: Registered named UNIX socket transport module.
[    0.997946] RPC: Registered udp transport module.
[    0.997949] RPC: Registered tcp transport module.
[    0.997952] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.997963] NET: Registered protocol family 44
[    0.997980] PCI: CLS 0 bytes, default 64
[    0.998292] Trying to unpack rootfs image as initramfs...
[    1.530503] Freeing initrd memory: 15044K
[    1.531517] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    1.532093] kvm [1]: IPA Size Limit: 40 bits
[    1.532984] kvm [1]: vgic-v2@100010000
[    1.533008] kvm [1]: GIC system register CPU interface enabled
[    1.533100] kvm [1]: vgic interrupt IRQ9
[    1.533236] kvm [1]: Hyp mode initialized successfully
[    1.537639] Initialise system trusted keyrings
[    1.537878] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    1.543334] zbud: loaded
[    1.545974] NFS: Registering the id_resolver key type
[    1.546020] Key type id_resolver registered
[    1.546023] Key type id_legacy registered
[    1.546120] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.546126] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    1.546152] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    1.546863] fuse: init (API version 7.32)
[    1.584462] NET: Registered protocol family 38
[    1.584486] xor: measuring software checksum speed
[    1.588507]    8regs           :  2464 MB/sec
[    1.591893]    32regs          :  2919 MB/sec
[    1.595792]    arm64_neon      :  2530 MB/sec
[    1.595795] xor: using function: 32regs (2919 MB/sec)
[    1.595811] Key type asymmetric registered
[    1.595816] Asymmetric key parser 'x509' registered
[    1.595877] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    1.596098] io scheduler mq-deadline registered
[    1.598343] pinctrl-single 4084000.pinctrl: 34 pins, size 136
[    1.598877] pinctrl-single f4000.pinctrl: 171 pins, size 684
[    1.607006] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    1.621311] brd: module loaded
[    1.765381] loop: module loaded
[    1.766730] megasas: 07.714.04.00-rc1
[    1.771743] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.771754] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.771847] sky2: driver version 1.30
[    1.772859] VFIO - User Level meta-driver version: 0.3
[    1.773760] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.773841] ehci-pci: EHCI PCI platform driver
[    1.775748] i2c /dev entries driver
[    1.775944] Driver for 1-wire Dallas network protocol.
[    1.776024] DS1WM w1 busmaster driver - (c) 2004 Szabolcs Gyurko
[    1.778073] sdhci: Secure Digital Host Controller Interface driver
[    1.778081] sdhci: Copyright(c) Pierre Ossman
[    1.778362] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.779492] ledtrig-cpu: registered to indicate activity on CPUs
[    1.779922] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.780399] hid: raw HID events driver (C) Jiri Kosina
[    1.780864] usbcore: registered new interface driver usbhid
[    1.780869] usbhid: USB HID core driver
[    1.781778] optee: probing for conduit method.
[    1.781817] optee: revision 3.22 (001ace66)
[    1.798426] optee: dynamic shared memory is enabled
[    1.798656] optee: initialized driver
[    1.800503] NET: Registered protocol family 10
[    1.835838] Segment Routing with IPv6
[    1.835940] mip6: Mobile IPv6
[    1.835956] NET: Registered protocol family 17
[    1.836211] Key type dns_resolver registered
[    1.836217] mpls_gso: MPLS GSO support
[    1.836604] registered taskstats version 1
[    1.836618] Loading compiled-in X.509 certificates
[    1.836805] zswap: loaded using pool lzo/zbud
[    1.837109] Key type .fscrypt registered
[    1.837114] Key type fscrypt-provisioning registered
[    1.842099] Btrfs loaded, crc32c=crc32c-generic
[    1.842241] AppArmor: AppArmor sha1 policy hashing enabled
[    1.853583] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
[    1.919328] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0
[    1.919345] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    1.922566] omap_i2c 4900000.i2c: bus 5 rev0.12 at 10 kHz
[    1.950921] VDD_CORE: Bringing 750000uV into 850000-850000uV
[    1.951778] VDD_CORE: supplied by vsys_5v0
[    1.952723] VDD_1V8: supplied by vsys_5v0
[    1.953624] VDD_1V2: supplied by vsys_5v0
[    1.954658] VDD_SD_3V3: supplied by vdd_3v3
[    1.955794] VDDA_0V85: supplied by VDD_1V8
[    1.956956] VDDA_1V8: supplied by vdd_3v3
[    1.957893] VDD_2V5: supplied by vdd_3v3
[    1.960300] input: tps65219-pwrbutton as /devices/platform/bus@f0000/20000000.i2c/i2c-0/0-0030/tps65219-pwrbutton.1.auto/input/input0
[    1.960885] tps65219 0-0030: Setup as system-power-controller but pm_power_off function already registered, overwriting
[    1.961156] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
[    1.962764] omap_i2c 20010000.i2c: bus 1 rev0.12 at 10 kHz
[    1.964596] omap_i2c 20020000.i2c: bus 2 rev0.12 at 10 kHz
[    1.965934] omap_i2c 20030000.i2c: bus 3 rev0.12 at 400 kHz
[    1.966327] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
[    1.966472] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
[    1.966745] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    1.967057] ti-udma 485c0100.dma-controller: Number of rings: 82
[    1.969248] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
[    1.972477] ti-udma 485c0000.dma-controller: Number of rings: 150
[    1.976652] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
[    1.979937] 4a00000.serial: ttyS1 at MMIO 0x4a00000 (irq = 15, base_baud = 3000000) is a 8250
[    1.981323] 2b300000.serial: ttyS0 at MMIO 0x2b300000 (irq = 18, base_baud = 3000000) is a 8250
[    1.982638] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 29, base_baud = 3000000) is a 8250
[    1.982809] printk: console [ttyS2] enabled
[    1.984053] 2850000.serial: ttyS3 at MMIO 0x2850000 (irq = 30, base_baud = 3000000) is a 8250
[    1.984123] serial serial0: tty port ttyS3 registered
[    1.984765] omap8250 2860000.serial: PM domain pd:158 will not be powered off
[    1.985035] 2860000.serial: ttyS4 at MMIO 0x2860000 (irq = 31, base_baud = 3000000) is a 8250
[    1.985153] serial serial1: tty port ttyS4 registered
[    1.990778] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
[    1.991062] am65-cpsw-nuss 8000000.ethernet: Use random MAC address
[    1.997396] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
[    1.997400] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.998206] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    1.999700] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
[    2.008311] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    2.008342] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 1
[    2.008614] xhci-hcd xhci-hcd.2.auto: hcc params 0x0258fe6d hci version 0x110 quirks 0x0000000000010010
[    2.008682] xhci-hcd xhci-hcd.2.auto: irq 313, io mem 0x31100000
[    2.008805] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    2.008817] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 2
[    2.008829] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed
[    2.009050] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    2.009057] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.009062] usb usb1: Product: xHCI Host Controller
[    2.009066] usb usb1: Manufacturer: Linux 5.10.168-ti-arm64-r111 xhci-hcd
[    2.009070] usb usb1: SerialNumber: xhci-hcd.2.auto
[    2.009668] hub 1-0:1.0: USB hub found
[    2.009716] hub 1-0:1.0: 1 port detected
[    2.010097] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.010211] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[    2.010216] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.010221] usb usb2: Product: xHCI Host Controller
[    2.010225] usb usb2: Manufacturer: Linux 5.10.168-ti-arm64-r111 xhci-hcd
[    2.010229] usb usb2: SerialNumber: xhci-hcd.2.auto
[    2.010622] hub 2-0:1.0: USB hub found
[    2.010651] hub 2-0:1.0: config failed, hub doesn't have any ports! (err -19)
[    2.020361] rtc-ti-k3 2b1f0000.rtc: registered as rtc1
[    2.124603] sdhci-am654 fa00000.mmc: parsing dt failed (-517)
[    2.124964] mmc0: CQHCI version 5.10
[    2.127247] gpio gpiochip2: gpio-line-names is length 92 but should be at most length 87
[    2.133799] wlan_en: supplied by vdd_3v3
[    2.134269] vdd_3v3_sd: supplied by vdd_3v3
[    2.135232] mikrobus:mikrobus_port_register: registering port mikrobus-0 
[    2.135296] mikrobus mikrobus-0: mikrobus port 0 eeprom empty probing default eeprom
[    2.137144] bq32k 0-0068: registered as rtc0
[    2.137717] bq32k 0-0068: setting system clock to 2023-12-01T22:31:29 UTC (1701469889)
[    2.159648] w1_master_driver w1_bus_master1: Attaching one wire slave cc.057000000733 crc 39
[    2.171915] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    2.222330] it66121 2-004c: IT66121 revision 1 probed
[    2.232975] mmc0: Command Queue Engine enabled
[    2.232999] mmc0: new HS200 MMC card at address 0001
[    2.233869] mmcblk0: mmc0:0001 TB2916 14.6 GiB 
[    2.234118] mmcblk0boot0: mmc0:0001 TB2916 partition 1 4.00 MiB
[    2.234387] mmcblk0boot1: mmc0:0001 TB2916 partition 2 4.00 MiB
[    2.234611] mmcblk0rpmb: mmc0:0001 TB2916 partition 3 4.00 MiB, chardev (236:0)
[    2.236128]  mmcblk0: p1 p2
[    2.265322] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    2.440843] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
[    2.476388] usb 1-1: New USB device found, idVendor=0c45, idProduct=6366, bcdDevice= 1.00
[    2.476397] usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[    2.476402] usb 1-1: Product: Arducam USB Camera
[    2.476406] usb 1-1: Manufacturer: Arducam Technology Co., Ltd.
[    2.476410] usb 1-1: SerialNumber: UC684
[    2.905335] mikrobus_manifest:mikrobus_manifest_attach_device: parsed device 1, driver=neo-8, protocol=4, reg=0
[    2.905345] mikrobus_manifest:mikrobus_manifest_attach_device: device 1, number of properties=1
[    2.905354] mikrobus_manifest:mikrobus_manifest_parse:  GNSS 7 Click manifest parsed with 1 devices
[    2.905421] mikrobus mikrobus-0: registering device : neo-8
[    5.538264] tidss 30200000.dss: tidss_encoder_atomic_check: No bus_formats in connected display - force RGB888_1X24
[    5.788853] Console: switching to colour frame buffer device 240x67
[    5.899065] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
[    6.067057] debugfs: Directory 'pd:53' with parent 'pm_genpd' already present!
[    6.067443] sdhci-am654 fa00000.mmc: Got CD GPIO
[    6.068029] mmc2: CQHCI version 5.10
[    6.074979] debugfs: Directory 'pd:52' with parent 'pm_genpd' already present!
[    6.076051] mmc1: CQHCI version 5.10
[    6.082449] debugfs: Directory 'pd:51' with parent 'pm_genpd' already present!
[    6.090433] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    6.101969] input: gpio-keys as /devices/platform/gpio-keys/input/input1
[    6.102547] of_cfs_init
[    6.102612] of_cfs_init: OK
[    6.109334] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
[    6.115669] sdhci-am654 fa20000.mmc: card claims to support voltages below defined range
[    6.116300] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    6.119953] Freeing unused kernel memory: 3776K
[    6.128661] mmc2: new high speed SDIO card at address 0001
[    6.158550] Checked W+X mappings: passed, no W+X pages found
[    6.158661] Run /init as init process
[    6.158668]   with arguments:
[    6.158672]     /init
[    6.158680]   with environment:
[    6.158685]     HOME=/
[    6.158687]     TERM=linux
[    7.332264] bcfserial serial1-0: bcfserial started
[    7.577905] remoteproc remoteproc0: 30074000.pru is available
[    7.578716] remoteproc remoteproc1: 30078000.pru is available
[    7.803437] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    8.096399] Not activating Mandatory Access Control as /sbin/tomoyo-init does not exist.
[    8.308855] systemd[1]: systemd 247.3-7+deb11u4 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[    8.310039] systemd[1]: Detected architecture arm64.
[    8.311699] systemd[1]: Set hostname to <BeaglePlay>.
[    8.640961] systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.
[    8.896915] systemd[1]: Queued start job for default target Graphical Interface.
[    8.924585] random: systemd: uninitialized urandom read (16 bytes read)
[    8.926831] systemd[1]: Created slice system-getty.slice.
[    8.927366] random: systemd: uninitialized urandom read (16 bytes read)
[    8.929396] systemd[1]: Created slice system-modprobe.slice.
[    8.929544] random: systemd: uninitialized urandom read (16 bytes read)
[    8.931948] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    8.933657] systemd[1]: Created slice User and Session Slice.
[    8.934196] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    8.935219] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    8.935713] systemd[1]: Reached target Remote File Systems.
[    8.935793] systemd[1]: Reached target Slices.
[    8.935913] systemd[1]: Reached target Swap.
[    8.938341] systemd[1]: Listening on Syslog Socket.
[    8.939120] systemd[1]: Listening on fsck to fsckd communication Socket.
[    8.939515] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    8.940429] systemd[1]: Listening on Journal Audit Socket.
[    8.940934] systemd[1]: Listening on Journal Socket (/dev/log).
[    8.941788] systemd[1]: Listening on Journal Socket.
[    8.942722] systemd[1]: Listening on Network Service Netlink Socket.
[    8.943530] systemd[1]: Listening on udev Control Socket.
[    8.944020] systemd[1]: Listening on udev Kernel Socket.
[    8.949542] systemd[1]: Mounting Huge Pages File System...
[    8.956351] systemd[1]: Mounting POSIX Message Queue File System...
[    8.963644] systemd[1]: Mounting /sys/kernel/debug...
[    8.971643] systemd[1]: Mounting Kernel Trace File System...
[    8.982001] systemd[1]: Starting Set the console keyboard layout...
[    8.990135] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    8.999077] systemd[1]: Starting Load Kernel Module configfs...
[    9.008756] systemd[1]: Starting Load Kernel Module drm...
[    9.016773] systemd[1]: Starting Load Kernel Module fuse...
[    9.020433] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[    9.028658] systemd[1]: Starting File System Check on Root Device...
[    9.040806] systemd[1]: Starting Journal Service...
[    9.051460] systemd[1]: Starting Load Kernel Modules...
[    9.061092] systemd[1]: Starting Coldplug All udev Devices...
[    9.073230] systemd[1]: Mounted Huge Pages File System.
[    9.076244] systemd[1]: Mounted POSIX Message Queue File System.
[    9.079241] systemd[1]: Mounted /sys/kernel/debug.
[    9.081690] systemd[1]: Mounted Kernel Trace File System.
[    9.086200] systemd[1]: Finished Set the console keyboard layout.
[    9.091907] systemd[1]: Finished Create list of static device nodes for the current kernel.
[    9.095682] systemd[1]: modprobe@configfs.service: Succeeded.
[    9.097921] systemd[1]: Finished Load Kernel Module configfs.
[    9.100018] systemd[1]: modprobe@drm.service: Succeeded.
[    9.102033] systemd[1]: Finished Load Kernel Module drm.
[    9.105057] systemd[1]: modprobe@fuse.service: Succeeded.
[    9.107433] systemd[1]: Finished Load Kernel Module fuse.
[    9.120011] NET: Registered protocol family 36
[    9.129124] usbcore: registered new interface driver wpanusb
[    9.152915] systemd[1]: Mounting FUSE Control File System...
[    9.160809] systemd[1]: Mounting Kernel Configuration File System...
[    9.169830] systemd[1]: Started File System Check Daemon to report status.
[    9.175922] systemd[1]: Finished File System Check on Root Device.
[    9.178599] gb_bootrom: module is from the staging directory, the quality is unknown, you have been warned.
[    9.179672] greybus: registered new driver bootrom
[    9.183022] gb_spilib: module is from the staging directory, the quality is unknown, you have been warned.
[    9.183782] systemd[1]: Mounted FUSE Control File System.
[    9.190230] systemd[1]: Mounted Kernel Configuration File System.
[    9.192738] gb_firmware: module is from the staging directory, the quality is unknown, you have been warned.
[    9.194554] greybus: registered new driver gb-firmware
[    9.197841] gb_gbphy: module is from the staging directory, the quality is unknown, you have been warned.
[    9.199161] greybus: registered new driver gbphy
[    9.200014] systemd[1]: Starting Remount Root and Kernel File Systems...
[    9.203506] gb_gpio: module is from the staging directory, the quality is unknown, you have been warned.
[    9.204677] gb_gbphy: registered new driver gpio
[    9.207617] gb_hid: module is from the staging directory, the quality is unknown, you have been warned.
[    9.208794] greybus: registered new driver hid
[    9.212157] gb_i2c: module is from the staging directory, the quality is unknown, you have been warned.
[    9.213205] gb_gbphy: registered new driver i2c
[    9.226210] gb_log: module is from the staging directory, the quality is unknown, you have been warned.
[    9.227169] greybus: registered new driver log
[    9.231650] gb_loopback: module is from the staging directory, the quality is unknown, you have been warned.
[    9.233473] greybus: registered new driver loopback
[    9.240432] gb_raw: module is from the staging directory, the quality is unknown, you have been warned.
[    9.241829] greybus: registered new driver raw
[    9.244305] gb_spi: module is from the staging directory, the quality is unknown, you have been warned.
[    9.245258] gb_gbphy: registered new driver spi
[    9.249182] gb_uart: module is from the staging directory, the quality is unknown, you have been warned.
[    9.251005] gb_gbphy: registered new driver uart
[    9.260736] systemd[1]: Finished Load Kernel Modules.
[    9.271203] EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
[    9.295707] systemd[1]: Starting Apply Kernel Variables...
[    9.304782] systemd[1]: Finished Remount Root and Kernel File Systems.
[    9.314446] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[    9.314859] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
[    9.326662] systemd[1]: Starting Load/Save Random Seed...
[    9.335144] systemd[1]: Starting Create System Users...
[    9.348425] systemd[1]: Started Journal Service.
[    9.409838] systemd-journald[386]: Received client request to flush runtime journal.
[   10.158328] am65-cpsw-nuss 8000000.ethernet eth0: PHY [gpio-0:00] driver [Generic PHY] (irq=POLL)
[   10.158361] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
[   10.570417] random: systemd: uninitialized urandom read (16 bytes read)
[   10.594490] random: systemd: uninitialized urandom read (16 bytes read)
[   10.717359] random: crng init done
[   10.717387] random: 74 urandom warning(s) missed due to ratelimiting
[   10.859623] at24 0-0050: supply vcc not found, using dummy regulator
[   10.863832] at24 0-0050: 4096 byte 24c32 EEPROM, writable, 1 bytes/write
[   10.944376] gnss: GNSS driver registered with major 506
[   10.956010] gnss-ubx serial0-0: supply vcc not found, using dummy regulator
[   10.998660] davinci-mcasp 2b10000.mcasp: IRQ common not found
[   11.118966] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@9cb00000
[   11.119167] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode
[   11.129390] k3-m4-rproc 5000000.m4fss: local reset is deasserted for device
[   11.171937] remoteproc remoteproc2: 5000000.m4fss is available
[   11.175564] remoteproc remoteproc2: Direct firmware load for am62-mcu-m4f0_0-fw failed with error -2
[   11.175608] remoteproc remoteproc2: powering up 5000000.m4fss
[   11.175675] remoteproc remoteproc2: Direct firmware load for am62-mcu-m4f0_0-fw failed with error -2
[   11.175691] remoteproc remoteproc2: request_firmware failed: -2
[   11.454456] platform 78000000.r5f: could not request atcm region for resource
[   11.461885] platform 78000000.r5f: failed to get internal memories, ret = -16
[   11.469463] k3_r5_rproc bus@f0000:bus@b00000:r5fss@78000000: k3_r5_core_of_init failed, ret = -16
[   11.478759] k3_r5_rproc bus@f0000:bus@b00000:r5fss@78000000: k3_r5_cluster_of_init failed, ret = -16
[   11.488610] k3_r5_rproc: probe of bus@f0000:bus@b00000:r5fss@78000000 failed with error -16
[   11.506914] pvrsrvkm: loading out-of-tree module taints kernel.
[   11.595217] PVR_K:  409: Read BVNC 33.15.11.3 from HW device registers
[   11.595374] PVR_K:  409: RGX Device registered with BVNC 33.15.11.3
[   11.596900] [drm] Initialized pvr 1.15.6133109 20170530 for fd00000.gpu on minor 1
[   11.722278] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   11.979138] audit: type=1400 audit(1701469899.336:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lsb_release" pid=533 comm="apparmor_parser"
[   11.984832] audit: type=1400 audit(1701469899.340:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=536 comm="apparmor_parser"
[   11.984873] audit: type=1400 audit(1701469899.340:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=536 comm="apparmor_parser"
[   11.984884] audit: type=1400 audit(1701469899.340:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=536 comm="apparmor_parser"
[   11.989969] audit: type=1400 audit(1701469899.348:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=534 comm="apparmor_parser"
[   11.990002] audit: type=1400 audit(1701469899.348:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=534 comm="apparmor_parser"
[   12.030373] audit: type=1400 audit(1701469899.388:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/gpsd" pid=537 comm="apparmor_parser"
[   12.049813] audit: type=1400 audit(1701469899.408:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/aarch64-linux-gnu/lightdm/lightdm-guest-session" pid=535 comm="apparmor_parser"
[   12.049860] audit: type=1400 audit(1701469899.408:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/aarch64-linux-gnu/lightdm/lightdm-guest-session//chromium" pid=535 comm="apparmor_parser"
[   12.853651] using random self ethernet address
[   12.853680] using random host ethernet address
[   12.947988] using random self ethernet address
[   12.948009] using random host ethernet address
[   13.032041] Mass Storage Function, version: 2009/09/11
[   13.032067] LUN: removable file: (no medium)
[   13.043795] uvcvideo: Found UVC 1.00 device Arducam USB Camera (0c45:6366)
[   13.144470] input: Arducam USB Camera: Arducam USB as /devices/platform/bus@f0000/f910000.dwc3-usb/31100000.usb/xhci-hcd.2.auto/usb1/1-1/1-1:1.0/input/input2
[   13.145047] usbcore: registered new interface driver uvcvideo
[   13.145059] USB Video Class driver (1.1.1)
[   13.321550] Adding 2097148k swap on /var/swap.  Priority:-2 extents:4 across:3031036k SSFS
[   13.433696] usb 1-1: 4:1: cannot get freq at ep 0x84
[   13.601876] usbcore: registered new interface driver snd-usb-audio
[   13.825884] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   13.830871] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   14.242049] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   14.242132] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   14.474262] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[   14.476524] wlcore: WARNING Detected unconfigured mac address in nvs, derive from fuse instead.
[   14.476549] wlcore: WARNING This default nvs file can be removed from the file system
[   14.480127] wlcore: loaded
[   15.020189] wlcore: using inverted interrupt logic: 2
[   15.093910] wlcore: PHY firmware version: Rev 8.2.0.0.243
[   15.192028] wlcore: firmware booted (Rev 8.9.0.0.83)
[   15.300341] PVR_K:  900: RGX Firmware image 'rgx.fw.33.15.11.3' loaded
[   15.305370] IPv6: ADDRCONF(NETDEV_CHANGE): SoftAp0: link becomes ready
[   15.333264] PVR_K:  900: Shader binary image 'rgx.sh.33.15.11.3' loaded
[   16.029739] aufs 5.10.140-20230828
[   17.260134] audit: type=1400 audit(1701469904.517:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="docker-default" pid=978 comm="apparmor_parser"
[   17.515192] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   17.523195] Bridge firewalling registered
[   18.051511] Initializing XFRM netlink socket
[   18.206803] usb0: HOST MAC 1c:ba:8c:a2:ed:6a
[   18.206825] usb0: MAC 1c:ba:8c:a2:ed:6b
[   18.207996] usb1: HOST MAC 1c:ba:8c:a2:ed:6c
[   18.208011] usb1: MAC 1c:ba:8c:a2:ed:6d
[   26.828968] usb 1-1: 4:1: cannot get freq at ep 0x84
[   26.905241] usb 1-1: 4:1: cannot get freq at ep 0x84
[   27.962350] davinci-mcasp 2b10000.mcasp: Sample-rate is off by -11776 PPM
[   28.577969] davinci-mcasp 2b10000.mcasp: Sample-rate is off by -11776 PPM
[   28.905442] davinci-mcasp 2b10000.mcasp: Sample-rate is off by -11776 PPM
[   35.113099] ti-udma 485c0100.dma-controller: chan0 teardown timeout!
[ 2293.727272] mikrobus mikrobus-0: removing device neo-8
[ 2324.436032] mikrobus_manifest:mikrobus_manifest_attach_device: parsed device 1, driver=neo-8, protocol=4, reg=0
[ 2324.436047] mikrobus_manifest:mikrobus_manifest_attach_device: device 1, number of properties=1
[ 2324.436065] mikrobus_manifest:mikrobus_manifest_parse:  GNSS 7 Click manifest parsed with 1 devices
[ 2324.436153] mikrobus mikrobus-0: registering device : neo-8
[ 2324.436702] gnss-ubx serial0-0: supply vcc not found, using dummy regulator

Seems right, but GPS/GNSS doesn’t come up as IIO like typical sensors. I will try to dig up how to use GPS/GNSS in Linux.

Not super useful, but the driver is running. The ABI just doesn’t seem useful Linux Kernel Documentation / ABI / testing / sysfs-class-gnss.

debian@BeaglePlay:~$ dmesg | grep mikro
[    2.141905] mikrobus:mikrobus_port_register: registering port mikrobus-0 
[    2.141977] mikrobus mikrobus-0: mikrobus port 0 eeprom empty probing default eeprom
[    2.917343] mikrobus_manifest:mikrobus_manifest_attach_device: parsed device 1, driver=neo-8, protocol=4, reg=0
[    2.917355] mikrobus_manifest:mikrobus_manifest_attach_device: device 1, number of properties=1
[    2.917365] mikrobus_manifest:mikrobus_manifest_parse:  GNSS 7 Click manifest parsed with 1 devices
[    2.917438] mikrobus mikrobus-0: registering device : neo-8
debian@BeaglePlay:~$ cat /sys/class/gnss/gnss0/type 
UBX

You helped me figure it out! Turns out all I had to do was:

sudo cat /dev/gnss0

Now it’s spitting out all kinds of data.

Thank you!

1 Like

Sure enough, just doing that started spitting out all sorts of data to me. I’ve seen tools to parse this data, but I figured that Linux must have something that should be easy enough to setup, but I am still finding it to be a pain.

First, I tried gpsctl

debian@BeaglePlay:~$ sudo gpsctl --direct /dev/gnss0
[sudo] password for debian: 
/dev/gnss0 identified as a NMEA0183 at 0 baud.

but gpsmon still spit out nothing useful. I tried to look at the status of the gpsd daemon:

debian@BeaglePlay:~$ sudo systemctl status gpsd
 gpsd.service - GPS (Global Positioning System) Daemon
     Loaded: loaded (/lib/systemd/system/gpsd.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-12-05 22:59:09 UTC; 20h ago
TriggeredBy: ● gpsd.socket
   Main PID: 1958 (gpsd)
      Tasks: 1 (limit: 2116)
     Memory: 896.0K
        CPU: 2min 58.711s
     CGroup: /system.slice/gpsd.service
             └─1958 /usr/sbin/gpsd

Dec 05 22:59:09 BeaglePlay systemd[1]: Starting GPS (Global Positioning System) Daemon...
Dec 05 22:59:09 BeaglePlay systemd[1]: Started GPS (Global Positioning System) Daemon.
Dec 06 19:03:37 BeaglePlay gpsd[1958]: gpsd:ERROR: SER: device open of /dev/gnss0 failed: Perm>
Dec 06 19:03:37 BeaglePlay gpsd[1958]: gpsd:ERROR: SER: read-only device open of /dev/gnss0 fa>
Dec 06 19:03:37 BeaglePlay gpsd[1958]: gpsd:ERROR: /dev/gnss0: device activation failed, freei>

I tried what was obvious to me…

debian@BeaglePlay:~$ sudo chmod ugo+rw /dev/gnss0
debian@BeaglePlay:~$ sudo systemctl restart gpsd
debian@BeaglePlay:~$ sudo systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
     Loaded: loaded (/lib/systemd/system/gpsd.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-12-06 19:06:49 UTC; 4s ago
TriggeredBy: ● gpsd.socket
    Process: 3635 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, statu>
   Main PID: 3636 (gpsd)
      Tasks: 1 (limit: 2116)
     Memory: 480.0K
        CPU: 19ms
     CGroup: /system.slice/gpsd.service
             └─3636 /usr/sbin/gpsd

Dec 06 19:06:49 BeaglePlay systemd[1]: Starting GPS (Global Positioning System) Daemon...
Dec 06 19:06:49 BeaglePlay systemd[1]: Started GPS (Global Positioning System) Daemon.

Still, gpsmon is useless…

tcp://localhost:2947          JSON slave driver>
(82) {"class":"VERSION","release":"3.22","rev":"3.22","proto_major":3,"proto_minor":14}
(32) {"class":"DEVICES","devices":[]}
(122) {"class":"WATCH","enable":true,"json":false,"nmea":false,"raw":2,"scaled":false,"timing":
false,"split24":false,"pps":true}

OK, figured out the command that triggered the error.

debian@BeaglePlay:~$ sudo gpsdctl add /dev/gnss0
debian@BeaglePlay:~$ sudo systemctl status gpsd
● gpsd.service - GPS (Global Positioning System) Daemon
     Loaded: loaded (/lib/systemd/system/gpsd.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-12-06 19:06:49 UTC; 4min 51s ago
TriggeredBy: ● gpsd.socket
    Process: 3635 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $OPTIONS $DEVICES (code=exited, statu>
   Main PID: 3636 (gpsd)
      Tasks: 1 (limit: 2116)
     Memory: 560.0K
        CPU: 43ms
     CGroup: /system.slice/gpsd.service
             └─3636 /usr/sbin/gpsd

Dec 06 19:06:49 BeaglePlay systemd[1]: Starting GPS (Global Positioning System) Daemon...
Dec 06 19:06:49 BeaglePlay systemd[1]: Started GPS (Global Positioning System) Daemon.
Dec 06 19:11:38 BeaglePlay gpsd[3636]: gpsd:ERROR: SER: device open of /dev/gnss0 failed: Perm>
Dec 06 19:11:38 BeaglePlay gpsd[3636]: gpsd:ERROR: SER: read-only device open of /dev/gnss0 fa>
Dec 06 19:11:38 BeaglePlay gpsd[3636]: gpsd:ERROR: /dev/gnss0: device activation failed, freei>

And it seems apparmor is the culprit…

Dec 06 19:26:59 BeaglePlay gpsdctl[4202]: gpsd_control(action=add, arg=/dev/gnss0)
Dec 06 19:26:59 BeaglePlay audit[3636]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/gpsd" name="/dev/gnss0" pid=3636 comm="gpsd" requested_mask="wr" denied_mask="wr" fsuid=106 ouid=0
Dec 06 19:26:59 BeaglePlay kernel: audit: type=1400 audit(1701890819.945:17): apparmor="DENIED" operation="open" profile="/usr/sbin/gpsd" name="/dev/gnss0" pid=3636 comm="gpsd" requested_mask="wr" denied_mask="wr" fsuid=106 ouid=0
Dec 06 19:26:59 BeaglePlay kernel: audit: type=1400 audit(1701890819.945:18): apparmor="DENIED" operation="open" profile="/usr/sbin/gpsd" name="/dev/gnss0" pid=3636 comm="gpsd" requested_mask="r" denied_mask="r" fsuid=106 ouid=0
Dec 06 19:26:59 BeaglePlay audit[3636]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/gpsd" name="/dev/gnss0" pid=3636 comm="gpsd" requested_mask="r" denied_mask="r" fsuid=106 ouid=0
Dec 06

I’ll mess with the apparmor settings later. gack security

debian@BeaglePlay:~$ sudo apt install -y apparmor-utils
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  python3-apparmor python3-libapparmor
Suggested packages:
  vim-addon-manager
The following NEW packages will be installed:
  apparmor-utils python3-apparmor python3-libapparmor
0 upgraded, 3 newly installed, 0 to remove and 2 not upgraded.
Need to get 382 kB of archives.
After this operation, 1,141 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main arm64 python3-libapparmor arm64 2.13.6-10 [93.1 kB]
Get:2 http://deb.debian.org/debian bullseye/main arm64 python3-apparmor arm64 2.13.6-10 [146 kB]
Get:3 http://deb.debian.org/debian bullseye/main arm64 apparmor-utils arm64 2.13.6-10 [142 kB]
Fetched 382 kB in 1s (642 kB/s)         
Selecting previously unselected package python3-libapparmor.
(Reading database ... 129492 files and directories currently installed.)
Preparing to unpack .../python3-libapparmor_2.13.6-10_arm64.deb ...
Unpacking python3-libapparmor (2.13.6-10) ...
Selecting previously unselected package python3-apparmor.
Preparing to unpack .../python3-apparmor_2.13.6-10_arm64.deb ...
Unpacking python3-apparmor (2.13.6-10) ...
Selecting previously unselected package apparmor-utils.
Preparing to unpack .../apparmor-utils_2.13.6-10_arm64.deb ...
Unpacking apparmor-utils (2.13.6-10) ...
Setting up python3-libapparmor (2.13.6-10) ...
Setting up python3-apparmor (2.13.6-10) ...
Setting up apparmor-utils (2.13.6-10) ...
Processing triggers for man-db (2.9.4-2) ...
Scanning processes...                                                                          
Scanning processor microcode...                                                                
Scanning linux images...                                                                       

Failed to check for processor microcode upgrades.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.
debian@BeaglePlay:~$ echo '  /dev/gnss* rw,' | sudo tee /etc/apparmor.d/local/usr.sbin.gpsd
  /dev/gnss* rw,
debian@BeaglePlay:~$ sudo sed 's/#include <local/include <local/' -i /etc/apparmor.d/usr.sbin.gpsd 
debian@BeaglePlay:~$ sudo aa-enforce /etc/apparmor.d/usr.sbin.gpsd 
Setting /etc/apparmor.d/usr.sbin.gpsd to enforce mode.
debian@BeaglePlay:~$ sudo gpsdctl add /dev/gnss0
debian@BeaglePlay:~$ gpsctl
/dev/gnss0 identified as a u-blox SW EXT CORE 4.04 (7f89f7),HW 00190000.

I’m still a bit lost what to do practically after this, but at least I’ve gotten around gpsd not being able to talk to /dev/gnss0.

Curious what you see if you run this c++ code

// compile instructions:
// g++ test_gps.cpp -o test_gps -lgps

// had to install libgps-dev
// sudo apt install libgps-dev
// this gets you the approprate header files

#include
#include <gps.h>

int main(){
//gps_init();
struct gps_data_t gpsData;
if(gps_open(“localhost”, “2947”, &gpsData) != 0){
std::cerr << “Error opening GPSD connection.” << std::endl;
return 1;
}

gps_stream(&gpsData, WATCH_ENABLE | WATCH_JSON, nullptr);

while(true){
if (gps_waiting(&gpsData, 5000000)){
if (gps_read(&gpsData, nullptr, 0) == -1){
std::cerr << “Error reading GPS data.” << std::endl;
break;
}

std::cout << "Latitude: " << gpsData.fix.latitude << ", Longitude: " << gpsData.fix.longitude << std::endl;
std::cout << "Mode: " << gpsData.fix.mode << ", Status: " << gpsData.fix.status << std::endl;
std::cout << "Altitude: " << gpsData.fix.altitude << std::endl;
std::cout << "Velocity: " << gpsData.fix.speed << std::endl;
std::cout << "Course: " << gpsData.fix.track << std::endl;
}
}
//close gpsd connection
gps_stream(&gpsData, WATCH_DISABLE, nullptr);
gps_close(&gpsData);

return 0;
}

When debugging, I disabled gpsd, so I got this…

debian@BeaglePlay:~$ sudo ./test_gps 
[sudo] password for debian: 
Error opening GPSD connection.

When I re-enabled gpsd.socket, I got this…

debian@BeaglePlay:~$ sudo ./test_gps 
Latitude: nan, Longitude: nan
Mode: 0, Status: 0
Altitude: nan
Velocity: nan
Course: nan
Latitude: nan, Longitude: nan
Mode: 0, Status: 0
Altitude: nan
Velocity: nan
Course: nan
Latitude: nan, Longitude: nan
Mode: 0, Status: 0
Altitude: nan
Velocity: nan
Course: nan

Going back to my hack on apparmor, still nothing…

debian@BeaglePlay:~$ sudo aa-complain /etc/apparmor.d/usr.sbin.gpsd 
Setting /etc/apparmor.d/usr.sbin.gpsd to complain mode.
debian@BeaglePlay:~$ sudo gpsdctl add /dev/gnss0
debian@BeaglePlay:~$ journalctl | tail -20 | grep gps
Dec 07 18:40:54 BeaglePlay sudo[37805]:   debian : TTY=pts/0 ; PWD=/home/debian ; USER=root ; COMMAND=/usr/sbin/gpsdctl add /dev/gnss0
Dec 07 18:40:54 BeaglePlay gpsdctl[37806]: gpsd_control(action=add, arg=/dev/gnss0)
Dec 07 18:40:54 BeaglePlay gpsdctl[37806]: reached a running gpsd
debian@BeaglePlay:~$ sudo ./test_gps 
Latitude: nan, Longitude: nan
Mode: 0, Status: 0
Altitude: nan
Velocity: nan
Course: nan
Latitude: nan, Longitude: nan
Mode: 0, Status: 0
Altitude: nan
Velocity: nan
Course: nan
Latitude: nan, Longitude: nan
Mode: 0, Status: 0
Altitude: nan
Velocity: nan
Course: nan

I’m not sure what I was doing wrong, because at one point I had gpsmon spitting out actual locations.

sudo cat /dev/gnss0 still is spewing something that looks like an NMEA data stream, but I’m not posting here. Not that anyone couldn’t find me, but I just don’t think throwing up random GPS coordinates where I’m at is a good practice.

Ah! Later, when actually trying to do the read using test_gps, something did stop the access.

Well, not positive what the issue is, but I guess the chmod is also needed.

sudo chmod ugo+r /dev/gnss0
sudo gpsdctl add /dev/gnss0
./test_gps 

Now, data is coming out.

1 Like

Awesome!!! Yeah I didn’t want to post my gps coordinates either, but I essentially got the the same thing you did as well a bunch of zeros and NaN’s. But it appears you’ve solved this with the permissions! I’ll give this a shot when I get home!

Thank you for your help!

James

It’s working great on my end after changing the permissions.

Thank again for your help,

James