Wednesday, December 7, 2011

GuitarTrump Giveaway

In addition to messing around with computers, I also play the guitar. GuitarTrump is having a giveaway for a Spider Capo w/ a set of Harmonix Gloves, a StringCleaner and t-shirt - a $104 value. Christmas is coming earlier this year for some lucky guitar player!

Wednesday, February 23, 2011

New Hard Drive

Finally got my new hard drive. A Western Digital Caviar Green WD20Ears (or something like that). It's a 2.0tb SATA which means I can kill the ide/sata hybrid mode.

It's an advanced format drive which uses 4k sectors (4096). I went ahead and set it up with gpt so that I have something else to play with and can get rid of that annoying extended partition which drives me nuts...

The drive isn't the fastest but I chose it primarily for size, WD reliability, power consumption and perhaps most importantly quietness. It is a very quiet drive. Even with the chassis open while I run diagnostics on it, you can't hear it spin up. So, mission accomplished.

So now back to installing everything. I have a xbmc-live production part, an xbmc-live dev part, an Ubuntu 10.10 part and a couple more parts for some other distros I want to play with.

I used gpartedlive which is a live Linux distro that primarily runs a graphical gparted. Really convenient. With gpt drives, grub isn't installed on the MBR because there is no MBR so a small 34mb partition is set up at the root of the drive and set to GRUB_BIOS. Then a boot partition can be set up for the grub files. It actually works pretty well so far. I want to explore some of Grub2's more advanced features like its ability to load an iso image.

I've gotten xbmc-live setup and now have enough room to play with more of the features. So I'm setting up a few game emulators (znes, mame etc) and putting a shit ton of old games on it. Znes and mame are both working via the launcher and advanced launcher plugins for xbmc. I'm going to go ahead an build mame from source because many of my roms don't work with the version that Ubuntu 10.04 installs.

In addition to the hard drive, I also went ahead and picked up a Sound Blaster Audigy 2 sound card. That's right, old school and cheap. The onboard sound on my Fuzzy apparently has a bad jack. I don't fell like trying to resolder a new jack complex on it so I'm going ahead and making use of the 1 pci slot on the board. The next board I get will have 4 SATA ports, a PCI-Express and a couple of PCI so I'll have to go a bit bigger than a micro-atx. I'll retool the micro-itx board for a client computer at a later date.

Wednesday, February 9, 2011

Sandisk Cruzer Pen Drive Wouldn't Format In Windows Vista

I decided to try out xbmcfreak-live on a usb pen drive. I'd previously installed Puppy Linux on the pen drive and it was formatted with ext3. Well, Windows Vista had a hissy fit when I went to format it. Kept getting an error that the media was write protected. So I booted up gparted live, selected the pen drive under device and formatted it to fat32. Problem solved.

Gparted live should be in everyone's toolkit:
http://gparted.sourceforge.net/download.php

Sunday, January 30, 2011

Figured the Remote Button Mapping Out Again

That's good news for me. Should finish the mapping up tomorrow.

So everything is near to the way I want it. So, of course, it's time to do something that may break it horribly again. :) I have an Intel chipset but XBMC compiles to use vdpau by default. So this week, it's time to get the Intel drivers on the XBMC-Live system and get VAAPI working.

It also won't be long until I'm able to order the new drive (2tb thank you). That means a fresh new install of both the development (Ubuntu desktop) and production (XBMC-Live) systems. This is good because the Ubuntu desktop is running a bit flaky these days and refuses to acknowledge that the dvdrom is even there along with the compiled from source XBMC segfaulting on a regular basis.

Once I get the XBMC-Live exactly where I want it, I think I'll follow the guide for building a minimum install system, try everything on a less bloated distro such as ArchLinux and the final goal is to build it from scratch (LFS for the win). Should give me something to do on a regular basis for quite a while.

There's also an old standalone imon VFD driver for lcdproc from 2005. I'd love to get it to compile and see if I can get it running. One less daemon to have to worry about if that would work and lirc can be dropped.

Saturday, January 29, 2011

XBMC-Live up and running.

