I got one of these for about $40 not really knowing if it would work under Linux. I did think I had some hope to as it didn't require drivers for W2K and it also takes a smart media card, and I have writer for those on my desk. It turned out to be much easier than I anticipated. I run Mandrake 9.1 on my laptop and I just plugged it in and turned the laptop on, and it was autodetected. But I'm documenting this because the Kaser support people weren't aware this would work and because I think I might be able to provide details for anyone that doesn't have such an easy time of it.
log in as root, or change to root with su - plug in Yo!Fun player mkdir /mnt/mp3player mount /dev/sda1 /mnt/mp3player copy mp3 files to /mnt/mp3player umount /mnt/mp3player unplug device and press play button
| usbcore | USB protocol module |
| usbserial | USB-serial translation layer |
| usb-storage | USB-SCSI translation layer |
| sd_mod | SCSI system |
| scsi_mod | SCSI module |
| fat | MS/PC/DR DOS filesystem (after mount) |
| vfat | Windows 95 extensions (after mount) |
The filesystem is FAT12 and the Yo!Fun player automagically formats the internal memory when you flip the "Book/MP3" toggle on the top of the player. So there is no need to format the filesystem, like the Mandrake hardware scanner wanted to. But you need to mount the filesystem. I simply used the command (as root):
mount /dev/sda1 /mnt/mp3player
At this point I assume you have managed to mount the mp3 player. You can list the files there with ls /mnt/mp3player and copy in the normal ways. The only important thing to remember is to unmount the mp3 player with umount /mnt/mp3player and unplug it before trying to play the mp3 files.A few notes are in order here, especially for Linux newbies.
First, the device entry "/dev/sda1" is valid for any computer that doesn't already have another SCSI device. If you have a SCSI scanner or disk obviously this affects the device number, but also if you have an external USB or FireWire drive these actually use SCSI over USB/Firewire just like this device does. The device entries will be /dev/sda, /dev/sdb, /dev/sdc, etc. If you don't have a non-disk device it is safe to try to mount /dev/sda1, /dev/sdb1, /dev/sdc1, etc. With a scanner most likely it is safe, but it may lock up for a minute ortwo as the scanner warms up. Most likely if you do have a SCSI device you already know which device file it corresponds to, but there are some dual-booters who only use a certain device in one OS.
Second, the "/mnt/mp3player" is just where I mounted the disk, you can chose whatever directory you wish. But you must create the directory if it doesn't already exist. In my case I did the following:
mkdir /mnt/mp3player chmod a+rwt /mnt/mp3playerThe first command is necessary, the second changes the permissions so that any user can write to the directory under their own name. This is super convenient for me because I don't want to have to have root access to write to the disk.Finaly, there is no need for a -t msdos or -t vfat for mount, it can autodetect FAT filesystems. If it complains there are a few things that could be wrong. You could be missing the fat modules, this is possible if you compiled your own kernel, but not with distribution kernels. You could be missing the usb or scsi modules, this is again unlikely with a distribution kernel, but more likely than missing the fat modules. Most likely you either have the wrong device or the modules weren't autoloaded. If you think you have the wrong device you can list the kernel messages with dmesg and it should tell you where it created the device entry, assuming it did. The autoloading of device modules is a bit of a black art, if you are interested you can look here. This is important for distributions that want Linux to work with every device imaginable. But more likely you just want this to work and don't care much if you waste a few kilobytes when the device isn't plugged in. In this case you should now list the modules you have loaded with lsmod. You should see a bunch of things, including the modules listed in the table. If you don't you can manually load them:
modprobe usbcore modprobe usbserial modprobe usb-storage modprobe sd_mod modprobe scsi_mod modprobe fat modprobe vfatYou don't need to load these all individually, but it will give you the best error reports if there are any problems. Assuming there are no problems, try mounting the player again. If the mounting works add this line:probeall usb-storage scsi_mod vfat usbserialto your modules.conf. Some distributions, like Gentoo, don't want you to modify this file directly, but they should have some warning in modules.conf. This line will tell linux to load all those modules at start up, the ones I listed in the probeall depend on the other modules in the list and so they will all be loaded.
none /mnt/mp3player supermount dev=/dev/sda1,fs=auto,--,sync,umask=0 0 0This will automatically mount the player when plugged in and will sync it so that you don't need to unmount if you wait for the copy to the disk to finish. It's still always best to unmount, but you can always reformat drive if you mess up the filesystem. If you don't have a supermount kernel you can still make things more convenient, by adding the player to your fstab file like this
/dev/sda1 /mnt/mp3player auto defaults,sync,umask=0 0 0If you have automount you can use that instead. Say you use /auto for your automounts... add this to your /etc/auto.master
/auto auto.auto --timeout=2and put this in auto.auto
mp3player -fstype=auto :/dev/sda1You have to wait a few seconds after finishing a copy to be sure the filesystem is consistent, but after that you don't need to unmount, it will have been done for you by automount. In this case 2 seconds is the timeout in seconds it waits after the last activity to begin unmounting the player).
Zhiheng Zhang of Dallas has told me that you need to load the modules before plugging in the mp3 player with the RedHat 2.4.20-19.9 kernel. If you don't you get a "USB device does not accept new address=X (error=-110)" error. Just add them to your modules.conf.
Nat Makarevitch of France has made a neat little utility to randomly copy files from one directory to another. You can of course use this to create mixes on your mp3 player. It's called on freshmeat and is called cpshufflesature.
Linux 2.6.0-test... This should of course work, but the kernel module system has undergone a whole lot of changes. I think trying to explain all the potential problems would make this Mini-HOWTO a bit longish. For the least pain try using a recent distribution like Mandrake 9.2 or Gentoo 1.4, these have the module-init-tools you will need installed. If you want to try it on an older distribution your best bet is to install the module-init-tools from a package, if you can find one. Also make sure you do not have a i686 version of glibc, as older versions of glibc had problems with the 2.6 timer support, but only if they were compiled for i686.
And, finally....