LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 01-02-2024, 02:54 AM   #1
starkid
Member
 
Registered: Jan 2012
Posts: 91

Rep: Reputation: Disabled
Accessing an old USB MP3 Player that has no driver


The device is an Onyx 4GB by Mach Speed Technologies. I disconnected it while the firmware was being updated in Windows XP. I can't do anything further with it in Windows because no driver is found even when I'm connected to the Internet (which I tried in Windows 10 or 11, not sure which) and because the device does not show up in Device Manager (which I observed in Windows XP and Win 7 in addition to Win 10/11).

On (parabola) linux the device shows up with lsusb just as well as my other usb devices, but it never shows up in /dev or with fdisk or gparted. usb-devices shows that its Driver=(none), which I assume is the problem. All other usb devices work fine and have drivers listed. I'm using the same usb cable I used to connect the device in linux before the incident, and I've tried different usb ports and three different computers.

The user manual says the device has a "removable hard disk which can be directly used as a U-disk without installation of driver in Win2000 and above," but there are no instructions on how to do that.

The manufacturer is out of business and I haven't been able to find a driver elsewhere. Given that the device is still detected, is there some way I can access it for formatting or anything at all? Can I force linux to use some sort of generic usb driver for the device?

I was able to access the device in some minimal way via recovery software that was (I hope) from a company that bought out the manufacturer. However, nothing seems to have changed except that the device is listed as "SigmaTel, Inc. Player Recovery Device" by lsusb. I simply ran the recovery software in a VM that the player was attached to; the device was never mounted and I didn't have anydirect access to its internals.
 
Old 01-02-2024, 06:50 AM   #2
RandomTroll
Senior Member
 
Registered: Mar 2010
Distribution: Slackware
Posts: 1,973

Rep: Reputation: 271Reputation: 271Reputation: 271
All of the USB MP3 players I have used linux has seen as USB storage devices, the first about 15 years ago. Have you attached other USB drives? Has the module usb_storage loaded? It would be exotic for it to require a custom driver to be seen as a USB drive.
 
Old 01-02-2024, 08:23 AM   #3
michaelk
Moderator
 
Registered: Aug 2002
Posts: 25,777

Rep: Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935
Quote:
I disconnected it while the firmware was being updated in Windows
I would ask why but since the damage is done not much else to post except disconnecting during an update could brick the player. If it is still usable as a player then removing the drive might be your only choice to add music.

The USB MP3 players that I have owned usually connect as either an UMS aka mass storage device and looks like a regular flash drive or a MTP device. If it is an MTP device then no /dev will be created and how to access the player depends on what mtp apps and drivers are installed.

Post the output of lsusb for the player.
 
Old 01-02-2024, 12:24 PM   #4
starkid
Member
 
Registered: Jan 2012
Posts: 91

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by RandomTroll View Post
All of the USB MP3 players I have used linux has seen as USB storage devices, the first about 15 years ago. Have you attached other USB drives? Has the module usb_storage loaded? It would be exotic for it to require a custom driver to be seen as a USB drive.
Yes, all my other usb drives are working normally on the computer. I did try
Code:
modprob usb_storage
as root but nothing changed.

Last edited by starkid; 01-02-2024 at 12:25 PM.
 
Old 01-02-2024, 12:32 PM   #5
starkid
Member
 
Registered: Jan 2012
Posts: 91

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by michaelk View Post
The USB MP3 players that I have owned usually connect as either an UMS aka mass storage device and looks like a regular flash drive or a MTP device. If it is an MTP device then no /dev will be created and how to access the player depends on what mtp apps and drivers are installed.
I've always accessed the device via USB. Never used MTP.
Code:
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 037: ID 066f:3500 SigmaTel, Inc. Player Recovery Device
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 
Old 01-05-2024, 12:11 AM   #6
starkid
Member
 
Registered: Jan 2012
Posts: 91

Original Poster
Rep: Reputation: Disabled
verbose version of lsusb

Code:
Bus 003 Device 039: ID 066f:3500 SigmaTel, Inc. Player Recovery Device
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x066f SigmaTel, Inc.
  idProduct          0x3500 Player Recovery Device
  bcdDevice            0.26
  iManufacturer           1 Sigmatel, Inc.
  iProduct                2 STMP3500
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol    255 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered
 
