Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[GUIDE] - PXE Boot OpenELEC in a KVM VM

Featured Replies

  • Author

I'll admit it now...getting emulation setup on OE was a MAJOR PITA...especially the controllers.

Not sure what I am missing here. NO

 

TFTP folder:

root@Tower:/mnt/user/TFTP# ls
ldlinux.c32  openelec/  pxelinux.0  pxelinux.cfg/
root@Tower:/mnt/user/TFTP# cd openelec/
root@Tower:/mnt/user/TFTP/openelec# ls
KERNEL  SYSTEM

 

01-00-00-00-15-15-15 (inside pxelinux.cfg):

DEFAULT OpenElec.tv
PROMPT 0

LABEL OpenElec.tv
       KERNEL openelec/KERNEL
       APPEND ip=dhcp boot=NFS=192.168.1.104:/mnt/user/TFTP/openelec disk=NFS=192.168.1.104:/mnt/user/VMs/OE ssh

 

Exports:

root@Tower:/mnt/user/vms# cat /etc/exports
# See exports(5) for a description.
# This file contains a list of all directories exported to other computers.
# It is used by rpc.nfsd and rpc.mountd.

"/mnt/cache" -async,no_subtree_check,fsid=10 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/Albums" -async,no_subtree_check,fsid=100 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/Fitness" -async,no_subtree_check,fsid=101 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/Movies" -async,no_subtree_check,fsid=102 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/Music Videos" -async,no_subtree_check,fsid=103 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/Pictures" -async,no_subtree_check,fsid=104 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/Software" -async,no_subtree_check,fsid=105 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/TFTP" -async,no_subtree_check,fsid=110 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/VMs" -async,no_subtree_check,fsid=111 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/docker_configs" -async,no_subtree_check,fsid=109 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/torrents" -async,no_subtree_check,fsid=108 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/tvshows" -async,no_subtree_check,fsid=106 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/vms" -async,no_subtree_check,fsid=111 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/xbmc_stuff" -async,no_subtree_check,fsid=107 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)

 

I am using the TFTP Plugin with the path "/mnt/cache/TFTP/"

 

  • Author

Id your TFTP folder @ /mnt/cache/TFTP or a cache-only share @ /mnt/user/TFTP?

@johnodon, here are the answers to your questions (TFTP settings please see the attached screen shot).

NFS is enabled in general (settings/NFS) and update as well as the VM share is cache-only.

root@Tower2:~# cat /etc/exports
"/mnt/cache" -async,no_subtree_check,fsid=10 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/REC" -async,no_subtree_check,fsid=103 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/appdata" -async,no_subtree_check,fsid=104 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
"/mnt/user/backup" -async,no_subtree_check,fsid=101 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)

I can access all the required shares via NFS from my Mac.

Id your TFTP folder @ /mnt/cache/TFTP or a cache-only share @ /mnt/user/TFTP?

 

Cache only share. I also tried changing the folders and syslinux versions multiple times. I confirmed that Kodi is able to see the folders through NFS.

  • Author

Have you both verified that your router has network booting enabled/allowed?

 

You can also use a TFTP client to ensure you are actually able to reach the TFTP server.

That's excellent.....I just need to implement dnsmasq on unRaid and that seem not to be too adventurous  ;)

 

The rest (from step 7 onwards) is not needed I guess. However, maybe Sparkly could consider to add dnsmasq into his TFTP Docker  ::)

  • Author

Just remember that Grumpy's guide was written for unraid v5.  There may be some subtle differences.

 

I'm checking with sparkly about adding dnsmasq to the tftp container.

@Johndon, thanks for checking with sparkly if he could add dnsmasq into his TFTP Docker.

 

I have implemented the package (the 64bit version is here: http://packages.slackware.com/?r=slackware64-current&p=dnsmasq-2.72-x86_64-1.txz). Message:

Starting dnsmasq:  /usr/sbin/dnsmasq
dnsmasq: failed to create listening socket for port 69: Address already in use

 

I changed the TFTP port (see screen shot) and restarted dnsmasq:

Starting dnsmasq:  /usr/sbin/dnsmasq

openElec was booting fine.

 

You might have mentioned it but can I shorten the start of openElec? ("A start jobs running ....." needs 1 1/2min).

 

TV via MythTV is running now !!!  :D :D :D :D

  • Author

 

You might have mentioned it but can I shorten the start of openElec? ("A start jobs running ....." needs 1 1/2min).

 

 

Congrats!  :)

 

That timeout countdown should happen only once (in my experience).

 

John

Thanks johnodon. Teh startup screen look like the fanart of Matrix, so I can't see what's going on but the start doesn't need that long any more.

 

