Walkthrough for Raspberry Pi 3B fails to start physical device

Hello,

we are evaluating mender for our embedded device development. To start we would like to follow the walkthrough as outlined.

However, we get stuck while attempting to connect a physical device, based on the Raspberry Pi 3B example image as provided.

When starting the target device, it boots up and fails to identify an Ethernet connection. It shows a message “Ethernet: No ethernet” and fails to continue booting.

Any clues as what is happening? The target device is a Raspberry Pi 3B (not the plus variant).

Thanks in advance, ragards

@bder can you please share boot log? Did you try on other board (maybe this one have eth issue?) Which yocto version do you use? Thanks.

Hello Marek, where can I find the bootlog?

I will try with a different Raspberry PI (same model) next week, however other images (default Raspbian for example) boot up just fine.

We are following the exact same steps as outline here: https://docs.mender.io/1.7/getting-started/deploy-to-physical-devices with the DHCP option.

Regards

Do you have attached serial console on device (or just use hdmi monitor?) If raspbian works then it is not likely HW problem. That is the reason why I asked to share bootlog. So if you don’t have serial console just when board boots and over monitor type

journalctl -b

this should print kernel messages and provide some info. Can you pls also try to provide output of:

ifconfig -a

Which version of poky you’re using?
There is already a topic Raspberry Pi 3 Model B/B+ which is same board as you use. Image from topic is tested on rocko, sumo and latest thud poky versions.
Thanks.

Moving this to General Discussions section.

Wow thanks for the quick followup.

I have yet to start building our custom image using Yocto. As I said I’m just using the prebuilt demo image as can be downloaded from the Mender QuickStart docs.

Also, when the device boots it seems to be stuck early on in U-boot. It doesn’t get to the point at which I can enter commands at the command prompt (to enter the commands you entered)

Any clues as to why the prebuilt demo image might generate this scenario?

Just to confirm you are downloading these images,

 https://docs.mender.io/1.7/getting-started/download-test-images

?

Hello, I have confirmed the problem to be in the fact that we have connected a custom UART module to the Raspberry PI’s GPIO pins. Apparently the bootloader expects there to be a serial console input, but that is not the case.

I have succesfully tested the image using a plain Raspberry PI without any external modules connected toe the GPIO’s.

Maybe that’s worth mentioning since many PI’s are augmented with external modules.

What would be the impliciation for our use case? In other words, would it be possible to allow this scenario (instead of the bootloader to fail)?

Regards,

What would be the impliciation for our use case? In other words, would it be possible to allow this scenario (instead of the bootloader to fail)?

I believe you are having the same issue as described here, https://github.com/agherzan/meta-raspberrypi/issues/374 which also includes a resolution.

Maybe that’s worth mentioning since many PI’s are augmented with external modules.

That makes sense.

Our documentation is open-source, feel free to make a suggested change where you would expect this information to be.

Hello mirzak,

thanks for the suggestion, it seems like this is a similar issue. I have yet to test a custom Yocto version of an image with a modified version of the u-boot. But judging from the discussion in the said issue I would say this would solve the issue.

If it turns out that the mentioned solution won’t fix our problems, I will reopen the issue.

Thanks

Hello mirzak,

It appears as the solution would be to patch the U-boot such that it doesn’t use the serial port as a console output (as also described in the said topic).

However, as we are fairly new to the Yocto built process, could you provide a hint as how to implement this within the process? Would that be a recipe of some sorts?

We are currently following the build process based on this gist https://gist.github.com/drewmoseley/816701ec0ca30d495786f03afea518dc

Many thanks in advance, regards

To provide a patch to U-boot you would typically provide a bbappend file, which amends the recipe for actual U-boot. This is normally done by creating a custom layer and putting that bbappend there.

More about this in the Yocto Mega Manual, there is also a section on Patching Code.

You can also take a look at how we are providing Mender specific patches, using the same methods

Hello mirzak,
many thanks for pointing me in the right direction. I have managed to create a custom u-boot patch that disables the serial input/output on the raspberry pi3 in u-boot.
Regards

Glad it worked out :+1: