Skip to content
This repository has been archived by the owner on Jun 8, 2024. It is now read-only.

whi-tw/macvlan-unifios

Repository files navigation

Important

ARCHIVED

I'm no longer using macvlan on the UDR itself, so I'm unable to test it and am therefore not supporting this further. More than happy to transfer the repo to someone who wants to maintain it from here out.

UniFi changed the source, and my method stopped working. I'm not a kernel dev, so don't know how to fix the issues. I'm sure there's someone who would be able to sort it out, but that's not me.

If you would like to take this over, email me at github1 [at] whi [dot] tw and let me know who you are, github profile etc and I'll make a decision.

macvlan.ko for UniFi OS Devices (UDR, UDM*)

Ubiquiti stopped including the macvlan kernel module into recent UniFi OS releases. This brings it back.

Install

  1. Get the file setup_macvlan.sh from the latest release and transfer it to your device.
  2. Run it on the device via ssh bash ./setup_macvlan.sh
  3. Run the script /data/on_boot.d/01-load-macvlan-module.sh
  4. Continue what you were doing before that relied on having macvlan available

Update

There should be no reason to update the module while you are on a single firmware, as the built module can't really be improved in any way.

The fun starts when you change to a new firmware.

I haven't yet tried this process, but the general steps would be identical to those in Install.

  1. Check the latest release includes the Kernel Module for your device's model and firmware version.
    • If it does, you're golden and can carry on
    • If it does not, you should probably avoid updating at this point. If there is not currently an Issue open, please open one using the 'New Firmware Request' template.
  2. Update your device's firmware to the new release
  3. After rebooting, run back through the steps in Install and reboot your device.

Uninstall

  1. rm /data/on_boot.d/01-load-macvlan-module.sh
  2. Optional Remove files from /data/macvlan-module
  3. Reboot

Update frequency

This project relies on the GPL archives provided by Ui. Unfortunately, these need to be requested manually for every firmware release. This means that there's no good automatic way of keeping it updated.

The script which loads the module will only load the module for your current running firmware. This is important, as a mismatch could cause your device to enter a permanent reboot loop, with the kernel crashing when the macvlan module is used. If you decide to rename module files to force it to load the wrong version, you could end up in a world of pain, so if you don't know what you are doing, please avoid messing with things.to update off, so this doesn't happen.

If I haven't noticed a new firmware release, please raise an issue with the New Firmware Request template and I'll get onto UI to get the GPL dump out.

Theoretically, the module will work on any firmware release with the same kernel version (eg. the dump for UDR firmware 2.2.12, builds a working module for versions up to 3.0.13 as they use the same kernel). If you test a new version and it works fine, let me know and I'll short-circuit the update process.

Support

I don't really have time to provide any support for this project. If I spot an issue that I can help with, I may be able to respond and assist. However, it is likely that this module itself won't require any support.

UniFi OS Models

This was initially created for the UDR, but it seems that Ubiquiti have stopped including the module on all recent Unifi OS devices. If your device isn't listed in the latest release, raise an issue, using the 'New Firmware Request' template.

GPL Archive Archive

Yes, the heading is correct, this is an archive or archives!

I am archiving the GPL archives requested from UniFi on archive.org: UniFi OS GPL Archives.

Compatibility disclaimer

As stated in the GPL-3 License, no liability or warranty is provided for these kernel module builds. I have tested them on my own USR and am using them in production, but the same may not be the case for you.

So long as you are using the correct module build for your device's model and firmware, you should not have any issues, but as we are building non-standard modules, there's no 100% guarantee.