#
620d1a51 |
| 29-Mar-2024 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
build: Fix boost dependency
Currently local build fails with a message: """ src/meson.build:16:14: ERROR: Include dir subprojects/boost_1_78_0/ does not exist """ The error is happening because the
build: Fix boost dependency
Currently local build fails with a message: """ src/meson.build:16:14: ERROR: Include dir subprojects/boost_1_78_0/ does not exist """ The error is happening because the correct path for the includes should not be "subprojects/boost_1_79_0/" but "../subprojects/boost_1_79_0/". But such relative links are deprecated, therefore rewrite boost dependency with its own packagefile. Also boost library is required for the project build, therefore drop "required: false" statement for the dependency. And since boost is required for the libeStoragedErase, add boost_dep to its dependencies.
Tested: "meson setup build && cd build && meson compile" now works without any issues.
Change-Id: Id0afda7563c944f3afc88cd1f59099794611525e Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
605085a6 |
| 05-Nov-2021 |
John Edward Broadbent <jebr@google.com> |
Add erase sanitize
Sanitize uses the eMMC firmware to erase all blocks.
Tested: $ cat /dev/urandom > /dev/mmcblk0
$ time busctl call xyz.openbmc_project.eStoraged.mmcblk0 \ /xyz/openbmc_project/in
Add erase sanitize
Sanitize uses the eMMC firmware to erase all blocks.
Tested: $ cat /dev/urandom > /dev/mmcblk0
$ time busctl call xyz.openbmc_project.eStoraged.mmcblk0 \ /xyz/openbmc_project/inventory/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Volume Erase s \ xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.VendorSanitize \ --timeout=1200
real 0m1.793s user 0m0.021s sys 0m0.009s
root@ytbaz20-nfd01:/# cat /dev/mmcblk0 | hexdump
0000000 0000 0000 0000 0000 0000 0000 0000 0000 *
Signed-off-by: John Edward Broadbent <jebr@google.com> Change-Id: I31bc21c0b6d31cbba0db752d94a93eb004dbbde6
show more ...
|
#
a6e3b99d |
| 17-Mar-2022 |
John Edward Broadbent <jebr@google.com> |
Refactor findsize into util away from erase
At first the size was only needed for erase, now it is needed for the drives interface. The code needed to be refactored to make drive interface implement
Refactor findsize into util away from erase
At first the size was only needed for erase, now it is needed for the drives interface. The code needed to be refactored to make drive interface implementation possible.
Signed-off-by: John Edward Broadbent <jebr@google.com> Change-Id: I0a23ee23a0de3fd89a9e776b4854e8da9a8ff2e4
show more ...
|
#
0c2808f0 |
| 25-Feb-2022 |
Patrick Williams <patrick@stwcx.xyz> |
build: enable subproject-based build
* Move existing phosphor-logging.wrap to the subprojects directory. * Add wrap files for all openbmc dependencies. * Fix up meson.build files to utilize subproje
build: enable subproject-based build
* Move existing phosphor-logging.wrap to the subprojects directory. * Add wrap files for all openbmc dependencies. * Fix up meson.build files to utilize subproject dependencies and follow Meson conventions for dependency naming. * Ensure wrap files are not ignored by .gitignore.
Tested: Built on a typical Linux development system and 'ninja test' passed.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I167911f045ee1f27cc69bcba7be185762844a030
show more ...
|
#
59dffa63 |
| 13-Jan-2022 |
John Edward Broadbent <jebr@google.com> |
Add crypto Erase to eStorageD.
The goal is to erase the keys that are used to decrypt the drive. After the keys are erased it will not be possible to decrypt the drive, even if the password can be r
Add crypto Erase to eStorageD.
The goal is to erase the keys that are used to decrypt the drive. After the keys are erased it will not be possible to decrypt the drive, even if the password can be recalled. The data is forever inaccessible.
Testing:
$ systemctl stop emmc.service
$ /eStoraged -b /dev/mmcblk0 &
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume FormatLuks ays 3 1 2 3 xyz.openbmc_project.Inventory.Item.Volume.FilesystemType.ext4
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Lock
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.CryptoErase
$ busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Unlock ay 3 1 2 3 Call failed: The operation failed internally.
Signed-off-by: John Edward Broadbent <jebr@google.com> Change-Id: I3221e82a92c1b555e2379b19c9e1d5b6e4b02f9b
show more ...
|
#
4bc8a10c |
| 30-Dec-2021 |
John Edward Broadbent <jebr@google.com> |
Add zero write and verify
This code implements the zero verify and zero write dbus interface. The goal is to fill the whole block device with zeros, then check to make sure the operation worked corr
Add zero write and verify
This code implements the zero verify and zero write dbus interface. The goal is to fill the whole block device with zeros, then check to make sure the operation worked correctly.
Tested: $ systemctl stop emmc.service $ ./eStoraged -b /dev/mmcblk0 & $ time busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.ZeroOverWrite --timeout=1200 Erasing encrypted eMMC <6> Starting erase
real 5m59.695s user 0m0.000s sys 0m0.030s
root@ytbaz20-nfd01:~/jebr# hexdump /dev/mmcblk0 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * $ time busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.ZeroVerify --timeout=1200 Erasing encrypted eMMC <6> Starting erase
real 5m46.920s user 0m0.010s sys 0m0.010s $ echo "not zero" > /dev/mmcblk0 $ time busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.ZeroVerify --timeout=1200 Erasing encrypted eMMC <6> Starting erase <3> Estoraged erase zeros block is not zero Call failed: The operation failed internally.
real 0m0.022s user 0m0.000s sys 0m0.020s
Change-Id: Ie78ad427de1aa75472fc7ddd72d094866fe14b66 Signed-off-by: John Edward Broadbent <jebr@google.com>
show more ...
|
#
7f2ab643 |
| 11-Nov-2021 |
John Edward Broadbent <jebr@google.com> |
Add pattern write and verify to erase
The goals are to write a non-compressible and verifiable pattern to the drive as a means to validate that the drive is working, and ensure all blocks have been
Add pattern write and verify to erase
The goals are to write a non-compressible and verifiable pattern to the drive as a means to validate that the drive is working, and ensure all blocks have been overwritten.
Tested: $ systemctl stop emmc.service $ ./eStoraged -b /dev/mmcblk0& $busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.LogicalOverWrite --timeout=1200
$busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.LogicalVerify --timeout=1200
$echo "jebr" > /dev/mmcblk0
$busctl call xyz.openbmc_project.eStoraged.mmcblk0 /xyz/openbmc_project/storage/mmcblk0 xyz.openbmc_project.Inventory.Item.Volume Erase s xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.LogicalVerify --timeout=1200 Call failed: The operation failed internally.
Change-Id: Ibc1254279b1f46246eb37056ea6e4e1a57159bb9 Signed-off-by: John Edward Broadbent <jebr@google.com>
show more ...
|
#
972c3faa |
| 29-Dec-2021 |
John Wedig <johnwedig@google.com> |
Switch to new D-Bus interface
Now that the eStoraged interface is in phosphor-dbus-interfaces, we can remove the yaml files from this repo and switch to the new interface in phosphor-dbus-interfaces
Switch to new D-Bus interface
Now that the eStoraged interface is in phosphor-dbus-interfaces, we can remove the yaml files from this repo and switch to the new interface in phosphor-dbus-interfaces. Note that the new interface is slightly different. Some functions have different arguments, and the eStoraged-specific errors were removed.
Also, the new interface allows for the caller to specify the filesystem type, but for now, only ext4 is supported.
Tested: $ /usr/bin/eStoraged -b /dev/mmcblk0 & $ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \ /xyz/openbmc_project/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Volume FormatLuks ays 3 1 2 3 \ xyz.openbmc_project.Inventory.Item.Volume.FilesystemType.ext4 $ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \ /xyz/openbmc_project/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Volume Lock $ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \ /xyz/openbmc_project/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Volume Unlock ay 3 1 2 3 $ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \ /xyz/openbmc_project/storage/mmcblk0 \ xyz.openbmc_project.Inventory.Item.Volume Erase s \ xyz.openbmc_project.Inventory.Item.Volume.EraseMethod.VerifyGeometry
Signed-off-by: John Wedig <johnwedig@google.com> Change-Id: I5477b313ac5342409e2cf53ca70259c17da6269c
show more ...
|
#
e6ffe704 |
| 14-Oct-2021 |
John Edward Broadbent <jebr@google.com> |
Add Erase verifyGeometry
This confirms specified amount of the drive is accessible. The min and max expected drive size are set as a build configuration, and compared against the drive size (found b
Add Erase verifyGeometry
This confirms specified amount of the drive is accessible. The min and max expected drive size are set as a build configuration, and compared against the drive size (found by using the linux ioctl). Also adds testing build files, testing options, and verifyGeometry test.
Tested: Ran eStoraged on a machine with an eMMC, using the following $ ./eStoraged -b /dev/mmcblk0 & $ busctl call xyz.openbmc_project.eStoraged.mmcblk0 \ /xyz/openbmc_project/storage/mmcblk0 \ xyz.openbmc_project.eStoraged Erase ays 1 1 \ xyz.openbmc_project.eStoraged.EraseMethod.VerifyGeometry
Signed-off-by: John Edward Broadbent <jebr@google.com> Change-Id: Ie47f8666996a6085a115d1b86f2643bc278638c5
show more ...
|