2009-04-22, 05:17
i'm moving this post to a new thread since it was pretty off-topic... anyway, i'm trying to chart my setup of xbmc as a set-top box for the living room with jaunty and attempting to adhere to the "recommended" method to install xbmc (ie, on a full ubuntu desktop install with a special autologin user) ...
original post:
So, Day 1 of my "recommended" method project has passed.
So far I've been able to:
* Install Jaunty
* Setup an autologin XBMC user
* Install build dependencies and compile XBMC from svn
* Get HDMI audio working (more on this later)
* Install the userspace xbox360 pad driver
To do:
* Restart XBMC on crash -- currently it drops me to a login prompt (boourns!)
* Figure out a way to define a keyboard mapping which mimicks the xbox reboot command (Left Trigger + Right Trigger + Back + Start) to kill X in case of XBMC lockup. Those keys in combination should trigger a Ctrl+Alt+Backspace, however in Jaunty it seems even that key combo is disabled??
Step 1: Install Jaunty
Did this from USB. Seems easy enough except that on my HTPC, it dropped me to busybox / initramfs cli. Durrr what to do? Amazingly I typed "exit," walked away and came back later to find it had booted into GUI. Commenced installation - no issues.
Step 2: Create XBMC user
Easy enough, did this via Administration/Users and Groups. Started with the unpriv'd profile and added the things I think the xbmc user needs such as fuse, audio, mount shares, etc.
For autologin, you can do this via... Admin or Prefs / Login Screen (I wish I could remember more clearly) At this point the system will auto-login the XBMC user and start a GNOME desktop.
Step 3: Install build deps and compile XBMC from svn
Because I'm lazy, I used the guide for this using Intrepid steps.
Step 4: HDMI Audio
Jaunty uses ALSA 1.0.18 out of the box which, even though it is not the newest ALSA, still supported my chipset+HDMI out of the box! All I had to do was slave the HDMI audio off the analog and viola! Slaving HDMI is as simple as adding the following to /etc/asound.conf:
This way HDMI works (including navigation sounds) without any modification to XBMC's audio settings, and it resolves the issue of the HDMI codec only supporting 48k input. (see http://www.xbmc.org/forum/showpost.php?p...tcount=404 )
Step 5: installed grumbel's xbox360 userspace driver
I find this driver to be much better than the xpad kernel driver. For some idiotic reason, xpad defines the dpad as axis however xbmc needs dpad as buttons. So, the choices are to modify kernel source and recompile the driver to fix the issue, or nix xpad and use the userspace driver. I chose the latter because the userspace driver allows me to define a deadzone which helps a lot.
First I downloaded the source from here: http://pingus.seul.org/~grumbel/xboxdrv/
And the Keymap from here: http://www.stolennotebook.com/anthony/20...r-xboxdrv/
Grumbel's README has all the compilation instructions you need. After compilation, copy xboxdrv and xboxdrv-daemon.py to /usr/local/bin
Make sure kernel modules uinput and joydev load on boot. If not you can add them to /etc/modules to make it so.
Step 6: auto load XBMC and xboxdrv-daemon.py
For the xbmc user create a .xsession file in its home directory and add
I was unable to get xboxdrv to load properly as a regular user so I had to allow it to be run as root. You can do this by running and adding the following entry: Perhaps someone can help me with this little bit of suck?
That's all for now. Later this week I hope to further refine .xsession to restart xbmc on crash, similar to but not exactly the same as the XBMCLive .xsession script. If anyone has any comments or suggestions on that, I would be more than happy to hear them
Long term goal: magical button mapping that will trigger an X restart. Anyone?
original post:
So, Day 1 of my "recommended" method project has passed.
So far I've been able to:
* Install Jaunty
* Setup an autologin XBMC user
* Install build dependencies and compile XBMC from svn
* Get HDMI audio working (more on this later)
* Install the userspace xbox360 pad driver
To do:
* Restart XBMC on crash -- currently it drops me to a login prompt (boourns!)
* Figure out a way to define a keyboard mapping which mimicks the xbox reboot command (Left Trigger + Right Trigger + Back + Start) to kill X in case of XBMC lockup. Those keys in combination should trigger a Ctrl+Alt+Backspace, however in Jaunty it seems even that key combo is disabled??
Step 1: Install Jaunty
Did this from USB. Seems easy enough except that on my HTPC, it dropped me to busybox / initramfs cli. Durrr what to do? Amazingly I typed "exit," walked away and came back later to find it had booted into GUI. Commenced installation - no issues.
Step 2: Create XBMC user
Easy enough, did this via Administration/Users and Groups. Started with the unpriv'd profile and added the things I think the xbmc user needs such as fuse, audio, mount shares, etc.
For autologin, you can do this via... Admin or Prefs / Login Screen (I wish I could remember more clearly) At this point the system will auto-login the XBMC user and start a GNOME desktop.
Step 3: Install build deps and compile XBMC from svn
Because I'm lazy, I used the guide for this using Intrepid steps.
Step 4: HDMI Audio
Jaunty uses ALSA 1.0.18 out of the box which, even though it is not the newest ALSA, still supported my chipset+HDMI out of the box! All I had to do was slave the HDMI audio off the analog and viola! Slaving HDMI is as simple as adding the following to /etc/asound.conf:
Code:
pcm.!default {
type plug
slave {
pcm "hdmi"
}
}
Step 5: installed grumbel's xbox360 userspace driver
I find this driver to be much better than the xpad kernel driver. For some idiotic reason, xpad defines the dpad as axis however xbmc needs dpad as buttons. So, the choices are to modify kernel source and recompile the driver to fix the issue, or nix xpad and use the userspace driver. I chose the latter because the userspace driver allows me to define a deadzone which helps a lot.
First I downloaded the source from here: http://pingus.seul.org/~grumbel/xboxdrv/
And the Keymap from here: http://www.stolennotebook.com/anthony/20...r-xboxdrv/
Grumbel's README has all the compilation instructions you need. After compilation, copy xboxdrv and xboxdrv-daemon.py to /usr/local/bin
Make sure kernel modules uinput and joydev load on boot. If not you can add them to /etc/modules to make it so.
Step 6: auto load XBMC and xboxdrv-daemon.py
For the xbmc user create a .xsession file in its home directory and add
Code:
#!/bin/bash
sudo xboxdrv-daemon.py -- -s --dpad-as-button --deadzone 6000 &
xbmc -fs
Code:
sudo visudo
Code:
xbmc ALL=NOPASSWD: /usr/local/bin/xboxdrv-daemon.py
That's all for now. Later this week I hope to further refine .xsession to restart xbmc on crash, similar to but not exactly the same as the XBMCLive .xsession script. If anyone has any comments or suggestions on that, I would be more than happy to hear them
Long term goal: magical button mapping that will trigger an X restart. Anyone?