grep --color

I use grep a lot. Today I realized that others might not know that GNU grep can highlight matches, or how to combine it with less. So here's part of my Bash config, and some examples uses:


alias grep='grep --color=auto'
alias egrep='egrep --color=auto'

function legrep {
  egrep --color=yes "$@" | less -R
}

$ legrep '[Gg]nome' */*.xml
$ legrep -i foo /usr/share/dict/words
$ grep bar | egrep -v 'baz|qux' | legrep bar

Behind the scenes of YaST

| No Comments | No TrackBacks

SUSE has long used YaST as a management tool. It makes it easy to make changes to your system without knowing (or caring) what happens behind the scenes.

At Guru Labs, our Linux Training is all about teaching students what happens "behind the scenes". We strive to document the official and best practice techniques (not always the same thing, unfortunately).

Recently we were updating our courseware and wanted to document how to disable IPv6 in the various Enterprise Linux distributions. The question came up, "What does YaST actually do when you toggle the Enable/Disable IPv6 checkbox in the YaST network module." To answer that question I performed the following steps on SLES11.

Search for the string IPv6 in the YaST network module.

grep -n IPv6 $(rpm -ql yast2-network)

In the output, found these lines looked interesting (Note the Disable/Enable strings)

/usr/share/YaST2/modules/Lan.ycp:316:global void SetIPv6(boolean status){
/usr/share/YaST2/modules/Lan.ycp:324:void writeIPv6(){
/usr/share/YaST2/modules/Lan.ycp:424: writeIPv6();
/usr/share/YaST2/modules/Lan.ycp:654: status_v6 = _("Support for IPv6 protocol is enabled");
/usr/share/YaST2/modules/Lan.ycp:656: link_v6 = Hyperlink (href_v6, _("Disable IPv6"));
/usr/share/YaST2/modules/Lan.ycp:662: status_v6 = _("Support for IPv6 protocol is disabled");
/usr/share/YaST2/modules/Lan.ycp:664: link_v6 = Hyperlink (href_v6, _("Enable IPv6"));


Based on my experience I guessed that the writeIPv6 function does the work of enabling and disabling IPv6 on the system.

So I took a look at that function using the line number found by grep:

vim /usr/share/YaST2/modules/Lan.ycp +324

I found the following:

void writeIPv6(){
SCR::Write(.target.string, "/etc/modprobe.d/ipv6", sformat("%1install ipv6 /bin/true", ipv6?"#":""));
SCR::Write(.sysconfig.windowmanager.KDE_USE_IPV6, ipv6?"yes":"no");
}

That pointed me at the two files "/etc/modprobe.d/ipv6" and "/etc/sysconfig/windowmanger".

Looking at the files it seems YaST simply removes/adds the comment character in front of the one-and-only line in the file /etc/modprobe.d/ipv6 and it toggles the variable KDE_USE_IPV6 in /etc/sysconfg/windowmanager.

If you ever have the need to discover what YaST is doing behind the scenes, you can use the same technique.

As far as blogging software goes, it's hard to go wrong with Movable Type. It is open source, supports PostgreSQL (unfortunately, due to be dropped in MT5.0, hopefully it will be re-added in 5.1), supports multiple users and blogs out of the box, can operate in static, partial-dynamic, and full dynamic mode.

If for some reason you or a user forgets their password you can reset the password via the following SQL commands

PostgreSQL

Make sure to install the postgresql-contrib package if you don't already have it installed.

Install the crypto functions into the Movable Type database, this is a one time task.

psql -d movabletype -f /usr/share/pgsql/contrib/pgcrypto.sql

Now connect to the movabletype database and run the following command to reset a password:

UPDATE mt_author SET author_password = crypt('the-new-password', gen_salt('des')) WHERE author_name = 'USERNAME-GOES-HERE';

MySQL

The MySQL database already has the crypto functions built-in, so reset the password with the following SQL statement:

UPDATE mt_author SET author_password = encrypt('the-new-password') WHERE author_name = 'USERNAME-GOES-HERE';

flaccda

| No Comments | No TrackBacks

Tools available with Fedora and Red Hat Enterprise Linux for converting CDs to lossless FLAC archives include Sound Juicer, Rhythmbox, and the command line tool abcde. The first two are graphical applications in GNOME that use MusicBrainz for metadata; the latter provides numerous options for converting to FLAC, Vorbis, and MP3 (among other formats), using CDDB for metadata. I wanted something simpler, resulting in a minimal set of metadata (consistent with ID3), and following a stricter Unix model of each tool focused on one job, doing that job well.

The result, flaccda, is a POSIX compliant script for converting CDs to FLAC, and a supporting script for removing MusicBrainz metadata from FLAC archives created by tools such as Sound Juicer.

The source may be downloaded from my website at http://deevans.net/hacking/flaccda.

What GDK_NATIVE_WINDOWS=1 means

| 3 Comments | No TrackBacks

I noticed in the list of Common Fedora 12 Bugs that in order to run the current version of Adobe Acroread for Linux it must be launched with:
GDK_NATIVE_WINDOWS=1 acroread

Note that GDK is the underlying graphical toolkit for creating GUI applications using GTK (most commonly for applications used on the GNOME desktop). The Linux version of Adobe Acroread uses GTK/GDK.

I was curious about GDK_NATIVE_WINDOWS=1 and I found the following information:

From www.gtk.org I found



GDK has been rewritten to use 'client-side windows'. This means that GDK maintains its own window hierarchy and only uses X windows where it is necessary or explicitly requested. Some of the benefits of this change are

  • Reduced flicker
  • The ability to do transformed and animated rendering of widgets
  • Easier embedding of GTK+ widgets, e.g. into Clutter scene graphs


Launching an app with GDK_NATIVE_WINDOWS=1 application turns off this feature. This is needed if the application manipulates the windows it creates using direct X API calls or a mixture of X API and GDK instead of just going through GDK. When using "client-side windows" all window manipulation by an application must go through GDK. Adobe needs to update Acroread to be compatible with this feature.

Here is a video demonstration from Alexander Larsson showing some of the effects made possible with 'client-side-windows'. You can also check out his blog post The return of client side windows:

The official documentation on ClientSideWindows is here.

T61p Backlight

| No Comments | No TrackBacks

I've been having a problem with the back light on my T61p (T7500), after a text terminal (runlevel 3) screen blank (stand by, not suspend?), running Fedora 11. After logging off, the text terminal screen goes blank as a power saving feature. However, upon restore the backlight setting is one fifth full luminosity.

After a bit of digging, the acpitool manual claims it can update the brightness setting (with -l x) using the /proc/acpi/ibm/brightness file. However, the file doesn't exist. I did find the brightness file under /proc/acpi/video/VID1/LCD0/. A redirect of the highest setting restores luminosity (the setting is 1 through 100; after the screen blank it had gone down to 28): echo 100 > /proc/acpi/video/VID1/LCD0/brightness

The last problem is one of persistence. For the time being, I've not found a solution. Fedora seems to have made the assumption that GNOME or KDE is all anyone uses.

Amazing Lenovo Support Experience

My Lenovo Thinkpad T61p died today, but I'm still in a good mood. I've never had such a positive experience calling any company's support line before.

Finding the phone number for Lenovo was a bit of a hassle, but everything else was painless. I spent less than two minutes in the call queue before talking to a human being. Lenovo was careful to mention several times that they were transferring me to their Georgia call center. The cynical might suspect they meant the eastern European nation, but I'm inclined to believe it really was the state. The person I spoke with had an American accent and understood everything I said. He wasn't blindly following a script, but actually listened to what I said and responded appropriately. Within a minute he had decided to replace the entire mainboard. No hassle!

I've recommended Lenovo before because of the quality of the Thinkpad. Now I can add the amazing support. IBM's hand off to Lenovo scared me a little, but they seem to be doing an excellent job. Let's hope it stays that way.

I have a ThinkPad T61p Fedora 11 Linux laptop. Lately for some Linux training products we have been developing I've been doing alot of virtualization work on my laptop. Even though it has a fast dual core CPU, 8GB of RAM, and a fast internal 500GB SATA hard drive I've been seriously bottlenecked when I have a bunch of virtual machines doing lots of I/O. Some operations that normally take 20 minutes to complete have been taking 90 minutes. That is a serious productivity killer.

I need to add more hard drives and spread the I/O load across them. I would like to upgrade to a SSD drive, but I require 500GB capacity and although the just hit the market, it has several draw backs (besides the price) including using a MLC architecture. I briefly considered USB 2.0 hard drives but I knew that the USB 2.0 connection was a bottleneck

I decided to add an external eSATA hard drive using an ExpressCard eSATA controller.

Here are raw sequential I/O throughput the benchmark numbers on three drives. I tested the performance using hdparm -tT /dev/{sda,sdb,sdc}

Internal SATA SAMSUNG HM500LI 500GB
73.4 MB/sec

eSATA Western Digital WD10EVVS-63E 1TB "My DVR Expander"
85.1 MB/sec

USB 2.0 Lacie 120GB rugged
24.4 MB/sec

I used a Syba SD-PCBX-ESA2 ExpressCard SIL3132 Chipset 2x e-SATA II, 54mm. The great thing about Linux is that the controller was supported out of the box by Linux's sata_sil24 driver. I had nothing to install. I just plugged everything in and it all worked.

It would have been nice if my laptop had a built-in eSATA port. Hopefully my next Calpella platform based Thinkpad will have bottleneck free USB 3.0 ports and hopefully eSATA as well.

Wireless On the GoGo...

| No Comments | No TrackBacks
One of the things that has been a both a blessing and curse for me has been the lack Internet on flights.

Every flight I take I am reminded how much I have become tied into a network. It seems that each trip I try to grab new email, a website or do an SSH connection before remembering that for one reason or another, on the ground or in the air, that I can't.

Fortunately there are industrious types out there that have fixed this problem for me.

The foundation for the solution has been in place since 1991 with a simple napkin.

From the History of AirCell at www.aircell.com: "The idea for Aircell began in 1991 in a barbecue restaurant in Denison, Texas, where company founder Jimmy Ray first made sketches on a paper napkin for an affordable telephone system for airplanes. Ray's subsequent investigation of the market and exploration of alternate technologies resulted in the formation of Aircell."

Since then AirCell has created a network of cellular towers across the US. The main difference between sprint, at&t, t-mobile or any other cellular carrier is the frequency and the direction of their antennas.

A traditional carrier will point their antenna towards the horizon. AirCell points their antenna towards the sky.

On the underside of the plane is placed an antenna. Inside the plane is a high end server.

AirCell even uses Linux: "With a Linux-based operating environment and standard connectors, other aircraft components and avionics can be connected to the AirCell system."

Wow, how cool is that?

Since Delta announced it was going to deploy GoGo Inflight Internet on its entire US fleet back in August of 2008 I have been hoping to find myself on one of these wifi enabled flights.

The last time that I flew out to BWI from Salt Lake City and got one of the coveted First Class upgrades, I had been told that I would have power (which there was, but the connection sucked) and wifi. Turns out that there was no wifi.

I knew though that it was going to simply be a matter of time since they were working their way through their fleet. The MD88 commuter jets were already done.

So you can imagine my excitement when the flight form BWI to ATL was on an MD88.

Not being sure if the next segment (the vast majority of time home would be from ATL to SLC) I had to take a chance to explore GoGo.

On the whole it was fairly useful, if overpriced.

So the nitty-gritty details:

Pros:

Gogoinflight.com was free.
Delta.com was free.
Download speed was over 2mbps.
Very little seemed to be blocked.
Seemed stable.
Available at and above 30k feet.

Cons:

Upload was around 300kbps.
SIP / VoIP appeared to be blocked. --> This could go into the pro section actually.
Cost was prohibitive.
Pay for one flight segment at a time.
Have to create an account.
Apparently there is some content filtering in response to employee concerns.
Not available for the whole flight, including being stuck on the runway.
The service(s) you are connecting to should be encrypted as the "hotspot" isn't.

Pricing:

Ironically GoGo hypes their pricing on their website as "down-to-earth". One of the things that I really dislike about their pricing is that, with the exception of the 30 day pass, they charge for access per flight. So if your flight is made up several flight segments, for instance going from BWI to ATL, wait two hours in Atlanta before flying ATL to SLC, well you get to pay twice and different amounts.

I have been struggling to determine who GoGo thinks they are going to get to pay for their service out of this deal. Clearly there are going to be people that pay for the novelty of it. Then there is going to be the highly wired business professionals that want to stay connected as long as possible.

Finally there will be the people that are on vacation and willing to spend the extra money to make the trip a little more bearable. These are the same people that will buy an $8 cold sandwich on the plane.

The price structure is going to be a bit prohibitive from most travelers and even the average, occasional business traveler.

GoGo uses the following pricing structure, again per flight:

Mobile devices on any length of flight is $7.95. Unfortunately not all phones (mine included) will let you turn off all radios except wifi.

Laptops and other devices on a flight shorter then 3 hours pay $9.95.

Laptops and other devices on a 3 hours or longer (regardless of the remaining length of the flight) pay $12.95.

For those that travel frequently you can pay $49.95 for 30 day unlimited access on one airline (only Delta or Virgin America). If you frequently ride both of those airlines you can buy a 30 day pass for each.

So in the end it was a very decent connection. In fact I found myself looking forward to having a better connection then in the terminal waiting to board. The price was a bit much and I wish I had known for certain that wifi would be available on the longer of the two flights. Of course if they offered a 24 hour pass instead of per flight payment I would have been all set.

If I was still travelling two to three weeks a month I might find it worth paying the 50 bucks for an unlimited access every month, but I don't and I would miss my alone time.

So for the time being I am going to resign myself to the fact that at 30,000 feet I MIGHT have the option of watching Hulu or working on that cross country flight, but won't whip out the credit card to quickly to pay for the experience.

http://www.aircell.com
http://www.gogoinflight.com
http://www.delta.com

Delta Announcement: http://aircell.mediaroom.com/index.php?s=43&item=86
Delta to Filter Internet from AJC: http://www.ajc.com/news/content/business/stories/2008/10/03/wifi.html

http://en.wikipedia.org/wiki/Aircell
http://en.wikipedia.org/wiki/Gogo_Inflight_Internet

**Note: on 07/16/2009 made some minor grammatical and spelling updates.

I've been running Fedora 11 on my T61p laptop, and I recently ran into the bug that caused repeated kernel oopes when running a NFS server and serving a bunch of data.

This bug has been fixed with the F11 kernel 2.6.29.6-213.fc11 which (as of July 9th, 2009) hasn't been pushed out yet (it is currently pending for fedora-updates-testing). I installed the new kernel and it has fixed the bug. Hurray for progress.

Unfortunately the yak shaving continues. I'm using RPM Fusion to get drivers for my Nvidia video card in my laptop. Since I'm running an unreleased kernel, the RPM Fusion repo doesn't have a matching kmod-nvidia package for the kernel portion of the Nvidia driver. My system automatically reverted to the VESA driver. Having the Nvidia libraries installed while using the VESA driver caused Unexpected signal: 11 problems for VMware workstation.

In order to build a matching kmod-nvidia package I performed the following (note I'm running 64bit Linux).

# yum install -y buildsys-build-rpmfusion-kerneldevpkgs-newest-x86_64

Now install the kernel-devel package for the newer kernel. I downloaded it from the Koji web page and manually installed it with rpm -ivh.

Download the newest nvidia-kmod.src.rpm from http://download1.rpmfusion.org/nonfree/fedora/updates/11/SRPMS/. Adjust the URL as needed for your version of Fedora.

Then, the command to rebuild the binary RPM that matches your running kernel is.

$ rpmbuild --rebuild nvidia-kmod-VERSIONINFO.src.rpm --define "kernels $(uname -r)" --target $(uname -m)

In my particular case it was:

$ rpmbuild --rebuild nvidia-kmod-185.18.14-1.fc11.1.src.rpm --define "kernels $(uname -r)" --target $(uname -m)

One of the things that Arch Linux does _not_ try to do is administer your system for you. One area where this bothers me is in a system upgrade procedure which goes roughly like this:

$ pacman -Syu
The above command will refresh the local cache of packages made available by any configured archlinux repositories, then proceed to upgrade any installed packages to the newest available version.
The (pac)kage (man)agement tool "pacman" does not provide the capability of merging new and exisiting configuration files. This is an intentional decision meant to assure that system settings won't be clobbered. As a result, you must manually scan through your filesystem after an update, looking for files with the *.pacsave or *.pacnew extensions, merge in any changes you would like, then (optionally) delete the *.pac{save,new} files. A tool called pacdiffviewer is provided by the yaourt package which can automate the previous procedure.

Another thing that pacman is not capable of is updating packages installed via the (A)rch (U)ser (R)epository, AUR (http://aur.archlinux.org/). One tool which is capable of (un)installing/updating/querying/etc. packages located in AUR is yaourt.

$ yaourt -Syu --aur --devel
The above command will update all packages on the entire system whether installed from pacman repositories or from the AUR.

A tool that I recently started using to manage my /etc/ directory is called etckeeper. Etckeeper can be configured to use one of several revision control systems (git, bzr, cvs, etc.) and creates and manages all of the revisions that /etc/* files go through. I've really enjoyed not having to manually make backups of config files when I experiment with new settings and it's good to know that I can easily roll-back or merge changes of files in the future if I decide that I liked things better the way they were before.

To put all of the previous things together and save my fingers some typing each day, I created the following alias in ~/.bashrc :
alias update='yaourt -Syu --aur --devel && sudo pacdiffviewer && cd /etc/ && sudo etckeeper commit; cd -'

My system upgrading is now done by simply typing "sysupgrade" as a normal user and interactively managing the rest of the process. 

Palm Pre webOS Internals

| 4 Comments | No TrackBacks

At Guru Labs we've been long time smartphone users. I purchased a Treo 600 in October of 2003 and have had pretty much all the Treo revisions since then.

Having a smartphone is extremely handy for in my line of work (traveling and doing Linux training). The original PalmOS has gotten pretty dated and I admit I've had some iPhone envy the last couple years. Lack of multi-tasking, Apple control issues, AT&T, and no real keyboard has kept my envy at bay. Ever since Palm announced that they'd have a Linux powered Treo back in 2004 I've been patiently waiting.

Finally, after 5 years of waiting, I have a Linux powered Palm smartphone! I've had the Palm Pre running webOS for the past few days.

This phone is awesome. Highly recommended.

If you are the tinkering type of person and don't mind potentially having to do a factory restore on your device (which isn't so bad given that you can easily restore your settings and data via your Palm Profile) you might want to:

1. Gain root access on your phone via "Developer Mode".
2. Install a SSH backdoor door ongoing access (a procedure to which I contributed a great deal)

Palm webOS is a fairly typical Linux distribution. Here is data from version 1.0.2 (As of June 11th 2009).



Memory - After about 12 hours of heavy use, bunch of apps open

dkelson@castle:~$ free
total used free shared buffers cached
Mem: 245036 236772 8264 0 12288 54020
-/+ buffers/cache: 170464 74572
Swap: 131064 37520 93544




Kernel/Version Info

root@castle:/etc# uname -a
Linux castle 2.6.24-palm-joplin-3430 #1 175.1.15 armv7l unknown

root@castle:/etc# lsmod
Module Size Used by
sd8xxx 184732 1
bridgedriver 187924 1
g_composite 99292 0

root@castle:/etc# **cat palm-build-info **
PRODUCT_VERSION_STRING=Palm webOS 1.0.2
BUILDNAME=Nova-Sprint-Castle
BUILDNUMBER=118
BUILDSET=base
BUILDTIME=20090522140049
BUILDMARK=165841

root@castle:/etc# **cat issue.net **
Rockhopper .dev-snapshot-20090522 %h



Kernel Command Line

root@castle:/var/home/root# **cat /proc/cmdline **
root=b302 rootdelay=2 ro fb=0x8f600000 fbcon=disable console=tty1
nduid=DeviceSpecificIDGoesHere klog=0x8ff00000 klog_len=0x100000
boardtype=castle-dvt3 dsp_base=0x8f900000 dsp_len=0x600000



Listening Ports - (see firewall below)

root@castle:/etc# netstat -taunp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:14400 0.0.0.0:* LISTEN 1092/PmBtStack
tcp 0 0 127.0.0.1:8083 0.0.0.0:* LISTEN 1131/java
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1173/dnsmasq
tcp 0 0 0.0.0.0:16888 0.0.0.0:* LISTEN 1092/PmBtStack
tcp 0 0 0.0.0.0:16889 0.0.0.0:* LISTEN 1092/PmBtStack
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 6053/dropbear
tcp 0 0 0.0.0.0:4444 0.0.0.0:* LISTEN 1031/dbus-daemon
tcp 0 0 0.0.0.0:4445 0.0.0.0:* LISTEN 1025/dbus-daemon
tcp 0 0 0.0.0.0:222 0.0.0.0:* LISTEN 1163/dropbear
tcp 0 0 174.149.231.221:55005 205.140.203.34:5222 ESTABLISHED 1179/pubsubservice
tcp 0 0 127.0.0.1:34071 127.0.0.1:14400 ESTABLISHED 1437/PmBtEngine
tcp 0 0 127.0.0.1:55756 127.0.0.1:4445 ESTABLISHED 1571/contextupload
tcp 0 0 127.0.0.1:4445 127.0.0.1:55756 ESTABLISHED 1025/dbus-daemon
tcp 0 576 10.2.3.203:222 10.2.3.228:58423 ESTABLISHED 6053/dropbear
tcp 0 0 127.0.0.1:14400 127.0.0.1:34071 ESTABLISHED 1092/PmBtStack
udp 0 0 0.0.0.0:33941 0.0.0.0:* 1173/dnsmasq
udp 0 0 0.0.0.0:53 0.0.0.0:* 1173/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1173/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 6557/dhclient



File System Layout - (I have 5.2GB of my own data in /media/internal)

root@castle:/var/home/root# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 441.7M 368.9M 72.8M 84% /
/dev/root 31.0M 11.1M 19.9M 36% /boot
/dev/mapper/store-root
441.7M 368.9M 72.8M 84% /
/dev/mapper/store-root
441.7M 368.9M 72.8M 84% /dev/.static/dev
tmpfs 2.0M 152.0k 1.9M 7% /dev
/dev/mapper/store-var
248.0M 77.6M 170.4M 31% /var
/dev/mapper/store-log
38.7M 6.4M 32.3M 17% /var/log
tmpfs 64.0M 2.8M 61.2M 4% /tmp
tmpfs 119.6M 0 119.6M 0% /media/ram
/dev/mapper/store-media
6.7G 1.4G 5.2G 22% /media/internal



LVM Layout

root@castle:/var/home/root# vgdisplay -v
Finding all volume groups
Finding volume group "store"
--- Volume group ---
VG Name store
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 6
Open LV 5
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.62 GB
PE Size 8.00 MB
Total PE 975
Alloc PE / Size 973 / 7.60 GB
Free PE / Size 2 / 16.00 MB
VG UUID tWVoWv-vlFA-XwWT-33LX-1ZaV-twiY-qF9bDN

--- Logical volume ---
LV Name /dev/store/root
VG Name store
LV UUID NBwspO-rIY3-4Zuh-m8Ms-tXzA-lpWE-0RdiX3
LV Write Access read/write
LV Status available
# open 1
LV Size 456.00 MB
Current LE 57
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Persistent major 254
Persistent minor 0
Block device 254:0

--- Logical volume ---
LV Name /dev/store/var
VG Name store
LV UUID FTnu68-LsSa-YRch-aIOu-VbAp-hHW7-4hJU32
LV Write Access read/write
LV Status available
# open 1
LV Size 256.00 MB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Persistent major 254
Persistent minor 1
Block device 254:1

--- Logical volume ---
LV Name /dev/store/update
VG Name store
LV UUID 7HPOTh-0QgT-0Nq4-BD9x-vTt0-R2kq-DE3dOf
LV Write Access read/write
LV Status available
# open 0
LV Size 56.00 MB
Current LE 7
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Persistent major 254
Persistent minor 2
Block device 254:2

--- Logical volume ---
LV Name /dev/store/log
VG Name store
LV UUID 73c7a7-S71k-wWLI-nn9v-U6Eh-8RIQ-cnuQNA
LV Write Access read/write
LV Status available
# open 1
LV Size 40.00 MB
Current LE 5
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Persistent major 254
Persistent minor 3
Block device 254:3

--- Logical volume ---
LV Name /dev/store/media
VG Name store
LV UUID bfLJQ3-M3Vs-AhfQ-8uYp-N2iC-39mS-4TuXuI
LV Write Access read/write
LV Status available
# open 1
LV Size 6.69 GB
Current LE 856
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Persistent major 254
Persistent minor 4
Block device 254:4

--- Logical volume ---
LV Name /dev/store/swap
VG Name store
LV UUID lGNstl-OH3S-a5SA-fJhT-pSPH-brEu-Q8FAEG
LV Write Access read/write
LV Status available
# open 1
LV Size 128.00 MB
Current LE 16
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Persistent major 254
Persistent minor 5
Block device 254:5

--- Physical volumes ---
PV Name /dev/mmcblk0p3
PV UUID GJUws6-7CBV-8gzk-s7VA-uY1Q-3HxG-96ygIP
PV Status allocatable
Total PE / Free PE 975 / 2



Network Interfaces - eth0 (WiFi) ppp0 (EVDO)

root@castle:/var/home/root# ifconfig
bsl0 Link encap:Ethernet HWaddr 00:1D:FE:34:7D:72
inet addr:10.1.1.10 Bcast:10.1.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

eth0 Link encap:Ethernet HWaddr 00:1D:FE:XX:XX:XX
inet addr:10.2.3.203 Bcast:10.2.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3106 errors:0 dropped:0 overruns:0 frame:0
TX packets:2282 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:315417 (308.0 KiB) TX bytes:677358 (661.4 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3580 errors:0 dropped:0 overruns:0 frame:0
TX packets:3580 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:294062 (287.1 KiB) TX bytes:294062 (287.1 KiB)

ppp0 Link encap:Point-to-Point Protocol
inet addr:174.149.231.221 P-t-P:66.174.200.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1480 Metric:1
RX packets:3428 errors:5 dropped:0 overruns:0 frame:0
TX packets:4745 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1746157 (1.6 MiB) TX bytes:3258322 (3.1 MiB)



CPU Speed Scaling - (Palm locks it to 500Mhz at boot)

root@castle:# cd /sys/devices/system/cpu/cpu0/cpufreq
root@castle:# cat scaling_available_frequencies
600000 550000 500000 250000 125000
root@castle:# cat scaling_cur_freq
500000
root@castle:# cat scaling_available_governors
ondemand userspace
root@castle:# cat scaling_governor
userspace



Default Firewall Rules

root@castle:/var/home/root# iptables -nvL
Chain INPUT (policy DROP 233 packets, 11729 bytes)
pkts bytes target prot opt in out source destination
3580 294K ALLOWED_PACKETS all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 INVALID_PACKETS all -- !lo * 127.0.0.0/8 0.0.0.0/0
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:113 flags:0x17/0x02 state NEW reject-with tcp-reset
0 0 DROP tcp -- bsl0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:4444:4445
5627 3296K ALLOWED_PACKETS all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ALLOWED_PACKETS all -- bsl0 * 0.0.0.0/0 0.0.0.0/0
0 0 ALLOWED_PACKETS all -- usb0 * 0.0.0.0/0 0.0.0.0/0
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 0 state NEW
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 0
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 3 state NEW
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 3
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 4 state NEW
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 4
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 5 state NEW
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 5
4 324 ICMPFLOOD icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8 state NEW
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 11 state NEW
0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 11
217 11089 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 10 LOG flags 0 level 7 prefix `IPT_PACKET_DROPPED_NO_MATCH: '

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 14456 packets, 4914K bytes)
pkts bytes target prot opt in out source destination

Chain ALLOWED_PACKETS (15 references)
pkts bytes target prot opt in out source destination
9211 3590K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain ICMPFLOOD (1 references)
pkts bytes target prot opt in out source destination
4 324 all -- * * 0.0.0.0/0 0.0.0.0/0 recent: SET name: ICMP side: source
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 1 hit_count: 6 TTL-Match name: ICMP side: source limit: avg 1/sec burst 1 LOG flags 0 level 4 prefix `IPT_ICMPFLOOD: '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 1 hit_count: 6 TTL-Match name: ICMP side: source
4 324 ALLOWED_PACKETS all -- * * 0.0.0.0/0 0.0.0.0/0

Chain INVALID_PACKETS (1 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 100 LOG flags 0 level 4 prefix `IPT_INVALID_PACKETS_DROPPED: '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0



Running processes

root@castle:/etc# ps -ax -o user,cmd
USER CMD
root /sbin/upstart
root [kthreadd]
root [ksoftirqd/0]
root [watchdog/0]
root [events/0]
root [khelper]
root [kblockd/0]
root [cqueue/0]
root [twl4030-irq]
root [omap2_mcspi]
root [ksuspend_usbd]
root [khubd]
root [kmmcd]
root [pdflush]
root [pdflush]
root [kswapd0]
root [aio/0]
root [cifsoplockd]
root [cifsdnotifyd]
root [modem_act]
root [modem_rmw]
root [cdc-acm]
root [gadget_event]
root [tp_wq]
root [temt6200_light]
root [w1_control]
root [w1_bus_master1]
root [ksnapd]
root [kondemand/0]
root [rpciod/0]
root [mmcqd]
root [kjournald]
root [kjournald]
root udevd --daemon
root [kjournald]
root [kjournald]
root /usr/bin/pmsyslogd -z -f 6 -m
root [usb_charger]
root [file-storage-ga]
root /sbin/getty -L ttyS2 115200 vt100
root /usr/bin/dbus-daemon --fork --system
root /usr/bin/dbus-daemon --fork --session
root /usr/bin/PmNetConfigManager
root /usr/bin/SprintDaemon
root /usr/bin/luna-prefs-service
root /usr/bin/PmSystemTimeout
root /usr/bin/rdxd -v
root /usr/bin/hidd -v -f /etc/hidd/HidPlugins.xml --output-syslog
root /usr/sbin/storaged -s -d
root /usr/bin/uploadd -v
root /usr/bin/UpdateDaemon
root /usr/bin/PDFService
root /usr/bin/OfficeService
root BluetoothMonitor
root /usr/sbin/audiod -n -1
root /usr/bin/PmBtStack -C /dev/btuart -B 115200 00:1D:FE:XX:XX:XX 1 0x3afc 16888 1
root /usr/bin/PmWanDaemon
root /usr/bin/PmConnectionManager
root /usr/lib/jvm/java-1.5-palm/bin/java -Xexact -m 10M -Djava.library.path=/usr/lib/jvm/java-1.5-palm/bin:/usr/lib/jvm/java-1.5-palm/jre/bin:
root /usr/bin/LunaSysService
root /usr/bin/extractfs -f /var/luna/data/extractfs
root /usr/bin/fileindexer
root /usr/sbin/powerd
pulse /usr/bin/pulseaudio --log-target=syslog
root /usr/sbin/memchute
root /opt/sbin/dropbear -w -F -p 222
root /usr/bin/PmWiFiService
root /usr/bin/LunaSysMgr
root /usr/bin/dnsmasq -d -C /etc/dnsmasq.palm.conf
root /usr/bin/pubsubservice
root /usr/bin/TelephonyInterfaceLayerCdma
root /usr/bin/PmBtEngine
root /usr/bin/contextupload
root pppd /dev/tts/modem0 file /etc/ppp/options-cdma mtu 1480
root /opt/sbin/dropbear -w -F -p 222
dkelson -sh
root /usr/bin/BrowserServer
root -sh
root /usr/bin/mediaserver -l --gst-debug=1 castle
root [wlan_main_servi]
root /usr/sbin/wpa_supplicant -D wext -B -c /tmp/.wpa_supplicant.conf -i eth0
root /sbin/dhclient -d -cf /etc/PmWiFiDhclient.conf -sf /etc/PmWiFiDhclient-script -lf /tmp/dhclient.eth0.leases.784 -pf /var/run/dhclient.eth
root ps -ax -o user,cmd



Packages Installed

root@castle:/var/home/root# ipkg list
agg - 2.4-2 -
alsa-conf-base - 1.0.18-2.1 - Alsa sound library
alsa-lib - 1.0.18-2.1 - Alsa sound library
alsa-plugins - 1.0.18-3 - ALSA Plugins
alsa-utils - 1.0.18-1 -
alsa-utils-amixer - 1.0.18-1 -
alsa-utils-aplay - 1.0.18-1 -
amazonservice - 1.0-5 - Amazon Service
audiod - 1.0-131.2 - Audio Policy Manager
audiod-config - 1.0-78 -
audiod-config-sprint - 1.0-2 - Audio Policy Manager Sprint Configuration
base-files - 3.0.14.2-6 - Miscellaneous files for the base system.
base-passwd - 3.5.9-r5 -
bcprov - 1.41-2 -
binutils - 2.17.50.0.8-r0 -
bootchart - 0.9-r2 -
bootloader - 1.0.0-145.2.5 - Bootie 'da Bootloader
browser-adapter - 1.0.0-81.1 - browser-adapter
browserserver - 1.0.0-147.15 - BrowserServer
busybox - 1.11.3-6 -
bzip2 - 1.0.2-r3 -
cairo - 1.3.14-r0 -
camd-omap34xx - 1.0.1-31 - Reference Platform SW Camera 3A Daemon
camsrc-omap34xx - 1.0.0-25 - Reference Platform SW Camera Gstreamer Plugin
castlecdmafw - 1.0.0-51 - Modem Firmware package for Castle CDMA EVT0B
castletpfw - 1.0.2-15 -
castleumtsfw - 1.0.0-49 -
cifs - 3.0.23c-1 -
cjson - 1.0-8.1 - cjson
codesourcery-arm - 2007q3-1 -
com.handson.app.nascar - 1.0-25 - NASCAR App
com.mobitv.app.sprinttv - 1.0-36 - SprintTV App
com.motionapps.rom.classic - 1.0.0-15 -
com.motionapps.service.classic - 1.0.0-15 -
com.palm.app.amazonstore - 1.0-56 - Amazon Music Store
com.palm.app.backup - 1.0-46.4 - Backup application
com.palm.app.bluetooth - 1.0-95 - Bluetooth Panel
com.palm.app.browser - 1.0-95.6 - Browser application
com.palm.app.calculator - 1.0-20 -
com.palm.app.calendar - 1.0-134.7 - Calendar application
com.palm.app.camera - 1.0-73 - Camera application
com.palm.app.certificate - 1.0-22 - Certificate Panel
com.palm.app.clock - 1.0-19 - Clock
com.palm.app.contacts - 1.0-142.6 - Contacts application
com.palm.app.dataimport - 1.0-18.3 - Data Import application
com.palm.app.dateandtime - 1.0-32.2 - Date and Time Pref
com.palm.app.deviceinfo - 1.0-53.4.4 - Device info application
com.palm.app.devmodeswitcher - 1.0-1 -
com.palm.app.docviewer - 1.0-67.4 - Office Document Viewer application
com.palm.app.email - 1.0-135.6 - eMail application
com.palm.app.findapps - 1.0-119.2 - FindApps application
com.palm.app.firstuse - 1.0-130.7 - First Use application
com.palm.app.help - 1.0-16 - Help App
com.palm.app.languagepicker - 1.0-23.1.1.1 - Langauge Preference Panel
com.palm.app.location - 1.0-9.1.1 -
com.palm.app.maps - 1.0-22.1.1 -
com.palm.app.messaging - 1.0-118.6.1 - Messaging application
com.palm.app.musicplayer - 1.0-134 - Music Player
com.palm.app.notes - 1.0-33.1 - Notes application
com.palm.app.pdfviewer - 1.0-64.1 - PDFViewer application
com.palm.app.phone - 1.0-196.11.1 - PhoneApp
com.palm.app.phoneprefs - 1.0-83.7.1.1 - PhonePrefs App
com.palm.app.photos - 1.0-100072.1.1.1 - Photos application
com.palm.app.screenlock - 1.0-40.7.1.1 - Screen Lock Preference Panel
com.palm.app.soundsandalerts - 1.0-27.6.1.1 - Sounds & Alerts Preference Panel
com.palm.app.sprintportal - 1.0-7 - Sprint Portal launcher icon
com.palm.app.streamingmusicplayer - 1.0-34 - Streaming Music Player
com.palm.app.tasks - 1.0-55.1.1 - Tasks application
com.palm.app.updates - 1.0-40.1.1 -
com.palm.app.videoplayer - 1.0-73.1 - Video Player
com.palm.app.wifi - 1.0-59 - Wifi Panel
com.palm.app.youtube - 1.0-23.1.1 - YouTube App
com.palm.crotest - 1.0-11 -
com.telenav.app.sprintnavigation - 1.0.0-50.8 - Telenav App
com.telenav.sprintnavigation - 1.0.0-50.8 - Telenav Service
contextupload - 1.0-6 - Context upload Service
cryptsetup - 1.0.6-r2 -
curl - 7.19.3-r2 -
cypress-multitouch - 1.0.0-26 -
dbus - 1.1.20-r14 -
dbus-lib - 1.1.20-r14 -
dbus-util - 1.0-4 -
default-content - 1.0.0-10 -
dhcp-client - 3.0.2-r5 -
directfb - 1.1.0-9 -
dnsmasq - 2.40-r0 -
docadapterbase - 1.0.0-12 -
documentserver - 1.0.1-82.3 - DocumentServer
domparser - 1.0-11 -
dosfstools - 3.0.2-r1 -
downloadupdate - 1.0.0-37 -
dropbear - 0.52-3 - Lightweight SSH client and server system
dspmon-omap34xx - 1.0.0-6 -
e2fsprogs-badblocks - 1.41.4-r0 -
e2fsprogs-blkid - 1.41.4-r0 -
e2fsprogs-e2fsck - 1.41.4-r0 -
e2fsprogs-fsck - 1.41.4-r0 -
e2fsprogs-libs - 1.41.4-r0 -
e2fsprogs-mke2fs - 1.41.4-r0 -
e2fsprogs-tune2fs - 1.41.4-r0 -
e2fsprogs-uuidgen - 1.41.4-r0 -
exmap-console - 0.4.1-r1 - Exmap-console is a suite of command line applications developed around the Exmap memory analysis tool.
expat - 1.95.8-r1 -
extractfs - 1.0.1-36.3.1 - Palm embedded file extractor
fbdraw - 1.0.0-5 -
fbset - 2.1-r2 -
ffmpeg - svnr16648-r4 -
fileindexer - 1.0.1-98.3.2 - File Indexer
firstuse-media - 1.0-1 - Media file used by luna app com.palm.app.firstuse
fnmbl-clientapi - 1.0-21 -
fnmbl-clientframework - 1.0-2.1 -
fontconfig - 2.3.2-r2 -
freefont-ttf - 20061128-r1 -
freetype - 2.3.6-r2 - Freetype font rendering library
fuse - 2.7.2-r1 - With FUSE it is possible to implement a fully functional filesystem in a userspace program
fuse-utils - 2.7.2-r1 - With FUSE it is possible to implement a fully functional filesystem in a userspace program
fuser - 22.2-r1 -
gdata-java-client - 1.0-4 -
gdb - 6.8-r0 -
gdbm - 1.8.3-r3 -
geolocation-adapter - 1.0-8 - geolocation-adapter
giflib - 4.1.6-r1 -
glib-2.0 - 2.14.4-r5 - GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, f
gloox - 1.0-8 -
gmflag - 1.0.0-1 -
gnutls - 1.6.1-r1 - GNU Transport Layer Security Library
goodfork - 1.0.0-2 -
google-rfc-2445 - 1.0-5 -
gst-ffmpeg - 0.10.6-r20 -
gst-plugins-bad - 0.10.9-r20 -
gst-plugins-base - 0.10.21-r23 -
gst-plugins-good - 0.10.11-r21 -
gstreamer - 0.10.21-r20.1 - GStreamer is a multimedia framework for encoding and decoding video and sound. It supports a wide range of formats including mp
harmony - 5.0.r603534-48.1 - Apache Harmony class library
harmonykernel - 1.0.0-20 -
hidaccelerometer - 1.0.0-22 -
hidavrcp - 1.0.0-1001 -
hidd - 1.0.0-41 -
hidkeypad - 1.0.0-26 -
hidlib - 1.0.0-28 - Library for HID plugins and utilities
hidlight - 1.0.0-8 -
hidproximity - 1.0.0-10 -
hidqemukeypad - 1.0.0-5 -
hidqemutouchpanel - 1.0.0-5 -
hidtouchpanel - 1.0.0-118.3 - HidTouchpanel is the userspace touchscreen plugin.
icu4j - 3.8-3 -
initscripts - 1.1-19.2 - SysV init scripts
install-first - 1.0.0-3 -
integcheck - 1.0-7 -
ipkg - 0.99.163-r8 -
iproute2 - 2.6.18-r0 -
iptables - 1.4.2-1 -
iputils-arping - 20020927-r4 -
java-activerecord - 1.0-89.1 - ActiveRecord
java-async - 1.0-6.1 -
java-com.palm.accounts - 1.0-79.3 - Accounts
java-com.palm.accountservices - 1.0-80.1 - Nova Account Service
java-com.palm.backup - 1.0-68.1 - Backup
java-com.palm.calendar - 1.0-83.8 - Calendar
java-com.palm.carriernetworksettings - 1.0-49 -
java-com.palm.contacts - 1.0-89.7 - Contacts Service
java-com.palm.customization - 1.0-30 -
java-com.palm.dataimport - 1.0-17 -
java-com.palm.datamigration - 1.0-4 -
java-com.palm.defaultdatabasebuilder - 1.0-3 - Default Database Builder
java-com.palm.deviceprofile - 1.0-35 -
java-com.palm.devicewipe - 1.0-6 -
java-com.palm.findapps - 1.0-1.1 -
java-com.palm.interfaceregistry - 1.0-3.1 -
java-com.palm.location - 1.0-43 -
java-com.palm.mail - 1.0-137.8 - Mail
java-com.palm.mediaevents - 1.0-8 -
java-com.palm.messaging - 1.0-162.2 - Messaging
java-com.palm.messagingrouter - 1.0-29 -
java-com.palm.notes - 1.0-3 -
java-com.palm.packageinfo - 1.0-9.1 -
java-com.palm.photos - 1.0-4 -
java-com.palm.pim - 1.0-155.7 - PIM
java-com.palm.pimsync - 1.0-92.2 - PIMSync
java-com.palm.scheduler - 1.0-26 - Scheduler
java-com.palm.serviceboot - 1.0-37.1 - ServiceBoot
java-com.palm.superlog - 1.0-18 -
java-com.palm.tasks - 1.0-23.1 -
java-com.palm.telephony - 1.0-141 -
java-service - 1.0-54 -
java-utils - 1.0-56 -
jemalloc - 1.0-3 -
joda-time - 1.0-3.1 -
jpeg - 6b-r6 -
jpegdecodelib-omap34xx - 1.0.0-11 -
jpegtranscodeclient-omap34xx - 1.0.0-7 -
jpegtranscodeserver-omap34xx - 1.0.0-16 -
jwap - 1.2.cvs04012008-7 -
kernel - 2.6.24-175.1.15 - Rockhoppper Linux Kernel, v2.6.24
kernel-dev - 2.6.24-175.1.15 - Rockhoppper Linux Kernel, v2.6.24
kernel-image-2.6.24-palm-joplin-3430 - 2.6.24-175.1.15 - Rockhoppper Linux Kernel, v2.6.24
kernel-module-ecb - 2.6.24-175.1.15 - ecb kernel module; ECB block cipher algorithm
kernel-module-g-composite - 2.6.24-175.1.15 - g-composite kernel module; USB Gadget filesystem
kernel-module-oprofile - 2.6.24-175.1.15 - oprofile kernel module; OProfile system profiler
kernel-module-pcbc - 2.6.24-175.1.15 - pcbc kernel module; PCBC block cipher algorithm
kernel-module-scsi-wait-scan - 2.6.24-175.1.15 - scsi-wait-scan kernel module; SCSI wait for scans
kernel-modules - 2.6.24-175.1.15 - Kernel modules meta package
killall - 22.2-r1 -
klog - 1.0-1 -
ksoap - 2.1.1-2 -
libasound - 1.0.18-2.1 - Alsa sound library
libasound-module-ctl-pulse - 1.0.18-3 - Alsa plugin for ctl-pulse
libasound-module-pcm-pulse - 1.0.18-3 - Alsa plugin for pcm-pulse
libatomic-ops - 1.2-1 -
libavcodec - svnr16648-r4 -
libavdevice - svnr16648-r4 -
libavformat - svnr16648-r4 -
libavutil - svnr16648-r4 -
libcrypto - 0.9.8j-r2 -
libcurl - 7.19.3-r2 -
libgcrypt - 1.4.4-r1 - A general purpose cryptographic library based on the code from GnuPG
libgdbus - 1.0.0-r7 -
libgpg-error - 1.4-r2 - GPG-Error library
libgpod - 0.6.0-r0 -
libicudata - 3.6-r2 -
libicui18n - 3.6-r2 -
libicuio - 3.6-r2 -
libicule - 3.6-r2 -
libiculx - 3.6-r2 -
libicutu - 3.6-r2 -
libicuuc - 3.6-r2 -
libipkg - 0.99.163-r8 -
libltdl - 1.5.24-r1 -
libmatthew-java - 0.7-r1 -
liboil - 0.3.14-r0 -
libpcap - 0.9.3-r2 - Network Packet Capture Library
libpng - 1.2.12-r5 -
libpng12 - 1.2.12-r5 -
libpulse - 0.9.14-5.4 - Pulseaudio is a sound server for Linux and Unix-like operating systems.
libpulse-simple - 0.9.14-5.4 - Pulseaudio is a sound server for Linux and Unix-like operating systems.
libpulsecore - 0.9.14-5.4 - Pulseaudio is a sound server for Linux and Unix-like operating systems.
libpurple - 1.0-r23 - multi-protocol instant messaging library
libpurple-adapter - 1.0-70 - Wrapper around libpurple for exposing libpurple functionality over dbus
libsamplerate0 - 0.1.2-r2 -
libsndfile1 - 1.0.17-r5 -
libspeex - 1.2rc1-r2 -
libsqlite - 3.6.1-r0 -
libssl - 0.9.8j-r2 -
libsysfs - 2.0.0-r0 -
libulockmgr - 2.7.2-r1 - With FUSE it is possible to implement a fully functional filesystem in a userspace program
libvolume-id - 115-r15 -
libxml2 - 2.6.26-r4 - GNOME XML Parser library
libxslt - 1.1.17-r5 - GNOME XSLT library
locationadapter - 1.0-12 - locationadapter
logctld - 1.0-25 - Log Control service
luna-applauncher - 1.0-83.4.1 - Luna Application Launcher
luna-fonts - 1.0-16 -
luna-init - 1.0-37.3 - Luna Init
luna-keymap-headers - 1.0-14 -
luna-media - 1.0-84 - Media Objects for Luna
luna-media-adapter - 1.0-45 - LunaMediaAdapter
luna-network - 1.0-17.6.1 -
luna-prefs - 1.0-43 - LunaPreferencesManager
luna-pseudocard - 1.0-7.1 - Pseudocard for luna
luna-service - 1.0.0-61 -
luna-sysmgr - 1.0-471.45 - LunaWindowManager
luna-sysservice - 1.0-34.6 - Luna System Service
luna-systemui - 1.0-183.16.1 - Luna System UI
luna-webkit - v8-162.40 - Webkit 31 + v8 Javascript engine
lvm2 - 2.02.44-r1 -
lvm2-config - 2.02.44-r1 -
lvm2-static - 2.02.44-r1 -
makedevs - 1.0.0-r2 -
masflib - 1.0-4 -
mediaadpcmdecodelib - 1.0.0-1 -
mediaregistryapp - 1.0.0-18 -
mediaserver - 1.0.0-145.13 - PmMediaServer
memchute - 1.0.0-13 - Palm Memchute - low-memory manager
minicore2 - 1.0.0-13 -
mjson - 1.0-12 -
mkbootfs-tools - 1.0-6 -
mobitv-sprint-rtspsrc - 1.0.0-16 - MobiTV GStreamer RTSP Source Element
module-init-tools - 3.2.2-r3 -
module-init-tools-depmod - 3.2.2-r3 -
modutils-initscripts - 1.0-r2 -
mojo - 1.0-175.7 - Mojo Application Framework
mtools - 3.9.11-r4 -
ncurses - 5.4-r9 -
net-tools-netstat - 1.60-r3 -
netbase - 4.21-r16 -
netcat - 0.7.1-r1 -
novacom - 1.0-5 -
novacomd - 1.0-45 -
npapiinterfacelib - 1.0.0-11 - NPAPIInterface
ntpdate - 4.2.2p3-r1 -
oasisharmonyvm - 1.0-96.2 - Oasis VM
officeadapter - 1.0.0-47 -
officeserver - 1.0.0-68.1 - OfficeServer
omadm - 1.0.0-94.1 -
omxclientlib-omap34xx - 1.0.0-14 -
openssl - 0.9.8j-r2 -
oprofile - 0.9.3-r3 -
org.json - 1.0-2.1 -
ossinfo - 1.0.0-9 -
palmaacdemux - 1.0.0-24 -
palmadpcmdecoder - 1.0.0-5 -
palmamrdemux - 1.0.0-10 -
palmaudiodecoder-omap34xx - 1.0.0-52 - palmaudiodecoder: audio decoder plugin that supports mp3, amr and aac
palmbuildinfo - 1.0.3-118 - Build Info
palmcustomizationinfo - 1.0.0-118 - Customization Info
palmdrmlib - 1.0.0-12 -
palmdrmutilslib - 1.0.0-3 -
palmhttpsrc - 1.0.0-47 - PmMediaGstHttpSrcLib
palmipc-java - 1.0.0-21 - palmipc-java
palmjpgencsink-omap34xx - 1.0.0-44 - PmMediaGstJpegEncSinkLib
palmmp3demux - 1.0.0-82 - PmMediaGstMp3DemuxLib
palmqcelpdemux - 1.0.0-15 -
palmvideodecoder-omap34xx - 1.0.0-42 - palmvideodecoder
palmvideoencoder-omap34xx - 1.0.0-3 -
palmvideosink-omap34xx - 1.0.0-34 - PmMediaGstVideoSinkLib
passthrud-castle - 1.0.0-31 -
pdfadapter - 1.0.0-36 -
piranha - 1.1-60.1 -
pmappsigningcerts - 1.0.0-1 -
pmbtcontacts - 1.0.0-1006.1 -
pmbtengine - 1.0.0-100000 -
pmbtlib - 1.0.0-38 -
pmbtos - 1.0.0-1009 -
pmbtstack - 1.0.1-100000 -
pmbtstartup - 1.0.0-1004 -
pmbttest - 1.0.0-71 - PmBtTest
pmcasper - 1.0.0-10 -
pmcertificatemgr - 1.0.0-11 -
pmcertificatemgrservice - 1.0.0-18 -
pmcertstore - 1.0.1-5.1 -
pmconnectionmanager - 1.0.0-38 - Provides Connection Management functionality for the system
pmeloop - 1.0.0-3 -
pmipcdispatch - 1.0.0-8 -
pmipclib - 1.0.0-44.3 - Palm IPC Library
pmlinuxmodemcmd - 1.0.0-6 -
pmlogctl - 1.0.0-7 -
pmlogdaemon - 1.0.0-57 -
pmloglib - 1.0.0-8 -
pmmedia - 1.0.0-2 -
pmmedia-omap34xx - 1.0.0-2 -
pmmodemfactory - 1.0.0-21 -
pmmodeminfo - 1.0.0-19 -
pmmodempower - 1.0-5 -
pmmodemupdater - 1.0.0-56 -
pmnetconfiglib - 1.0.0-9 -
pmnetconfigmanager - 1.0.0-27 -
pmnetworking - 1.0.0- -
pmnetworking-castle - 1.0.0- -
pmsystemtimeout - 1.0-1 -
pmtelephony - 1.0.0-1 -
pmtelephony-msm6xxx - 1.0.0-1 -
pmtpupdater - 1.0.1-24 -
pmupdater - 1.0.0-89 -
pmwandaemon - 1.0.0-101.5 - PmWanDaemon
pmwanpppplugin - 1.0.0-14 -
pmwifidriver - 1.0.0-39-175.1.15 - Marvell's WiFi Driver for SD8686 chipset
pmwifiservice - 1.0.0-63 - PmWiFiService: Linux Daemon which controls WiFi subsystem
popt - 1.7-r4 -
powerd - 1.0.0-124 - Palm powerd daemon
ppp - 2.4.3-r3 -
procps - 3.2.7-r8 -
psmisc - 22.2-r1 -
pstree - 22.2-r1 -
pubsubservice - 1.0-49.2 - Publish Subscribe Service
pulseaudio - 0.9.14-5.4 - Pulseaudio is a sound server for Linux and Unix-like operating systems.
pulseaudio-lib-alsa-util - 0.9.14-5.4 - PulseAudio library for alsa-util
pulseaudio-lib-auth-cookie - 0.9.14-5.4 - PulseAudio library for auth-cookie
pulseaudio-lib-authkey - 0.9.14-5.4 - PulseAudio library for authkey
pulseaudio-lib-cli - 0.9.14-5.4 - PulseAudio library for cli
pulseaudio-lib-iochannel - 0.9.14-5.4 - PulseAudio library for iochannel
pulseaudio-lib-ioline - 0.9.14-5.4 - PulseAudio library for ioline
pulseaudio-lib-ipacl - 0.9.14-5.4 - PulseAudio library for ipacl
pulseaudio-lib-packet - 0.9.14-5.4 - PulseAudio library for packet
pulseaudio-lib-pdispatch - 0.9.14-5.4 - PulseAudio library for pdispatch
pulseaudio-lib-protocol-cli - 0.9.14-5.4 - PulseAudio library for protocol-cli
pulseaudio-lib-protocol-native - 0.9.14-5.4 - PulseAudio library for protocol-native
pulseaudio-lib-pstream - 0.9.14-5.4 - PulseAudio library for pstream
pulseaudio-lib-pstream-util - 0.9.14-5.4 - PulseAudio library for pstream-util
pulseaudio-lib-socket-server - 0.9.14-5.4 - PulseAudio library for socket-server
pulseaudio-lib-socket-util - 0.9.14-5.4 - PulseAudio library for socket-util
pulseaudio-lib-strlist - 0.9.14-5.4 - PulseAudio library for strlist
pulseaudio-lib-tagstruct - 0.9.14-5.4 - PulseAudio library for tagstruct
pulseaudio-misc - 0.9.14-5.4 - Pulseaudio is a sound server for Linux and Unix-like operating systems.
pulseaudio-module-alsa-sink - 0.9.14-5.4 - PulseAudio module for alsa-sink
pulseaudio-module-alsa-source - 0.9.14-5.4 - PulseAudio module for alsa-source
pulseaudio-module-cli - 0.9.14-5.4 - PulseAudio module for cli
pulseaudio-module-cli-protocol-unix - 0.9.14-5.4 - PulseAudio module for cli-protocol-unix
pulseaudio-module-default-device-restore - 0.9.14-5.4 - PulseAudio module for default-device-restore
pulseaudio-module-detect - 0.9.14-5.4 - PulseAudio module for detect
pulseaudio-module-native-protocol-unix - 0.9.14-5.4 - PulseAudio module for native-protocol-unix
pulseaudio-module-null-sink - 0.9.14-5.4 - PulseAudio module for null-sink
pulseaudio-module-palm-a2dp-provider-sink - 0.9.14-5.4 - PulseAudio module for palm-a2dp-provider-sink
pulseaudio-module-palm-policy - 0.9.14-5.4 - PulseAudio module for palm-policy
pulseaudio-module-rescue-streams - 0.9.14-5.4 - PulseAudio module for rescue-streams
pulseaudio-module-suspend-on-idle - 0.9.14-5.4 - PulseAudio module for suspend-on-idle
pulseaudio-module-volume-restore - 0.9.14-5.4 - PulseAudio module for volume-restore
pulseaudio-server - 0.9.14-5.4 - Pulseaudio is a sound server for Linux and Unix-like operating systems.
rdxd - 1.0.0-44.2 - Remote diagnostics daemon
readline - 4.3-r4 -
redbend - 2.1.1.13-2 -
rsync - 2.6.9-r0 -
saxparser - 1.0-13 - saxparser
screen - 4.0.2-r1 -
setcharge - 0.1-4 -
setserial - 2.17-r1 -
shutdownscripts - 1.0.0-15 -
sprintdaemon - 1.0.0-51.6 - SprintDaemon listens for IPC messages send by client or server (Sprint) for provisioning and device configuration, and launches
sqlite-service - 1.0-6 -
sqlite3 - 3.6.1-r0 -
sqlite3-palm-extension - 1.0-15 -
sqlitejdbc - v053-4 -
storaged - 1.0-51.1 - Storage Manager
strace - 4.5.14-r4 -
sweatshop-sprint-castle - 1.0-118 - Version 1.0-118 of package sweatshop-sprint-castle
sysfsutils - 2.0.0-r0 -
sysstat - 9.0.1-r1 -
systemsoundsloader - 1.0.0-13 -
sysvinit - 2.86-r36 -
sysvinit-pidof - 2.86-r36 -
telephonyinterfacelayer1cdma - 1.0.0-118.9 - TelephonyInterfaceLayer for CDMA
telephonyinterfacelayer1gsm - 1.0.0-125 -
telephonyinterfacelayercommon - 1.0.0-2 -
tellbootie - 1.0-3 -
thumbnailextractorlib-omap34xx - 1.0.0-21 - ThumbnailExtractor
tiff - 3.7.1-r0 -
tilipctest - 1.0.0-54 -
timezone - 2006l-r1 -
tiopenmax - L23.8M3-127-175.1.15 - OpenMax IL implementation from Texas Instruments
touchpanel-measure - 1.0-2 -
trenchcoat - 1.1-33 - Trenchcoat -- Palm's Flashing Tool
udev - 115-r15 -
update-modules - 1.0-r4 -
update-rc.d - 0.7-r0 -
updatedaemon - 1.0.0-115 - UpdateDaemon listens for IPC messages involving a system software update, and launches the OmaDm, Downloader, and PmUpdater exe
uploadd - 1.0.0-17 -
upstart - 0.3.8-16-r1 -
upstart-initscripts - 1.0-66.1 - upstart jobs not package-specific
upstart-sysvcompat - 0.3.8-16-r1 -
uriparser - 0.7.4-r0 -
usbmon - 1.0-3 -
usbnet - 1.0.0-1 -
util-linux-ng-blockdev - 2.14.2-r4 -
util-linux-ng-ionice - 2.14.2-r4 -
util-linux-ng-losetup - 2.14.2-r4 -
util-linux-ng-mkswap - 2.14.2-r4 -
util-linux-ng-swaponoff - 2.14.2-r4 -
vibetonz - 1.0.0-4 -
vibetonz-castle - 1.0.0-4 -
wireless-tools - 29-r2 -
wpa-supplicant - 0.6.4-r0 -
wxwidgets - 2.8.7-r3 - wxWidgets is a cross platform application framework utilizing native widgets.
zlib - 1.2.3-r2 -

It’s time for me to praise one of the useful utilities that makes my everyday work just a little bit more pleasant: rlwrap.

rlwrap “wraps” other interactive programs, providing readline functionality for programs that don’t have it built in. For example, last week I had to repeatedly use ‘imtest’ and ‘cyradm’ while doing some exploration about IMAP. Neither of these tools supports readline, so I normally would be able to press ‘up’ to recall my last command, use ^W or ^U to clear parts of my command, or use ^R to search my history. This would be very frustrating.

So, here comes rlwrap. You use it just like sudo, prefixing it to the command you want to run, thus

imtest -u sweeks -a vmadmin -t '' -m plain localhost

becomes

rlwrap imtest -u sweeks -a vmadmin -t '' -m plain localhost

rlwrap even remembers command history on a per-command basis, so you can recall your interactive commands from previous sessions. This greatly eases debugging. rlwrap is a very valuable part of my toolkit. If this interests you, you can also enable filename tab-completion, or even custom wordlists for tab-completion of command-specific commands.

I mentioned this to my co-workers, and I was surprised to hear that none of them had ever heard of it before. What tools do you use that you take for granted that everybody knows about?

On Saturday, I wrote up a possible API for Parrot compilers to support loading libraries written in other languages and discussed some of the details with Jonathan++ and Allison++. It’s not perfect, and is missing a few parts, but should be extensible enough to support whatever else we need in the future. I still need to formalize it a bit and add it to the Parrot docs and the example language shell.

On Sunday, I implemented it on Rakudo (Perl 6) and Cardinal (Ruby; very incomplete).

This morning, after confirming the spec with pmicahud++, I merged the changes into Rakudo trunk.

The syntax for specifying the source language for Perl 6 is:

use Foo:lang<cardinal>;

I couldn’t quite figure out what an appropriate way to do this in Ruby would be, so I just added a function to cardinal:

foreign_load('perl6','Foo/Bar')

If you have a better suggestion for what it should look like in Ruby, please let me know! I don’t actually know much Ruby at all, so my Ruby compiler is fairly limited.

I’ll be adding support for this to pynie (Python) soon, and other languages after that.

Here’s a simple example of using a Perl library from Ruby:

[sweeks@kweh ~]$ cat Foo.pm
module Foo {
    sub greet($name) is export {
        say "Hello, $name!"
    }
}
[sweeks@kweh ~]$ cat perl6.rb
foreign_load 'perl6', 'Foo'
['Ruby', 'Perl', 'World'].each { |name| greet name }
[sweeks@kweh ~]$ cardinal perl6.rb
Hello, Ruby!
Hello, Perl!
Hello, World!

Here’s a similar example of using a Ruby library from Perl:

[sweeks@kweh ~]$ cat Foo.rb
module Foo
    def greet(name)
        puts "hello, " + name
    end
    def apply_people(cb)
        people = ['Dave', 'Bryan', 'Stuart', 'Dax']
        people.each { |name| cb(name) }
    end
end
[sweeks@kweh ~]$ cat ruby.pl
use Foo:lang<cardinal>;
greet("person $_") for 1..5;
apply_people( { say "hello from perl, $^name" } )
[sweeks@kweh ~]$ perl6 ruby.pl
hello, person 1
hello, person 2
hello, person 3
hello, person 4
hello, person 5
hello from perl, Dave
hello from perl, Bryan
hello from perl, Stuart
hello from perl, Dax

Thanks go to my employer (Guru Labs) for their support in my work on Rakudo and Parrot.

Rakudo is just starting to get support for adding custom operators to the grammar from user-level code. You can’t specify the precedence yet, but you can run the traditional examples:

multi sub infix:<±>(Int $a, Int $b) { return $a + $b | $a - $b }
multi sub postfix:<!>(Int $a where { $_ > 0 }) { return [*] 1..$a }

my $x = 5! ± 2;
say "hi dood" if $x > 121;
say "hello again" if $x < 119;

I was playing around today with defining operators for mathematical set operations (∩ ∪ ∖ ⊂ ⊃ ⊆ ⊇ etc.) and then decided that I wanted a fancy syntax for defining sets, so I added support to rakudo for circumfix operator definition, and i now have this running on rakudo:

say "subset" if ⦃ 1, 3, 5 ⦄ ⊆ ⦃ 1, 2, 3, 4, 5 ⦄;

Aggregated Blogs:

Aaron Toponce
Almost Everything Linux
Bryan's Blog
Dax's Blog
D. E. Evans
goozbach's Techtips
Mike
Stephen Weeks
Stuart's Blog
Tim - the *other* archlinux user