by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Jonas Vautherin
    @JonasVautherin
    I'll give a shot to FMU, and I'll see where that goes. Seems very cool. I found Witekio's blog post about OSTree when looking at how I could make a simple Yocto + OSTree test. Then I looked at the blog more generally, because that post was nice, and found FMU.
    Cedric Vincent
    @cevincent
    Thanks for the feedback. On which hardware are you planning to use FMU?
    Jonas Vautherin
    @JonasVautherin
    What I like is that what FMU produces seems to be really a "normal" Yocto, with already the OTA and containers figured out. Meaning that it is not a big risk: using FMU is apparently not locking me into FMU, and I could always move back to "making everything myself". Balena does lock me into Balena, somehow. Not sure if what I'm saying makes sense :)

    On which hardware are you planning to use FMU?

    First on a pocketbeagle

    I guess I will first play with Yocto + OSTree directly, and then look more closely at FMU.
    Cedric Vincent
    @cevincent
    We never tried on this board
    Jonas Vautherin
    @JonasVautherin
    I will :)
    Cedric Vincent
    @cevincent
    I know that one of my colleague is using it on a beaglebone black for one of his personnal project
    Hum I checked the meta-updater (ostree support for updating the OS), and they support the AM335x so in theory it should be pretty straight forward :)
    Jonas Vautherin
    @JonasVautherin
    To be honest, I'm quite excited by the idea of trying to make my own Yocto from scratch, and I am almost disappointed to have found FMU, because it seems good and it seems to solve my problem xD
    Cedric Vincent
    @cevincent
    Sorry for that :P
    Jonas Vautherin
    @JonasVautherin
    haha
    Well I may have to tweak it a bit, at first I would not want to use the containers, I believe, and also I need to check for a secure bootloader
    So I'll have stuff to do, still :-)
    Cedric Vincent
    @cevincent
    On AM335X there is no secure boot as far as I know
    you need to use an i.MX6/8 or STM32MP1 to get this type of feature
    Jonas Vautherin
    @JonasVautherin
    yes, but that would be fine. Just starting with pocketbeagle because I have one at home :)
    How does Witekio work with consulting? Do you provide like... help to design a system, and then reviews while developing/maintaining it? Something like that?
    Cedric Vincent
    @cevincent
    Exactly, we provide system workshop to help on the architecture phase. Then it's up to you if you want us to support you for the development or if you want to do it yourself.
    Jonas Vautherin
    @JonasVautherin
    sounds very good to me :)
    Thanks a lot for all the help! I'll go play with my pocketbeagle now :D
    Cedric Vincent
    @cevincent
    Enjoy :P
    Jonas Vautherin
    @JonasVautherin
    Hello :)
    Just saw that Witekio got acquired. Congrats on that, I guess :)
    Does it mean that Witekio will stop doing consulting work?
    Cedric Vincent
    @cevincent
    Hi Jonas, it doesn't change anything for Witekio. Therefore, yes we are still doing consulting work
    pawel
    @pawelevans
    Hi, I am going through the 'Getting Started' guide. The example image is for a sabre device. Is there any information on how to build a rpi3 image?
    Cedric Vincent
    @cevincent
    Hi Pawel, something is missing :). I will update the doc accordingly. You need to sync with the manifest for RPI3: ./StartBuild.sh sync raspberrypi3 rocko dev
    Then you can follow the rest of the Getting Started guide
    Just one thing, checkout this ticket: FullMetalUpdate/meta-fullmetalupdate-extra#6
    Cedric Vincent
    @cevincent
    if you use a RPI3 B+, the ethernet interface doesn't work (it work on RPI3 B). This will be fixed in the coming days.
    4 replies
    pawel
    @pawelevans
    Thank you Cedric! I did notice the raspberrypi3 option in the yocto-entrypoint.sh file and already started the build, but it's good to know I used the correct parameters. I do have the RPI3 B+ model but at the moments I am just familiarising myself and will be a good practice to deploy the fix when ready :)
    srothery
    @srothery
    Hi :) I'm new to FullMetalUpdate and was wondering if it supported arbitrary updates or is it currently only Qt applications and Tensor containers? Can I use it to update a docker container with say a node program in?
    gavilanes
    @gavilanes
    Hello to everyone! I am new too, I am using the fullmetalupdate demo server, but I still cannot push anything there since my yocti cannot open opendir(/ostree/repo). Where can I ask this technical question? everything seemed to be running ok.
    Cedric Vincent
    @cevincent
    Hi all! @srothery : you can update anything you can build with Yocto. The QT and Tensor containers are only examples.
    @gavilanes: Please drop us an issue on github with as much technical details as possible (version of Yocto, Hardware, Logs, ...)
    srothery
    @srothery
    @cevincent thanks - I'll take a look :)
    gavilanes
    @gavilanes
    @cevincent thank you very much! in the meantime i realized the problem and pushed the first container. Instead, can I ask you where can I find information about the communication between target and hawkbit server for updates? I dont know if I have missed something.
    Cedric Vincent
    @cevincent
    @gavilanes : I gave a talk on this topic last year at ELC, the presentation: https://elinux.org/images/c/cf/FullMetalUpdate_ELC_V1.pdf, the talk: https://www.youtube.com/watch?v=fqNlOVWOQiU
    gavilanes
    @gavilanes
    Hello Cedric, I saw your presentation, thank you! I was wondering the case in which a root file system is updated in the target and then system does not boot properly the next time due to the update. I still don't see this case considered in full metal update, is it? we are intending to deploy devices on field with no access to physical infrastructure, and the possibility to perform software container updates frequently and several rootfilesystem updates will be necessary during product cycle, so we need to consider that case.
    Cedric Vincent
    @cevincent
    @gavilanes : Hi, yes it is possible (ostree is kind of designed for that). We actually just finished the implementation and it's almost ready. We are finalizing the tests before we push to github, so it should be available soon. If you want to check how it's going to work: https://github.com/FullMetalUpdate/documentation/blob/master/rollback.md
    yes the doc is available before the feature :)
    gavilanes
    @gavilanes
    If I understand well, the automatic rollback is executed only if the new non-booted system crashes and reboots. But, what happens if the system hangs, so it is not rebooted, nor the fullmetal update client is yet loaded? might this happen? please excuse me if I have misinterpreted the documentation; but I would like to know how this case is possible and how can I address it if yes. Thank you.
    Antonin Godard
    @antznin
    Hi, yes, the rollback covers only the case of a system crash and reboot. Take a kernel panic for instance : the watchdog will make the system reset and the system will rollback at some point, if the system has failed five times. Unfortunately, if the system hangs at another stage, the system wouldn't rollback because the system hangs. However at this point there's hope that you can remotely access your system? Even if it's unlikely... In my (little :)) experience, I've seen the system crash at three stages :
    • during the kernel initialization, which the watchdog can handle
    • during ostree's initrd script, which I think the watchdog can handle too (I'll verify)
    • during systemd's initlialization which gets into emergency mode. at this point the system could indeed hang. but I just thought we could bypass that by customizing the emergency.service to reboot after some delay
      I hope that makes it clear.
    gavilanes
    @gavilanes
    Thank you so much for your answer!
    Antonin Godard
    @antznin
    My pleasure :)
    gavilanes
    @gavilanes
    Hello guys, from the demo, I do not know how to create new targets, since I have flashed two targets but hawkbit sees only one, and only one is updated. Thanks in advance.
    Antonin Godard
    @antznin

    Hi @gavilanes,
    If you want to add a new target to Hawkbit please follow these steps :

    • go to your cloud directory (fullmetalupdate-cloud-demo) and edit the ConfigureServer.sh file
    • copy the first paragraph of the file, beginning with # Set up a target..., and paste it right afterwards
    • then, you'd need to change securityToken, controllerId and name. For the last two, pick whatever you want. For the token, also pick whatever you want, or you can generate a token using date | md5sum, assuming you're on Linux
    • you should see a new target pop up on hawkbit. Now there are two solutions : either you configure the new credentials on your target directly, or you start a new build from yocto with the new credentials
    • on the target directly :
      • to change it on the target, first remount /usr as read-write by doing `mount -o remount,rw /usr'.
      • then, cd to where the config file is, that is either cd /usr/fullmetalupdate/rauc_hawkbitor cd /bin/fullmetalupdate/rauc-hawkbit
      • edit the config.cfg file using vi config.cfg, and fill in hawkbit_target_name and hawkbit_auth_token using what you have previously defined
      • finally, restart the client using systemctl restart fullmetalupdate. you should see the the ip of your target pop up in hawkbit, in the target's information panel
    • from yocto:
      • close any docker instanciation of fullmetalupdate/build-yocto if you have any
      • go to your build directory (fullmetalupdate-yocto-demo), remove the config.cfg file and edit config.cfg.sample
      • fill in hawkbit_target_name and hawkbit_auth_token using what you have previously defined
      • exit, and execute ./ConfigureBuild.sh (you need to have the server running)
      • you can now execute ./Startbuild.sh fullmetalupdate-os. It should build the fullmetalupdate client again. Then you can flash the new image to your target, that will contain the new credentials

    Thanks for reaching us, we should add this to the documentation.

    gavilanes
    @gavilanes
    Many thanks!