system76 / firmware-update

System76 Firmware Update Utility
GNU General Public License v3.0
204 stars 15 forks source link

What is mmd? #54

Closed ghost closed 2 years ago

ghost commented 2 years ago

I cloned this repository and simply ran make due to the lack of build instructions:

mkdir -p build/x86_64-unknown-uefi
cargo rustc \
    -Z build-std=core,alloc \
    -Z build-std-features=compiler-builtins-mem \
    --target x86_64-unknown-uefi \
    --release \
    -- \
    -C soft-float \
    --emit link=build/x86_64-unknown-uefi/boot.efi
info: syncing channel updates for 'nightly-2021-06-15-x86_64-unknown-linux-gnu'
info: latest update on 2021-06-15, rust version 1.55.0-nightly (539d7bd39 2021-06-14)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
    Updating git repository `https://gitlab.redox-os.org/redox-os/orbclient.git`
    Updating git repository `https://github.com/system76/ecflash.git`
    Updating git repository `https://github.com/system76/ec.git`
    Updating git submodule `https://github.com/system76/ecflash.git`
    Updating git submodule `https://github.com/system76/ecsim.git`
    Updating git submodule `https://gitlab.redox-os.org/redox-os/area8051.git`
    Updating git submodule `https://github.com/system76/ecspy.git`
  Downloaded redox_uefi_alloc v0.1.2
  Downloaded redox_hwio v0.1.4
  Downloaded redox_uefi_std v0.1.5
  Downloaded redox_uefi v0.1.2
  Downloaded plain v0.2.3
  Downloaded intel-spi v0.1.3
  Downloaded downcast-rs v1.2.0
  Downloaded bitflags v1.3.2
  Downloaded libc v0.2.106
  Downloaded redox_dmi v0.1.5
  Downloaded redox_intelflash v0.1.3
  Downloaded coreboot-fs v0.1.0
  Downloaded 12 crates (651.6 KB) in 1.16s
  Downloaded unicode-width v0.1.8
  Downloaded rustc-demangle v0.1.18
  Downloaded getopts v0.2.21
  Downloaded cc v1.0.68
  Downloaded hashbrown v0.11.0
  Downloaded compiler_builtins v0.1.45
  Downloaded libc v0.2.93
  Downloaded 7 crates (866.6 KB) in 1.51s
   Compiling compiler_builtins v0.1.45
   Compiling core v0.0.0 (/home/yujiri/.rustup/toolchains/nightly-2021-06-15-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
   Compiling libc v0.2.106
   Compiling rustc-std-workspace-core v1.99.0 (/home/yujiri/.rustup/toolchains/nightly-2021-06-15-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
   Compiling alloc v0.0.0 (/home/yujiri/.rustup/toolchains/nightly-2021-06-15-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc)
   Compiling plain v0.2.3
   Compiling redox_uefi v0.1.2
   Compiling bitflags v1.3.2
   Compiling downcast-rs v1.2.0
   Compiling redox_hwio v0.1.4
   Compiling system76_ecflash v0.1.2 (https://github.com/system76/ecflash.git#b08db293)
   Compiling orbclient v0.3.21 (https://gitlab.redox-os.org/redox-os/orbclient.git?branch=no_std#0cf93f23)
   Compiling coreboot-fs v0.1.0
   Compiling redox_dmi v0.1.5
   Compiling system76_ectool v0.3.6 (https://github.com/system76/ec.git#55a617f2)
   Compiling intel-spi v0.1.3
   Compiling redox_uefi_alloc v0.1.2
   Compiling redox_intelflash v0.1.3
   Compiling redox_uefi_std v0.1.5
   Compiling system76_firmware_update v1.0.0 (/home/yujiri/firmware-update)
    Finished release [optimized] target(s) in 31.01s
dd if=/dev/zero of=build/x86_64-unknown-uefi/efi.img.tmp bs=512 count=98304
98304+0 records in
98304+0 records out
50331648 bytes (50 MB, 48 MiB) copied, 0.138236 s, 364 MB/s
mkfs.vfat build/x86_64-unknown-uefi/efi.img.tmp
mkfs.fat 4.2 (2021-01-31)
mmd -i build/x86_64-unknown-uefi/efi.img.tmp efi
make: mmd: No such file or directory
make: *** [Makefile:40: build/x86_64-unknown-uefi/efi.img] Error 127

What is mmd? I don't see any mention of it in the readme.

crawfxrd commented 2 years ago

mmd is part of mtools. It's used to modify FAT filesystems without mounting them.

ghost commented 2 years ago

Thanks. I will open a PR to document this dependency.