Firefox on the iPhone?

Okay so a few days ago Apple said that they’ll allow third party development for the iPhone (*cheers*).. However given that any third party apps have to exist as a web application I’m wondering how I’m going to run Firefox on my iPhone!? Now, I’m curious about this whole new attempt to make Safari 3 rule the universe, but frankly, I can’t see how they can defeat Firefox with it’s awesome plugin architecture and highly active open community. Though I do welcome the attempt to make something even better. Anyway, so I’m thinking that what we need is someone to make a web UI for Firefox so I can run it in Safari. How awesome (*sarcastic*) would that be!? A browser within a browser. Wicked.

Shrinking an LVM

Okay, so I’m posting how to reduce the size of a LVM non-destructively. I’ve searched a fair bit for an simple guide on doing this and I eventually found some stuff that made me kind of stumble on the solution. I hope this brief guide helps someone save some real time.

I had an lvm spanning 7 partitions and decided I wanted to reduce it’s size. In short, the key is understanding the functional quirks of pvmove.

When making an lvm here’s basically the steps you follow:

1. Initialize partition
2. Create Volume Group
3. Activate Volume Group
4. Add Physical Volume (such as a partition or entire drive) to your Volume Group
5. Create or Expand your Logical Volume
6. Create or Expand your file system (in my case Reiserfs)

Removing a disk is simply this backwards which I’ll discuss at greater length below.

Removing a Partition/Disk from your LVM
1. Free up enough space from the file system that lives on the lvm to accommodate the drive/partition you wish to remove.

2. Resize the file system accordingly. Note that I always leave little buffers. So suppose there is 50Gb free on my lvm. If I wish to shink the file system on the LVM, I’ll reduce the size of that file system by something like 48Gb. Since many of these tools warn constantly of you possibly losing your data, you may as well pad things just so that you don’t accidentally overstep any bounds.

3. Reduce the size of your Volume Group. Use vgreduce – it’s easy, the command you’ll want to use will be something like: vgreduce -L -48G my_lvm.

4. Now you need to reallocate Physical Extents. pvmove attempts to move PEs in blocks. If you tell pvmove to move a block of PEs and there is no sufficiently large chunk of free PEs elsewhere in your LVM then pvmove won’t place nicely. If you use pvdisplay to figure out where your free blocks are, you can transfer PEs off the partition you’re removing in chunks that meet the free space that already exists in your lvm. For example, suppose I wanted to transfer PE 0 to 16300 off /dev/sda, I’d use:
pvmove /dev/sda:0-16300

5. Once all PEs from the partition you’re removing have been moved, you need to remove the partition from the volume group. For this, use pvremove

Closing thoughts
Okay, so that there is a pretty casual little guide on removing partitions.. Post comments if you have any questions and would like more detail.

PVR-150 for Linux Video Capture

So I picked up a PVR-150 for video capture. Of course this is the classic problem of capturing video from a RCA/VHS source. I’ve got two other video capture cards (ATI TV-Wonder PCI and ASUS TV-7135LP). So far, it looks like the input from the PVR-150 is vastly superior to the others. That said, it’s also proven to be vastly more challenging to get input from.

At this point, I’ve managed to get input to mplayer in linux working correctly. Mplayer has an interface intended for use with cards such as the PVR-150. However, I haven’t had much success with that interface yet.

Here’s a quick summary of how I got input working with the PVR-150:

1. (re)load the ivtv drivers

2. set what input sources you like (use v4l2-ctl — you’ll probably only need to use the “i” flag)

3. You’re ready to go (ish) you can video the input by running: “mplayer /dev/video0”
At this point I still have a significant problem with the input. Seems there’s too much data coming in for my machine, which is weird because I’ve got a pretty decent box doing this (P4 3GHz, 1GB Ram).

mplayer says: “Too many video packets in the buffer: (4096 in 7977572 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?”

I’ll post a solution to that issue when I have one..