Skip to content

VeloCloud 520 (5×0) to Opensource (WIP)

I was lucky enough to find and purchase a Velocloud 520 for $5AUD at a swap meet. After some research here and removing the case, I was able to work out enough of the systems specifications to get Ubuntu to boot reliably.

Firstly I removed the press out plastic cover for the onboard USB serial port. This helped working out the bootup sequence. From there I tried installing any Linux distro that output to a serial console, but they all failed and rebooted after a few minutes. After a while I worked out it was approximately, if not exactly the same length of time.

Thanks to bubbadestroy for this idea, I purchased a mPCI-E to PCI-E adapter so I could get video output using a low end NVidia graphics card. This allowed confirmation on the rebooting time line, and also shown that it supports PXE booting by default.

The rebooting of the device was due to a hardware watchdog or at least a watchdog embedded into the BIOS, that reboots the system after 3 minutes. To get around this, I pre-installed Ubuntu onto a USB and added the following to the rc.local:

  • modprobe i2c-i801
  • modprobe i2c-smbus
  • modprobe iTCO-wdt
  • and “nmi_watchdog=0” was added as a boot switch.

The distro booted up fine and the watchdog no longer presented a problem. Unfortunately none of the NICs on the rear would initialize, so the wireless was used in client mode to get network access. After some more research I was able to get the SFP’s to initialize with a 1GB copper SFP.

Hoping to get full usage from all the NIC’s, I looked through the source code released here. That’s where the rabbit warren of failed/missing packages and disappointment started. After a few weeks I went back to trying to merge the changes in the OpenWRT with PFSense (FreeBSD) source. After a few more weeks of even more disappointment I went back to just getting the OpenWRT source patched as a proof of concept which could then be built on.

Finally after another few weeks, I had OpenWRT working, that (as far as I could tell) provided basic network switching capabilities. The USB installer image can be found here. As a nasty “install” I did a “dd if=/dev/sda of=/dev/sdb” There is an install file in /root/installer -p (after removing all partitions and setting a blank GPT) to copy the data from the USB to the internal 8GB storage.

I added a partition for the Qemu files and mounted it:

One of the packages that was built was Qemu, I plan to the use that to mount and run a PFSense install using the ample amount of available RAM/CPU, hopefully with minimum fuss* Given previous results much fuss is expected.

Update – 17/11/21

So far PFSense appears to be running OK, for some reason there was a few ROM files for Qemu that didn’t get included in the final OpenWRT image although they were compiled. I’m having issues with networking, but they are most likely due to my unfamiliarity with Qemu’s setup and should fixable.

I’ve had OPNSense recommended as an alternative so I gave that a go and it booted fine with a working bridged network interface. I created another bridge on the host for the WAN interface.

#Setup file
modprobe kvm_intel

qemu-system-x86_64 -enable-kvm -cpu host -smp 2 -m 2G \
   -drive file=/mnt/PFSense/pfsense.qcow2,if=virtio \
   -vnc :0 \
   -vga cirrus \
   -device virtio-net-pci,mac=E2:F2:6A:01:9D:C9,netdev=br0 \
     --netdev bridge,helper="/usr/bin/qemu-bridge-helper --use-vnet --br=br-lan --fd=3",id=br0 \
   -device virtio-net-pci,mac=E2:F2:6A:01:9D:AA,netdev=br1 \
     --netdev bridge,helper="/usr/bin/qemu-bridge-helper --use-vnet --br=br-wan --fd=3",id=br1

The bridges are setup on the OpenWRT host as follows.

UPDATE – 20-11-21

I recompiled the kernel to try to get PCI passthrough working with Qemu.
Added to kernel boot command “intel_iommu=on vfio-pci.ids=168c:003c” <– this is the wifi ID
Boot output:
dmesg – [ 0.000000] Intel-IOMMU: enabled
lspci – 00:0f.0 IOMMU: Intel Corporation Atom processor C2000 RCEC (rev 03)

Created /etc/modules.d/vfio and /etc/modules-boot.d/74-vfio:
“options vfio-pci ids=168c:003c enable_unsafe_noiommu_mode=1”
– No luck so far.

