# Integration checklist - file not found /boot/zImage

**URL:** https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963
**Category:** General Discussions
**Created:** [August 4, 2021, 6:33am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963 "2021-08-04T06:33:38Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![marizonne.villafranc](https://avatars.discourse-cdn.com/v4/letter/m/ad7895/32.png) [@marizonne.villafranc](https://hub.mender.io/u/marizonne.villafranc)
#### Post date: [August 4, 2021, 6:33am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/1 "2021-08-04T06:33:38Z")

</div>

Hi,

I’m following the steps outlined in [Integration checklist | Mender documentation](https://docs.mender.io/client-installation/integration-checklist)

Steps 1 - 5 done ok.  
Step 6 Reboot

```auto

Normal Boot
Hit any key to stop autoboot: 0
35642 bytes read in 53 ms (656.3 KiB/s)
**File not found /boot/zImage**

```

The very first step is technically the reason why it fails.

```auto
root@hero-secc:~# mv /boot/zImage /boot/zImage.testing-backup

```

But, the system should boot now in the rootfs part b (mmcblk1p2), right?  
Why is it not happening?

---

<div class="post-metadata">

### Author: ![lramirez](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/lramirez/32/1195_2.png) [@lramirez](https://hub.mender.io/u/lramirez)
#### Post date: [August 10, 2021, 3:09am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/2 "2021-08-10T03:09:14Z")

</div>

Hi @marizonne.villafranc,

In the first step, you are modifying a file from the current running partition A. At step 5, you had to specify to boot from partition B, so the modifications to the kernel shouldn’t affect the booting process to the inactive partition so far.

Did you run

```auto
fw_setenv mender_boot_part 3
fw_setenv mender_boot_part_hex 3

```

before booting?

I am curious on what kind of system you are testing right now. Is this an integration you are performing or are you following a tutorial in particular?

Regards,  
Luis

---

<div class="post-metadata">

### Author: ![marizonne.villafranc](https://avatars.discourse-cdn.com/v4/letter/m/ad7895/32.png) [@marizonne.villafranc](https://hub.mender.io/u/marizonne.villafranc)
#### Post date: [August 10, 2021, 3:55am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/3 "2021-08-10T03:55:29Z")

</div>

Hi Luis,

Thanks for the reply.  
I run the above’s command but my parameter is 2 because that’s where my rootfs B is.

```auto
fw_setenv mender_boot_part 2
fw_setenv mender_boot_part_hex 2

```

I am performing an integration checklist for our system not the tutorial.

---

<div class="post-metadata">

### Author: ![lramirez](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/lramirez/32/1195_2.png) [@lramirez](https://hub.mender.io/u/lramirez)
#### Post date: [August 10, 2021, 4:23am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/4 "2021-08-10T04:23:14Z")

</div>

Hi @marizonne.villafranc,

Usually the values are 2 and 3 for A and B. As the 1st one is assigned to the bootloader and the 4th one for the /data partition for persistent information. How is your system partitioned?

If your system is partitioned differently as I explained, if this is a Yocto based system,  
please make sure to override these [variables](https://docs.mender.io/system-updates-yocto-project/board-integration/partition-configuration#more-detailed-storage-configuration) so it will use the right ones:

```auto
MENDER_BOOT_PART = "${MENDER_STORAGE_DEVICE_BASE}1"
MENDER_DATA_PART = "${MENDER_STORAGE_DEVICE_BASE}4"
MENDER_ROOTFS_PART_A = "${MENDER_STORAGE_DEVICE_BASE}2"
MENDER_ROOTFS_PART_B = "${MENDER_STORAGE_DEVICE_BASE}3"

```

If this is a Debian-based system, override the partition numbers as described [here](https://github.com/mendersoftware/mender-convert/blob/8e141ab816589f2e097f0e31bec7b1164812d81a/configs/mender_convert_config#L159).

```auto
# Partition number of boot partition
MENDER_BOOT_PART_NUMBER="1"
# Partition number of root filesystem A
MENDER_ROOTFS_PART_A_NUMBER="2"
# Partition number of root filesystem B
MENDER_ROOTFS_PART_B_NUMBER="3"
# Partition number of persistent data partition
MENDER_DATA_PART_NUMBER="4"

```

If you are using the default partitioning configuration, and you are currently in partition A, you are telling the bootloader to keep in the current partition with the command you shared.

Regards,  
Luis

---

<div class="post-metadata">

### Author: ![marizonne.villafranc](https://avatars.discourse-cdn.com/v4/letter/m/ad7895/32.png) [@marizonne.villafranc](https://hub.mender.io/u/marizonne.villafranc)
#### Post date: [August 10, 2021, 4:35am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/5 "2021-08-10T04:35:08Z")

</div>

Hi Luis,

I read somewhere here in the forum that mender boot is optional; hence I set the variables as

```auto
MENDER_STORAGE_TOTAL_SIZE_MB = "5120"
MENDER_BOOT_PART_SIZE_MB = "0"
MENDER_DATA_PART_SIZE_MB = "128"
#MENDER_BOOT_PART = "${MENDER_STORAGE_DEVICE_BASE}1" --> not used
MENDER_DATA_PART = "${MENDER_STORAGE_DEVICE_BASE}3"
MENDER_ROOTFS_PART_A = "${MENDER_STORAGE_DEVICE_BASE}1"
MENDER_ROOTFS_PART_B = "${MENDER_STORAGE_DEVICE_BASE}2"

MENDER_BOOT_PART_SIZE_MB_mender-uboot = "0"

```

Could you please confirm? The system can boot without the mender boot but it just can’t go to the next rootfs as per the instruction in the integration checklist.

I am happy to put back the mender boot if it is indeed necessary.

---

<div class="post-metadata">

### Author: ![lluiscampos](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/lluiscampos/32/112_2.png) [@lluiscampos](https://hub.mender.io/u/lluiscampos)
#### Post date: [August 10, 2021, 7:34am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/6 "2021-08-10T07:34:50Z")

</div>

Hi @marizonne.villafranc ,

Mmmm, you can say that all of these variables are “optional” in the sense that they have a default value. See [these lines](https://github.com/mendersoftware/meta-mender/blob/bfca1ad8222ee90e13900747b5545e2fc93266d2/meta-mender-core/classes/mender-setup.bbclass#L26-L32) for the boot partition, and just below for the rest. But AFAIK the boot partition must be always present in the system.

So what you are doing with your configuration is incorrect, as both `MENDER_BOOT_PART` and `MENDER_ROOTFS_PART_A` are pointing to the same partition.

Now, I would expect `meta-mender` logic to catch this and trow an error… I’ll follow it up independently.

---

<div class="post-metadata">

### Author: ![lluiscampos](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/lluiscampos/32/112_2.png) [@lluiscampos](https://hub.mender.io/u/lluiscampos)
#### Post date: [August 10, 2021, 7:40am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/7 "2021-08-10T07:40:45Z")

</div>

Hi again,

I might be wrong: it seems that a setup with no boot partition is valid, see [these lines](https://github.com/mendersoftware/meta-mender/blob/bfca1ad8222ee90e13900747b5545e2fc93266d2/meta-mender-core/classes/mender-setup-image.inc#L40-L46).

Although I don’t know in which circumstances a system does not need the boot partition what is clear from the code is that you need to set `MENDER_BOOT_PART` to empty string, rather than not setting it (which will trigger the default logic I pointed in my previous comment), for this piece of logic to trigger.

---

<div class="post-metadata">

### Author: ![marizonne.villafranc](https://avatars.discourse-cdn.com/v4/letter/m/ad7895/32.png) [@marizonne.villafranc](https://hub.mender.io/u/marizonne.villafranc)
#### Post date: [August 20, 2021, 5:28am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/8 "2021-08-20T05:28:02Z")

</div>

Hi Luis,

Following your advice:

```auto
MENDER_STORAGE_TOTAL_SIZE_MB = "5120"
MENDER_BOOT_PART_SIZE_MB = "0"
MENDER_DATA_PART_SIZE_MB = "128"
MENDER_BOOT_PART = ""
MENDER_DATA_PART = "${MENDER_STORAGE_DEVICE_BASE}3"
MENDER_ROOTFS_PART_A = "${MENDER_STORAGE_DEVICE_BASE}1"
MENDER_ROOTFS_PART_B = "${MENDER_STORAGE_DEVICE_BASE}2"

```

I still get the same error:

```auto
Normal Boot
Hit any key to stop autoboot: 0
35642 bytes read in 53 ms (656.3 KiB/s)
**File not found /boot/zImage**

```

I will try to add some size of MENDER\_BOOT\_PART, and see if I can pass the integration checklist.

---

<div class="post-metadata">

### Author: ![marizonne.villafranc](https://avatars.discourse-cdn.com/v4/letter/m/ad7895/32.png) [@marizonne.villafranc](https://hub.mender.io/u/marizonne.villafranc)
#### Post date: [August 26, 2021, 1:04am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/9 "2021-08-26T01:04:22Z")

</div>

I think the reason why booting is not working because fw\_printenv does not have any mender variables. The result of printenv and fw\_printenv are totally different. How can I make them the same?

This is content of my target:

```auto
root@hero-secc:/# ls
bin data etc lib media opt run sys unit_tests var
boot dev home lost+found mnt proc sbin tmp usr www

```

---

<div class="post-metadata">

### Author: ![kacf](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/kacf/32/146_2.png) [@kacf](https://hub.mender.io/u/kacf)
#### Post date: [August 26, 2021, 6:16am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/10 "2021-08-26T06:16:54Z")

</div>

You need to make sure that `/etc/fw_env.config` contains these lines:

```auto
DEVICE OFFSET1 SIZE
DEVICE OFFSET2 SIZE

```

where the `DEVICE` is the same as the one expected by U-Boot. This is defined in U-Boot’s C code defines, `CONFIG_SYS_MMC_ENV_DEV` and `CONFIG_SYS_MMC_ENV_DEV` (very often `mmc` and `0`, respectively, which corresponds to `DEVICE = /dev/mmcblk0`).

`OFFSET1`, `OFFSET2` and `SIZE` should match U-Boot’s C code defines `CONFIG_ENV_OFFSET`, `CONFIG_ENV_OFFSET_REDUND` and `CONFIG_ENV_SIZE`, respectively.

The meta-mender layer code tries to check that these variables are correct, but may miss some cases.

Also, make sure that U-Boot has been flashed correctly to your board, and you’re not still using the old version from before you attempted the Mender port.

---

<div class="post-metadata">

### Author: ![marizonne.villafranc](https://avatars.discourse-cdn.com/v4/letter/m/ad7895/32.png) [@marizonne.villafranc](https://hub.mender.io/u/marizonne.villafranc)
#### Post date: [August 31, 2021, 4:12am UTC](https://hub.mender.io/t/integration-checklist-file-not-found-boot-zimage/3963/11 "2021-08-31T04:12:46Z")

</div>

Thank you @kacf ! My integration checklist now passes.
