NOTE: Resolved, see update at end of article.
After doing a little hunting through Ubuntu-related forums, I double-checked the version of libmtp that came with crunchbang and saw it was version 0.3.0. I tried one of the older suggested “fixes” by setting a udev rule and adding myself to group audio. This gave me partial access to my Samsung S3.
What do I mean by partial? First, the device remained “unrecognized” using mtp-detect. That’s probably why it continued to not connect when running rhythmbox; I gave up on gpodder because it puts out sqlite-related errors every time I open it (saw that when tried launching from terminal). Second, I could send files to the device but they wouldn’t go to specified directories. The files went to the default files directory rather than to either the Music or Datacasts (podcasts) directory; I sent using the number code for the Datacasts directory and that didn’t work.
I decided to download and install the source tarball. This required installing gcc and related packages, as well as libusb-dev (compiling libmtp requires libusb headers). I used –prefix=/usr to build over the installed package and –program-prefix=mtp- as suggested in the documentation to prevent conflicts with other applications I may install later (e. g., sox). INSTALL also suggested –enable-hotplugging but this resulted in an error that it’s not a recognized option. Go figure.
After installing, I plugged in my S3 and fired up rhythmbox. I saw the S3 was available in the left panel and, once its files were read, I was able to browse it. While that’s a very good improvement, rhythmbox doesn’t show things in the S3’s file hierarchy but rather only as artist, album, etc.
I just tried to send the same podcast to the Datacasts directory with mtp-sendfile and got a segfault. Great fuck, just what I need. I’m not asking for a miracle here. I just want to be able to at least manipulate things one way or another, and hopefully with enough control that I can put files where I want them and delete them when I want. I also looked to see if I can use rhythmbox to delete the podcast I copied last night (which went to the default files folder). Nope because it’s in the generic file folder rather than Music; I can still listen to it by navigating to the files folder. So now I have to see if I can figure out why the segfault, see if I can use mtp-tools to do it at all (did under Fedora), or see if there’s some way (via plugin?) to get rhythmbox to see the directory structure on the S3 rather than just what’s in Music.
Geez. Always fucking something, huh.
I’m not as pissed off at libmtp or Linux in general about this as I am Samsung for using MTP in the first place and peddling it as an ogg-friendly device. What a fucking nightmare this has been. First it didn’t really support ogg because of the firmware it came with and now it’s a pain in the ass getting it to work under non-Windows operating systems.
That’s it for today. Back to Windows to get some real work done. I can get more done without all these fucking headaches.
UPDATE 14 July 2009 @ 13:05 – Fixed by compiling libmtp 3.7 from Debian (INSTALL no longer mentions the hotplugging option for configure). No segfaults, deleted one old podcast and sent a test file to Datacasts without any errors:
% mtp-folders |grep Datacast 32773 Datacasts % mtp-sendfile startx_old.ogg 32773 libmtp version: 0.3.7 Sending startx_old.ogg to 32773 type:ogg,3 Sending file... Progress: 14866 of 14866 (100%) New file ID: -2147155907
I’m happier now. Wonder how long that’ll last if I decide to compile a custom kernel later while the All Star game is on.