29 thoughts on “VeloCloud 520 (5×0) to Opensource (WIP)”

    1. Hi Ben,

      It’s an Intel(R) Atom(TM) CPU C2358 @ 1.74GHz, The following is one of the cores:
      processor : 0
      vendor_id : GenuineIntel
      cpu family : 6
      model : 77
      model name : Intel(R) Atom(TM) CPU C2358 @ 1.74GHz
      stepping : 8
      microcode : 0x12a
      cpu MHz : 1400.000
      cache size : 1024 KB
      physical id : 0
      siblings : 2
      core id : 0
      cpu cores : 2
      apicid : 0
      initial apicid : 0
      fpu : yes
      fpu_exception : yes
      cpuid level : 11
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
      bogomips : 3491.24
      clflush size : 64
      cache_alignment : 64
      address sizes : 36 bits physical, 48 bits virtual
      power management:

      1. The rom did work for me on disabling the watchdog. Now I am working on trying to install openwrt, do I need to blank out all partitions before running the install?

        1. Hi Robbie, I had already messed with the internal storage before I ran the installer. I believe the script (from memory) checks the partitions already on the device, so it only overwrites the system partitions and leaves the data partition alone. Because I had already messed with it, I needed to remove them all so it could could complete successfully..

            1. HI Robbie, When you turn it on it boots press F12 and select the internal storage. I cant remember if it automatically boots from internal if the USB is removed.

    1. Any chance you could share the rom image from above as they seem to have since restricted access to that bitbucket repository.

      1. Hi Raylynn,
        I’m pretty sure the firmware your speaking of was included in the USB disk image I’ve listed above, perhaps use the USB to boot from, then apply the BIOS firmware, and reboot. Again, I’m pretty sure it’s the same.

        Cheers.

    2. hello Mai,
      When i try to dl your bios from bitbucket, i get
      We can’t let you see this page
      Please can you give me info for access.

      gr. Ad.

        1. ok sdhf,
          Thanks for the file.
          FYI: a while ago I had opense working with the old 5×0 firmware.
          but unfortunately no lan ports,
          With the latest info I probably have a better chance of a working opensense machine.

  1. Hello, I got a velocloud 500 ,but now the URL “https://bitbucket.org/velocloud/openwrt” can not access now, can you help to send me the igb patch?

  2. Hi, I’ve been playing with a VC 5×0/520 that I was given by a client (no longer needed) and trying to get it running into something usable. I’ve fdisked the internal storage and run your installer but it keeps aiming back to /dev/sda which is my usb rather than /dev/sdb, the internal storage. I can tell I’m close but I’m not having any luck here. I know I’m missing something but after hours of reading here and some other threads that reference this post, I’m at a loss.

    BTW, I’m using an mPCIe to PCIe adapter and an old NVS310 I had laying around for display, no need for serial port worries. Boot into the “press enter to start console” is happening with no problem after an F12. I can also boot into other media but am not having any luck bypassing the watchdog timer, so no luck installing other OS options.

    Thanks in advance for any help.

  3. Nice work…i want to also get an edge 5xx or 6xx to work with pfSense (not OpenSense). I have also not been able to do it without the watchdog killing it. Edge500 was one that did get to work last I remember, but I’ve been using the Edge840 as my daily pfSense firewall (Love it). I’d just like the smaller older Edge devices for family to have as a small pfSense Firewall since I have a few available.

  4. Velo Edge 5xx’s and 6xx’s Motherboard have a Console Mini USB Port hidden under the cover on the motherboard. Use Putty on your laptop and set you Com Port and then the Com Port Speed to 115200 and set Putty’s Keyboard setting to VT100+ . Get the Cisco Console cable Mini USB to USB or (Amazon: USB 2.0 Console Cable Compatible/Replacement for Cisco A-Male to Mini-B Cord). This will free up the PCIE .

  5. Just a quick hint, concerning the latest tests, focussing in pci-passthrough, in this post:

    The Intel Rangeley/Avoton (C2000 Series) does NOT support VT-d, which is mandatory for this function.
    The later Denverton (C3000) series, which the Velocloud 600 is based in, does indeed support VT-d.
    So, if pci-passthrough is your goal, then forget the Velocloud 500 series devices.

  6. Hi sir, I downloaded the openwrt firmware, but failed to login in. What is the password of the image? Is it available to public?

Leave a Reply

Your email address will not be published. Required fields are marked *