Some minor issues to solve, e.g. dnsmasq isn't starting via boot. This is what I'm having in my go file:

# dnsmasq for PXE Boot
installpkg /boot/custom/dnsmasq-2.72-x86_64-1.txz
cp /boot/custom/dnsmasq.conf /etc
chmod +x /etc/rc.d/rc.dnsmasq
/etc/rc.d/rc.dnsmasq start

 

That does' work....I always have the enter the command manually:

root@Tower2:/boot/config# /etc/rc.d/rc.dnsmasq start
Starting dnsmasq:  /usr/sbin/dnsmasq

 

Additionally my server completely crashed after coming back from S3 sleep. Anyhow, that's a great start. Thanks to you, sparkly and grumpy....

If anybody is interested in a docker container that provides proxy pxe booting and tftp services purely from dnsmasq (so ideal if you can't change the appropriate settings on your router), I spent some time yesterday getting it setup. I used sparklyballs tftp docker file as a base.

 

You can grab it by cloning from my github https://github.com/butlerpeter/dnsmasq-docker

 

The README.md file has the command line that I use to run it. Couple of things to be aware of:

 

Two volumes are mapped - /config is where the dnsmasq configuration file gets stored and /tftpboot is the path to the tftp folder.

When running pass an environment variable called HOST_ADDRESS which is set to the ip of your server (e.g. -e HOST_ADDRESS=192.168.0.10)

 

You should be able to drop this in as a replacement for the tftp server section in johnodons guide

 

I created it mainly for my own use but am happy to share. If anybody wants to "unraid-ify" it - creating docker manager templates and all of that please feel free as I have no idea how all of that hangs together as yet.

 

If anybody is interested in a docker container that provides proxy pxe booting and tftp services purely from dnsmasq (so ideal if you can't change the appropriate settings on your router), I spent some time yesterday getting it setup. I used sparklyballs tftp docker file as a base.

 

You can grab it by cloning from my github https://github.com/butlerpeter/dnsmasq-docker

 

The README.md file has the command line that I use to run it. Couple of things to be aware of:

 

Two volumes are mapped - /config is where the dnsmasq configuration file gets stored and /tftpboot is the path to the tftp folder.

When running pass an environment variable called HOST_ADDRESS which is set to the ip of your server (e.g. -e HOST_ADDRESS=192.168.0.10)

 

You should be able to drop this in as a replacement for the tftp server section in johnodons guide

 

I created it mainly for my own use but am happy to share. If anybody wants to "unraid-ify" it - creating docker manager templates and all of that please feel free as I have no idea how all of that hangs together as yet.

 

if you haven't already, get a docker hub account and then use my template repo as a template for your own repo...

https://github.com/sparklyballs/docker-repo

make a support thread announcing your repo....

 

 

If anybody is interested in a docker container that provides proxy pxe booting and tftp services purely from dnsmasq (so ideal if you can't change the appropriate settings on your router), I spent some time yesterday getting it setup. I used sparklyballs tftp docker file as a base.

 

You can grab it by cloning from my github https://github.com/butlerpeter/dnsmasq-docker

 

The README.md file has the command line that I use to run it. Couple of things to be aware of:

 

Two volumes are mapped - /config is where the dnsmasq configuration file gets stored and /tftpboot is the path to the tftp folder.

When running pass an environment variable called HOST_ADDRESS which is set to the ip of your server (e.g. -e HOST_ADDRESS=192.168.0.10)

 

You should be able to drop this in as a replacement for the tftp server section in johnodons guide

 

I created it mainly for my own use but am happy to share. If anybody wants to "unraid-ify" it - creating docker manager templates and all of that please feel free as I have no idea how all of that hangs together as yet.

 

Thanks. This worked perfectly!

Thanks. This worked perfectly!

 

Glad you found it useful  :D

  • 4 weeks later...

I've got PXE / TFTP working. I can PXE boot to OpenELEC. But I cannot get the video GPU pass-through working with an Nvidia GT 730.

 

I know PXE is working b/c if I boot to VNC I watch the boot process although there is a video compatibility error which I assume is b/c of VNC. But it does boot. If I boot to the NVIDIA GeForce GT 730, I get no display not even during the PXE boot process but it will boot and I can eventually SSH into the OpenELEC.

 

It's strange because I can video pass-through working via an Ubuntu 15.04 VM. So the video card seems compatible with GPU pass-through. The motherboard/CPU must also be compatible because it works on other VMs. Others said they had OE working with the GT 730 (which is why I chose it).  But I cannot get video through OpenELEC. I tried both the SeaBIOS & OVFM. I've compared the xlm to johnodon's xml and don't see any major differences.

 

Any suggestions?

openelec-vm.txt

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.