[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