Topic: Mount a Windows share on your Chumby! (Solution inside)
So, I wanted to be able to stream music to my Chumby from my network share. After a few hours of tinkering around with the kernel, I was able to compile the cifs kernel module. I'm not exactly sure how I got it to work, because I tried many different configurations with the kernel until it finally compiled. If you want to build your own, you will need to download all the necessary source code and build it yourself. If you want to trust my word that I took the source code and built it without making any modifications to the source code at all (I only made changes to the configuration scripts to make it compile the cifs.ko module), then I have your solution.
Download the kernel module from my website: http://www.grep-in.net/chumby/cifs.ko (<- Right-click, save as)
Copy this file to a USB drive of some sort (I actually use a card reader with an SD card plugged into it, it works great). SSH into your Chumby. In order to ssh into your chumby you must go into the control panel, then go into settings, then chumby info, then click on the pi symbol in the upper-right of the screen. Now touch "SSHD". You can now use an SSH client to connect as root@(ip of your chumby). Plug your USB drive into your Chumby, and then find where it mounted it to. It will mount it in /mnt/usb, /mnt/usb2, /mnt/usb3, or /mnt/usb4. cd into the directory that your USB device is in, and type "insmod ./cifs.ko". It should now load the kernel module. If you don't see anything and you just get a command prompt after the insmod, then it installed the module correctly. If you do get an error, for whatever reason, please post it into this thread.
You are now ready to mount your Windows share on your Chumby! Here is an example of how to do that.
mkdir /mnt/win_share
mount -t cifs //(IP or hostname of server)/(share name) /mnt/win_share -o username='(your username)',password='(your password)'
Note that you should encapsulate your username and password in single quotes ' ' to avoid any errant shell escape characters.
That's it! If you authenticated correctly, you should now have a Windows share mounted in /mnt/win_share if you followed this example.
Caveat: I've found that btplay does not buffer its audio source at all. You will get choppy audio when trying to use btplay on an MP3 over the network. For the technical minded, as a test I took an MP3 on my network share and did a cat (filename of MP3) >/dev/null. After it was done copying it to null, I then ran btplay on the same file and there was no stutter in the audio at all. Obviously, catting the audio file and redirecting it to null put it in memory cache where btplay fetched it from. I was also doing a tcpdump on the file server and saw that it did not even poll any data from it after the file was cached. Before it was cached, the stutter in the audio file synced perfectly with every time it had to retrieve data from the server. Also, btplay was only using 25% CPU on the Chumby at all times. Point blank, chumby needs an MP3 player that can buffer audio over a network connection to make it worthwhile.
So, there you have it. I'm not totally sure why CIFS wasn't an included module on the Chumby from the get-go. It was really just a configuration change and doing a "make modules" that actually created it. The code was there, just not enabled.
The next feats on my agenda are to 1) Find and compile an audio player for the arm processor that will actually buffer audio from a network source so there is no stutter when trying to stream audio, and 2) making the alarm clock halfway decent. I'm hoping that the Chumby developers will beat me to the punch on the 2nd one though. *hint hint*