Skip to main content

EX4400 Junos Software & Firmware Upgrade Procedure

·4 mins

Reference commands for upgrading Junos OS and BIOS/CPLD firmware on Juniper EX4400 switches, including verification steps and Virtual Chassis (VC) considerations.


1. Pre-Upgrade Checks #

Check current Junos version #

show version

Check current firmware (BIOS, CPLD, loader) versions #

show chassis firmware

Example output:

Part Type       Version
FPC 0  loader   FreeBSD EFI loader 2.0
       BIOS     CDEN_P_EX1_00.15.01.00
       System CPLD  0.f
       CPU CPLD     1.0

Check current vs. available firmware versions #

show system firmware

This shows Current and Available versions side by side per component, and flags whether a newer firmware package is already staged.

Check Virtual Chassis member status (if applicable) #

show virtual-chassis status
show virtual-chassis vc-port

Check Junos version per VC member #

show version member <member-id>

2. Installing Junos OS #

Copy/transfer the install package to the switch #

file copy <source> /var/tmp/

(or use request system software validate workflow / SCP as preferred)

Install with immediate reboot (standard, single-step upgrade) #

request system software add /var/tmp/<junos-package>.tgz reboot

Install WITHOUT reboot (use when pairing with a firmware/BIOS upgrade to combine into one reboot cycle) #

request system software add /var/tmp/<junos-package>.tgz no-reboot

Note: When both a Junos upgrade and a BIOS/firmware upgrade are pending, install Junos first with no-reboot, then install/upgrade firmware (below) with reboot so both take effect in a single combined reboot.

Manually reboot (if installed with no-reboot) #

request system reboot

3. Verifying Junos Installation (Post-Reboot) #

Confirm running version #

show version

Confirm no lingering/duplicate firmware package installed #

show version | match jfirmware

4. Installing BIOS / CPLD / PoE / eMMC Firmware (jfirmware package) #

Firmware for EX4400 (BIOS, CPU CPLD, System CPLD, PoE, eMMC) ships bundled in a single jfirmware package, downloaded from the same EX4400 downloads page as Junos OS itself (look for the jfirmware entry, separate from the Junos CLI install image).

Stage the firmware package #

request system software add /var/tmp/jfirmware-ex.tgz

Upgrade BIOS #

request system firmware upgrade jfirmware bios

Check BIOS upgrade progress #

request system firmware upgrade jfirmware bios progress

Upgrade CPU CPLD #

request system firmware upgrade jfirmware cpld cpu

Check CPU CPLD upgrade progress #

request system firmware upgrade jfirmware cpld cpu progress

Reboot (or power cycle) to apply firmware changes #

request system reboot

Some firmware types (e.g. CPU CPLD) recommend a full system halt + power cycle rather than a soft reboot — confirm against the specific firmware release notes.

request system halt

5. Verifying Firmware Installation (Post-Reboot) #

Confirm updated BIOS version #

show chassis firmware

Example output after successful BIOS upgrade:

Part Type       Version
FPC 0  loader   FreeBSD EFI loader 2.0
       BIOS     CDEN_P_EX1_00.20.01.00   <-- updated
       System CPLD  1.0
       CPU CPLD     1.1

Confirm updated CPLD version #

show system firmware

Confirm System CPLD version required for specific line cards (example) #

show chassis firmware | match CPLD

e.g. System CPLD should read 1.0 to support EX4400-EM-1C, or 0.6 for EX4400-24X — verify against current platform/release notes requirements.


6. Virtual Chassis (VC) Specific Steps & Troubleshooting #

Confirm VC port mode (if VCPs were previously converted to network ports) #

show virtual-chassis mode

Revert network ports back to VC ports (if needed) and reboot #

request virtual-chassis mode network-port disable reboot

Post-reboot: verify all VC members rejoined #

show virtual-chassis status

Post-reboot: verify VC ports are active #

show virtual-chassis vc-port

If a member shows Inactive or fails to rejoin #

show version member <member-id>
show chassis firmware
show log messages | last 100

Check specifically for:

  • Junos version mismatch between members (most common cause of a member failing to join/stay active)
  • VCCP/vccpd errors or timeouts in the log
  • VC port link state (cabling / port-mode reverted)

Reference: Juniper KB21064 – “Troubleshoot Virtual Chassis” resolution guide, including the article on fixing a VC member stuck in “Inactive” status.


  1. show version / show chassis firmware / show system firmware — baseline check
  2. request system software add <junos-package>.tgz no-reboot — stage Junos (no reboot yet)
  3. request system software add jfirmware-ex.tgz — stage firmware package
  4. request system firmware upgrade jfirmware bios (+ progress to monitor)
  5. request system firmware upgrade jfirmware cpld cpu (+ progress to monitor), if applicable
  6. request system reboot — single combined reboot for Junos + firmware
  7. Post-reboot verification: show version, show chassis firmware, show system firmware
  8. If in a VC: show virtual-chassis status, show virtual-chassis vc-port, confirm all members rejoined on matching Junos version

Notes / Caveats #

  • Always check the specific release’s Software Release Notification (SRN) / release notes for known issues before upgrading — some EX4400 S-releases have had platform-specific bugs (e.g. 25G optic module issues, recalled builds) that may require a different target version than the newest available.
  • If using Juniper Mist (Wired Assurance), the Mist UI can automatically flag and, in some VC configurations, auto-upgrade a mismatched linecard member — check the Switch List / Switch Detail page for upgrade warnings before manual intervention.
  • In a VC, ensure all members are upgraded to the same Junos version and firmware level where possible — mismatches are the most common cause of a member failing to properly rejoin after reboot.