{"id":203,"date":"2013-12-17T03:44:02","date_gmt":"2013-12-17T03:44:02","guid":{"rendered":"http:\/\/www.kf5rsx.com\/?p=203"},"modified":"2013-12-17T03:44:02","modified_gmt":"2013-12-17T03:44:02","slug":"experiments-with-steamos-and-xbmc","status":"publish","type":"post","link":"https:\/\/www.thepoorgeek.com\/techblog\/2013\/12\/17\/experiments-with-steamos-and-xbmc\/","title":{"rendered":"Experiments with SteamOS"},"content":{"rendered":"<p>Valve has released SteamOS into the wild, and invited us to play.<br \/>\nAnd so I have, well outside the recommended parameters of their system requirements&#8230; because where&#8217;s the fun otherwise?<br \/>\nFor reference: <a title=\"http:\/\/store.steampowered.com\/steamos\/buildyourown\" href=\"http:\/\/store.steampowered.com\/steamos\/buildyourown\" target=\"_blank\">http:\/\/store.steampowered.com\/steamos\/buildyourown<\/a><\/p>\n<p>My SteamOS test machine is an old Intel Core2Duo-based Mac Mini with an nVidia Geforce 9400 GPU. Not really a beefy gaming box, but adequate for simple games and playing videos with hardware acclerated decoding.<br \/>\nI started with the custom installer from the link above, and the install went surprisingly smoothly following their directions &#8211; until it came time for the recovery partition steps. Those flat out didn&#8217;t work.<br \/>\nEverything else seemed to though, so I hopped into the system and took it for a spin.<\/p>\n<p>No sound. Nada. Checked my inputs, and nope. (I realize later that this could be due to the volume in alsa being set to 0 by default, which is stoooopid. Too late to check now!)<\/p>\n<p>That being a dealbreaker, I decided to try with something slightly more up-to-date than the Debian Wheezy distribution that SteamOS is based on, and opted to install Xubuntu 13.10 32bit. Initial install, I set up a &#8220;gameroom&#8221; user in the OS to log in automatically when the system boots. I also chose 32bit since the machine doesn&#8217;t have more than 4GB of RAM, and some packages used for Wine and such which I may use later just install much more smoothly with a 32bit system still.<br \/>\nTo install the SteamOS portions, I mostly followed <a title=\"http:\/\/steamcommunity.com\/groups\/steamuniverse\/discussions\/1\/648814395815055799\/\" href=\"http:\/\/steamcommunity.com\/groups\/steamuniverse\/discussions\/1\/648814395815055799\/\" target=\"_blank\">this post in the steamcommunity forums<\/a>, with the exception of installing the SteamOS kernel (the linux-image-686 package install). I wanted to maintain the kernel included with Xubuntu that ensured I have complete support for the hardware in the Mac Mini.<br \/>\nI <strong>did<\/strong> enable the apt pinning by creating a file in \/etc\/apt\/preferences.d\/ named &#8220;steamos&#8221; with the lines listed in the article. This ensures that any older or backported packages in the SteamOS repos don&#8217;t try to replace packages in Xubuntu, which may cause conflict with other software.<br \/>\nI also ensured I had the latest listed nVidia driver installed via the proprietary driver manager in Xubuntu &#8211; the &#8220;Hardware Drivers&#8221; panel.<\/p>\n<p>After running all the apt-get lines to install and update everything, I ran Steam to set up and finalize my login as directed &#8211; pretty standard Steam setup procedure.<br \/>\nNow, since I opted to have the user account log in automatically, I don&#8217;t have a session chooser with which to select SteamOS on login.<br \/>\nThis is remedied by manually selecting the default user session:<\/p>\n<blockquote><p>sudo \/usr\/lib\/lightdm\/lightdm-set-defaults -s steamos<\/p><\/blockquote>\n<p>This resets the default session to SteamOS, and will launch the Steam client in the big picture mode when the system starts.<br \/>\nIf this is all you&#8217;re looking to do, then you&#8217;re done! I do a bit more with the system, like launching XBMC and such, so I&#8217;ll continue on.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>XBMC<\/strong><\/span>\u00a0<strong>setup:<br \/>\n<\/strong>This gets a little tricky.<br \/>\nFirst off, since the steamos login session just starts Steam, there&#8217;s no underlying desktop to drop to in order to install packages and such. In this case, the virtual terminal sessions come in quite handy, ctrl+alt+1 (1 through 6, actually) will drop you to a commandline login session.<br \/>\nLog in with the user account you created, and then run these commands:<strong><\/strong><\/p>\n<blockquote><p>sudo add-apt-repository ppa:team-xbmc\/ppa<br \/>\nsudo apt-get update<br \/>\nsudo apt-get install xbmc<\/p><\/blockquote>\n<p>These will add the XBMC repository, refresh the package list, and install XBMC and its dependencies.<br \/>\nOnce that&#8217;s done, there&#8217;s one more little trick you have to do in order to make XBMC launchable.<br \/>\nXBMC checks to make sure you have OpenGL acceleration when it starts. It does this by running<\/p>\n<blockquote><p>glxinfo | grep &#8220;Direct Rendering&#8221;<\/p><\/blockquote>\n<p>Unfortunately, in this situation, glxinfo hangs and chews up an entire CPU core, causing XBMC to never start.<\/p>\n<p>You&#8217;ll need to sudo to a root shell, and edit \/usr\/bin\/xbmc. Paste this line in the top of the script underneath the LIBDIR= bit, like so:<\/p>\n<blockquote><p>LIBDIR=&#8221;${exec_prefix}\/lib&#8221;<br \/>\nSUPPRESS_GL_CHECK=&#8217;&#8211;no-test&#8217;<\/p><\/blockquote>\n<p>This will make XBMC skip the accelerated GL test that may hang when starting XBMC from the Steam UI.<\/p>\n<p>The next step is now adding XBMC to the installed &#8220;games&#8221; list in Steam. This cannot (as yet, or maybe ever) be accomplished from the pretty Big Picture mode, so you have to log in to a desktop session in order to do this.<br \/>\nAs before, run<\/p>\n<blockquote><p>sudo \/usr\/lib\/lightdm\/lightdm-set-defaults -s xubuntu \u00a0(or your desktop session of choice)<br \/>\nsudo service lightdm restart<\/p><\/blockquote>\n<p>This will re-set your login session to the Xubuntu desktop, and restart the session manager to allow you to access it.<br \/>\nOnce done, launch Steam, go to the Library menu and choose the &#8220;add a non-Steam game or application&#8221; selection. It will provide you with a list of currently installed applications, scroll toward the bottom of the list and choose XBMC.<br \/>\nOnce done, open up a terminal and run:<\/p>\n<blockquote><p>sudo \/usr\/lib\/lightdm\/lightdm-set-defaults -s steamos<br \/>\nsudo service lightdm restart<\/p><\/blockquote>\n<p>That will return you to the SteamOS interface, and you should see XBMC listed in your installed library.<\/p>\n<p>This procedure should work for all non-Steam games and apps you&#8217;d like to run, so if there are any DRM-free games from Humble Bundles, or open-source games from standard Ubuntu repositories that you&#8217;d like Steam to be able to launch, that&#8217;s how you do it.<\/p>\n<p>I hope this helps some, it&#8217;s been a pretty educational experience for me!<br \/>\nBut enough learning, on to the fun!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Valve has released SteamOS into the wild, and invited us to play. And so I have, well outside the recommended parameters of their system requirements&#8230; because where&#8217;s the fun otherwise? For reference: http:\/\/store.steampowered.com\/steamos\/buildyourown My SteamOS test machine is an old&#8230;<br \/><a class=\"read-more-button\" href=\"https:\/\/www.thepoorgeek.com\/techblog\/2013\/12\/17\/experiments-with-steamos-and-xbmc\/\">Read more<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[51],"tags":[],"class_list":["post-203","post","type-post","status-publish","format-standard","hentry","category-projects"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6E2xk-3h","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/posts\/203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/comments?post=203"}],"version-history":[{"count":0,"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/posts\/203\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/media?parent=203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/categories?post=203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thepoorgeek.com\/techblog\/wp-json\/wp\/v2\/tags?post=203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}