Skip to content

Scripts and tools to assemble firmware images for Meraki MS220, MS22, MS42, MS320 switches

License

Notifications You must be signed in to change notification settings

randlor/meraki-builder

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

meraki-builder

Scripts and tools to assemble firmware images for the following Meraki switches:

  • MS220-8(P)
  • MS220-24(P), MS220-48(LP|FP)
  • MS22(P) and MS42(P)
  • MS320-24(P) and MS320-48(LP|FP)

Acknowledgements

The structure of this repository was inspired by the work of Leo Leung and his documentation: https://leo.leung.xyz/wiki/Meraki_MS220-8P

However, the current target of this repository is a buildroot based firmware that does not reuse Meraki binaries for switch configuration/management.

Originally, "stage1" comes from a dump of the NOR firmware. As of late-2019, the NOR firmware is based on kernel 3.18.122 and does not contain the kernel modules necessary to configure the switching fabric.

stage1

This directory contains scripts for building the NOR ("stage1") firmware.

If you use switch-11-22-ms220 to build vmlinuz, you can create a flashable image with kernel modules (extracted below) to manage the switch ASIC.

Currently, the stage1 build scripts expect a SquashFS filesystem produced by buildroot. See the buildroot directory for the configuration and filesystem overlay.

The output of the make.sh script is a flashable image called switch-new.bin.

stage2

Contains scripts for extracting and modifying a dump of the UBI volume (called part1 or part2; 21030912 bytes) which contains the running Meraki firmware.

This firmware contains pre-built kernel modules which (on my switch) are for the 3.18.123 kernel. You need to extract these modules as they are not included in the Meraki GPL archive.

If your switch is running a newer kernel than 3.18.123, demand the GPL archive corresponding to your kernel version from [email protected] !


If you are interested in examining the Meraki management binaries (e.g. switch_brain or poe_server) they are present in this firmware image.

You will need to build find_hdr.c (used by extract.sh) or substitute find_hdr.py to extract the gzip compressed CPIO archive.

About

Scripts and tools to assemble firmware images for Meraki MS220, MS22, MS42, MS320 switches

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 75.4%
  • C 20.9%
  • Python 2.4%
  • Makefile 1.3%