Actually, it's been up and running for a few days now. I've already wiped the partition clean once and reinstalled and upgraded the 2.6.32 kernel to 2.6.38. XBMC works out of the box with a .38 kernel remote control wise. Unfortunately, though, the VFD doesn't. So even though XBMC can run the remote w/o lirc, lcdproc needs lirc to run the VFD. The 2.6.36 and lower kernels come with lirc_dev and lirc_imon in the kernel which, once set up, runs great. 2.6.38 switches to the imon driver in the kernel. A good start because it does cut down on configuration and let's the imon work out of the box. I'll have to check to make sure that I can map the buttons but here's hoping...

And here's the setup from source for lcdproc:

Create directory for lcdproc

$ mkdir lcdproc

Change to lcdproc directory

$ cd lcdproc

Download lcdproc source:

$ wget http://softlayer.dl.sourceforge.net/project/lcdproc/lcdproc/0.5.3/lcdproc-0.5.3.tar.gz

Unpack the source

$ tar -xvf lcdproc-0.5.3.tar.gz

Change into lcdproc-0.5.3 directory

$ cd lcdproc-0.5.3.tar.gz

Configure

$ ./configure --enable-drivers=imon

Make

$ make -j4

And install

$ make install

And install

$ sudo make install

Copy LCDd.conf to /etc/LCDd.conf

$ sudo cp LCDd.conf /etc/LCDd.conf

Cp startup scripts:

$ sudo cp ./scripts/init-LCDd.debian /etc/init.d/LCDd
$ sudo cp ./scripts/init-lcdproc.debian /etc/init.d/lcdproc

Change LCDproc.conf

$ sudo nano LCDd.conf

Change Driver=curses to Driver=imon

Uncomment Hello message if desired.

Start LCDd
$ sudo /etc/init.d/LCDd start

Should see welcome message

Start lcdproc
$ sudo etc/init.d/lcdproc start

Should see information.

Had to change the DriverPath in LCDd.conf to /usr/lib/lcdproc/

Open ~/.xbmc/userdata/guisettings.xml
change haslcd to true.

Restart xbmc-live.

Hopefully everything works.

Tuesday, January 25, 2011

Decided to install XBMC Live a few days ago.

