How PiKVM is identified on the target host

Hi, I done with override.yaml regarding Identifying PiKVM on the target host - PiKVM Handbook

I changed vendor_id, product_id and devices fields. I see my new vendors for HDMI, USB and Display on my MAC laptop host System menu. All looks ok. But if I run command on host MAC’s terminal:

system_profiler SPUSBDataType

I see my new vendors and: USB Type-C Digital Adapter with Vendor ID 0x343c

This vendor ID is associated with PiKVM. It doesn’t present in public databases, but could be found via search. I need to completely hide the usage of PiKVM on MAC. Could you help?

Hi @dahn , and welcome to the forum.

Does this issue persist if you disconnect the PiKVM from your Mac and connect it back again?

Yes, after disconnect USB cable from MAC this USB Type-C Digital Adapter disappears. And after connect it appears again

Could you please post preformatted output of kvmd -m run on your device, at least the otg: section of it?

Sure. I changed my new real vendor to ‘‘MyNewVendor’’ here. And I didnt find any 0x343c or 13372 in this yaml.

otg:
    config: ''
    device_version: -1
    devices:
        audio:
            # enabled: false
            enabled: true
            start: true

        drives:
            count: 1
            default:
                cdrom: false
                fua: true
                inquiry_string:
                    cdrom:
                        # product: Optical Drive
                        product: InstallDisk
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: MyNewVendor

                    flash:
                        # product: Flash Drive
                        product: USBST
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: MyNewVendor


                removable: true
                rw: true
                stall: false

            enabled: false
            start: true

        ethernet:
            driver: ecm
            enabled: false
            host_mac: ''
            kvm_mac: ''
            start: true

        hid:
            keyboard:
                start: true

            mouse:
                start: true

            mouse_alt:
                start: true


        msd:
            default:
                cdrom: true
                fua: true
                inquiry_string:
                    cdrom:
                        # product: Optical Drive
                        product: InstallDisk
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: MyNewVendor

                    flash:
                        # product: Flash Drive
                        product: USBST
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: MyNewVendor


                removable: true
                rw: false
                stall: false

            start: true

        serial:
            enabled: false
            start: true


    endpoints: 9
    gadget: kvmd
    init_delay: 3.0
    # manufacturer: PiKVM
    manufacturer: MyNewVendor
    max_power: 250
    meta: /run/kvmd/otg
    # product: PiKVM Composite Device
    product: MyNewVendorProduct
    # product_id: 260
    product_id: 50484
    remote_wakeup: true
    # serial: CAFEBABE
    serial: random_digits
    udc: ''
    usb_version: 512
    user: kvmd
    # vendor_id: 7531
    vendor_id: 1133

Maybe it would help us - when I connect USB cable to host, Key Assistance utility appears on MAC with message ‘‘Can not determine the keyboard manufacturer……’'. And I press quit after.

And what happens if you put in ID of a real keyboard, let’s say 05d5:0624?

I changed everywhere in yaml - vendor_id: 0x05d5 and product_id: 0x0624, manufacturer: Super Gate Technology. After reboot PiKVM, MAC’s Keyboard Setup Assistant said: Your Super Gate Technology device cannot be identified and will not be usable until it is identified……

And I see Super Gate Technology vendor in MAC’s terminal and: USB Type-C Digital Adapter with Vendor ID 0x343c still presents.

It is not clear to me how MAC determines the vendor. And from where does it get 0x343c.

new kvmd -m:

otg:
    config: ''
    device_version: -1
    devices:
        audio:
            # enabled: false
            enabled: true
            start: true

        drives:
            count: 1
            default:
                cdrom: false
                fua: true
                inquiry_string:
                    cdrom:
                        # product: Optical Drive
                        product: '1572'
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: '1493'

                    flash:
                        # product: Flash Drive
                        product: '1572'
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: '1493'


                removable: true
                rw: true
                stall: false

            enabled: false
            start: true

        ethernet:
            driver: ecm
            enabled: false
            host_mac: ''
            kvm_mac: ''
            start: true

        hid:
            keyboard:
                start: true

            mouse:
                start: true

            mouse_alt:
                start: true


        msd:
            default:
                cdrom: true
                fua: true
                inquiry_string:
                    cdrom:
                        # product: Optical Drive
                        product: '1572'
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: '1493'

                    flash:
                        # product: Flash Drive
                        product: '1572'
                        revision: '1.00'
                        # vendor: PiKVM
                        vendor: '1493'


                removable: true
                rw: false
                stall: false

            start: true

        serial:
            enabled: false
            start: true


    endpoints: 9
    gadget: kvmd
    init_delay: 3.0
    # manufacturer: PiKVM
    manufacturer: Super Gate Technology
    max_power: 250
    meta: /run/kvmd/otg
    # product: PiKVM Composite Device
    product: Multimedia Keyboard Receiver
    # product_id: 260
    product_id: 1572
    remote_wakeup: true
    # serial: CAFEBABE
    serial: 05668509100
    udc: ''
    usb_version: 512
    user: kvmd
    # vendor_id: 7531
    vendor_id: 1493

1572₁₀ = 0x624
1493₁₀ = 0x5D5

I will try with real apple ids now….

Vendor can be looked up, there are both online and offline databases.

I’m no Mac expert (on the contrary), but it increasingly looks like this is some sort of a cached value. Rebooting the Mac should start with a clean sheet. Try that, and then plug in your PiKVM.

ok, I set Apple vendor and restart MAC and PiKVM. Keyboard Setup Assistant wasnt appeared and laptop recognized new vendor. But USB Type-C Digital Adapter with Vendor ID 0x343c still presents in terminal.

From documentation: macOS uses I/O Kit to enumerate every IOUSBDevice on the bus and calls into the USB stack to fetch the device’s built-in descriptors. Those include:

  • Vendor ID (VID) – a 16-bit hex code assigned by the USB-IF to the manufacturer

  • Product ID (PID) – a 16-bit hex code assigned by the manufacturer to that particular product

  • Manufacturer string (optional) – human-readable text the device

I/O Kit’s USB driver reads the VID/PID from the device’s USB configuration descriptor.

If VID/PID isn’t in Apple’s list , system_profiler simply prints the hex code without a friendly name.

This is why I see Vendor ID 0x343c.

I found solution:) It’s my fault. I use Type-C ↔ Micro-USB adapter for MAC because MAC doesnt has USB port. That adapter contains its own controller chip and advertises itself first to macOS with VID 0x343c. So, if use Type-C ↔ Type-C passive cable from PiKVM to host without any adapter, everything looks good. Thanks for helping and conversation!