Old 01-05-2024, 03:27 AM   #7
starkid
Member
 
Registered: Jan 2012
Posts: 91

Original Poster
Rep: Reputation: Disabled
Created a udev rule but still cannot mount

I created a udev rule according to https://wiki.archlinux.org/title/Udev. The device now shows up as /dev/onyx-mp3, but I get the error that it's not a block device when I try to mount it.

fdisk /dev/onyx-mp3 and cfdisk /dev/onyx-mp3 give me the error "Inappropriate ioctl for device." I will give the steps I took and someone please tell me where I went wrong:

1. I got a device path by running udevadm monitor and then plugging in the device. This gave me something like
Code:
KERNEL[370382.355286] add      /devices/pci0000:00/0000:00:05.1/usb3/3-1 (usb)
KERNEL[370382.358628] add      /devices/pci0000:00/0000:00:05.1/usb3/3-1/3-1:1.0 (usb)
UDEV  [370382.375256] add      /devices/pci0000:00/0000:00:05.1/usb3/3-1 (usb)
UDEV  [370382.376176] add      /devices/pci0000:00/0000:00:05.1/usb3/3-1/3-1:1.0 (usb)
(Actually this I got from just now connecting the device to the vm I'm posting this from. Originally I attached it outside the vm and got two more lines of output; they were identical to the first and third lines except there was "bind" in place of "add.)

2. Then I got device info with udevadm info --attribute-walk --path=/devices/pci0000:00/0000:00:05.1/usb3/3-1/3-1:1.0 (i.e., I used the device path from the output of udevadm monitor. I tried both the long and the short path; the output seems the same).

3. Then I wrote the udev rule with KERNEL and SUBSYSTEM equal to attributes from the first level and SUBSYSTEMS, ATTR{idVendor}, and ATTR{iProduct} equal to attributes from a parent two levels above. Also MODE="0660" and TAG+="uaccess".

Apparently I've created access to the USB interface and not the USB storage. /dev/onyx-3 is a character device; can I use that somehow to gain access to the USB storage?

Last edited by starkid; 01-05-2024 at 03:28 AM.
 
Old 01-05-2024, 08:19 AM   #8
michaelk
Moderator
 
Registered: Aug 2002
Posts: 25,777

Rep: Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935
From what I can tell this is a special mode that happens when an error occurs during ROM boot. I don't know if any linux driver exists to access or boot the device in order to reload the firmware.
 
Old 01-05-2024, 12:21 PM   #9
starkid
Member
 
Registered: Jan 2012
Posts: 91

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by michaelk View Post
From what I can tell this is a special mode that happens when an error occurs during ROM boot. I don't know if any linux driver exists to access or boot the device in order to reload the firmware.
USB storage needs to be booted? I will be satisfied if I can just access storage. It's ok if I can no longer get the firmware to work.
 
Old 01-05-2024, 07:39 PM   #10
michaelk
Moderator
 
Registered: Aug 2002
Posts: 25,777

Rep: Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935Reputation: 5935
Quote:
USB storage needs to be booted?
A real flash drive has a microprocessor to communicate with the PC. I am assuming this function is part of the main firmware in the player. I am also assuming that there is some overall stub firmware code that remains and only runs if the main firmware does not update successfully. Unfortunately, I have not found any native linux driver or utility that can repair the player.

Just as an aside with something that has an OTG USB port like the Raspberry Pi Zero and the USB gadget driver I can create any sort of USB device like a flash drive, virtual serial port, virtual network adpater etc.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
USB Mass storage MP3 player has songs cut in half using Konqueror to transfer MonctonJohn Linux - Hardware 11 02-29-2008 06:29 AM
MP3 CD for use in MP3-CD Player thisisquincyorjim Linux - Software 2 05-13-2006 12:54 PM
S1 Mp3 player (Help Create a New Distro for an MP3 player!)) Ian_Hawdon Linux - General 3 12-05-2005 01:14 PM
mount mp3 player to /mnt/mp3? Muzzy Linux - General 4 05-09-2004 05:31 AM
MP3 CD player can't read MP3 CD's burned in linux food188 Linux - Software 2 01-11-2004 04:55 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 02:24 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration