FreeBSD 8: Accessing PTP digital camera
When using FreeBSD 7.x I never had a problem with my Nikon Coolpix
L18 using gtkam or digikam. FreeBSD 8 has a re-written usb stack and
no longer uses libusb. Once I upgrade my camera stopped working.
I spent a few months (of and on) comparing the source code trying
to write my own driver all to no avail.
I read a posting from a user having the same problem, only he was successful in getting it to work as root. Amazingly, I had never tried to get it to work as root. I tried and it worked! So I now new it was a permissions problem.
Specifically, the newer usb subsystem creates devices in /dev/usb such as ugen1.2 and creates a syslink in /dev to it. So when my camera is connected it creates:
/email@example.com -> /dev/usb/ugen1.2.0
My permission in devfs.rules need to give access to a group so that non-root users can access the ugen devices. I had not updated my devfs.rules since FreeBSD 7.x and it looked like this:
add path 'ad*' mode 666 group operator
add path 'acd*' mode 666 group operator
add path 'pass*' mode 666 group operator
add path 'xpt*' mode 666 group operator
add path 'ugen*' mode 666 group operator
add path 'cd*' mode 666 group operator
The key line being the line containing the 'ugen*' entry. This line needed to be changed for use with the new usb subsystem like so
add path 'usb/*' mode 666 group operator
Now when the camera is plugged in a non-root user can use gtkam or digikam to access the images.
If you're using this method be sure to add
to /etc/rc.conf so that the rule set is added.
Just took this sceenshot of claws-mail running via ssh/Xming from my FreeBSD 8.0 RC1 home workstation on my Windows XP workstation at work.
H264 to DX50 avi using handbrake
Since the time I posted this I found out that handbrake lost it's maintainer for the FreeBSD port.
Because of this I just switched to using ffmpeg from the command line itself.
So to convert from H264 to avi via ffmpeg only:
ffmpeg -i freebsd_rocks.m4v freebsd_rocks.avi
that will give you and avi with mp2 audio
So your picky and want mp3 audio:
ffmpeg -i freebsd_rocks.m4v -acodec libmp3lame freebsd_rocks.avi
Yeah, but you want to watch you avi files on your stand alone DVD player that will play DIVX encoded videos. Well then the avi file needs to be a DX50 sub format, so try this: ffmpeg -i freebsd_rocks.m4v -vcoded mpeg4 -vtag DX50 -acodec libmp3lame freebsd_rocks.avi
NOTE: certain standalone DVDs can't handle mp3 with variable bit rates, this will create variable bit rate mp3 audio. I have not been able to create constant bit rate mp3 yet. It has to be possible, I just haven't found the correct parameters yet. The only work around I have found is to create mpg files that will play as if they are a VCD, to do that use this command line:
ffmpeg -i freebsd_rocks.m4v -target ntsc-svcd freebsd_rocks.avi
I like to download a lot of movies and videos of different types. I have a few DVD players that can play
DIVX encoded movies. My first such DVD player to do that was a NAD and it was very fickle on reading the
encoded files. The DIVX files need to be encoded with DX50 subformat. I usually use avidemux2 to re-encode the
movies I've downloaded. But lately there have been alot of movies encoded using H264 and avidemux2 (at least on
FreeBSD 7.2 at the time of this writing 8/26/2009) doesn't handle them well. So I use ffmpeg from the command line
here is the simple CLI script to do so:
So if you wanted to encoded a movie called freebsd_rocks.m4v it would look like this:
handbrake -i freebsd_rocks.m4v -o freebsd_rocks.avi -e ffmpeg -b 2500 -E lame
You can use any bitrate you like, but I like a higher bitrate of 2500...that's it. Simple!
I was bored, cleaning up my disks and decided to post these screen shots I found
FreeBSD and OpenBox Themes
I've been using OpenBox 3 on FreeBSD exculsively for almost 5 years now.
If you download themes from box-look.org
they sometime come in the .obt format. This is the extension that OpenBox uses
for it theme format. If you try to import these using obconf a lot of times the
just fail to load because of an invalid tar option. I assume this is because
most themes are created on Linux systems and the use gnu tar which has different
options than tar.
All you have to do is to rename the file with tar.gz extension and use the command
tar -xzf theme_name.tar.gz
to extract the theme.