Co-authored-by: Jake-B <jake-b@users.noreply.github.com>
2.4 KiB
HDHomeRun VLAN Traversal
License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Reference
Purpose
The HDHomeRun software sends a UDP broadcast out to the HDHomeRun tuner as part of the discovery process. If your HDHomeRun is on a separate VLAN, you need some sort of proxy to push this UDP broadcast out to the target network.
Also socat
is a useful tool and maybe you want to cross-compile it for your
UDMP(SE)
Compiling socat
In the build
directory, there is a Docker file to cross compile a socat
binary for the Dream Machine Pro.
docker build -t build_socat .
docker run -v $PWD:/tmp/release build_socat
The first command builds the container, and the second runs the container. The
container will copy the binary inside the container to /tmp/release
. The -v
volume mapping will case the file to apper in the current working directory of
the host.
Precompiled binary is provided. Use at your own risk.
Setting up the on.boot script
- Update the
99-hdhomerun.sh
script with the IP address of your HDHomeRun tuner. - Place it in your
on_boot.d
folder and make it executable. - Reboot your UDMP(SE) or restart the service with something like
systemctl restart udm-boot
- You can verify the script is running with
ps aux | grep "socat"
- The HDHomeRun software should now be able to discover the tuner on the other VLAN.
Testing
This was tested with an HDHomeRun PRIME. I do not know if it works with other hardware.