答复: [External] Re: Clarify some questions about BIOS update (phosphor-ipmi-flash)
Andrew MS1 Peng
pengms1 at lenovo.com
Thu Aug 8 18:21:16 AEST 2019
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"
"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