This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Amarok does not see Sansa in MSC mode, only 2 tracks MTP

Tags: None
(comma "," separated)
paolo.crosetto
Registered Member
Posts
6
Karma
0
OS
Dear all,

I used to be able to use amarok with my Sansa clip 8gb. I have not tried it for a while, today I tried again and it does not work.

I am on opensuse 11.3 KDE 4.6.1, and amarok .rpm from opensuse KDE unstable amarok-2.4.1.60git.1301241711-1.4.x86_64; note that same beavour with opensuse amarok stable amarok-2.4.0.90-114.2.x86_64.

MSC mode:
The device mounts OK in Dolphin and is connected, scanned, browsed and played for OK in clementine. Amarok does not see it. Here is the ldebug og:
Code: Select all
amarok: BEGIN: void MediaDeviceCache::slotAddSolidDevice(const QString&)
amarok:   [MediaDeviceCache] Found new Solid device with udi =  "/org/freedesktop/UDisks/devices/sdb"
amarok:   [MediaDeviceCache] Device name is =  "Sansa Clip 8GB"  and was made by  "SanDisk"
amarok:   [MediaDeviceCache] device is a Storage drive, still need a volume
amarok:   BEGIN: void MountPointManager::deviceAdded(const QString&)
amarok:     [MountPointManager] looking for udi  "/org/freedesktop/UDisks/devices/sdb"
amarok:     BEGIN: void MountPointManager::createHandlerFromDevice(const Solid::Device&, const QString&)
amarok:       [MountPointManager] Device added and mounted, checking handlers
amarok:       BEGIN: virtual bool MassStorageDeviceHandlerFactory::canHandle(const Solid::Device&) const
amarok:       END__: virtual bool MassStorageDeviceHandlerFactory::canHandle(const Solid::Device&) const [Took: 0.002s]
amarok:       [MountPointManager] found handler for  "/org/freedesktop/UDisks/devices/sdb"
amarok:       BEGIN: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&, SqlStorage*) const
amarok:         [MassStorageDeviceHandler] not mounted, can't do anything
amarok:       END__: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&, SqlStorage*) const [Took: 0s]
amarok:       [MountPointManager] Factory  "uuid" could not create device handler
amarok:     END__: void MountPointManager::createHandlerFromDevice(const Solid::Device&, const QString&) [Took: 0.002s]
amarok:   END__: void MountPointManager::deviceAdded(const QString&) [Took: 0.009s]
amarok:   BEGIN: void MediaDeviceMonitor::deviceAdded(const QString&)
amarok:     BEGIN: void MediaDeviceMonitor::checkDevice(const QString&)
amarok:       BEGIN: virtual bool AudioCdConnectionAssistant::identify(const QString&)
amarok:       END__: virtual bool AudioCdConnectionAssistant::identify(const QString&) [Took: 0s]
amarok:       BEGIN: virtual bool IpodConnectionAssistant::identify(const QString&)
amarok:         Device udi:  "/org/freedesktop/UDisks/devices/sdb"
amarok:         Device name:  "SanDisk - Sansa Clip 8GB"
amarok:         BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const
amarok:           [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty
amarok:         END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const [Took: 0s]
amarok:         Mount point:  ""
amarok:         vendor:  "SanDisk" , product:  "Sansa Clip 8GB"
amarok:       END__: virtual bool IpodConnectionAssistant::identify(const QString&) [Took: 0.001s]
amarok:       BEGIN: virtual bool MtpConnectionAssistant::identify(const QString&)
amarok:         Not a PMP
amarok:       END__: virtual bool MtpConnectionAssistant::identify(const QString&) [Took: 0s]
amarok:       BEGIN: virtual bool UmsConnectionAssistant::identify(const QString&)
amarok:         Device udi:  "/org/freedesktop/UDisks/devices/sdb"
amarok:         Device name:  "SanDisk - Sansa Clip 8GB"
amarok:         BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const
amarok:           [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty
amarok:         END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const [Took: 0s]
amarok:         Mount point:  ""
amarok:         vendor:  "SanDisk" , product:  "Sansa Clip 8GB"
amarok:         BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const
amarok:           [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty
amarok:         END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const [Took: 0s]
amarok:       END__: virtual bool UmsConnectionAssistant::identify(const QString&) [Took: 0s]
amarok:     END__: void MediaDeviceMonitor::checkDevice(const QString&) [Took: 0.001s]
amarok:   END__: void MediaDeviceMonitor::deviceAdded(const QString&) [Took: 0.002s]
amarok: END__: void MediaDeviceCache::slotAddSolidDevice(const QString&) [Took: 0.017s]
amarok: BEGIN: void SqlRegistry::emptyCache()
amarok:   [SqlRegistry] Cache unchanged
amarok: END__: void SqlRegistry::emptyCache() [Took: 0.008s]


MTP mode:
in MTP mode dolphin does not see it (tries to open 'camera:/'); both clementine and amarok do succeed to mount and display the player, but see only 2 songs on it (there are ~300). My libmtp is version 1.0.3-2.1.

here is the output from amarok debug:
Code: Select all
amarok: BEGIN: void MediaDeviceCache::slotAddSolidDevice(const QString&)
amarok:   [MediaDeviceCache] Found new Solid device with udi =  "/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-2"
amarok:   [MediaDeviceCache] Device name is =  "SanDisk Sansa Clip"  and was made by  "SanDisk"
amarok:   [MediaDeviceCache] device is a PMP
amarok:   BEGIN: void MountPointManager::deviceAdded(const QString&)
amarok:     [MountPointManager] looking for udi  "/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-2"
amarok:     [MountPointManager] Did not find device from Solid for udi  "/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-2"
amarok:   END__: void MountPointManager::deviceAdded(const QString&) [Took: 0.023s]
amarok:   BEGIN: void MediaDeviceMonitor::deviceAdded(const QString&)
amarok:     BEGIN: void MediaDeviceMonitor::checkDevice(const QString&)
amarok:       BEGIN: virtual bool AudioCdConnectionAssistant::identify(const QString&)
amarok:       END__: virtual bool AudioCdConnectionAssistant::identify(const QString&) [Took: 0s]
amarok:       BEGIN: virtual bool IpodConnectionAssistant::identify(const QString&)
amarok:         Device udi:  "/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-2"
amarok:         Device name:  "SanDisk - SanDisk Sansa Clip"
amarok:         BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const
amarok:           [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty
amarok:         END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const [Took: 0s]
amarok:         Mount point:  ""
amarok:         vendor:  "SanDisk" , product:  "SanDisk Sansa Clip"
amarok:         Supported protocols:  ("mtp")
amarok:         Supported drivers:  ("usb")
amarok:       END__: virtual bool IpodConnectionAssistant::identify(const QString&) [Took: 0s]
amarok:       BEGIN: virtual bool MtpConnectionAssistant::identify(const QString&)
amarok:         Supported Protocols:  ("mtp")
amarok:       END__: virtual bool MtpConnectionAssistant::identify(const QString&) [Took: 0s]
amarok:       [MediaDeviceMonitor] Device identified with udi:  "/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-2"
amarok:       BEGIN: virtual void ConnectionAssistant::tellIdentified(const QString&)
amarok:         BEGIN: Collections::MtpCollection::MtpCollection(MediaDeviceInfo*)
amarok:           [MtpCollection] Getting mtp info
amarok:           [MtpCollection] Getting udi
amarok:           [MtpCollection] constructing handler
amarok:           BEGIN: Meta::MediaDeviceHandler::MediaDeviceHandler(QObject*)
amarok:           END__: Meta::MediaDeviceHandler::MediaDeviceHandler(QObject*) [Took: 0s]
amarok:           BEGIN: Meta::MtpHandler::MtpHandler(Collections::MtpCollection*)
amarok:           END__: Meta::MtpHandler::MtpHandler(Collections::MtpCollection*) [Took: 0s]
amarok:         END__: Collections::MtpCollection::MtpCollection(MediaDeviceInfo*) [Took: 0.071s]
amarok:         [MtpHandler] Initializing MTP stuff
amarok:         [MtpHandler] Getting list of raw devices
libusb couldn't open USB device /dev/bus/usb/002/007: Permission denied.
libusb requires write access to USB device nodes.
Device 0 (VID=0781 and PID=7434) is a SanDisk Sansa Clip v2.
amarok:         [MtpHandler] Error is:  0
amarok:         [MtpHandler] Got mtp list, connecting to device using thread
amarok:       END__: virtual void ConnectionAssistant::tellIdentified(const QString&) [Took: 0.073s]
amarok:       [MediaDeviceMonitor] Device already identified with udi:  "/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-2"
amarok:     END__: void MediaDeviceMonitor::checkDevice(const QString&) [Took: 0.073s]
amarok:   END__: void MediaDeviceMonitor::deviceAdded(const QString&) [Took: 0.074s]
amarok: END__: void MediaDeviceCache::slotAddSolidDevice(const QString&) [Took: 0.098s]
amarok: BEGIN: bool Meta::MtpHandler::iterateRawDevices(int, LIBMTP_raw_device_t*)
amarok:   [MtpHandler] Opening raw device number:  1
PTP_ERROR_IO: Trying again after re-initializing USB interface
amarok:   [MtpHandler] Correct device found
amarok: END__: bool Meta::MtpHandler::iterateRawDevices(int, LIBMTP_raw_device_t*) [Took: 1.6s]
amarok: BEGIN: void Meta::MtpHandler::slotDeviceMatchSucceeded(ThreadWeaver::Job*)
amarok:   BEGIN: void Meta::MtpHandler::getDeviceInfo()
amarok:     [MtpHandler] Battery at:  0 / 100
amarok:     [MtpHandler] setting default parent :  1
amarok:     [MtpHandler] Device supports:  "wav"
amarok:     [MtpHandler] Device supports:  "mp3"
amarok:     [MtpHandler] Device supports:  "asf"
amarok:     [MtpHandler] Device supports:  "wma"
amarok:     [MtpHandler] Device supports:  "ogg"
amarok:     [MtpHandler] Device supports:  "aa"
amarok:     [MtpHandler] Device supports:  "flac"
amarok:     [MtpHandler] Device supports:  ""
amarok:     [MtpHandler] Device supports:  ""
amarok:   END__: void Meta::MtpHandler::getDeviceInfo() [Took: 0.002s]
amarok:   BEGIN: void Collections::MediaDeviceCollection::slotAttemptConnectionDone(bool)
amarok:     [MediaDeviceCollection] starting full scan
amarok:     BEGIN: virtual void Collections::MediaDeviceCollection::startFullScanDevice()
amarok:     END__: virtual void Collections::MediaDeviceCollection::startFullScanDevice() [Took: 0s]
amarok:   END__: void Collections::MediaDeviceCollection::slotAttemptConnectionDone(bool) [Took: 0s]
amarok: END__: void Meta::MtpHandler::slotDeviceMatchSucceeded(ThreadWeaver::Job*) [Took: 0.003s]
amarok: BEGIN: bool Meta::MediaDeviceHandler::privateParseTracks()
amarok:   BEGIN: void Meta::MediaDeviceHandler::setupReadCapability()
amarok:     RCB does not exist
amarok:     Has read capability interface
amarok:     Making read capability
amarok:     Created rc
amarok:   END__: void Meta::MediaDeviceHandler::setupReadCapability() [Took: 0s]
amarok:   BEGIN: virtual void Meta::MtpHandler::prepareToParseTracks()
amarok:   END__: virtual void Meta::MtpHandler::prepareToParseTracks() [Took: 0.025s]
amarok:   BEGIN: Playlists::MediaDeviceUserPlaylistProvider::MediaDeviceUserPlaylistProvider(Collections::MediaDeviceCollection*)
amarok:   END__: Playlists::MediaDeviceUserPlaylistProvider::MediaDeviceUserPlaylistProvider(Collections::MediaDeviceCollection*) [Took: 0s]
Object::connect: No such signal Playlists::MediaDeviceUserPlaylistProvider::playlistSaved( const Playlists::MediaDevicePlaylistPtr &, const QString& )
Object::connect: No such signal Playlists::MediaDeviceUserPlaylistProvider::playlistRenamed( const Playlists::MediaDevicePlaylistPtr &)
Object::connect: No such signal Playlists::MediaDeviceUserPlaylistProvider::playlistsDeleted( const Playlists::MediaDevicePlaylistList & )
amarok:   BEGIN: virtual Playlists::PlaylistList Playlists::MediaDeviceUserPlaylistProvider::playlists()
amarok:   END__: virtual Playlists::PlaylistList Playlists::MediaDeviceUserPlaylistProvider::playlists() [Took: 0s]
amarok: END__: bool Meta::MediaDeviceHandler::privateParseTracks() [Took: 0.026s]
amarok: [PlaylistBrowserModel] 89  playlists for category  1
amarok: BEGIN: virtual Playlists::PlaylistList Playlists::MediaDeviceUserPlaylistProvider::playlists()
amarok: END__: virtual Playlists::PlaylistList Playlists::MediaDeviceUserPlaylistProvider::playlists() [Took: 0s]
amarok: [PlaylistBrowserModel] 89  playlists for category  1
amarok: BEGIN: void CollectionManager::slotNewCollection(Collections::Collection*)
amarok: END__: void CollectionManager::slotNewCollection(Collections::Collection*) [Took: 0s]
amarok: BEGIN: virtual void CollectionTreeItemModel::collectionAdded(Collections::Collection*)
amarok: END__: virtual void CollectionTreeItemModel::collectionAdded(Collections::Collection*) [Took: 0s]
amarok: BEGIN: virtual float Meta::MediaDeviceHandler::usedcapacity() const
amarok:   BEGIN: virtual float Meta::MtpHandler::usedCapacity() const
amarok:     BEGIN: virtual float Meta::MtpHandler::totalCapacity() const
amarok:     END__: virtual float Meta::MtpHandler::totalCapacity() const [Took: 0s]
amarok:   END__: virtual float Meta::MtpHandler::usedCapacity() const [Took: 0.001s]
amarok: END__: virtual float Meta::MediaDeviceHandler::usedcapacity() const [Took: 0.001s]
amarok: BEGIN: virtual float Meta::MediaDeviceHandler::totalcapacity() const
amarok:   BEGIN: virtual float Meta::MtpHandler::totalCapacity() const
amarok:   END__: virtual float Meta::MtpHandler::totalCapacity() const [Took: 0s]
amarok: END__: virtual float Meta::MediaDeviceHandler::totalcapacity() const [Took: 0s]
amarok: BEGIN: void SqlRegistry::emptyCache()
amarok:   [SqlRegistry] Cache unchanged
amarok: END__: void SqlRegistry::emptyCache() [Took: 0.001s]


Any hints?

Thanks, P
pwabrahams
Registered Member
Posts
84
Karma
0
OS
There's no documentation of this fact, but it was verified by someone from Sandisk on the Sandisk Clip forum. The files externally visible in MTP mode are in a disjoint name space from those externally visible in MSC mode. The Clip itself puts them together (or seems to), though I'm uncertain about the rules for that. But if you use Dolphin, say, to write files in MSC mode and then switch to MTP mode,those files will now be invisible to Dolphin, and vice versa.

I myself am struggling with how to get the Clip to play well with Linux playlists, particularly in Amarok. One problem is that the Clip wants directories delimited by \, DOS-style, but Amarok generates playlists that use / for that purpose. That at least is fixable with search/replace, but it shouldn't be necessary.


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Evergrowing, Google [Bot]