Archive for August, 2009

Wow that’s a huge title. Anyway, a friend of mine brought home a digital photo frame, the EX811 to be precise. He couldn’t quite figure out how to get pictures to display from the computer onto the frame. We did get it working, but here’s the documentation on how, since I think this might be helpful to other people.

1) Get the frame on the network. I really can’t help you too much with this, just use the picture frame’s menu system to do it. The menu is fairly intuitive. If possible, try to give the picture frame a static IP address, whether through the frame’s menu system or via the DHCP server in your private network.

2) The frame sends a lot of, well, odd traffic. It uses multicast and unicast traffic, so, and you might be disappointed in me over this, I recommend you just allow all traffic from that source. A rule such as “-A INPUT –src 192.168.100.100 -j ACCEPT” in /etc/sysconfig/iptables will work perfectly here. Just change the IP address in the example to the static IP address you gave the frame when you got it on the network in part 1.

3) Install [mediatomb] and start it. Check it’s configuration file for what port it runs on, and navigate to that port on your local computer. For example, point firefox at “http://127.0.0.1:thatport”. From there, configure what pictures and stuff you would like to share with the frame.

4) Reboot the frame. At the main screen, an entry labelled “Network Computer” should appear. Click on that one, navigate to the folder with all the pictures in it, and press play. Congrats, you’re now sharing your photos.

5) You may want to make mediatomb start automatically on system boot with “chkconfig –levels 345 mediatomb on”.

6) You don’t need to restart the frame or mediatomb to make changes to the pictures that are shared. Just make the changes, and they’ll happen in real time.

Hope this helps someone out there.

convert, provided by the ImageMagick package, has good behaviour in the resizing of images. If you were to write, for example:

[brose@allmybase-demo]$ convert -resize ‘1024×768’ in.jpg out.jpg

your image would be resized such that neither dimension exceeded the bounds, but unless the aspect ratio is dead on (convert honours and preserves aspect ratios), your image will not be the exact size you specified.

But, there is a simple fix. Append an exclamation point to the end of the size, like this:

[brose@allmybase-demo]$ convert -resize ‘1024×768!’ in.jpg out.jpg

and convert will do exactly what you ask, even if it means distorting the image by destroying the aspect ratio. This could be pretty handy to someone, so I decided to blog it. Heck, it’ll probably be useful to me again soon when I say, “hmmm… how did I do that again?”. Enjoy.

Getting skype to work – and behave properly – on Fedora 11 is something of chore. The lack of support on skype’s part is almost appalling, given that they’re on version 4.1 for Windows and version 2.0 for Linux at the time of this article’s writing. To be honest, I don’t think I’ve seen a disparity this great in popular chat software since AOL Instant Messenger. I wish that the skype protocol would be released as a public spec so open source versions could be made… unless one exists of which I’m unaware?

Anyway, this leaves us with a couple of options. You could do no video chatting, or you could also use another utility to chat, such as gnome-meeting. I’m going to assume, however, that these aren’t good options for you. Below we’ll embark on the quest of getting skype to behave properly on a 64-bit linux system. For me, this happened to be on Fedora 11. Your mileage may vary.

First, go grab the RPM from the skype website and install it. Pull in the dependencies as well via yum. Then, make sure the packages “libv4l-0.5.9-1.fc11.i586”, “pulseaudio-libs-0.9.15-14.fc11.i586”, and “alsa-plugins-pulseaudio-1.0.20-2.fc11.i586” (or whatever versions you want) are installed.

[root@allmybase-demo ~]# yum -y install libv4l-0.5.9-1.fc11.i586 pulseaudio-libs-0.9.15-14.fc11.i586 alsa-plugins-pulseaudio-1.0.20-2.fc11.i586

First thing’s first, we’ll need to make sure that this library will load properly when skype launches, otherwise there will be no video for skype to send to your chatting partners. To do this, mimic what I’ve done here:

[root@allmybase-demo ~]# mv /usr/bin/skype /usr/bin/skype.proper
[root@allmybase-demo ~]# cat << EOF > /usr/bin/skype
#!/bin/bash
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
skype.proper

EOF

What we’ve done here is ensure that skype will be able to communicate properly with the webcam by preloading the 32-bit library file before the execution of the next ELF binary. At this point, fire up skype. Go into the options, and set all of the audio dropboxes to “pulse”. If you’re lucky, sound will work out of the box. If not, you’ll probably get something like this, however:

[brose@allmybase-demo ~]$ skype
RtApiAlsa: underrun detected.
RtApiAlsa: underrun detected.
RtApiAlsa: underrun detected.
RtApiAlsa: underrun detected.
RtApiAlsa: underrun detected.

This seems to be a well-known bug. There have been a variety of “hacks” to make the problem bearable, and some of them do work a bit, but I’m going to present another option here that works quite well. Traditional hacks usually involve changing the nice level of pulse audio such that it runs at a different rate than the fork()’d process sending audio data. By adjusting this finely, one can minimize the impact of the buffer underrun by ensuring that data will ALWAYS be written to the buffer before it’s played.

However, I’m going to make one assumption here, no matter how incorrect it may be. I’m going to say that you’re going to try to keep the computer as quiet as possible while chatting on skype. First, mute or turn off any programs that are actively using the sound on your system. A simple test of this is whether or not there are sounds coming out of your speakers. Now in skype, change the three “sound devices” dropbox settings to the underlying hardware on your system. For me, this was labelled as, “HDA Intel (hw:Intel,0)”. Apply the settings and see if you can now get proper sound on skype by calling the echo123 test number. If so, you’re done. Just remember to always stop your music and audio applications before making a call.

If at this point, however, you get “Problem with audio playback”, it means that you didn’t kill all services using sound. It’s okay, there’s a simple solution. Quit skype, and, from the command line, run it again as:

[brose@allmybase-demo ~]$ pasuspender skype >/dev/null 2>/dev/null&

This will suspend pulseaudio from using the soundcard while the application skype is running. You now can ONLY make sound with skype. To get other programs to make sound after this, you will need to quit skype. But, you can rest assured that your sound will work 100% and that there will be no audible interruptions coming from your computer. This fix does work, I’ve done it and so has Thomas (his link is on the right), and we’ve both made calls, having no problems whatsoever. Hope this helps someone, perhaps leave a comment if it did? Have a good one.