CC2531 Not found as /dev/usb device

This is a long post: I have run all steps for installing the necessary pkg’s for running zigbee2mqtt via the CC2531 pre-flashed dongle.
What I have found is that there is no mount created for this device once it is plugged into the raspberry pi-4 running Ubuntu Mate 20.04 (No Open Hab or Home Assistant are involved nor are any packages loaded from those systems).
The cdc_acm driver (kernel module) can be loaded with a ‘sudo modprobe cdc_acm’ command and verified with an ‘lsmod’ command. Further dmesg and journactl confirm that the unit exists without errors but no /dev/ttyXYZ is created. This means there is no way (that I know of to map it via configuration.yaml) for /opt/zigbeee2mqtt/npm start to succeed and the resulting logs show that it cannot find any device.
Running an ‘ll /dev/tty*’ does not show the device being listed or ‘officially’ mounted.
Below is a very long set of steps I did ‘post-install’ of all the zigbee2mqtt packages.
So, I believe that the driver is maybe auto-loaded during the initialization phase after running ‘npm start’

My suspicion is this: There is no driver:
The driver must NOT be loading as this appears to confirm:

usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 12 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=32 #Cfgs= 1
P: Vendor=0451 ProdID=16ae Rev=39.62
S: Manufacturer=Texas Instruments
S: Product=CC2531 USB Dongle
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#=0x0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

The main error from npm start is below, and yes there is no ttyACM0 so ‘start’ should fail.
Maybe someone knows why the dongle with its wonderful green led (which is on) or the
cdc_acm driver or some other missing driver does not create the proper tty path?
---->
Starting Zigbee2MQTT version 1.16.2 (commit #0514204)
Zigbee2MQTT:info 2020-12-21 14:33:29: Starting zigbee-herdsman (0.13.37)
Zigbee2MQTT:debug 2020-12-21 14:33:29: Using zigbee-herdsman with settings: ‘{“adapter”:{“concurrent”:null,“delay”:null},“backupPath”:"/opt/zigbee2mqtt/data/coordinator_backup.json",“databaseBackupPath”:"/opt/zigbee2mqtt/data/database.db.backup",“databasePath”:"/opt/zigbee2mqtt/data/database.db",“network”:{“channelList”:[11],“extendedPanID”:[221,221,221,221,221,221,221,221],“networkKey”:“HIDDEN”,“panID”:6754},“serialPort”:{“path”:"/dev/ttyACM0"}}’
Zigbee2MQTT:error 2020-12-21 14:33:30: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2020-12-21 14:33:30: Failed to start zigbee
Zigbee2MQTT:error 2020-12-21 14:33:30: Exiting…
Zigbee2MQTT:error 2020-12-21 14:33:30: Error: Error while opening serialport ‘Error: Error: No such file or directory, cannot open /dev/ttyACM0’
at Znp. (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:136:32)
---->
The long story continues…
System: Raspberry Pi-4 running Ubuntu Mate 20.04
No other customization in the way of udev rules, init scripts, custom packages
have been installed — This is a bare metal load of ubuntu-mate.

// Run this to make sure that module cdc_acm is loaded by the kernel.
sudo modprobe cdc_acm

// Confirm with dmesg and/or journalctl
dmesg output:
[ 299.805539] usbcore: registered new interface driver cdc_acm
[ 299.805546] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

lsmod | grep cdc_acm
cdc_acm 45056 0

// At this point there is a legit driver ready to accept a USB dongle
// Disconnect then reconnect the CC2531 dongle …

journalctl -b | grep -E “(xhci_hcd|: usb)”
journalctl -b | grep -E “(cdc_acm|: usb)”

Dec 21 11:47:05 pisys1-34 kernel: usbcore: registered new interface driver cdc_acm

Dec 21 12:00:22 pisys1-34 kernel: usb 1-1.2: USB disconnect, device number 5
Dec 21 12:00:36 pisys1-34 kernel: usb 1-1.2: new full-speed USB device number 6 using xhci_hcd
Dec 21 12:00:36 pisys1-34 kernel: usb 1-1.2: New USB device found, idVendor=0451, idProduct=16ae, bcdDevice=39.62
Dec 21 12:00:36 pisys1-34 kernel: usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec 21 12:00:36 pisys1-34 kernel: usb 1-1.2: Product: CC2531 USB Dongle
Dec 21 12:00:36 pisys1-34 kernel: usb 1-1.2: Manufacturer: Texas Instruments

// The above shows that after re-plugging in CC2531 the ‘stick’ it is placed as
// USB device number 6.
// The above also shows that usbcore registered cdc_acm
// Notice that the CC2531 is assigned to device number 6

// Spelunking the file system:

ll /dev/bus/usb/001/006
crw-rw-r-- 1 root root 189, 5 Dec 21 12:00 /dev/bus/usb/001/006

ll /sys/bus/usb/devices/


lrwxrwxrwx 1 root root 0 Apr 1 2020 1-1 -> …/…/…/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/

// Now confirm that the system knows what device number 6 is:

ll /sys/bus/usb/devices/1-1/1-1.2/

cat /sys/bus/usb/devices/1-1/1-1.2/manufacturer
Texas Instruments

// and using the same cat command for some of this devices attributes:

devnum 6

authorized 1

product CC2531 USB Dongle

idProduct 16ae

idVendor 0451
busnum 1

dev 189:5

version 2.00
speed 12

driver -> …/…/…/…/…/…/…/…/…/…/bus/usb/drivers/usb/
port -> …/1-1:1.0/1-1-port2/
subsystem -> …/…/…/…/…/…/…/…/…/…/bus/usb/

// So at this point the device is known by the system.
// It does not appear in /dev/tty*
// The same system will automatically accept a usb keyboard and usb mouse
// without issue.

// Check for blacklistings

/etc/modprobe.d$ find ./ -type f -name “*.conf” -exec grep ‘usb’ {} ; | more
options snd-usb-audio index=-2
options snd-usb-caiaq index=-2
options snd-usb-ua101 index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2

Keep snd-usb-audio from beeing loaded as first soundcard

options snd-usb-audio index=-2
blacklist usbmouse
blacklist usbkbd

// While this shows two entries for usbmouse and usbkbd, I am able to plug in
// both of those devices and use them without issue.
// My guess: The dongle is not mounted.
// How should one go about mounting the dongle if it does not show up?

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0451:16ae Texas Instruments, Inc. CC2531 Dongle
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Any additional relevant ideas would help. (please note this is NOT raspbian os, it is Ubuntu Mate, and there is no home assistant or other packages running so those solutions do not apply here)