My adventures with:

Digital Multimedia Players

Email me at:

Updated Feb-2007: KnoppMyth
Jun-03-2006: Added section on MP101
1/30/2005
: created

 


KnoppMyth

Did an auto-install of KnoppMyth (current version at the time was 5E50). Auto-install installs a combined front and backend and completely formats the hard drive. This all seems to work smoothly, I tried it on two machines: 1) an older P3-800MHz system, and 2) a newish 2.5GHz P4. Neither had a tuner card, but both did have an analog capture card so that sets up easily and I could test recording SDTV.

To make the backend available on a network, edit the /etc/mysql/my.cnf and put in the real IP address instead of 127.0.0.1. So far, I have tried making my laptop the front end and it all connects up and see the backend but cannot actually get the materiel (e.g. a video, or music file) -- i think it is because the NFS (SMB?) server is configured but not started by default on the backend

Kernel compile

This thread specificially discusses where to get source and how to compile kernel for 5E50. There is a wiki about VMware in 5E50, it includes a discussion about comiling the kernel from source. [Also, as a warning to myself: if the linux link (discussed below) is pointed at the unbuilt source, the build will fail -- so be sure the symlink points to the headers. If starting from a fresh install, the link will be pointing at the headers] Also he does a make rather than a make-kpkg... I don't think it matters for my purposes, the make-kpkg probaby does everything make does and it also creates a .deb file which i guess contains everything in the kernel source tree. Here are cut-and-paste commands (this takes my older P3 machine over2 hours!):

cd /usr/src 
wget ftp://knoppmyth.net/R5/linux-source-2.6.18-chw-13_2.6.18-chw-13-10.00.Custom_all.deb 
dpkg -i linux-source-2.6.18-chw-13_2.6.18-chw-13-10.00.Custom_all.deb 
tar xjvf linux-source-2.6.18-chw-13.tar.bz2
# rebuild the kernel package using the existing configuration 
cd /usr/src/linux-source-2.6.18-chw-13 
cp /boot/config-2.6.18-chw-13 .config 
make
# or could do a 'make-kpkg kernel_image' it produces a .deb file which I didn't need
# change the main source symlink to point at the sources 
cd /usr/src 
rm linux 
ln -s linux-source-2.6.18-chw-13 linux
# re-point the "build" link at the full source (comes in handy later when compiling atmelwlan driver)
cd /lib/modules/linux-source-2.6.18-chw-13; rm build; ln -s /usr/src/linux-source-2.6.18-chw-13 build

The above sequence just re-builds the same kenel configuration. Later on, I wanted to change a few things, e.g. I needed to turn off SMP for the atmelwlandriver. I also changed the name of the kernel (the "EXTRAVERSION") so that everything would be completely distinct. So, e.g. my version is now 2.6.18-chw-13-noSMP:

nano Makefile // change the EXTRAVERSION, if you wish
make          // (instead of make-kpkg?) this builds the kernel and modules, take a long time
make install
make modules_install   // this will put modules into /lib/modules/2.6.18-chw-13-noSMP
nano /etc/lilo.conf    // I had to fix up lilo...I'm not sure why but make install didn't seem to do the right thing
   // just need an "image=" line, e.g. image=/boot/vmlinuz-2.6.18-chw-13-noSMP
   // and also a way to boot, e.g. uncomment the "prompt" command 
lilo  // outputs some info, watch out for errors or skipping messages

This all seems to have worked. The only thing I noticed was that lirc apparently isn't included, so upon restart, it complained that lirc was missing. So I compiled lirc, see below. Note that redoing everything takes up around 1GB of hard disk space. Not sure about the initial ramdrive image (initrd.img), the default image is specified by lilo.conf, but the above procedure doesn't make a new one, nor does it seem to be necessary(?).

LIRC / remote control

LIRC : I got a very inexpensive Packard Bell (under $11 shipped from Tekgems) remote with serial receiver. The receiver seems to work exactly the same as the "homebrew" receivers. The remote is sortof cheesy but it seems to work just fine. Getting it going with Myth at first seemed daunting, I went down several metaphorical dark alleys. There is a script in the KnoppMyth distribution called /usr/local/bin/lirc-reconfig.sh, which tantalyzingly has a selection for the packard_bell, but just fails saying sorry. The trick is to simply select the rca-6n1, and then fixup the lirc.conf file and place the lircrc file (which you need to find, e.g. there is one in this thread):

cp /usr/local/share/knoppmyth/remotes/packard_bell/etc/lircd.conf /etc/lirc/lircd.conf
cp YourLircrcFile /home/mythtv/.mythtv/lircrc

I was initially (and still) confused about the prog= in the lircrc file. This file maps between key names from lircd.conf and an lirc-aware program. I am confused as to why Xine gets the commands via mythtv -- but contrarily mplayer (which plays, e.g. .avi videos) gets it's own remote keypresses. A partial lircrc file, you get the idea:

begin 
prog = mythtv 
button = Up 
config = Up 
end 

begin 
prog = mythtv 
button = One 
config = 1 
end 
...and so on...  

There is a longer list of remote lirc.conf files here. To test it, first /etc/init.d/lirc stop; then: lircd -n --device=/dev/lirc0, and irw in another window. you should see each keypress.

LIRC compile: FIRST OFF...it is NOT necessary to rebuild lirc to get the packard bell remote to work with 5E50, the supplied executable is just fine. To compile lirc source just wget the source (I got 0.8.1) and expand it. Run ./setup but just do a "save config and exit". The only hangup was by default the configure can't find the source for some reason, the solution is to add two lines to the configure.sh file (or can be given as command-line switches when running ./configure) see this thread which has these secret commands:

--prefix=/usr \ 
--with-kerneldir=/usr/src/linux-source-2.6.18-chw-13 \

It is not clear to me now if you need the kernel sources and/or rebuilt, or if it built okay with just the headers. Also, I had terrible troubles using nano and cut-and-pasting in these commands -- it seems like maybe it was sticking in CR-LFs and that was messing up the shell interpreter(!?). After the configure.sh runs, do a regular old make and make install. According to the thread mentioned above, the new exectuable doesn't work right...I don't know, I didn't try, I just wanted to configure and compile without error.

Wireless driver / atmelwlandriver

Wanted to build the atmelwlandriver so I could use my Linksys WUSB11 ver2.6, which is a 802.11b wireless USB adapter. There are many other popular and not so popular versions of this hardware, see here (lsusb should tell you the ID for sure). The README states that for 2.6 kernels a kernel patch is required -- I tried the patch but it failed 2 "hunks", anyway it doesn't seem to need it(?). The README also states that the kernel and modules must have SMP off, and the kernel supplied with KnoppMyth 5E50 has it on. I went ahead and ignored that, and so far as I can tell, it isn't a problem (but on the other hand, I am running on a single processor).

To sum up the kernel prerequisites: you still must get and build the full kernel sources and build them, but I did not change the configuration (.config) in any way. The atmelwlan sources will not compile with just the headers supplied with KnoppMyth 5E50. See this thread for where and how to get/build the kernel sources.

Let's get started, grab the atmelwlan souce:

cd /usr/src
wget http://superb-west.dl.sourceforge.net/sourceforge/atmelwlandriver/atmelwlandriver-3.4.1.1.tar.bz2
tar xvf atmel*

Before the source can be built, ensure that the link at /lib/modules/...version.../build points to the kernel source -- by default, it is pointing at the linux-headers, and will cause the compile to fail. Next, I needed to make changes to two source files to get the compile to work. These seem to have something to do with using a newer version of gcc, the atmelwlan source was last updated in mid-2005. There are three edits necessay:

  1. src/usb/rx.c get rid of some type casting on the left side, e.g. (UCHAR) -- just eliminate it.
  2. Similarly, in src/usb/vnetusba.c similar problem with (U64).
  3. Lastly, also in vnetusba.c the define URB_ASYNC_UNLINK is not defined on latest kernels. Apparently it should be 0 -- just eliminate all the lines containing that label.

. With these three changes everything compiles:

make usb buildonly=release // do a "make" without an parameters to see all the options
make lvnet                 // this is the configuration utility
make install
depmod -aeq                // as suggested by the make install

The make install puts the drivers into /lib/modules/...version.../kernel/drivers/usb, my hardware uses the driver usbvnetr.ko. It also puts the executable lvnet somewhere. I did *not* do the depmod command as suggested at the end of make install...I'm not sure what that does but it doesn't seem like I needed it.

At this point, when you plug in the usb adapter, you will get a couple of messages saying....

and can use iwconfig (and/or lvnet) and ifconfig, dhclient, etc. to manually configure and test the adapter. For example, my interface was called atml0, so here are two commands to configure my linksys WUSB11 v.2.6 hardware on my 64-bit wep encryption network, and pull a dhcp address:

#!/bin/bash
# don't need to do the insmod, module should load automatically
# insmod /lib/modules/2.6.18-chw-13/kernel/drivers/usb/usbvnetr.ko
iwconfig atml0 essid "name" key open NNNNNNNNNN
dhclient atml0

To make this happen each time you use the adapter, you can enter equivalent commands into the file /etc/network/interfaces, see sample below. Then, to use the wireless interface, just issue a 'ifup atml0'.

iface atml0 inet static
  wireless-essid mymot
  wireless-key open NNNNNNNNNN
  address 10.1.1.141
  netmask 255.255.255.0
  gateway 10.1.1.1

Here is what the /var/log/messages look like (not sure what's what with the failure messages but it seems to work anyway):

usb 1-2: new full speed USB device using uhci_hcd and address 2
usb 1-2: configuration #1 chosen from 1 choice
usb vendor/product=77b/2219
usb 1-2: reset full speed USB device using uhci_hcd and address 2
usb 1-2: device firmware changed
usb 1-2: USB disconnect, address 2
/usr/src/atmelwlandriver/objs/usbvnetr/release/vnet.c: Device Reset failed
/usr/src/atmelwlandriver/objs/usbvnetr/release/vnetusba.c: device initialization failed
usbcore: registered new driver usbvnetr
usb 1-2: new full speed USB device using uhci_hcd and address 3
usb 1-2: configuration #1 chosen from 1 choice
usb vendor/product=77b/2219
usbvnetr: driver version 2.0.1.0, compiled Mar 3 2007 16:47:38 (dbg_mask x0)
MAC addr 00:06:25:27:44:8F firmware 1.103.4.175
Encryption of AP is ENABLED mymot - On card Encryption is DISABLED

...and then when the interface is brought up...

atml0 (WE) : Driver using old /proc/net/wireless support, please fix driver !

...unresolved problem: if I ifdown atml0, it throws an error, but seems otherwise okay. syslogd says:

BUG: scheduling while atomic: iwconfig/0xffffffff/3054 (and some trace stuff)
Kernel panic - not syncing: Aiee, killing interrupt handler!

 

Firefox on KnoppMyth 5E50

There is a wiki entry on how to install and run the firefox executable -- unfortunately on KnoppMyth 5E50 running firefox fails saying that

./firefox-bin: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

(libstdc++6 is in /usr/lib, libstdc++5 is from an older version of gcc). Fortunately there is a forum thread that decribed how to get the library. Here is the condensed instructions:

wget http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.1/linux-i686/en-US/firefox-2.0.0.1.tar.gz
tar zxvf firefox-2.0.0.1.tar.gz
wget http://http.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-15_i386.deb
dpkg -i libstdc++5_3.3.6-15_i386.deb

At this point, dpkg will make some complaints, but the new old library will pop up: /usr/lib/libstdc++.so.5 and ./firefox should run from an xterm window. There are instructions in the wiki on how to make it the browser for Mythweb, if desired.

Tcpdump

I was messing around with networks and I wanted to use tcpdump, but Knoppmyth didn't have it installed...so I tried getting and compiling: tcpdump said i needed libpcap said i needed flex said I needed something else. (I still haven't figured out how to use something like apt-get). It actually turned out to be easy to get and install the binaries:

wget http://ftp.egr.msu.edu/debian/pool/main/libp/libpcap0.8/libpcap0.8_0.9.5-1_i386.deb
wget http://ftp.egr.msu.edu/debian/pool/main/t/tcpdump/tcpdump_3.9.5-2_i386.deb
dpkg -i libpcap0.8_0.9.5-1_i386.deb
dpkg -i tcpdump_3.9.5-1_i386.deb

 

Backup

TLDP has a HOWTO that discusses total ("bare metal") backup/restore process. It includes a script that generates a script to save and restore partition information. I also looked at an article and sourceforge project called Simple Linux Backup, it was pretty informative, but it's gui frontend uses java and some gtk stuff that I didn't have. So far, this all seemed fairly complicated and intricate, so I embarked on a small project to use just a little script and the bootable Knoppmyth installation CD...

There was some discussion of how to do a full backup: user marc.aronson reported thatDrive Image 7 worked. Other suggestions were partimage.org (see System Rescue CD for a bootable toolkit with partimage), mondorescue.org, Ghost, Acronis. [Note about Ghost: I quickly tried Ghost version?, the newest dos version and I couldn't get the restored partition to work -- "bad superblock"??] The Drive Image 7 solution requires putting the knoppmyth hard drive into a Windows machine. The approach I finally settled on below has the advantage of using just the Knoppmyth CD, using standard Linux tools.

There is a backup and restore available from the mythfrontend, it is in the Knoppmyth menu, which is on the main menu -- these are described in a wiki entry. These scripts are stored in /usr/local/bin: mythbackup, mythrestore and backupcommon. However, I wanted to do a full/"bare metal" backup that would wholly recreate the root partition (nominally /dev/hda1), so what I settled on was to tar up every folder in the root, using the mythbackup/restore scripts as a template. As far as I can tell, the hard disk's root filesystem CANNOT be mounted during this procedure --

  1. boot up system -- but NOT from the target hard disk (the one you are attempting to backup or restore), I used a Knoppmyth 5E50 CD... you can use Alt-F2, F3, etc. to get a shell prompt.
  2. Make the scripts available somehow, e.g. copy them from a USB stick. Tweak the backupcommon script to make it match your configuration, by default it matches the auto-install partition scheme
  3. Run the backup script (if backing up) or the restore script if restoring.

The df command reports that my hda1 partition was using ~2Gbytes. The uncompressed tarfile was ~1.7GBytes, after gzip compression it was about 650MBytes. The tar took about 5 minutes, and the gzip -9 compression took about 20 minutes on my very old, very slow 500MHz Celeron system (curiously, bzip2 -1 gave a little better compression and was much faster at 10 minutes). The system was mostly just a fresh install, but with full built kernel sources, and a couple of other things I had built.

backupcommon:
#!/bin/bash

#----------------------------------------------------------------------------
BACKUP_LIST="./var ./bin ./boot ./cache ./cdrom ./dev ./etc ./home ./initrd ./lib ./media ./mnt ./myth ./opt ./proc ./root ./sbin ./srv ./sys ./tmp ./usr"
RESTORE_LIST=$BACKUP_LIST
BACKUP_PART="/hda1"
BACKUP_DEV="/hda3"
BACKUP_DIR="$BACKUP_DEV/backup"
BACKUP_EXTRAS="$BACKUP_DIR/backup.list"
RESTORE_EXTRAS="$BACKUP_DIR/restore.list"
BACKUP_TAR="$BACKUP_DIR/wholeKnoppMyth.tar"
COMPRESSION=".gz"
#----------------------------------------------------------------------------
... also functions shrink and expand; see /usr/local/bin/backupcommon

mybackup:

#!/bin/bash

# WARNING: this script has not been TESTED!!!
#
# Only works assuming having booted from somewhere else (e.g. from a live CD)
#

#----------------------------------------------------------------------------
. ./backupcommon || {
    echo "Can not find executable file backupcommon in this directory!"
    exit 1 }
#----------------------------------------------------------------------------

mkdir $BACKUP_PART; mkdir $BACKUP_DEV
mount /dev$BACKUP_PART $BACKUP_PART
mount /dev$BACKUP_DEV  $BACKUP_DEV

cd $BACKUP_PART
tar cvf $BACKUP_TAR $BACKUP_LIST
echo "done tar..."

# On my knoppmyth 5E50 with full sources the tar file was ~ 1.7GBytes
# After bzipping, it shrunk to 600MBytes. The shrink took like 1/2 hour 

shrink $BACKUP_TAR

# If you can't read this you've got no business restoring from it anyway.
chown root:root $BACKUP_TAR*
chmod go-rwx $BACKUP_TAR*

echo "Sanity checking your backup..."
# This function now just does a -t on the compressed tarball
check_files $BACKUP_LIST

myrestore:

#!/bin/bash

# WARNING: this script has not been TESTED!!!
#
# Only works assuming having booted from somewhere else (e.g. from a live CD)
#
# Assumes the target device is hda, and it is already partitioned, hda1 is Linux
# for knoppmyth: hda1 is Linux, hda2 is swap, and hda3 is Linux (usually mounted in /myth)
#
#----------------------------------------------------------------------------
. ./backupcommon || {
    echo "Can not find executable file backupcommon in this directory!"
    exit 1 }
#----------------------------------------------------------------------------

mkfs.ext3 /dev$BACKUP_PART

mkdir $BACKUP_PART; mkdir $BACKUP_DEV
mount /dev$BACKUP_PART $BACKUP_PART
mount /dev$BACKUP_DEV  $BACKUP_DEV

cd $BACKUP_PART
expand -c $BACKUP_TAR$COMPRESSION | tar xpvf - 

chroot $BACKUP_PART lilo 

 

issues: can mplayer play the .nuv video files created by recording tv? how to change the ip address?

 


 

Philips DVP5982 upsampling DVD player w/Divx, usb

This was a costco "coupon" -- the price is $65 at my local costco. It comes bundled with an hdmi cable.

There is upgrade firmware, version 37.07.32.40 My unit shipped with 37.07.32.35. According to the readme the major new feature of this release is to default the HDMI audio to on -- something that would have been helpful to me when I hooked up my hdmi only to find out there was no audio.

Fatwallet thread.

Philip's page.

AVSforum thread about Pioneer DV-400. dvp5982 thread.

 

This solves my jerky playback problem:

KiwiKid posted 2006 Dec 26 13:58
It sounds like a packed bitstream issue to me as you guessed. I own four different Philips players with DIVX support. While they do play packed bitstream unlike some other players it is a little jerky especially evident in panning shots as you have noticed. I have done tests comparing the same scenes packed and unpacked to verify it. The latest GSpot beta is great for quickly checking if a movie is packed and Mpeg4 Modifier appears to be the tool most use for unpacking. I now unpack all movies as it takes less than five minutes.

Olevia 237V 37" LCD

, received 11/30/2006. Manufacturer a.k.a. Syntax/Brillian. Manufacturer's Product page. Purchased from Newegg for ~ $700 (Blackfriday timeframe. It seems to have gone up to $800, and shipping is more, now too). Newegg as usual exceeded my expectations: ordered on Sunday and delivered via UPS Wednesday. Long discussion thread on avsforum.

This unit uses the the MTK MDDI technology (whatever that is!) video processor. It is the same internerals as model 537H, which costs more but comes with some different features. The most obvious is that the H has its speakers underneath it, while the V models are out at the sides.

The manual is not printed, they include it as a pdf on a CD in the box, it is also online. It is of limited help. bad translations.

PIP is practically unusable. It can only be accessed through the menu -- no buttons on remote for PIP. Also, there are odd limitations on source for secondary (they call it sub-picture) source.

A nit: the day, which is calculated from from the date, is wrong by a day.

Can't figure out how to use the menus from the front-panel buttons -- i can't find the remote-equivalent of the "enter" button.

My unit first appeared DOA (yes, I found the power switch on the back) -- the blue light glowed steady but nothing else... neither the remote or front-panel power button had any effect. I called customer support [1-866-9OLEVIA (965-3842) ] and they had me unplug unit for 1 minute, then re-plug and everything worked.(!)

The button "Aspect" on the remote toggles between 5 settings: 1:1, aspect, full screen, zoom 1, zoom 2. I got confused when I was setting up the DVD with the TV on component input at 480P, so I measured the screen to be certain I was getting the right ratio -- e.g. with a 2.35 movie:

Aspect mode W H ratio comments
- 32.2 18.2 1.76 just the screen. note 16/9 = 1.77
"1:1" 16.5 8.5 1.94 how is this 1:1?
"aspect" 27.1 13.8 1.96 same ratio as 1:1, just a bit bigger
"full" 32.2 13.8 2.33 the right AR
"zoom 1" - -   useful for having SD letterbox fill up screen

The native resolution of the screen is something like 1366x768. I plugged in computer and it sync'ed up just fine to many resolutions. My PC also handily had 1360x768 -- that looked quite nice. Had some problems with screen noise with PowerDVD at full screen mode... other programs didn't seem to have the noise. Also, i didn't try to adjust the colors but it looked too red. The graphics card was an older nvidia, MX 4000.

Firmware version as I received it: 237-S11-060831C, which is the newest according to olevia. Serial# VDLD6A110063, I registered with my yahoo email address. You must register a valid serial number in order to be able to access firmware updates. Here is a guy who (unofficially) posted firmware on an ftp site. As of today (? it is 12/18/2006) he has this "D" firmware, 237-S11_060831D. But on Olevia site, they have an update called 237-S11-061121B. It appears that the last part of the filename is YYMMDD -- e.g. Nov 21, 2006... on Olevia's site it says it was released on Dec 12th.

Antenna for HDTV

According to antennaweb , I am located only 2.8 miles from the broadcast towers here in Phoenix. All present frequencies here are UHF. This guy has a table listing of actual frequencies. Here is a calculator that gives dipole length -- compare this to a wavelength calculator. Per wikipaedia, the simplified formula for a half-wave dipole length in feet is: 468/F, where F is frequency in MHz. The impedance will be about 70 ohms, so can use a regular piece of 75 ohm co-ax for the feed-line. I am using 52" (total) length of my dipole, a short piece of old rg-58 cable for the feed, the dipole wire is just old alarm wire, maybe 24 gauge, solid...it is attached to a piece of wood moulding so I can rotate it a bit if necessary. I can get all the channels in the table below with the antenna just sitting on top of my entertainment center but right now 5-1 is giving problems.

[I tried a Jensen TV920 antenna but it didn't work very well at all. The amplifier tended to make things a little worse, some stations had some bad DC roll. And it worked really poorly for analog stations, compared to, say, the rabbit-ears in the attic]

 

Call Sign

Channel

Network

Assigned Freq. #

Freq. (MHz)

Comments

KTVK

3.1

IND

24

530

copy of analog KTVK

KPHODT1

5.1

CBS

17

488

copy of analog KPHO

KPHODT2

5.2

CBS

17

488

weather

KAET-DT

8.1

PBS

29

560

pbs-hd (different from analog pbs

KAET-SD

8.2

PBS

29

560

"create". Arts/crafts/diy stuff

KBAQ-FM

8.3

PBS

29

560

just a graphic and play audio of kbaq-fm radio

KSAZ DT

10.1

FOX

31

572

copy of analog KSAZ

KPNX-DT

12.1

NBC

36

602

copy of analog KPNX

KPNX-DT

12.2

NBC

36

602

weather

KNXV-HD

15.1

ABC

56

722

copy of analog KNZV

KNXV-HD

15.2

ABC

56

722

weather

KPAZ-D1

21.1

TBN

20

506

various religious

KPAZ-D2

21.2

TBN

20

506

various religious

KPAZ-D3

21.3

TBN

20

506

various religious

KPAZ-D4

21.4

TBN

20

506

various religious / spanish

KPAZ-D5

21.5

TBN

20

506

various religious / kids

KTWV DT

33.1

UNI

34

590

spanish lang.

KFPH DT

33.2

UNI

34

590

spanish lang.

KUTP DT

45.1

 

26

542

copy of analog KUTP

KUTP DT

45.2

 

26

542

copy of analog KUTP - lower def.

ION

51.1

ION

52

698

 

qubo

51.2

ION

52

698

kids.

IONlife

51.3

ION

52

698

 

Worship

51.4

ION

52

698

various religious

KASW

61.1

CW

49

680

copy of analog KASW

PBS1DTV

80.3

-

-

-

See "problem", below

Notes:

 


Netgear MP101

This is a wireless (and wired) digital music player, intended to be used with your living-room stereo system. It has headphone and RCA type outputs, and no amplifier I bought one of these mainly because it was cheap. It comes with netgear software (which is required in order to update firmware), which is not very good. Fortunately the unit is uPnP. Most people use Twonkvision There are still free versions of the twonky server floating around, one place to get it is the files section of the Yahoo group, NetgearMP101Group, devoted to discussion of the MP101. Only trial version are available for free download from Twonky now.

Twonkyvison UPnP music server

I am running Twonky version 2.9.1 which allows free service for music but only trial access to pictures and video. You have the option of running as a service, or not. I have it running as a service, but my computer if pretty resouce-constrained so I have it set to manual (instead of automatic) and I start it with the command:

sc.exe start TwonkyVision_Media_Server

There is a configuration page at port 9000, e.g. http://10.1.1.101:9000/ Which is just a front-end to editing the .ini file at: D:\WINDOWS\twonkyvision-musicserver.ini

This took me awhile to figure out, so I'm writing it down so I won't have to go through this repeatedly:
In order to play shoutcast radio stations, you can get the url from the .pls file, and just make a text file with just the url in it. for example Chronix.pls contents was:

[playlist]
numberofentries=10
File1=http://64.236.34.97:80/stream/1039
Title1=(#1 - 539/7742) ChroniX Aggression - Loud & Clear - www.chronixradio.com
Length1=-1
File2=http://64.236.34.67:80/stream/1039
Title2=(#2 - 426/5877) ChroniX Aggression - Loud & Clear - www.chronixradio.com
Length2=-1

So make a playlist file Chronix.m3u (I'm not sure if other extensions are allowed are but m3u definitely works):

http://64.236.34.97:80/stream/1039

Remember that these will show up when browsing under "playlists" NOT "internet radio"

 


Multimedia player software: GeexBox

http://www.geexbox.org/en/index.html This is an amazing Linux based project that simply boots off a CD and provides a basic UI that allows playing various audio video files. The forums aren't very active but lots of good info there, also developer info and links to a mailing list.

The current release is 1.0 (older 0.98.5, and pre-99 interim releases here), burned it and booted. It booted up very quickly, less than 1 minute. The hardware all seemed to play nice together, and i was able to play Mpeg2, Xvid and DivX video off the hard drive, the audio worked fine. My video was output to VGA (I had, erroneously, believed my video card's TV-out will not work in Linux, but it worked fine with GeexBox?). The builtin lan defaults to 192.168.0.54, if it can't find a DHCP server, I hooked it directly up to an XP box with shares. GeexBox will automatically mount any shares that are available, and video played fine off them (100mbit wired lan). I cannot get my wireless cards going so i connected the ethernet to my spare 11mbit access point and Lan'ed it to a windows fileshare. Music and DivX/Xvid videos played fine (perhaps 1mbit/sec). The high bitrate stuff, e.g. the tivo downloads (2GByte/hour ~ 4mbit/sec) couldn't play right. Wondering what happens when the wireless link goes down? Geexbox seems to hang up for quite some time, maybe up to 1 minute, then recover...could be a problem.

I downloaded/built the full sources for 0.98.5 to my Fedora Core 3 machine [update: Jan 2006 -- 0.98.7 builds fine on FC4 using same scheme], it's a bit over 100MB (there is also a version that is much smaller but that then wget's the needed sources on the fly as each package is compiled). The only thing missing was nasm, so I got the 0.98.39-1 RPM binary. That installed fine, and the GeexBox make than worked fine, if a little slow (almost an hour... it's an older machine). I un-tar'ed the sources into /usr/loca/src/geexbox-1.0

To make the whole deal, just issue a make (or 'make iso', or 'make pxe') command from that directory. The .iso result will be the file geexbox-1.0-en.iso, which can be burned and booted, or see below for how to copy the pxe results and boot it.

The structure of the source tarball is such that under the main directory, there are (where is $INSTALL? i think maybe it's build/initrd or build/mnt something like that?):

[3/2005] I desperately wanted an editor so I could edit the various config and script files on my geexbox so that I didn't have to mess around with ftp'ing them to and fro, so I endeavored to rebuild busybox so that it would provide vi (and whatever else might be useful)

[August 2005] Update to below procedures -- don't do 3. and 4., rather should be doing a "./scripts/clean busybox". Now building recent major release 0.98.6...

  1. cd /usr/local/src/geexbox-0.98.5
  2. edit the file ./packages/busybox/busybox.conf as desired
  3. rm ./.stamps/busybox-1.00/build ./scripts/clean busybox
  4. rm ./.stamps/busybox-1.00/unpack
  5. ./scripts/build busybox This may ask you questions depending on what options you selected in the busybos.conf, I just accepted default answers. The syntax of the .conf file is very unforgiving, if you get errors here, you made a mistake in the editing. This will take several minutes.
  6. ./scripts/install busybox don't need.
  7. make iso (or "make pxe" if wanting to netboot)

At this point, there will be a newly busybox'ed .iso that can be burned, or since the only changes were to busybox, I just ftp'ed the new vmlinuz (probably didn't need that one) and initrd.gz to my GeexBox's hard drive (I had already installed from CD to a small partition on the hard drive). Now vi works, I also added kill, df, ps, ping, more, and a bunch of others [ed note 4/1/2005: I added httpd and it compiled ok but there is no apparent executable so i don't know what's up with that]

[ed note 11/2005: This whole deal below about sending commands is the wrong way to go about it. There is a fifo called (?) and the proper thing to do is write to the fifo. Search the forums, there is some discussion there] I have been poking around trying to see if i can control GeexBox (really mplayer) remotely, e.g. via telnet. Looking at the files menu_en.conf, and /usr/bin/mp_wrapper and fbi_wrapper, I see that there is a control file called /var/mp_control which if you write info to at the right time, things will happen. For now, the inelegant way I've found to make it the "right time" is by killing the instances of mplayer (there is a way, but i don't know the syntax, to make a script that would use the pidof command), anyway this works (the kill command comes from busybox, which requires reconfiguring busybox.conf and building from sources, describe above):

pidof mplayer
kill xxxx; kill yyyy; echo "command" > /var/mp_control
    (substitute xxxx and yyyy pid's of mplayer)
    commands i know of:
       quit 166      -- same as quit from main menu
       quit 165      -- starts fbi (image viewer) with list /var/view_image_files
       loadlist playlist_name   -- starts mplayer specified playlist, I've not tried
       

After some unspecified period of inactivity, my shares seemed to go to sleep, wherupon reaccessing them took a long time, almost a minute (I had thought the computer was hung). Below is a script to keep SMB connections alive:

#!/bin/sh
while true; do
ls /mnt/shares/sharename
done

I am having some trouble with the auto-mounting of SMB shares.(I think i have isolated the problem, see below*) For some reason, it sometimes does not see my computer YO, i.e. it is not listed in smbtree, it will always list the shares on YO1. Sometimes it seems that turning everything off (routers, APs, etc) and rebooting helps...I really can't tell. It doesn't seem to matter if YO is running XP, Win98 or Fedora. If necessary, the share can still be mounted by giving the telnet commands to geexbox:

mkdir /mnt/shares/YOtemp
smbmount "//YO/F" "/mnt/shares/YOtemp" -o ro,username=SHARE,password=

Geexbox complains something about smb.conf but it works anyway [also be especially careful of syntax, i had an extra space after the comma and it caused the command to fail, it mucked up the username and tried to connect as anonymous which is apparently not allowed by YO]. I took this line from what the /etc/init.d/network script would do; that is to say what it would do if it found that share in smbtree. In .99 dev release, the script naming in init.d has been fancified so the same task is now in /etc/init/d/58_samba

* Updated August 2005: Despite rebooting and re-rebooting YO and geexbox the problem persisted but seems to come and go. The auto-mounting worked all week, and then Saturday YO shares (both with windows or Fedora) wouldn't appear! Finally, I got the idea to reboot YO1 (which is XP by the way) -- now all is well. So there seems to be some demon that gets stuck in YO1/XP and rebooting helps. If worst comes to worst, manually smbmounting works.

 ** Updated Jan 2006: ver 0.98.7 and am using YO1, YO2 (the P4 system, usually running FC4 set up for geexbox development), with YO4 being the geexbox under test. YO4 is a very low-powered old P3 system. Automatic mounting of smb shares to YO1 is working fine. This version includes uPnP but for the moment I don't have a server running, i will try the Geexbox uShare project when i get a chance. This version uses a filesystem type cifs (whatever that means) and in a forum thread complained of being unable to smbmount, but could mount with the following command:

	mount "//name/share" "/mnt/video" -t cifs -o ro,user=SHARE,pass=

 After building, i use a script below to copy the new files to another partition (or use yet another script to copy files to another machine via a network share). I usually use the pxe results that are left in the sub-folder geexbox-pxe, and then use a small script to install it to a tiny FAT32 partition:

#!/bin/sh
# This is script makeGeexbootlocal
# run this AFTER doing a successfull "make pxe"
# it copies the executables to a local hard disk, from there they 
# can be booted via linld or loadlin under DOS
# since the $DEST, e.g. hda10, drive is a FAT

VER=1.0
DEST=/mnt/geex
umount $DEST
mount /dev/hda10 $DEST
rm -rf $DEST/GEEXBOX
SOURCE=/usr/local/src/geexbox-$VER/geexbox-pxe/GEEXBOX.i386
cp -r $SOURCE $DEST
mv $DEST/GEEXBOX.i386 $DEST/GEEXBOX
# ln -s $TFTP/GEEXBOX-$VER $TFTP/GEEXBOX
cp $DEST/extra-codecs-nonfree/* $DEST/GEEXBOX/codecs/

Below are some sample command lines I use in debug mode, usually via telnet

These two commands both play the "pearljam" Shoutcast radio station, the first via a playlist, the second just substituting the http address:

mplayer -vo null -playlist /mnt/shares/YO1/F/temp/samplePlaylists/shoutcast/pearlJam.pls
mplayer -vo null http://206.204.190.120:80    // this is just the http address from the playlist file
mplayer /mnt/shares/YO1/F/sonicrush1_sub.mov  // this is a quicktime movie but doesn't need extra codecs?

Using the s-video output on Dell laptop

I acquired an older dell laptop: 1GHz P3. Works well w/geexbox 1.0. The only troubles i had were to get the s-video going. The in-built function to switch screen output in geexbox's menu didn't work -- just the lcd screen worked even though the s-video was plugged in. but i did notice running debug that the atitvout functioned just fine to force output...so i added a couple of commands in the options menu, in file /etc/mplayer/menu-en.conf:

<e name="TV-Out FORCE" ok="run 'atitvout -f t'"/>
<e name="LCD-Out FORCE" ok="run 'atitvout -f l'"/>

FBI: the still image viewer program:

To run fbi in debug via telnet, must specify the vt number (the following command has the problem of getting stuck, if i kill the fbi process, for some reason mplayer kicks in with the background animation, the -t doesn't help?):

fbi --vt 01 -t 2 /mnt/shares/YO1/E/My\ Pictures/50thAnniv/Beighe_001.jpg

fbi version 1.31 (c) 1999-2003 Gerd Knorr

This program displays images using the Linux framebuffer device. Supported formats: PhotoCD, jpeg, ppm, gif, tiff, xwd, bmp, png. It tries to use ImageMagick's convert for unknown file formats.

Usage: fbi [ options ] file1 file2 ... fileN

--help [-h] Print this text
--version [-V] Show the fbi version number
--device [-d] dev Framebuffer device [/dev/fb0]
--mode [-m] mode Video mode (must be listed in /etc/fb.modes)
- Default is current mode.
--gamma [-g] f Set gamma
--scroll [-s] n Set scroll steps in pixels (default: 50)
--quiet [-q] don't print anything at all
--verbose [-v] show print filenames all the time
--timeout [-t] n Load next image after N sec without any keypress
--once [-1] Don't loop (for use with -t).
--resolution [-r] n Select resolution [1..5] (PhotoCD)
--random [-u] Show file1 .. fileN in a random order
--font [-f] fn Use font fn (either console psf file or
 X11 font spec if a font server is available
--autozoom [-a] Automagically pick useful zoom factor.
--autoup Like the above, but upscale only.
--autodown Like the above, but downscale only.
--edit [-e] enable editing commands (see man page).
--backup [-b] create backup files when editing.
--preserve [-p] preserve timestamps when editing.
--list [-l] file read list of images from file
--comments display image comments
--vt [-T] vt start on console #vt

Large images can be scrolled using the cursor keys. Zoom in/out
works with '+' and '-'. Use ESC or 'q' to quit. Space and PgDn
show the next, PgUp shows the previous image. Jumping to a image
works with <number>g. Return acts like Space but additionally
prints the filename of the currently displayed image to stdout.

Installator and Booting GeexBox. Grub vs. Linld/Loadlin from DOS

A "normal" installation entails downloading either an .iso, or the iso-generator. You then burn the .iso and boot from it on the target machine. To install it to hard disk, boot the CD and type 'install' during the brief moment just before the main part of geexbox loads. You will go through a menu-driven set of choices about what partition to install to. At the end you will be asked whether or not to install the grub boot loader.

I have a problem whereby after running the installator (as it's called), the partition becomes invalid to DOS -- but not to linux or Windows XP. Strange. I usually just circumvent the problem by copying over files. This might not otherwise be a problem except that I want to avoid using grub, and want to boot through DOS -- so it is a problem for me if the partition becomes inaccessible in dos.

One of the parameters passed to the kernel is the vga mode, here is a handy table. As far as I can tell, you can use either decimal or hex (specify 0xNNN). I suppose these modes are dependent on your specific graphics hardware. Another thing i don't understand is that the system seems to use these resolutions without having to specify anything in the mplayer.conf file

0x311 / 0x312 : 640x480 16 / 24 bpp (decimal 785 / 786)
0x314 / 0x315 : 800x600 16 / 24 bpp (decimal 788 / 789)
0x317 / 0x318 : 1024x768 16 / 24 bpp (decimal 791 / 792)

Sample boot/grub/menu.lst file (remember the root hd number is one less in grub than it is in linux, so e.g. hda11 will be (hd0,10):

default  0
timeout  5
color cyan/blue white/blue
#splashimage=(hd0,10)/boot/grub/grub-splash.xpm.gz

title	Windows And Dos
rootnoverify (hd0,0)
makeactive
chainloader +1
boot

title	GeeXboX
root	(hd0,10)
kernel	/GEEXBOX/boot/vmlinuz root=/dev/ram0 rw init=linuxrc boot=hda11 splash=silent vga=0x318 video=vesafb:ywrap,mtrr
initrd   /GEEXBOX/boot/initrd.gz
boot

title	GeeXboX (debug)
root	(hd0,10)
kernel	/GEEXBOX/boot/vmlinuz root=/dev/ram0 rw init=linuxrc boot=hda11 splash=0 vga=0x318 video=vesafb:ywrap,mtrr debugging
initrd    /GEEXBOX/boot/initrd.gz
boot
title Fedora
root (hd0,7)
kernel /boot/vmlinuz ro root=LABEL=/ rhgb
initrd /boot/initrd
boot

I usually don't use grub and instead use either linld or loadlin (see my page). I also usually rearrange the folders so that I add a boot folder under GEEXBOX, and I move vmlinuz and initrd.gz to the boot folder -- in this way i can have different versions of GEEXBOX on the same partition. Here are two commands (use either one), you will have to fix up the partition (hdaN) and drive letter -- I would normally make it a batch file called GEEXDBG.bat and GEEXNOD.bat. I boot into DOS and then run the appropriate batch file, no need for grub:

set GEEXDRV=d:
linld image=%GEEXDRV%\GEEXBOX\boot\vmlinuz initrd=%GEEXDRV%\GEEXBOX\boot\initrd.gz vga=ask cl=@GEEXDBG
  or
loadlin %GEEXDRV%\GEEXBOX\boot\vmlinuz initrd=%GEEXDRV%\GEEXBOX\boot\initrd.gz cl=root=/dev/ram0 rw init=linuxrc boot=hda10 splash=0 debugging vga=0x318 video=vesafb:ywrap,mtrr
linld image=d:\GEEXBOX\boot\vmlinuz initrd=d:\GEEXBOX\boot\initrd.gz vga=ask cl=@GEEXDBG
   or
loadlin d:\GEEXBOX\boot\vmlinuz initrd=d:\GEEXBOX\boot\initrd.gz cl=root=/dev/ram0 rw init=linuxrc boot=hda10 splash=0 debugging vga=0x318 video=vesafb:ywrap,mtrr
   Where the file GEEXDBG contains:
   cl=root=/dev/ram0 rw init=linuxrc boot=hda10 splash=0 debugging vga=0x315 video=vesafb:ywrap,mtrr
set GEEXDRV=d:
linld image=%GEEXDRV%\GEEXBOX\boot\vmlinuz initrd=%GEEXDRV%\GEEXBOX\boot\initrd.gz vga=0x318 cl=@GEEXNOD
   or
loadlin %GEEXDRV%\GEEXBOX\boot\vmlinuz initrd=%GEEXDRV%\GEEXBOX\boot\initrd.gz cl=root=/dev/ram0 rw init=linuxrc boot=hda10 splash=silent vga=0x312 video=vesafb:ywrap,mtrr
   Where the file GEEXNOD contains:
   cl=root=/dev/ram0 rw init=linuxrc boot=hda10 splash=silent vga=0x318 video=vesafb:ywrap,mtrr

One of the handy feature of linld is you can specify vga=ask and then specify a hex mode without the 0x, e.g. to specify 1024x768@24bpp you enter 0318. I'm not sure if loadlin lets you do that? I have a monitor that tells me in it's menu what res the computer is sending out, so I can tell that the vga= really does matter. It should be theoretically less processor load to run at the lowest resolution.


Mini-itx Information

EPIA Howto by Andrew Howlett. Very detailed info on using Via EPIA motherboards with Linux.

mini-itx.com's FAQ In their online store (located in England?) they had M10000 m/b w/ 1GHz Nemiah and a Venus 669 case bundled for $270 (actually, it was 150 pounds sterling), shipping was a killer, too, at $85 estimated :-(


XBMC (Xbox Media Center)

To find executable, I followed these instructions. The synopsis is you IRC and choose EFNet server (I think i ended up with the one he mentions, irc.Prison.NET, anyway then you "/join #xbins" and then send a private message like so: "/msg xbins !list". Shortly thereafter the robot replies with an ftp site along with a generated username/password. When I arrived at the site

XBMC/XBMP is now hosted on our European mirror

Address: xbmp.uk.xbins.org
Username: xbins
Password: homebrew