rikus.org: bc125at-perl
On GitHub: bc125at-perl
Oct 7, 2018 - bc125at-perl cdc_acm error workaround
On recent kernels, an error is occurring when you plug the device in that prevents the ttyUSB0 device from being usable:[ 750.728732] cdc_acm 3-4:1.0: Zero length descriptor references [ 750.728747] cdc_acm: probe of 3-4:1.0 failed with error -22There is a workaround available for this:
- Grab the latest bc125at-perl code from GitHub with the DEFAULT_TTY adjustment, or apply this adjustment manually in Serial.pm
- As root: echo 1965 0017 2 076d 0006 > /sys/bus/usb/drivers/cdc_acm/new_id
- (1965 is the hexadecimal vendor id for Uniden, and 0017 is the hexadecimal product id for the BC125AT)
- As root: Make the /dev/ttyACM0 device r/w accessible by your regular user
- Issue report on GitHub: cdc_acm 3-4:1.0: Zero length descriptor references
- Relevant mailing list thread
Feb 8, 2013 - bc125at-perl
Version 0.5.2
A Perl-based utility for configuring/programming the Uniden Bearcat BC125AT on Linux.
Features implemented:
- Auto-detect device
- Auto-load driver
- Read channels from scanner
- Write channels to scanner
- Read search groups from scanner
- Write search groups to scanner
- Interactive session
- Usable command-line interface
- Incomplete but usable Gtk2 GUI
Features not implemented:
- Creative name
Requirements:
- A Unix or Linux system
- Perl
- A willingness to tweak the code if needed
- Device::SerialPort
- Obtainable from CPAN: Device::SerialPort on CPAN.
- May also be obtainable through distro's package manager, likely under the name perl-Device-SerialPort if RPM-based.
- Gtk2 (optional but recommended - needed for GUI only)
- May already be installed on many systems. Also check CPAN or your distro's package manager, likely under the name perl-Gtk2 if RPM-based.
usage info
usage: bc125at-perl channel read --file freqs.txt [--impatient] Loads the channels currently stored in the scanner into the specified file, which may be edited and then reloaded into the scanner. The --impatient option may be used if you want to stop trying to load as soon as you hit several frequencies in a row which have not been set yet (under the assumption that all subsequent frequencies will also be zero). bc125at-perl channel write --file freqs.txt Loads the channels defined in freqs.txt and writes them to the scanner. WARNING: This is a destructive operation! In other words, doing this will cause your existing channels defined in the scanner to be overwritten (hopefully with meaningful values, but the author of this software takes no responsibility for harm or loss of data that may occur as a result of its use). bc125at-perl search read --file search.txt Read the search groups from the scanner into the specified text file. bc125at-perl search write --file search.txt Writes the search groups defined in the specified text file to the scanner. bc125at-perl interactive Start an interactive session through which commands may be sent to the scanner. As of Feb 2013, this document is available from Uniden as a reference: http://info.uniden.com/twiki/pub/UnidenMan4/BC125AT/BC125AT_PC_Protocol_V1.01.pdf bc125at-perl detect Check to see if a compatible device is attached. If this fails, then you're not going to have much luck doing anything else. Note that this is a passive action and doesn't load the driver. If you want to load the driver, use the 'driver' command. bc125at-perl driver Attempt to set up the driver for the device. This involves loading the 'usbserial' kernel module and creating a device in /dev.
Last modified: 2018-10-07 12:34:12 -0500