History log of /openbmc/phosphor-bmc-code-mgmt/usb/usb_manager.cpp (Results 1 – 7 of 7)
Revision Date Author Comments
# 44b9fef9 07-Feb-2023 George Liu <liuxiwei@inspur.com>

Fix the core dump by using filesystem error_code

The currently used filesystem method will cause an exception if the
file system is damaged for some reason, resulting in a core dump of
the process.

Fix the core dump by using filesystem error_code

The currently used filesystem method will cause an exception if the
file system is damaged for some reason, resulting in a core dump of
the process.
So the overloaded method with the error_code parameter should be used
here to ensure that the process core dump will not be caused after an
exception is thrown.

Fixes: openbmc/phosphor-bmc-code-mgmt#12

Tested: built phosphor-bmc-code-mgmt successfully and CI passes.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I329f78b481cb466e755bc1b78562583620f561c2

show more ...


# bf2bb2b1 22-Jul-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I96286490697ce5d7fecc1c9c358f5f1d054137ec

show more ...


# 047f60e0 06-Apr-2022 Andrew Geissler <geissonator@yahoo.com>

make getproperty a templated function

This will make it more generic so other types of properties can be read

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Icc7c040ec44d470b6b62

make getproperty a templated function

This will make it more generic so other types of properties can be read

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Icc7c040ec44d470b6b62d8b74200c7e35012e25c

show more ...


# 0cd6d84b 26-Dec-2021 Lei YU <yulei.sh@bytedance.com>

cleanup: Fix warnings found by cppcheck

Fix various warnings found by cppcheck.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: I4db2319f5890d7aa73c8f418f610a6cba338ce24


# 6d775e64 25-Oct-2021 George Liu <liuxiwei@inspur.com>

usb: Add service and rules files

Trigger the USB code update via udev rules. Once a USB flash drive is
plugged into the BMC, an sda1 device is created, starting the USB
service file.

usb: Add service and rules files

Trigger the USB code update via udev rules. Once a USB flash drive is
plugged into the BMC, an sda1 device is created, starting the USB
service file. Use SYSTEMD_WANTS since this service is long running.

Use BindsTo and After dev-sdX in the service file so that it
automatically stops when then USB drive is unplugged. Also add a
dependency to start after the Version service, which creates the
/tmp/images directory to copy the image to, and after the Updater
service, which handles the update.

Every time a USB drive is plugged, Linux creates a device sda1, sdb1,
sdc1, etc. Add rules for only the first 2 plug attempts, in case the
user made a mistake with the first USB drive as that seems sufficient.
If the second attempt does not work, the user would need to reboot the
BMC to retry.

Tested:
- Inserted USB key and verified the code update started and finished
successfully:
Dec 03 19:29:44 p10bmc kernel: sda: sda1
Dec 03 19:29:44 p10bmc kernel: sd 0:0:0:0: [sda] Attached SCSI removable disk
Dec 03 19:29:44 p10bmc systemd[1]: Created slice Slice /system/usb-code-update.
Dec 03 19:29:44 p10bmc systemd[1]: Started FW Code Update via USB sda1.
Dec 03 19:29:50 p10bmc phosphor-version-software-manager[544]:
Untaring /tmp/images/obmc-phosphor-image-rainier.ext4.mmc.tar to
/tmp/images/imageM6FtSg
...
Dec 03 19:30:42 p10bmc phosphor-image-updater[470]: BMC activation
has ended - BMC reboots are re-enabled.

- Removed USB key and verified usb sda1 service stopped:
Dec 03 20:30:52 p10bmc systemd[1]: usb-code-update@sda1.service:
Deactivated successfully.
Dec 03 20:30:52 p10bmc systemd[1]: Stopped FW Code Update via USB sda1.

- Reinserted USB key and verified code update started with device sdb1:
Dec 03 20:31:05 p10bmc kernel: sdb: sdb1
Dec 03 20:31:05 p10bmc kernel: sd 1:0:0:0: [sdb] Attached SCSI removable disk
Dec 03 20:31:05 p10bmc systemd[1]: Started FW Code Update via USB sdb1.
Dec 03 20:31:11 p10bmc phosphor-version-software-manager[541]:
Untaring /tmp/images/obmc-phosphor-image-rainier.ext4.mmc.tar to
/tmp/images/imagey2OFWQ

- Removed USB key and verified usb sdb1 service stopped:
Dec 03 20:32:38 p10bmc systemd[1]: usb-code-update@sdb1.service:
Deactivated successfully.
Dec 03 20:32:38 p10bmc systemd[1]: Stopped FW Code Update via USB sdb1.

- Rebooted BMC with the USB drive inserted and verified the code update
started when the BMC booted after the software services started, and
the usb code update finished by the time the BMC reached Ready state:
[ OK ] Started OpenBMC Software Update Manager.
[ OK ] Started Phosphor Version Software Manager.
[ OK ] Started FW Code Update via USB sda1.

- Verified the usb service exited on error and a code update can be
restarted:
root@p10bmc:~# systemctl status usb-code-update@sda1
● usb-code-update@sda1.service - FW Code Update via USB sda1
Loaded: loaded (/lib/systemd/system/usb-code-update@.service; static)
Active: active (exited) since Fri 2021-12-03 21:26:19 UTC; 2min 31s ago
Process: 523 ExecStart=/usr/bin/phosphor-usb-code-update --device
sda1 (code=exited, status=0/SUCCESS)
Main PID: 523 (code=exited, status=0/SUCCESS)
Dec 03 21:26:19 p10bmc systemd[1]: Started FW Code Update via USB sda1.
Dec 03 21:26:19 p10bmc phosphor-usb-code-update[523]: Error when
copying /run/media/usb/sda1/obmc-phosphor-image-rainier.ext4.mmc.tar to
/tmp/images: filesystem error: cannot copy file: No …r.ext4.mmc.tar]
Dec 03 21:26:19 p10bmc phosphor-usb-code-update[523]: Failed to FW
Update via USB, usbPath:/run/media/usb/sda1

Signed-off-by: George Liu <liuxiwei@inspur.com>
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
Change-Id: I733f1b0f217f4fdd2f99cc6e8bbd602085da407d

show more ...


# 5107c45f 09-Nov-2021 George Liu <liuxiwei@inspur.com>

usb: Update the RequestedActivation property

Subscribe to the add software interface, when an update is detected,
call back the updateActivation method and verify whether it needs
to

usb: Update the RequestedActivation property

Subscribe to the add software interface, when an update is detected,
call back the updateActivation method and verify whether it needs
to be updated. If necessary:
1. Set ApplyTime to OnReset to prevent the bmc from restarting
immediately after the update.
2. Change the RequestedActivation attribute value and start to update
the image bmc.

Tested: Manually start the phopshor-usb-manager daemon, and saw that
the bmc upgrade file(*.tar) has been copied to /tmp/images and
the update has been triggered, and bmc has not been restarted
immediately.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ic650e34f8ec61d3c826332d28275db90f9ef348e

show more ...


# 073a6530 25-Oct-2021 George Liu <liuxiwei@inspur.com>

usb: Copy image file to /tmp/images via USB

Traverse the USB mount directory, and copy the first file with
a `.tar` extension under the directory to the `/tmp/images`
directory.

usb: Copy image file to /tmp/images via USB

Traverse the USB mount directory, and copy the first file with
a `.tar` extension under the directory to the `/tmp/images`
directory.

Tested: Manually call the fs::copy_file app locally, test passed.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I8e03b9c3305f5e9d9a1535dd176ecd40dbea8903

show more ...