So I cleared some space on my hdd (Can't wait until next month when I can get the 2tb SATA hdd!!) and started the install process.

XBMC Live 10.0 comes with a 2.6.32 kernel which uses the old lirc_imon and lirc_dev kernel drivers instead of the imon driver in the more recent kernels (2.6.37 and up?).

This means that the remote doesn't have to be configured using the device input layer and all the keys on the RM200 work, just NOT out of the box. Shocker, I know.

In addition, XBMC doesn't show that pain in the ass problem where trying to watch avis that have been burned to DVDrs doesn't take forever to load the file list. I'll have to take a look at the differences and see if I can find a workaround for my Ubuntu 10.10 install that is running a 2.6.36 kernel.

So I went ahead and dropped the 2.6.36 kernel (last kernel that doesn't use the imon driver, I think) into the XMBC Live distribution. It fixed a few problems that I had after I hosed a few things hacking around the system. ;)



----------------------------------------------------------
Update kernel from deb packages:


http://www.unixmen.com/linux-tutorials/780-upgrade-your-kernel-the-safe-way-in-ubuntu-linuxmint

Go to http://kernel.ubuntu.com/~kernel-ppa/mainline/ and select kernel

switch to download directory:

$ cd ~/development/kernel

Download linux-headers file that ends with all.deb

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.36-rc7-maverick/linux-headers-2.6.36-020636rc7_2.6.36-020636rc7.201010070908_all.deb

Download the linux-headers for the that ends with i386 or AMD64:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.36-rc7-maverick/linux-headers-2.6.36-020636rc7-generic_2.6.36-020636rc7.201010070908_i386.deb

Download the linux-image file for the architecture you want:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.36-rc7-maverick/linux-image-2.6.36-020636rc7-generic_2.6.36-020636rc7.201010070908_i386.deb

Install the linux-headers;
$ sudo dpkg -i linux-headers-2.6.36-020636rc7_2.6.36-020636rc7.201010070908_all.deb

Install the linux-headers i386 or AMD64:
$ sudo dpkg -i linux-headers-2.6.36-020636rc7-generic_2.6.36-020636rc7.201010070908_i386.deb

Install the linux-image:
$ sudo dpkg -i linux-image-2.6.36-020636rc7-generic_2.6.36-020636rc7.201010070908_i386.deb

Reboot.

Check kernel with uname

$ uname -r
------------------------------------------------------------------

Next on deck kernel-wise is to compile from vanilla source...

So then I had to get lirc and lcdproc working for my Antec Multimedia Station Elite w/ the Veris RM200 remote (note: this only works for 2.6.36 kernels and down since higher kernels have the imon driver built in that requires the remote to be setup using the device input layer):

------------------------------------------------------------------


Make sure that kernel has loaded lirc_imon and lirc_dev (2.6.36 and lower):

xbmc@XBMCLive:~$ lsmod | grep lirc
lirc_mceusb 12402 0
lirc_imon 22905 0
lirc_dev 8884 2 lirc_mceusb,lirc_imon

Configure lirc

xbmc@XBMCLive:~$ sudo dpkg-reconfigure lirc

Hit down arrow key until Soundgraph iMon Antec Veris is highlighted, press enter key.
Press enter key again unless you want to set up an IR transmitter (not covered here).

* Stopping remote control daemon(s): LIRC [ OK ]
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service udev reload

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the reload(8) utility, e.g. reload udev
* Loading LIRC modules [ OK ]
* Starting remote control daemon(s) : LIRC [ OK ]

Test remote by starting irw and pressing various keys:

xbmc@XBMCLive:/etc/lirc$ irw
01007f0000000201 00 KEY_DOWN Antec_Veris_RM200
01007f0000000201 01 KEY_DOWN Antec_Veris_RM200
0100007f00000201 00 KEY_RIGHT Antec_Veris_RM200
0200001e00000201 00 KEY_1 Antec_Veris_RM200
0200001f00000201 00 KEY_2 Antec_Veris_RM200
0200002000000201 00 KEY_3 Antec_Veris_RM200
0200002100000201 00 KEY_4 Antec_Veris_RM200
0200002200000201 00 KEY_5 Antec_Veris_RM200
0200002300000201 00 KEY_6 Antec_Veris_RM200
0200002400000201 00 KEY_7 Antec_Veris_RM200
0200002500000201 00 KEY_8 Antec_Veris_RM200
0200002600000201 00 KEY_9 Antec_Veris_RM200
0220002500000201 00 Star Antec_Veris_RM200
0200002700000201 00 KEY_0 Antec_Veris_RM200
0220002000000201 00 Hash Antec_Veris_RM200

Good to go.

---------------------------------------------------

And now lcdproc compiled from source:

---------------------------------------------------
Create directory for lcdproc

$ mkdir lcdproc

Change to lcdproc directory

$ cd lcdproc

Download lcdproc source:

$ wget http://softlayer.dl.sourceforge.net/project/lcdproc/lcdproc/0.5.3/lcdproc-0.5.3.tar.gz

Unpack the source

$ tar -xvf lcdproc-0.5.3.tar.gz

Change into lcdproc-0.5.3 directory

$ cd lcdproc-0.5.3.tar.gz

Configure

$ ./configure --enable-drivers=imon

Make

$ make -j4

And install

$ make install

And install

$ sudo make install

Copy LCDd.conf to /etc/LCDd.conf

$ sudo cp LCDd.conf /etc/LCDd.conf

Cp startup scripts:

$ sudo cp ./scripts/init-LCDd.debian /etc/init.d/LCDd
$ sudo cp ./scripts/init-lcdproc.debian /etc/init.d/lcdproc

Change LCDproc.conf

$ sudo nano LCDd.conf

Change Driver=curses to Driver=imon

Uncomment Hello message if desired.

Start LCDd
$ sudo /etc/init.d/LCDd start

Should see welcome message

Start lcdproc
$ sidp etc/init.d/lcdproc start

Should see information.

Had to change the DriverPath in LCDd.conf to /usr/lib/lcdproc/

------------------------------------------

So I'm good to go until I find something else to break. Which won't be too long because I get to start from near scratch once I get the new drive. Fun. ;)

~T

Sunday, January 23, 2011

Veris Remote Issues Ironed out

Installed the 2.6.38rc2 kernel.  The integrated imon driver in the kernel now defaults to keyboard mode instead of  mouse mode.

Changelog:

-----------------------------------------------------------------------------------------------------

commit 76f1ef427c0aab3d3c917b497562ea2cdaaae056
Author: Jarod Wilson <jarod@redhat.com>
Date:   Thu Jan 6 16:59:35 2011 -0300

    [media] rc/imon: default to key mode instead of mouse mode
    
My initial thinking was that we should default to mouse mode, so people could use the mouse function to click on something on a login screen, but a lot of systems where a remote is useful automatically log in a user and launch a media center application, some of which hide the mouse, which can be confusing to users if they punch buttons on the remote and don't see any feedback. Plus, first and foremost, its a remote, so lets default to being a remote, and only toggle into mouse mode when the user explicitly asks for it. As a nice side-effect, this actually simplifies some of the code a fair bit...
    
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit 5aad724280b9f8ffff3a55311ef0ba35ebb4099a
Author: Jarod Wilson <jarod@redhat.com>
Date:   Thu Jan 6 16:59:36 2011 -0300

[media] rc: fix up and genericize some time unit conversions
    
The ene_ir driver was using a private define of MS_TO_NS, which is meant to be microseconds to nanoseconds. The mceusb driver copied it, intending to use is a milliseconds to microseconds. Lets move the defines to a common location, expand and standardize them a touch, so that we now have:
    
MS_TO_NS - milliseconds to nanoseconds
MS_TO_US - milliseconds to microseconds
US_TO_NS - microseconds to nanoseconds
    
Reported-by: David Härdeman <david@hardeman.nu>
CC: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit 9ad77eb57b45f81ac3e12077d19e5f121c4cff6d
Author: Jarod Wilson <jarod@redhat.com>
Date:   Thu Jan 6 16:59:34 2011 -0300

[media] rc/imon: need to submit urb before ffdc type check
    
Otherwise, we have a null receive buffer, and the logic all falls down, goes boom, all ffdc devs wind up as imon IR w/VFD. Oops.
    
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-------------------------------------------------------------------

Previously, I had followed suggestions to install the remote by its event.  This works, however, if you plug in or unplug another USB device and reboot, the event id for the remote can change and you get a non-responsive remote.  So the preferred method, for me at least, is to use the by-id:

find device id:
$ lsusb

us 005 Device 002: ID 15c2:0044 SoundGraph Inc.

or
$ cat /proc/bus/input/devices

I: Bus=0003 Vendor=15c2 Product=0044 Version=0002
N: Name="iMON Remote (15c2:0044)"
P: Phys=usb-0000:00:1d.3-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/rc/rc0/input6
U: Uniq=
H: Handlers=kbd event6
B: EV=100013
B: KEY=fff 0 400000108c0320 2d5008000000000 30000 400119000 418614100801 809e168000000000 200000010004002
B: MSC=10

Find the device ID:
$ ls /dev/input/by-id

usb-15c2_0044-event-if00
usb-15c2_0044-event-mouse
usb-15c2_0044-mouse

$ sudo dpkg-reconfigure lirc
Select Linux input layer (/dev/input/eventX) for Remote control configuration:
Select none for IR transmitter
select /dev/input/event6 for Custom even interface for your dev/input device

Open /etc/lirc/hardware.conf

$ sudo gedit /etc/lirck/hardware.conf &

Change REMOTE_DEVICE="/dev/input/event6
to
REMOTE_DEVICE="/dev/input/by-id/usb-15c2_0044-event-if00"

Save file

Restart lirc
$ sudo /etc/init.d/lirc restart

Use irw to check to see if button presses are being received properly:
>>irw

Works on restart of lirc and continues working after restart.  It also works when a usb device is unplugged, the computer is restarted and the event id changes for the remote.

The App Launcher button doesn't work and neither do the number buttons on the remote so the next step is to play with the config files and codes.