[External] Re: Clarify some questions about BIOS update (phosphor-ipmi-flash)

Patrick Venture venture at google.com
Fri Aug 9 03:25:10 AEST 2019


On Thu, Aug 8, 2019 at 1:21 AM Andrew MS1 Peng <pengms1 at lenovo.com> wrote:
>
> Hi Patrick,
>
> 1. Following your suggestion to modify the json file, but encountered an error message as "Parsing json failed ". Please help to take a look at it, thanks.
>         A part of config-bios.json(default) content and journalctl log was below.
>                 "update": {
>                         "type": "systemd",
>                         "unit": "phosphor-ipmi-flash-bios-update.target"
>                 }
>
>         Aug 07 06:54:22 hr630 ipmid[507]: Registering OEM:[0X00C2CF], Cmd:[0X80] for Blob Commands
>         Aug 07 06:54:22 hr630 ipmid[507]: config loaded: /flash/bios
>         Aug 07 06:54:22 hr630 ipmid[507]: config loaded: /flash/image
>
>
>         A part of config-bios.json(modification) content and journalctl log was below.
>                 "update": {
>                         "type": "fileSystemdUpdate",
>                         "unit": "phosphor-ipmi-flash-bios-update.target" <--- missing comma.
>                         "path": "/tmp/bios.update"
>                 }
>
>         Aug 07 06:33:12 hr630 ipmid[498]: Registering OEM:[0X00C2CF], Cmd:[0X80] for Blob Commands
>         Aug 07 06:33:12 hr630 ipmid[498]: Parsing json failed
>         Aug 07 06:33:12 hr630 ipmid[498]: config loaded: /flash/image
>
> 2. Which one is the best way to modify json file in OpenBmc, patch or overwrite? I added lenovo-bios-update.bb to handle service and script. I encountered an error message as "file conflicts" when I added new file of json to overwrite original file. What should I do to fix it?
>                 The error message is below.
>                         Error: Transaction check error:
>                         file /usr/share/phosphor-ipmi-flash/config-bios.json conflicts between attempted installs of phosphor-ipmi-flash-1.0+git999-r1.armv6 and lenovo-bios-update-1.0-r0.armv6
>
>                 A part of lenovo-bios-update.bb content is below.
>                         SRC_URI += " \
>                         file://bios-verify.service \
>             file://bios-verify.sh \
>             file://bios-update.service \
>             file://bios-update.sh \
>             file://config-bios.json \
>             "
>                         DEPENDS += "systemd"
>                         RDEPENDS_${PN} = "bash"
>                         SYSTEMD_PACKAGES = "${PN}"
>                         SYSTEMD_SERVICE_${PN} = "bios-verify.service bios-update.service"
>                         do_install() {
>                         install -d ${D}/usr/sbin
>                         install -d ${D}/usr/share/phosphor-ipmi-flash/
>                         install -m 0755 ${S}bios-verify.sh ${D}/${sbindir}/
>                                 install -m 0755 ${S}bios-update.sh ${D}/${sbindir}/
>                         install -m 0644 ${S}config-bios.json ${D}/usr/share/phosphor-ipmi-flash/
>                         }
>                         FILES_${PN} = " \
>                         /usr/share/phosphor-ipmi-flash/config-bios.json \
>                         ${sbindir}/bios-update.sh \
>                         ${sbindir}/bios-verify.sh \
>                 "
> Regards,
> Andrew
>
>
> -----邮件原件-----
> 发件人: Patrick Venture <venture at google.com>
> 发送时间: 2019年8月7日 23:36
> 收件人: Andrew MS1 Peng <pengms1 at lenovo.com>
> 抄送: openbmc at lists.ozlabs.org
> 主题: Re: [External] Re: Clarify some questions about BIOS update (phosphor-ipmi-flash)
>
> On Wed, Aug 7, 2019 at 4:47 AM Andrew MS1 Peng <pengms1 at lenovo.com> wrote:
> >
> > Hi Patrick,
> >
> > The triggered "phosphor-ipmi-flash-bios-update.target" seems to been solved, but the BIOS update status has not yet been fixed.
> > Could we add checking the contents of the file in SystemdUpdateMechanism::status() function of update_systemd.cpp such as verification mechanism SystemdWithStatusFile::status() of general_systemd.cpp?
>
> You can just use the type "fileSystemdUpdate" which let you check a path for the status.
>
> The three parameters for that update type are the same as the verification type that matches:
>  - path - the filesystem path containing the status
>  - unit - the target "phosphor-ipmi-flash-bios-update.target"
>  - mode - optional job-mode parameter, defaults to "replace"
>
> >
> > Regards,
> > Andrew
> >
> > -----邮件原件-----
> > 发件人: Patrick Venture <venture at google.com>
> > 发送时间: 2019年8月6日 4:39
> > 收件人: Andrew MS1 Peng <pengms1 at lenovo.com>
> > 抄送: openbmc at lists.ozlabs.org; Duke KH Du <dukh at lenovo.com>; Yonghui
> > YH21 Liu <liuyh21 at lenovo.com>; Lisa YJ19 Liu <liuyj19 at lenovo.com>
> > 主题: [External] Re: Clarify some questions about BIOS update
> > (phosphor-ipmi-flash)
> >
> > On Mon, Aug 5, 2019 at 10:39 AM Patrick Venture <venture at google.com> wrote:
> > >
> > > On Mon, Aug 5, 2019 at 9:39 AM Patrick Venture <venture at google.com> wrote:
> > > >
> > > > On Mon, Aug 5, 2019 at 9:32 AM Patrick Venture <venture at google.com> wrote:
> > > > >
> > > > > On Mon, Aug 5, 2019 at 9:17 AM Patrick Venture <venture at google.com> wrote:
> > > > > >
> > > > > > On Mon, Aug 5, 2019 at 4:56 AM Andrew MS1 Peng <pengms1 at lenovo.com> wrote:
> > > > > > >
> > > > > > > Hi Patrick,
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I have some questions about BIOS update via phosphor-ipmi-flash with L2A, please help to clarify. Thanks.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > Thanks for giving it a shot!  I don't have any systems using
> > > > > > this for BIOS update, so I'm curious where there may be issues
> > > > > > lurking :)
> > > > > >
> > > > > >
> > > > > > > 1. How can I update the status (success or failure) after upgrade BIOS firmware? Currently, the update status only appear "running".
> > > > > > >
> > > > > >
> > > > > > I see, the update mechanism doesn't have a verification option.
> > > > > > A bit of an oversight.  I'll have something up for review
> > > > > > later today.  Then it'll be something you configure similarly
> > > > > > to the verifySystemd json entry.
> > > > > >
> > > > > > > 2. It was failed when triggered "phosphor-ipmi-flash-bios-update.target" since the job-mode is null string. It can work well when I add string "replace" to job-mode. How can I config (json file or configure parameter) to support it?
> > >
> > > This patch will enable you to specify "mode" in the json. *** note:
> > > i will set some time aside shortly to document writing json
> > > configurations.
> > >
> > > https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-ipmi-flash/+/2
> > > 41
> > > 67
> > >
> > > > > >
> > > > > > I'll take a look!  The parameter for job-mode, I thought, was
> > > > > > optional?  Since we don't specify it for other jobs
> > > > > > (verification, etc).  The string should be empty by default
> > > > > > and then not added as a
> > > > > > null-string:
> > > > > >
> > > > > > https://github.com/openbmc/phosphor-ipmi-flash/blob/f0c71df251
> > > > > > 49
> > > > > > 27e933f6fc33d9669ab0663a0706/bmc/update_systemd.cpp#L49
> > > > >
> > > > > I see it is required!  Since I always configure with reboot, I
> > > > > never saw this failure. I'll default it to "replace"
> > > >
> > > > First patch in the series generated from your email:
> > > >
> > > > https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-ipmi-flash/+
> > > > /2
> > > > 4165
> > > >
> > > > Next: json configuration option to control the job-mode.
> > > > Then merge verification and update objects, s.t. you can specify
> > > > the status path.
> >
> > This patchset adds support for a new update configuration that lets you read the status from a file.
> >
> > https://gerrit.openbmc-project.xyz/24171
> >
> > > >
> > > > *** A later patchset can have the status be not a path, but a dbus
> > > > property or dbus path -- if someone wants to implement a new
> > > > object for this, it's somewhat trivial.
> > > >
> > > > >
> > > > > >
> > > > > > I don't think I have a unit-test that verifies the parameters
> > > > > > are sent down properly, so I'll also add that today AND I'll
> > > > > > add an optional mode parameter to the json.
> > > > > >
> > > > > > Sending for review today.
> > > > > >
> > > > > > ...
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Regards,
> > > > > > > Andrew


More information about the openbmc mailing list