Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Help about MediaWiki
FUTO
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Introduction to a Self Managed Life: a 13 hour & 28 minute presentation by FUTO software
(section)
Main Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Installing LibreELEC operating system with KODI == # '''Download LibreELEC:''' #* Head to the [https://libreelec.tv/downloads/generic/ LibreELEC] website and download the generic image for your hardware. #* Generic is what we want; you can download versions for other non-x86 architectures if you want a home theater PC that isn’t based on x86, which is cool, but we’re using an x86 based minipc here. <span id="step-1-creating-a-bootable-libreelec-usb-drive"></span> === Step 1: Creating a Bootable LibreELEC USB Drive === <span id="download-libreelec"></span> ==== 1.1 Download LibreELEC ==== # Head to the [https://libreelec.tv/downloads/generic/ LibreELEC Downloads] page and download the generic image for your hardware. #* Choose the '''Generic''' version for x86-based systems. #* If you’re feeling adventurous, you can download versions for non-x86 architectures, but we’re focusing on an x86-based mini-PC here. # The file will be in <code>.img.gz</code> format. You will need to unzip it. ----- <span id="step-2-unzip-the-.gz-file"></span> === Step 2: Unzip the <code>.gz</code> File === '''Instructions for GNU/Linux, macOS, and Windows:''' <ul> <li><p>'''Linux:'''</p> <pre>gunzip LibreELEC-Generic.x86_64-12.0.1.img.gz</pre> <p>This will extract <code>LibreELEC-Generic.x86_64-12.0.1.img</code> in the same directory.</p></li> <li><p>'''macOS:'''</p> <ol style="list-style-type: decimal;"> <li><p>Open Terminal and navigate to the directory with the downloaded file:</p> <pre>cd /wherever/you/downloaded/it/to</pre></li> <li><p>Use the <code>gunzip</code> command:</p> <pre>gunzip LibreELEC-Generic.x86_64-12.0.1.img.gz</pre></li></ol> </li> <li><p>'''Windows:'''</p> <ol style="list-style-type: decimal;"> <li>Download and install a tool like [https://www.7-zip.org/ 7-Zip].</li> <li>Right-click the <code>.gz</code> file and select '''7-Zip → Extract Here''' to extract the <code>.img</code> file.</li></ol> </li></ul> ----- <span id="step-3-create-a-bootable-usb-drive"></span> === Step 3: Create a Bootable USB Drive === '''⚠ Warning:''' This process will erase everything on the USB drive. # Insert a USB flash drive (at least 4GB in size) into your computer. # Use one of the methods below to write the LibreELEC image to the USB drive. <span id="windows-1"></span> === Windows: === # Download and install [https://rufus.ie/ Rufus]. # Open Rufus and select your USB drive. # Click the '''“SELECT”''' button and choose the <code>.img</code> file you extracted. # Click '''“Start”''' and let Rufus create the bootable USB. <span id="macoslinux"></span> === macOS or GNU/Linux: === <span id="figure-out-which-is-the-right-usb-drive"></span> ==== Figure out which is the right USB Drive: ==== <ol style="list-style-type: decimal;"> <li><p>Open the terminal and run:</p> <pre>sudo fdisk -l</pre></li> <li><p>Make a note of the connected drives.</p></li> <li><p>Insert your USB flash drive and run the command again:</p> <pre>sudo fdisk -l</pre></li> <li><p>Identify the new drive that appears. It’s usually something like <code>/dev/sdX</code> or <code>/dev/diskX</code>.</p></li> <li><p>'''Double-check''' that you’ve identified the correct drive:</p> <ul> <li>Unplug the USB drive.</li> <li>Run <code>sudo fdisk -l</code> again. The drive should disappear.</li> <li>Plug it back in and confirm it reappears.</li></ul> </li> <li><p>If you’re sure the drive is correct, proceed.</p></li></ol> <span id="write-the-image-to-the-usb-drive"></span> ==== Write the Image to the USB Drive: ==== <ol style="list-style-type: decimal;"> <li><p>Replace <code>/dev/sdX</code> with your USB drive’s path and run:</p> <pre>sudo dd if=LibreELEC-Generic.x86_64-12.0.1.img of=/dev/sdX bs=4M status=progress</pre></li> <li><p>Wait for the process to complete. It may take a few minutes.</p></li></ol> ----- <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233219809.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233359161.png </gallery> </div> <span id="step-3-set-up-the-asustor-minipc"></span> === Step 3: Set up the Asustor minipc === '''Connect to Your TV and Network:''' * '''HDMI Cable:''' Connect it from the mini PC to your television. * '''Ethernet Cable:''' Connect an ethernet cable so it can connect to your server’s ZFS pool. * '''Optical Audio Cable:''' Use this for audio output to your stereo system. Make sure you insert the optical cable correctly; it is not like a USB-C cable, it fits one way, and there are four possible ways for this to go in. That gives you a 25% chance to plug it in without destroying the jack if you are blindly messing around with it trying to plug it in. Those are bad odds. Pay attention to the plug & the jack! * '''Power Cable:''' Plug this in last, as the asustor flashstor minipc powers on automatically when connected. <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201194913746.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201215358549.png </gallery> </div> <span id="step-4-boot-into-libreelec-installation-and-install-it"></span> === Step 4: Boot into LibreELEC installation and install it === # Insert the bootable USB drive into your mini-PC. # Restart the system and enter the BIOS/UEFI settings by pressing '''F2''' over & over again as fast as possible right after the machine turns on. # Go to '''“boot”''' menu by using the right arrow key and pressing enter. # Set the USB drive as the primary boot device. # In the BIOS, disable any TPM and secure boot options that interferes with Linux installation. This is similar to what we did on the Intel NUC early in the guide when installing pfSense onto it. # Save changes & reboot. LibreELEC will boot from the USB drive. Hitting '''F10''' will exit the BIOS & save your changes. ----- If you managed to erase your entire computer by writing the LibreELEC image to your operating system drive EVEN AFTER reading these instructions, congratulations! You’re almost as stupid as me. Almost. Don’t do that. <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201220116461.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201225302004.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201225320577.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201225331606.png </gallery> </div> <span id="step-5-install-libreelec-onto-the-asustor"></span> === Step 5: Install LibreELEC onto the Asustor === We are erasing all of the Asustor software & replacing it. This process will take less than 90 seconds. and Next, we install LibreELEC, which is just enough OS to run <code>Kodi</code>. # '''Boot and Install''': Follow the prompts to install LibreELEC onto the internal eMMC. # Choose the drive you wish to install it onto, which will be the <code>/dev/mmcblk0</code> device in the case of the Asustor Flashstor. That is the memory that the ASUS software is installed onto; we are erasing it to install LibreELEC & KODI. # You’re done. That’s it. In & out in less than 90 seconds - amazing. :) <blockquote>'''NOTE:''' If you have not installed any new NVMe drives into the Asustor Flashstor minipc, there should only be one device showing up to install onto, which will be the internal EMMC at <code>/dev/mmcblk0</code>. If you have installed new NVMe SSDs, they will show up qith <code>/dev/nvmexn1</code> notation with <code>x</code> being the number of the SSD in the machine. </blockquote> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201230528292.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201230547810.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201230624240.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201230635545.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201230715169.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201230801939.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201231031498.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201231050869.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201231926114.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201231959756.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201232226059.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201232445242.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201232501935.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201232537212.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201232606886.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201232625879.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233609572.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233509199.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233621905.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233647328.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233736391.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233907464.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233943591.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201233658326.png </gallery> </div> <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:image-20241201234055519.png </gallery> </div> <span id="step-6-boot-into-the-libreelec-system-set-it-up"></span> === Step 6: Boot into the LibreELEC system & set it up === After installing LibreELEC, it will boot into the operating system & start KODI. The rest of the setup is a breeze. '''Networking Configuration''': * Use the default internet connection settings. * There is no need to configure a static IP address for a ''client.'' Static IP addresses are for servers. * If you are using this to watch stuff stored on your server’s ZFS pool, disabling samba server & disabling ssh is the smart way to go. No need to run unnecessary services if you don’t have to. '''Audio Configuration:''' By default, it will output audio via the HDMI cable. * If your HDMI cable connects to an '''audio/video receiver that is hooked up to your speakers''', you’re fine. * If your HDMI cable connects to your '''television''', you may hear the audio through your '''TV speakers''', which is horrible; we will need to change where Kodi outputs to. To change the audio output: # '''Access System Settings''': Navigate to the gear icon for settings, then '''Audio'''. # '''Select the Audio Output Device''': Choose <code>ALSA: HDA Intel PCH, ALC888-VD Digital S/PDIF</code>. Yours may look mildly different - we want whatever looks closest to S/PDIF digital optical/toslink output. Experiment to find which one works for you. # '''Check Display Settings''': Make sure it is set to what your television is capable of. in my case, it is set at ***3840 by 2160 and 60 fps. <blockquote>'''Why not a static IP? Didn’t we make a static IP for everything else?''' Static IPs aren’t important for a computer that doesn’t provide services. When we’re running a server, like our machine with the ZFS pool that stores our media files, we are running something where clients(aka our home theater PC) are going to want to know where to access it. Think of your server like your favorite store. We are going to tell our home theater PC to always go to the store to get movies(….) at <code>192.168.5.2</code> - so our server always NEEDS to be at <code>192.168.5.2</code>. The home theater PC we are setting up right now is the ''“customer”'' - it doesn’t have to have a static IP, nor does it always have to be at the same address every day. A customer can visit a store from a different address every day; it makes no difference to the shopowner selling goods to the customer. However, if the '''''store’s''''' address changed ''every single day'' without notice, the customer would have a very hard time finding the store. They may stop going to that store altogether. We can use the default setup where the server grabs an IP address via DHCP''(aka, it grabs whatever’s available from the router)'' without concern here. </blockquote> <span id="step-7-adding-media-content-to-kodi"></span>
Summary:
Please note that all contributions to FUTO may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
FUTO:Copyrights
for details).
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:
Cancel
Editing help
(opens in new window)