> For the complete documentation index, see [llms.txt](https://help.security.gallagher.com/knowledge-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.security.gallagher.com/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-to-linux.md).

# Upgrading WinCE to Linux

Migrate a Windows CE Controller 6000 to Linux firmware.

This page covers all three WinCE-to-Linux upgrade methods. Each method has its own dedicated page with the method-specific detail and process flow.

## The three upgrade methods

| Method         | When to use                                                               | Detail page                                                                                                                                                             |
| -------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **DHCP**       | Site network has a DHCP server                                            | [Upgrading WinCE Controllers using DHCP](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-dhcp.md)             |
| **Default IP** | BootP unavailable, for example controller and server on different subnets | [Upgrading WinCE Controllers using Default IP](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-default-ip.md) |
| **BootP**      | Controller and server on the same subnet, no DHCP server                  | [Upgrading WinCE Controllers using BootP](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-bootp.md)           |

For controller-side IP assignment (Method 1/2/3), see [Assigning a Controller an IP address](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-assigning-a-controller.md).

### Process diagrams

**DHCP** - site network has a DHCP server:

![WinCE to Linux upgrade via DHCP - process diagram](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-766ffd5a47451e20dfd4738eae7ad5dee7312918%2FSECHUB-C6000-WINCEDHCP-01-process-flow.png?alt=media)

**Default IP** - BootP unavailable (controller and server on different subnets):

![WinCE to Linux upgrade via Default IP - process diagram](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-fbee5e144b3865518c3e82fe26635a99e5845533%2FSECHUB-C6000-WINCEDEFAULTIP-01-process-flow.png?alt=media)

**BootP** - controller and server on the same subnet, no DHCP server:

![WinCE to Linux upgrade via BootP - process diagram](https://328339335-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6bM8WhlBE9BYizPWJaPN%2Fuploads%2Fgit-blob-6dc6b0ff926adfe7c2ce678acb62ecb20e58cb7b%2FSECHUB-C6000-WINCEBOOTP-01-process-flow.png?alt=media)

***

## Common to all three methods

> ⚠️ **Two-step migration path:** Controllers upgrade to **v8.10 WinCE first**, then to the **Linux version**. This is the only supported path. See [FAQs - Upgrading Factory WinCE Controller 6000s](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-faqs-upgrading-factory.md), Q1.

> ⚠️ **DIP Switch differences:** WinCE OS (v8.10 or older) requires **DIP Switch 2 AND 3** ON for DHCP. Linux OS (v8.20 or later) only requires **DIP Switch 2** ON. Turn OFF DS3 when the **"Dip Switch 3 must be OFF"** alarm fires after upgrade to v8.10, otherwise the Controller cannot be upgraded beyond v8.10.

> ⚠️ **Keep DIP Switch 2 ON until the controller matches the CC version:** breaking-compatibility changes introduced in **v8.40** mean the server cannot push configuration changes to a controller that has not yet been upgraded to match the Command Centre version. Keep DS2 ON until the upgrade is complete.

> ⚠️ **Software selection:** Leave **None Selected** in the Controller Software dropdown until the controller has connected. The controller will restart a number of times. **Don't change the software settings while it's upgrading.**

> ⚠️ **Revalidate Certificate may be required** if DIP Switch 2 was ON during the upgrade. See [Revalidate Certificate](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-revalidate-certificate.md).

***

## After the upgrade

* Turn **OFF all DIP Switches** once the controller has its IP address set (unless the site uses BootP and a future restart will need it).
* Verify the firmware version on the Controller properties.
* Push configuration to the controller.

For the full upgrade and downgrade matrix and compatibility rules, see [Upgrading, Downgrading, Defaulting and Compatibility](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-downgrading-defaulting-compatibility.md).

***

🔗 **Related**

* [Upgrading WinCE Controllers using DHCP](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-dhcp.md). The DHCP method.
* [Upgrading WinCE Controllers using Default IP](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-default-ip.md). The Default IP method.
* [Upgrading WinCE Controllers using BootP](/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-bootp.md). The BootP method.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.security.gallagher.com/knowledge-hub/products/cc-hardware/controllers/controller-6000/configure/controller-6000-upgrading-wince-to-linux.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
