0857.html 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <!DOCTYPE html>
  2. <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Running a SteamOS VM in VirtualBox</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <meta charset="UTF-8">
  7. <meta name="keywords" content="Hypervisor,Install Guide,Linux,Virtualization,Virtual Machine,VM,SteamOS Virtual Machine,SteamOS VM,SteamOS,Steam,VirtualBox,SteamOS 3 Holo VirtualBox VM,SteamOS 3 Holo,How To Run SteamOS In VirtualBox,Arch,ArchLinux,SteamDeck,How To,Tutorial,i12bretro">
  8. <meta name="author" content="i12bretro">
  9. <meta name="description" content="Running a SteamOS VM in VirtualBox">
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  11. <meta name="revised" content="05/01/2023 06:07:44 AM" />
  12. <link rel="icon" type="image/x-icon" href="includes/favicon.ico">
  13. <script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  14. <script type="text/javascript" src="includes/js/steps.js"></script>
  15. <link href="css/steps.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="gridContainer">
  19. <div class="topMargin"></div>
  20. <div id="listName" class="topMargin">
  21. <h1>Running a SteamOS VM in VirtualBox</h1>
  22. </div>
  23. <div></div>
  24. <div id="content">
  25. <h2>What is SteamOS?</h2>
  26. <blockquote><em>SteamOS is a Linux distribution developed by Valve. It is open source with some closed source components and is the primary operating system for Steam Machines and the Steam Deck. -<a href="https://en.wikipedia.org/wiki/SteamOS" target="_blank">https://en.wikipedia.org/wiki/SteamOS</a></em></blockquote>
  27. <h2>DISCLAIMER</h2>
  28. <p>You cannot game in this VM as it lacks graphics acceleration. It is, however, very handy for developers in need of a test version of SteamOS and for testing things in the desktop environment.</p>
  29. <h2>Things You Will Need</h2>
  30. <ul>
  31. <li class="noCheckbox"><a href="https://www.7-zip.org/" target="_blank">7-Zip</a> installed</li>
  32. </ul>
  33. <h2>Preparing for Installation</h2>
  34. <ol>
  35. <li>Open a web browser and navigate to <a href="https://store.steampowered.com/steamos/download/?ver=steamdeck&amp;snr=" style="font-size: inherit;" target="_blank">https://store.steampowered.com/steamos/download/?ver=steamdeck&amp;snr=</a></li>
  36. <li>Check the license agreement checkbox and click the Download SteamOS Deck Image button</li>
  37. <li>Open File Explorer and navigate to the download location</li>
  38. <li>Right click on the downloaded SteamOS recovery .bz2 archive &gt; 7-Zip &gt; Extract Here</li>
  39. <li>Rename the extracted file steamos-recovery.img</li>
  40. <li>While holding Shift, right click in the white space and select Open PowerShell window here</li>
  41. <li>Execute the following commands in the PowerShell window
  42. <div class="codeBlock PS"># rename steamdeck recovery image<br />
  43. mv .\steamdeck-recovery*.img .\steamdeck-recovery.img<br />
  44. # convert the recovery .img to .vdi<br />
  45. &amp; &quot;$ENV:ProgramFiles\Oracle\VirtualBox\VBoxManage.exe&quot; convertfromraw --format VDI .\steamdeck-recovery.img .\steamdeck-recovery.vdi</div>
  46. </li>
  47. </ol>
  48. <h2>Creating the SteamOS VM</h2>
  49. <ol>
  50. <li>Launch the VirtualBox VM Manager</li>
  51. <li>Create a New VM by selecting Machine &gt; New
  52. <p>Name: SteamOS<br />
  53. Machine Folder: C:\VMs<br />
  54. Type: Linux<br />
  55. Version: Arch (64-bit)<br />
  56. Memory Size: 4096 MB or more<br />
  57. Hard disk:<br />
  58. &emsp;File size: 40 GB<br />
  59. &emsp;Hard disk file type: VDI<br />
  60. &emsp;Storage on physical hard disk: Dynamically Allocated</p>
  61. </li>
  62. <li>Click Create</li>
  63. <li>Select the VM and Click Settings</li>
  64. <li>Select System</li>
  65. <li>Check the Enable EFI checkbox</li>
  66. <li>On the Processor tab, give the VM at least 2 processors</li>
  67. <li>Select Display</li>
  68. <li>Slide the Video Memory to 128 MB</li>
  69. <li>Select Network</li>
  70. <li>Set the attached to dropdown to Bridged Adapter</li>
  71. <li>Select Storage</li>
  72. <li>Click on the Add Hard Disk button across from the SATA controller</li>
  73. <li>Click Add &gt; Browse to and select the steamdeck-recovery .vdi file created earlier &gt; Click Choose</li>
  74. <li>Click OK</li>
  75. <li>Make sure the SteamOS VM is selected and click Start &gt; Normal</li>
  76. </ol>
  77. <h2>Installing SteamOS</h2>
  78. <ol>
  79. <li>Wait for the desktop environment to boot</li>
  80. <li>Double click Terminal with repair tools on the desktop</li>
  81. <li>Run the following commands in the terminal
  82. <div class="codeBlock"># list disks<br />
  83. # note the device id for VBOX HARDDISK<br />
  84. # should be /dev/sda<br />
  85. sudo fdisk -l<br />
  86. # edit the recovery installation script<br />
  87. nano ./tools/repair_device.sh</div>
  88. </li>
  89. <li>Locate the DISK= line and edit the value to match the device ID of the VBOX HARDDISK noted earlier (ie /dev/sda)</li>
  90. <li>Locate the DISKSUFFIX= line and delete the p to leave a blank value</li>
  91. <li>Press CTRL+O, Enter, CTRL+X to write the changes</li>
  92. <li>Continue with the following commands in the terminal
  93. <div class="codeBlock">sudo ./tools/repair_device.sh all</div>
  94. </li>
  95. <li>When prompted, click Proceed to confirm destroying data on /dev/sda</li>
  96. <li>Once the installation completes, click Cancel</li>
  97. <li>Continue with the following commands in the terminal
  98. <div class="codeBlock"># chroot to steamos install<br />
  99. sudo steamos-chroot --disk /dev/sda --partset A<br />
  100. # allow writing to steamos partition<br />
  101. steamos-readonly disable<br />
  102. # set a password<br />
  103. passwd<br />
  104. # enter and confirm a password<br />
  105. # set steamos default to boot to desktop mode<br />
  106. echo -e &#39;[Autologin]\nSession=plasma.desktop&#39; &gt; /etc/sddm.conf.d/zz-steamos-desktopmode.conf<br />
  107. # set steamos partition back to readonly<br />
  108. steamos-readonly enable<br />
  109. # exit chroot<br />
  110. exit<br />
  111. # chroot to steamos install<br />
  112. sudo steamos-chroot --disk /dev/sda --partset B<br />
  113. # allow writing to steamos partition<br />
  114. steamos-readonly disable<br />
  115. # set a password<br />
  116. passwd<br />
  117. # enter and confirm a password<br />
  118. # set steamos default to boot to desktop mode<br />
  119. echo -e &#39;[Autologin]\nSession=plasma.desktop&#39; &gt; /etc/sddm.conf.d/zz-steamos-desktopmode.conf<br />
  120. # set steamos partition back to readonly<br />
  121. steamos-readonly enable<br />
  122. # exit chroot<br />
  123. exit<br />
  124. # shutdown the VM<br />
  125. sudo shutdown now</div>
  126. </li>
  127. <li>Make sure the SteamOS VM is selected and click Settings</li>
  128. <li>Select Storage</li>
  129. <li>Right click the steamdeck-recovery.img device &gt; Remove attachment</li>
  130. <li>Click OK</li>
  131. <li>Make sure the SteamOS VM is selected and click Start &gt; Normal</li>
  132. <li>Welcome to SteamOS</li>
  133. </ol>
  134. <h2>Install VirtualBox Guest Additions (Optional, but recommended)</h2>
  135. <ol>
  136. <li>Continue with the following commands in the terminal
  137. <div class="codeBlock"># verify password is set<br />
  138. passwd<br />
  139. # enter and confirm a password<br />
  140. # allow writing to steamos partition<br />
  141. steamos-readonly disable<br />
  142. # remove pacman keys<br />
  143. sudo rm /etc/pacman.d/gnupg -R<br />
  144. # reinitialize pacman keys<br />
  145. sudo pacman-key --init<br />
  146. # add arch linux pacman keys<br />
  147. sudo pacman-key --populate archlinux<br />
  148. # edit the pacman config file<br />
  149. sudo nano /etc/pacman.conf</div>
  150. </li>
  151. <li>Edit each repository name, adding -rel inside the square brackets
  152. <p>[jupiter] =&gt; [jupiter-rel]<br />
  153. [holo] =&gt; [holo-rel]<br />
  154. [core] =&gt; [core-rel]<br />
  155. [extra] =&gt; [extra-rel]<br />
  156. [community] =&gt; [community-rel]<br />
  157. [multilib] =&gt; [multilib-rel]</p>
  158. </li>
  159. <li>Press CTRL+O, Enter, CTRL+X to write the changes</li>
  160. <li>Continue with the following steps in the terminal
  161. <div class="codeBlock"># update packages<br />
  162. sudo pacman -Syu</div>
  163. </li>
  164. <li>From the VirtualBox menu, select Devices &gt; Insert Guest Additions CD image...</li>
  165. <li>Open the Dolphin file browser application &gt; Select the Guest Additions Disc &gt; Right click in the white space &gt; Open Terminal</li>
  166. <li>In the Terminal window run the following commands
  167. <div class="codeBlock"># install guest additions<br />
  168. sudo ./VBoxLinuxAdditions.run<br />
  169. # start guest additions<br />
  170. sudo /sbin/rcvboxadd quicksetup all<br />
  171. # reboot<br />
  172. sudo reboot now</div>
  173. </li>
  174. <li>The VM will reboot</li>
  175. <li>Upon rebooting, you can now full screen the VM and the internal resolution will automatically change to match the window size</li>
  176. <li>Log back into SteamOS</li>
  177. </ol> </div>
  178. </div>
  179. </body>
  180. </html>