Giter Club home page Giter Club logo

fwup's Issues

Use monotic time for elapsed time calculation

The elapsed time calculation uses gettimeofday which is not monotonic. On devices that take a while to update their clocks, the jump from 1970 to the current date has actually happened during a firmware update and confused people.

fwup.1 man page contains error message

Hi,

the fwup.1 man page generated by help2man contains the following line in the DESCRIPTION section:

./fwup:  unrecognized  option '--help'

The reason is help2man calling fwup --help which fwup does not understand. Unfortunately help2man refuses to call a binary with no --help option at all (adding --help-option="" in src/Makefile.am makes help2man fail).

Strict variable checking

While updating an fwup.conf file I was renaming variables and missed some. When it tried to execute complete task, it failed with misleading error messages. Fwup should warn / error on unset variables.

make check on OpenBSD fails (15/140)

=======================================
   fwup 0.17.0: tests/test-suite.log
=======================================

# TOTAL: 140
# PASS:  125
# SKIP:  0
# XFAIL: 0
# FAIL:  15
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: 038_write_15M
===================

|                                    | 1% (0.20 / 15.00) MBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-038_write_15M.test'
FAIL 038_write_15M.test (exit status: 134)

FAIL: 039_upgrade
=================

|=================================== | 99% (152.56 / 152.56) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-039_upgrade.test'
FAIL 039_upgrade.test (exit status: 134)

FAIL: 045_legacy_require_partition1
===================================

|=================================== | 99% (152.56 / 152.56) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-045_legacy_require_partition1.test'
FAIL 045_legacy_require_partition1.test (exit status: 134)

FAIL: 052_file_concatenation
============================

|==============================      | 85% (130.70 / 152.05) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-052_file_concatenation.test'
FAIL 052_file_concatenation.test (exit status: 134)

FAIL: 073_multistep_fat
=======================

|                                    | 1% (0.15 / 15.16) MBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-073_multistep_fat.test'
FAIL 073_multistep_fat.test (exit status: 134)

FAIL: 074_fat_cache_fail
========================

|=========                           | 25% (1.18 / 4.58) MBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-074_fat_cache_fail.test'
FAIL 074_fat_cache_fail.test (exit status: 134)

FAIL: 075_big_fat_fs
====================

|=                                   | 4% (0.66 / 15.00) MBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-075_big_fat_fs.test'
FAIL 075_big_fat_fs.test (exit status: 134)

FAIL: 082_uboot_upgrade
=======================

|=================================== | 99% (152.56 / 152.56) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-082_uboot_upgrade.test'
FAIL 082_uboot_upgrade.test (exit status: 134)

FAIL: 085_raw_memset
====================

|=================================== | 99% (259.58 / 262.14) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-085_raw_memset.test'
FAIL 085_raw_memset.test (exit status: 134)

FAIL: 095_sparse_apply
======================

fwup: Unsigned archive '/home/niko/tmp/fwup/tests/work-095_sparse_apply.test/fwup.fw' is not corrupt.
/home/niko/tmp/fwup/tests
fwup: Unsigned archive '/home/niko/tmp/fwup/tests/work-095_sparse_apply.test/new.fw' is not corrupt.
|=================================== | 99% (7.17 / 7.17) KBpthread_mutex_destroy on mutex with waiters!
pthread_mutex_destroy on mutex with waiters!
|====================================| 100% (7.17 / 7.17) KB
Success!
Elapsed time: 0.003s
|===                                 | 9% (0.84 / 9.24) MBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-095_sparse_apply.test'
FAIL 095_sparse_apply.test (exit status: 134)

FAIL: 109_includes
==================

|===============================     | 87% (130.70 / 150.00) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-109_includes.test'
FAIL 109_includes.test (exit status: 134)

FAIL: 110_compression_level
===========================

|=========                           | 26% (128.78 / 493.57) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-110_compression_level.test'
FAIL 110_compression_level.test (exit status: 134)

FAIL: 111_streaming_exit_fast
=============================

./111_streaming_exit_fast.test[27]: timeout: not found

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-111_streaming_exit_fast.test'
FAIL 111_streaming_exit_fast.test (exit status: 127)

FAIL: 125_trimmed_upgrade
=========================

|=================================== | 99% (152.57 / 152.57) KBAbort trap (core dumped) 

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-125_trimmed_upgrade.test'
FAIL 125_trimmed_upgrade.test (exit status: 134)

FAIL: 131_raw_key
=================

Firmware signing keys created and saved to fwup-key.pub and fwup-key.priv

Distribute fwup-key.pub with your system so that firmware updates can be
authenticated. Keep fwup-key.priv in a safe location.
43+0 records in
43+0 records out
43 bytes transferred in 0.000 secs (394495 bytes/sec)
86+0 records in
86+0 records out
86 bytes transferred in 0.000 secs (601399 bytes/sec)
/home/niko/tmp/fwup/tests
pthread_mutex_destroy on mutex with waiters!
pthread_mutex_destroy on mutex with waiters!
fwup: Signed archive '/home/niko/tmp/fwup/tests/work-131_raw_key.test/fwup.fw' is not corrupt. Pass a public key to verify the signature.
pthread_mutex_destroy on mutex with waiters!
pthread_mutex_destroy on mutex with waiters!
pthread_mutex_destroy on mutex with waiters!
pthread_mutex_destroy on mutex with waiters!
pthread_mutex_destroy on mutex with waiters!
pthread_mutex_destroy on mutex with waiters!
fwup: Error reading or decoding public key from file '/home/niko/tmp/fwup/tests/work-131_raw_key.test/fwup-key.pub.unpadded'

Test failed!

Leaving test work files in '/home/niko/tmp/fwup/tests/work-131_raw_key.test'
FAIL 131_raw_key.test (exit status: 1)

Issues running from app data partition

I am attempting to run a ping-pong update with fwup. I have a separate partition for app data and downloaded the fwup archive to that partition so that I could keep the RootFS small. When running fwup, however, it first tries to unmount all of the partitions. When it tries to unmount the app data partition, it receives a partition in use error, and then exits.

I think that a good solution might be to have fwup ignore any errors that it receives while trying to unmount the partitions, and to continue on. There shouldn't be any errors due to mounted partitions, since in the configuration file we can specify if a particular partition needs to be unmounted before running. Thoughts?

Support query-able minimum version support

For intermediate upgrade scenarios, i.e., those where a device needs to upgrade to an intermediate version of software before upgrading to the final version, it is desirable to be able to extract the upgrade path from the .fw file. The current situation is that you can manually set this scenario up on a firmware update server, but it would be less error prone if the .fw file metadata could help out.

One idea: Add a meta-min-version that can be queried using fwup -m and support a require condition to run a semver check on a u-boot environment block variable (similar to require-uboot-variable).

Support modifying uboot environment

My preferred way of swapping old and new partitions is to update the appropriate uboot environment variables rather than re-writing the MBR. This makes testing and debugging easier, and with a redundant uboot environment enabled should be fully power-off safe. (MBR method makes me nervous)

I've been looking at whether to add this directly to fwup or just incorporate it in a wrapper script. Thoughts?

Test 030 and 032 failing on raspbian

The following two tests are failing on raspian. I looked at them but could not find out why. On my SD Card i have 20 GB of space left.

  • tests/030_2T_offset.test
  • tests/032_fat_2T_offset.test

eject fails on OSX with unhelpful error message

Here's the error:

fwup: eject failed: 0xc010 (49168) (null))

This was reported by @wsmoak on the elixir-lang slack. I'm not sure if improvements to the error message would help debug this particular issue. Check if error 49168 could be a commonly encountered error if the SDCard is busy and produce a better error message.

SDCard autodetector skips /dev/sda

I had been under the impression that /dev/sda would never be an SDCard. Today, I worked with someone who's laptop legitimately assigned the SDCard to /dev/sda. Their root filesystem was on /dev/sdb.

fwup --help issue

/fwup$ fwup --help
Segmentation fault (core dumped)

Running on Virtual Box, Ubuntu 14.04

Unable to install libsodium-dev in the proposed way

On Ubuntu 14.04 installing libsodium-dev did not work for me, I got an unable to find package result.

I installed it from this instead.

sudo add-apt-repository ppa:chris-lea/libsodium
sudo apt-get update && sudo apt-get install libsodium-dev

Support firmware UUID generation

Problem:

The version number field is not trusted to unambiguously represent the firmware that's running on a device. The vcs_identifier can be used, but isn't guaranteed to be populated. The solution of running a SHA-256 over the .fw file after it has been generated is not desirable since things like signing .fw files would change the computed hash but not alter the contents.

Proposed solution:

Add a virtual meta-uuid field that can be deterministically calculated based on the contents of the .fw file. This could be based on the meta.conf file since that file contains hashes of all of the constituent files. If meta-uuid is calculated rather than stored, it will work on .fw files created with older versions of fwup.

Formatting FAT FS with offset past 2 GiB

When running the fat_mkfs command to attempt to create a FAT filesystem in a FAT 32 partition, there is an error whenever the offset is exactly 2 GiB or greater. This error seems to be independent of the size of the partition, and only depends on the offset. The error is: A hard error occurred in the low level disk I/O layer.

fwup_0.9.0_amd64.deb package is rejected by Ubuntu 14.04

When trying to install fwup_0.9.0_amd64.deb I get an error: This package is of bad quality

Lintian check results for /tmp/mozilla_jon0/fwup_0.9.0_amd64.deb:
E: fwup: maintainer-name-missing travis@testing-gce-c23388e7-daf4-4bba-91d1-7b6fcd0520f9
E: fwup: maintainer-address-malformed travis@testing-gce-c23388e7-daf4-4bba-91d1-7b6fcd0520f9

I checked version 0.8.2 and it's the same message, although the values in the details are different.
couldn't find anything on the googles, so I just installed it. It seems to work fine. If this is normal, just close this ticket. Thiss issue might help others with the same thing though.

Upgrade to libconfuse v2.9 to improve backward compatibility

The current version of libconfuse throws an error if it encounters a configuration parameter that it doesn't recognize. This is a big problem since it prevents the addition of a parameters if you want a new firmware file to be applied by an older version of fwup. In many cases, the new parameters are not mandatory for applying the firmware so the error is completely unnecessary. Version v2.9 of libconfuse has support for handling unknown arguments, so it will be possible to ignore these new arguments when parsing meta.conf files inside the .fw files. Errors should still be thrown when encountering unknown parameters when creating .fw files.

At this moment, libconfuse v2.9 hasn't been released. See https://github.com/martinh/libconfuse/blob/master/ChangeLog.md for details.

Add man pages

Now that fwup can be installed from a package manager rather than from source, man pages would be really nice.

Autodetection of large drives fails on Linux

The user is programming a 120 GB SSD connected via a SATA->USB3 cable using fwup. The drive is not being autodetected since fwup thinks that it's too large to be a memory card. There should be a better way of detecting removable drives or the user should be given an error that's more helpful.

Not compiling because of help2man

I had issues compiling the 0.9.0 version, while 0.8.2 works fine.

./configure runs fine, but make fails with the following error:

make[2]: *** No rule to make target 'fwup.h2m', needed by 'fwup.1'.  Stop.

After removing the following code from src/Makefile.am it worked fine.

if HAVE_HELP2MAN
man_MANS = fwup.1
CLEANFILES = $(man_MANS)
EXTRA_DIST += fwup.h2m

fwup.1: fwup$(EXEEXT) fwup.h2m
    $(HELP2MAN) --no-discard-stderr --output=$@ --no-info --include fwup.h2m \
        -n "configurable embedded firmware update creator and runner" \
        ./fwup$(EXEEXT)
else
    @echo  "Warning: help2man not available, no man page created."
endif

If you have any questions, just ask!

Support writing to SDCards from within the Windows Subsystem for Linux

With some work, it's possible to get fwup to both run in the Windows Subsystem for Linux and be able to write to SDCards. Here's a report from @jmerryweather:

steps are as follows:
(1) uninstall any linux version of fwup in WSL
(2) from Windows install fwup using chocolatey
(3) create a 'fwup' file that will will point to fwup.exe, i can send you the version i made, it is based on the VS Code 'code' file
(4) run Bash on Ubuntu on Windows "As Administrator", fwup won't work without doing that, it will instead give errors that there are no sd cards
(5) without 'sudo', run the following: fwup firmware.fw

#!/usr/bin/env bash
#
# Inspiration taken from Microsoft VS Code's Windows 'code' bash file

NAME="fwup"
FWUP_LOCATION="$(dirname "$(realpath "$0")")"

FULLPATH="$FWUP_LOCATION/$NAME.exe"
if grep -q Microsoft /proc/version; then
   # If running under WSL
 "$FULLPATH" "$@"
   exit $?
fi
exit $?

thats the fwup file i put under C:\ProgramData\chocolatey\bin

if we could get the above distributed with the fwup chocolatey package, it would make discovery of the windows fwup much easier

Switch crypto library from libsodium to OpenSSL

I'm putting this out there for comment. Over the past couple years, I've receive some interest in switching back to OpenSSL. Some may remember that fwup originally used OpenSSL, but I switch to libsodium because 1. it was far easier for me to understand, 2. a smaller dependency, and 3. there was quite a bit of negative press regarding vulnerabilities in the OpenSSL. The reasons for switching back to OpenSSL are:

  1. Every project that I'm aware of that uses fwup also includes openssl in some other dependency. It seems impossible to avoid openssl, so including it as a dependency is "free". I.e., the concern about having a smaller footprint or simpler set of dependencies with libsodium is not valid in practice.
  2. OpenSSL enables using x.509 certificates for signing. The mechanism that fwup currently uses is simplistic and from what I can tell, implementing chainable and revocable certificates in libsodium would be a lot of work.
  3. Using OpenSSL opens up the use of non-fwup tools for handling crypto tasks. Currently you have to use fwup to generate public and private key pairs and this always seemed silly. There may be libsodium command line tools around, but they're not as common or as easy to find help with as openssl.

Impact of such a change:

  1. It looks like OpenSSL supports the Blake2b hashing algorithm, so unsigned firmware updates should be compatible after the switch.
  2. OpenSSL doesn't support Ed25519 yet. However, I would prefer to drop the current signing implementation if proper x509 support is available.

The second one is the main concern. My observation is that people get stuck on a version of fwup once they deploy - maybe not intentionally, but it seems like there's a level of comfort not changing it if it's working well. If the current signing mechanism can't be dropped, then I'm sure that it could be kept for a little while or made an option since its implementation is pretty simple.

GPT support

It's only a matter of time before we need to support a platform that does not recognize MBR any more. It looks like the newer Intel embedded platforms are going that route.

make check fails with Alpine Linux

Compiling and running the latest commit in master branch.

System Info

  • Distro - Alpine Linux 3.2
  • LibC - MUSL
  • CC - GCC 4.9.2
  • Shell - ZSH 5.0.7

Log

======================================
   fwup 0.3.0: tests/test-suite.log
======================================

# TOTAL: 28
# PASS:  26
# SKIP:  0
# XFAIL: 0
# FAIL:  2
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: 004_env_vars
==================

fwup: can't open file-resource '/home/admin/src/fwup/tests/work/${TEST_ENV_VAR}'
FAIL 004_env_vars.test (exit status: 1)

FAIL: 005_define
================

fwup: can't open file-resource '/home/admin/src/fwup/tests/work/${TEST_DEFINE}'
FAIL 005_define.test (exit status: 1)

[WIN 10]fwup burning to SD card not working as expected

Log:
fwup -a -i rpi/blinky.fw -t complete
Use 1.89 GiB memory card found at .\PhysicalDrive2? [y/N] y
100%
they were never bootable by rpi
and sometimes the .txt files were "jibberish"(broken)
example cmdline.txt: Â��œV¾ƒã|“nÙĶõ[á157T•§ñ´6öœ§ lÑúÆeá*iû�Ú–))Žœ(-�¶æPÜ��»�oÕç²�º¾È

but writing to .img file then writing it with win32 disk imager to the sd card it works

Can't auto unmount drives with whitespace in their names

To reproduce, format a memory card and create a partition with a space in the name. If you're on a Linux system that creates mount points based on volume names, you should get a space in the directory. Now run fwup to program that memory card and it will fail to unmount the partition.

Adding single files is too tedious

too add files to a partition you need to have steps like:

file-resource bootcode.bin {
    host-path = "${NERVES_SYSTEM}/images/rpi-firmware/bootcode.bin"
}

then in the each task you must:

on-resource bootcode.bin { fat_write(${BOOT_PART_OFFSET}, "bootcode.bin") }

This leads to a ton of duplicated lines. (especially when you have a part_a/part_b system)

It would be nice to just be able to specify a list of files you are concerned with

A /dev/sdb file gets created if actual device is missing

I'm unsure of when exactly this happened but I likely was running mix firmware.burn -d /dev/sdb to manually choose the device and probably ran it when the SD card was unplugged.

Writes always appear to succeed, password prompt still appears, etc. Even gparted will [mostly] work on the resulting file.

sudo-less install on OSX

Currently fwup requires sudo to scan and write to SDCards. It should be possible to scan for SDCards using the Disk Arbitration framework (no elevated privileges required) and to write to them by getting a file handle from authopen.

Add flag to disable auto-eject on OSX

Running two phase upgrades on OSX currently breaks due to auto-eject, since the auto-eject occurs after the first phase and the SDCard is no longer available. Since the nerves-project currently only supports flashing complete images and two phase upgrades, OSX users can only flash complete images at the moment.

Sparse file unit tests fail on new Apple File System

After upgrading the OSX High Sierra, 4 sparse file tests start failing. APFS supports sparse files, but its heuristic for determining when to make a hole is not as immediately obvious as it is with other filesystems that support sparse files. It may be necessary to disable these tests on OSX in the nearterm.

Arch Linux AUR not working because it isnt passing all tests

maybe some dependencies missing in the requirments of the AUR?

PASS: 001_simple_fw.test
PASS: 002_resource_subdir.test
PASS: 003_write_offset.test
PASS: 004_env_vars.test
PASS: 005_define.test
PASS: 006_metadata.test
PASS: 007_mbr.test
PASS: 008_partial_mbr.test
PASS: 009_metadata_cmdline.test
FAIL: 010_fat_mkfs.test
FAIL: 011_fat_setlabel.test
FAIL: 012_fat_write.test
FAIL: 013_fat_mv.test
FAIL: 014_fat_cp.test
PASS: 015_fat_bad_sha2.test
PASS: 016_raw_bad_sha2.test
FAIL: 017_fat_rm.test
PASS: 018_numeric_progress.test
PASS: 019_quiet_progress.test
PASS: 020_normal_progress.test
PASS: 021_create_keys.test
PASS: 022_signed_fw.test
PASS: 023_missing_sig.test
PASS: 024_metadata_sig.test
PASS: 025_bad_sig.test
PASS: 026_sign_again.test
PASS: 027_fat_timestamp.test
PASS: 028_osip.test
PASS: 029_5G_offset.test
PASS: 030_2T_offset.test
FAIL: 031_fat_mkfs_5G.test
FAIL: 032_fat_2T_offset.test
PASS: 033_bad_host_path.test
PASS: 034_missing_host_path.test
PASS: 035_streaming.test
PASS: 036_streaming_signed_fw.test
PASS: 037_streaming_bad_sig.test
PASS: 038_write_15M.test
PASS: 039_upgrade.test
PASS: 041_version.test
PASS: 042_fat_am335x.test
FAIL: 043_fat_touch.test
PASS: 044_require_file_exist.test
PASS: 045_legacy_require_partition1.test
PASS: 046_unknown_create_fails.test
PASS: 047_unknown_apply_succeeds.test
PASS: 048_assert_size_less_than_success.test
PASS: 049_assert_size_less_than_fail.test
PASS: 050_assert_size_greater_than_success.test
PASS: 051_assert_size_greater_than_fail.test
PASS: 052_file_concatenation.test
PASS: 053_framed_progress.test
PASS: 054_framed_metadata.test
PASS: 055_metadata_partial_file.test
PASS: 056_list_tasks.test
PASS: 057_list_tasks_empty.test
PASS: 058_framed_list_tasks.test
PASS: 059_framed_error.test
PASS: 060_framed_streaming.test
PASS: 061_framed_partial_metadata.test
PASS: 062_long_meta_conf.test
PASS: 063_detect.test
PASS: 064_mbr_bootcode.test
FAIL: 065_fat_mkdir.test
FAIL: 066_fat_attrib.test
PASS: 067_usage.test
PASS: 068_readonly_output_error.test
PASS: 069_define_bang.test
PASS: 070_bad_mbr_offset.test
PASS: 071_big_mbr_offset.test
PASS: 072_compression_works.test
FAIL: 073_multistep_fat.test
FAIL: 074_fat_cache_fail.test
FAIL: 075_big_fat_fs.test
PASS: 076_utf8_metadata.test
FAIL: 077_fat_empty_file.test
PASS: 078_partial_mbr2.test
PASS: 079_uboot_setenv.test
PASS: 080_uboot_empty_env.test
PASS: 081_uboot_clearenv.test
PASS: 082_uboot_upgrade.test
PASS: 083_uboot_unsetenv.test
PASS: 084_corrupt_uboot.test
PASS: 085_raw_memset.test
PASS: 086_math.test
PASS: 087_crypto_compat.test
PASS: 088_missing_hash.test
PASS: 089_dev_null.test
PASS: 090_sparse_write.test
PASS: 091_sparse_write2.test
PASS: 092_sparse_write3.test
PASS: 093_sparse_concat.test
PASS: 094_sparse_concat2.test
FAIL: 095_sparse_apply.test
PASS: 096_missing_resource.test
PASS: 097_reproduceable.test
FAIL: 098_sparse_empty.test
FAIL: 099_sparse_lasthole.test
PASS: 100_easy_option.test
PASS: 101_progress_range.test
PASS: 102_multi_requires.test
PASS: 103_error_msg.test
PASS: 104_info_msg.test
PASS: 105_require_path_on_device.test
PASS: 106_large_length_field.test
PASS: 107_string_resource.test
PASS: 108_resource_order.test
PASS: 109_includes.test
PASS: 110_compression_level.test
PASS: 111_streaming_exit_fast.test
PASS: 112_fat_rm_missing_file.test
PASS: 113_fat_mv_error_cases.test
PASS: 114_fat_cp_error_cases.test
PASS: 115_fat_mkdir_error_cases.test
PASS: 116_fat_setlabel_error_cases.test
FAIL: 117_on_error.test
PASS: 118_fat_touch_error_cases.test
PASS: 119_require_fat_file_match.test
PASS: 120_corrupt_fat.test
PASS: 121_missing_file.test
PASS: 122_missing_file_metadata.test
PASS: 123_double_fat_write.test
PASS: 124_uboot_bad_param.test
PASS: 125_trimmed_upgrade.test
PASS: 126_uboot_recover.test
PASS: 127_extra_metadata.test
PASS: 128_blank_offset.test
PASS: 129_mbr_overflow.test
PASS: 130_media_sizes.test
PASS: 131_raw_key.test
PASS: 132_key_as_param.test
PASS: 133_path_write_file.test
PASS: 134_pipe_write_file.test
PASS: 135_execute.test
FAIL: 136_fat_overwrite.test
PASS: 137_path_write_sparse.test
PASS: 138_pipe_write_sparse.test
PASS: 139_mbr_signature.test
PASS: 140_trim.test
PASS: 141_exit_handshake.test
PASS: 142_file_resource_size.test
PASS: 143_include_path.test
PASS: 144_require_version.test
PASS: 145_require_path_at_offset.test
============================================================================
Testsuite summary for fwup 1.0.0
============================================================================
# TOTAL: 144
# PASS:  124
# SKIP:  0
# XFAIL: 0
# FAIL:  20
# XPASS: 0
# ERROR: 0
============================================================================
See tests/test-suite.log
Please report to https://github.com/fhunleth/fwup/issues
============================================================================
make[3]: *** [Makefile:827: test-suite.log] Error 1
make[3]: Leaving directory '/tmp/yaourt-tmp-fabi/aur-fwup/src/fwup/tests'
make[2]: *** [Makefile:935: check-TESTS] Error 2
make[2]: Leaving directory '/tmp/yaourt-tmp-fabi/aur-fwup/src/fwup/tests'
make[1]: *** [Makefile:998: check-am] Error 2
make[1]: Leaving directory '/tmp/yaourt-tmp-fabi/aur-fwup/src/fwup/tests'
make: *** [Makefile:420: check-recursive] Error 1
==> ERROR: A failure occurred in check().
    Aborting...
==> ERROR: Makepkg was unable to build fwup.
==> Restart building fwup ? [y/N]

Switch SD card size message to power-of-10 units

Currently, you get this:

Use 58.27 GiB memory card found at /dev/sdc? [Yn] 

This is for a MicroSD card that is labeled "64 GB". Since it seems like SSDs and SDCards are all labeled in power-of-10 units and pretty much every other program besides fwup uses power-of-10 units for these devices, change that message to something like this:

Use 62.57 GB memory card found at /dev/sdc? [Yn] 

Error when running ./configure in Vagrant

In a Vagrant Ubuntu Trusty64 box, when running the ./configure command inside the fwup directory I get the following error:

./configure: line 12447: syntax error near unexpected token `BASH_COMPLETION,'
./configure: line 12447: `    PKG_CHECK_MODULES(BASH_COMPLETION, bash-completion >= 2.0,'

I have tried uninstalling and reinstallling bash-completion but this had no effect. I didn't have this problem on my host laptop, which is Xubuntu 14.04.

Sorry I can't be more help, I really don't know Bash.

make check failing on NixOS

The tests start failing on 0.15.0, 0.14.3 builds fine.

fwup 0.15.0: tests/test-suite.log
=======================================
   fwup 0.15.0: tests/test-suite.log
=======================================

# TOTAL: 125
# PASS:  56
# SKIP:  0
# XFAIL: 0
# FAIL:  69
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: 001_simple_fw
===================


  0%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-001_simple_fw.test'
FAIL 001_simple_fw.test (exit status: 1)

FAIL: 002_resource_subdir
=========================


  0%
 33%
 66%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-002_resource_subdir.test'
FAIL 002_resource_subdir.test (exit status: 1)

FAIL: 003_write_offset
======================


  0%
 43%
 87%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-003_write_offset.test'
FAIL 003_write_offset.test (exit status: 1)

FAIL: 004_env_vars
==================


  0%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-004_env_vars.test'
FAIL 004_env_vars.test (exit status: 1)

FAIL: 005_define
================


  0%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-005_define.test'
FAIL 005_define.test (exit status: 1)

FAIL: 007_mbr
=============


  0%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-007_mbr.test'
FAIL 007_mbr.test (exit status: 1)

FAIL: 008_partial_mbr
=====================


  0%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-008_partial_mbr.test'
FAIL 008_partial_mbr.test (exit status: 1)

FAIL: 010_fat_mkfs
==================


  0%
 50%
 99%
100%
Elapsed time: 0.002s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-010_fat_mkfs.test'
FAIL 010_fat_mkfs.test (exit status: 1)

FAIL: 011_fat_setlabel
======================


  0%
 33%
 66%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-011_fat_setlabel.test'
FAIL 011_fat_setlabel.test (exit status: 1)

FAIL: 012_fat_write
===================


  0%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-012_fat_write.test'
FAIL 012_fat_write.test (exit status: 1)

FAIL: 013_fat_mv
================


  0%
 99%
100%
Elapsed time: 0.003s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-013_fat_mv.test'
FAIL 013_fat_mv.test (exit status: 1)

FAIL: 014_fat_cp
================


  0%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-014_fat_cp.test'
FAIL 014_fat_cp.test (exit status: 1)

FAIL: 017_fat_rm
================


  0%
 99%
100%
Elapsed time: 0.002s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-017_fat_rm.test'
FAIL 017_fat_rm.test (exit status: 1)

FAIL: 018_numeric_progress
==========================

verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-018_numeric_progress.test'
FAIL 018_numeric_progress.test (exit status: 1)

FAIL: 019_quiet_progress
========================

verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-019_quiet_progress.test'
FAIL 019_quiet_progress.test (exit status: 1)

FAIL: 022_signed_fw
===================

Firmware signing keys created and saved to fwup-key.pub and fwup-key.priv

Distribute fwup-key.pub with your system so that firmware updates can be
authenticated. Keep fwup-key.priv in a safe location.
/tmp/nix-build-fwup-0.15.0.drv-0/source/tests
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-022_signed_fw.test'
FAIL 022_signed_fw.test (exit status: 1)

FAIL: 026_sign_again
====================

Firmware signing keys created and saved to fwup-key.pub and fwup-key.priv

Distribute fwup-key.pub with your system so that firmware updates can be
authenticated. Keep fwup-key.priv in a safe location.
/tmp/nix-build-fwup-0.15.0.drv-0/source/tests
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-026_sign_again.test'
FAIL 026_sign_again.test (exit status: 1)

FAIL: 027_fat_timestamp
=======================


  0%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-027_fat_timestamp.test/fwup.img.1'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-027_fat_timestamp.test'
FAIL 027_fat_timestamp.test (exit status: 1)

FAIL: 028_osip
==============


  0%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-028_osip.test'
FAIL 028_osip.test (exit status: 1)

FAIL: 029_5G_offset
===================

Sparse files supported

  0%
 43%
 87%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-029_5G_offset.test'
FAIL 029_5G_offset.test (exit status: 1)

FAIL: 030_2T_offset
===================

Sparse files supported

  0%
 43%
 87%
 99%
100%
Elapsed time: 0.003s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-030_2T_offset.test'
FAIL 030_2T_offset.test (exit status: 1)

FAIL: 031_fat_mkfs_5G
=====================

Sparse files supported

  0%
 50%
 99%
100%
Elapsed time: 0.106s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-031_fat_mkfs_5G.test'
FAIL 031_fat_mkfs_5G.test (exit status: 1)

FAIL: 032_fat_2T_offset
=======================

Sparse files supported

  0%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-032_fat_2T_offset.test'
FAIL 032_fat_2T_offset.test (exit status: 1)

FAIL: 035_streaming
===================


  0%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-035_streaming.test'
FAIL 035_streaming.test (exit status: 1)

FAIL: 036_streaming_signed_fw
=============================

Firmware signing keys created and saved to fwup-key.pub and fwup-key.priv

Distribute fwup-key.pub with your system so that firmware updates can be
authenticated. Keep fwup-key.priv in a safe location.
/tmp/nix-build-fwup-0.15.0.drv-0/source/tests
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-036_streaming_signed_fw.test'
FAIL 036_streaming_signed_fw.test (exit status: 1)

FAIL: 038_write_15M
===================


  0%
  1%
  2%
  3%
  4%
  5%
  6%
  7%
  8%
  9%
 10%
 11%
 12%
 13%
 14%
 15%
 16%
 17%
 18%
 19%
 20%
 21%
 22%
 23%
 24%
 25%
 26%
 27%
 28%
 29%
 30%
 31%
 32%
 33%
 34%
 35%
 36%
 37%
 38%
 39%
 40%
 41%
 42%
 43%
 44%
 45%
 46%
 47%
 48%
 49%
 50%
 51%
 52%
 53%
 54%
 55%
 56%
 57%
 58%
 59%
 60%
 61%
 62%
 63%
 64%
 65%
 66%
 67%
 68%
 69%
 70%
 71%
 72%
 73%
 74%
 75%
 76%
 77%
 78%
 79%
 80%
 81%
 82%
 83%
 84%
 85%
 86%
 87%
 88%
 89%
 90%
 91%
 92%
 93%
 94%
 95%
 96%
 97%
 98%
 99%
100%
Elapsed time: 0.058s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-038_write_15M.test'
FAIL 038_write_15M.test (exit status: 1)

FAIL: 039_upgrade
=================


  0%
  1%
 42%
 85%
 99%
100%
Elapsed time: 0.004s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-039_upgrade.test'
FAIL 039_upgrade.test (exit status: 1)

FAIL: 042_fat_am335x
====================


  0%
 50%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-042_fat_am335x.test'
FAIL 042_fat_am335x.test (exit status: 1)

FAIL: 043_fat_touch
===================


  0%
 33%
 66%
 99%
100%
Elapsed time: 0.001s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-043_fat_touch.test'
FAIL 043_fat_touch.test (exit status: 1)

FAIL: 044_require_file_exist
============================


  0%
 25%
 50%
 75%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-044_require_file_exist.test'
FAIL 044_require_file_exist.test (exit status: 1)

FAIL: 045_legacy_require_partition1
===================================


  0%
  1%
 42%
 85%
 99%
100%
Elapsed time: 0.002s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-045_legacy_require_partition1.test'
FAIL 045_legacy_require_partition1.test (exit status: 1)

FAIL: 047_unknown_apply_succeeds
================================

/tmp/nix-build-fwup-0.15.0.drv-0/source/tests

  0%
100%verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-047_unknown_apply_succeeds.test'
FAIL 047_unknown_apply_succeeds.test (exit status: 1)

FAIL: 052_file_concatenation
============================


  0%
 42%
 85%
 99%
100%
Elapsed time: 0.000s
verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-052_file_concatenation.test'
FAIL 052_file_concatenation.test (exit status: 1)

FAIL: 053_framed_progress
=========================

verify-syscalls: open was never called on 'fwup.img'

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.15.0.drv-0/source/tests/work-053_framed_progress.test'
FAIL 053_framed_progress.test (exit status: 1)

FAIL: 060_framed_streaming
==========================

With the current version, even more tests fail:

fwup 0.18.0: tests/test-suite.log
=======================================
   fwup 0.18.0: tests/test-suite.log
=======================================

# TOTAL: 141
# PASS:  60
# SKIP:  0
# XFAIL: 0
# FAIL:  81
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: 001_simple_fw
===================


|                                    | 0%
|=================================== | 99% (1.02 / 1.02) KB
|====================================| 100% (1.02 / 1.02) KB
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-001_simple_fw.test'
FAIL 001_simple_fw.test (exit status: 1)

FAIL: 002_resource_subdir
=========================


|                                    | 0%
|===========                         | 33% (1.02 / 3.07) KB
|=======================             | 66% (2.05 / 3.07) KB
|=================================== | 99% (3.07 / 3.07) KB
|====================================| 100% (3.07 / 3.07) KB
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-002_resource_subdir.test'
FAIL 002_resource_subdir.test (exit status: 1)

FAIL: 003_write_offset
======================


|                                    | 0%
|===============                     | 43% (65.17 / 150.00) KB
|===============================     | 87% (130.68 / 150.00) KB
|=================================== | 99% (150.00 / 150.00) KB
|====================================| 100% (150.00 / 150.00) KB
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-003_write_offset.test'
FAIL 003_write_offset.test (exit status: 1)

FAIL: 004_env_vars
==================


|                                    | 0%
|=================================== | 99% (1.02 / 1.02) KB
|====================================| 100% (1.02 / 1.02) KB
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-004_env_vars.test'
FAIL 004_env_vars.test (exit status: 1)

FAIL: 005_define
================


|                                    | 0%
|=================================== | 99% (1.02 / 1.02) KB
|====================================| 100% (1.02 / 1.02) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-005_define.test'
FAIL 005_define.test (exit status: 1)

FAIL: 007_mbr
=============


|                                    | 0%
|=================================== | 99% (512.00 / 512.00) bytes
|====================================| 100% (512.00 / 512.00) bytes
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-007_mbr.test'
FAIL 007_mbr.test (exit status: 1)

FAIL: 008_partial_mbr
=====================


|                                    | 0%
|=================================== | 99% (512.00 / 512.00) bytes
|====================================| 100% (512.00 / 512.00) bytes
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-008_partial_mbr.test'
FAIL 008_partial_mbr.test (exit status: 1)

FAIL: 010_fat_mkfs
==================


|                                    | 0%
|==================                  | 50% (0.51 / 1.02) KB
|=================================== | 99% (1.02 / 1.02) KB
|====================================| 100% (1.02 / 1.02) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-010_fat_mkfs.test'
FAIL 010_fat_mkfs.test (exit status: 1)

FAIL: 011_fat_setlabel
======================


|                                    | 0%
|===========                         | 33% (0.51 / 1.54) KB
|=======================             | 66% (1.02 / 1.54) KB
|=================================== | 99% (1.54 / 1.54) KB
|====================================| 100% (1.54 / 1.54) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-011_fat_setlabel.test'
FAIL 011_fat_setlabel.test (exit status: 1)

FAIL: 012_fat_write
===================


|                                    | 0%
|=========                           | 25% (0.51 / 2.05) KB
|==================                  | 50% (1.02 / 2.05) KB
|=================================== | 99% (2.05 / 2.05) KB
|====================================| 100% (2.05 / 2.05) KB
Success!
Elapsed time: 0.002s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-012_fat_write.test'
FAIL 012_fat_write.test (exit status: 1)

FAIL: 013_fat_mv
================


|                                    | 0%
|=======                             | 20% (0.51 / 2.56) KB
|==============                      | 40% (1.02 / 2.56) KB
|============================        | 80% (2.05 / 2.56) KB
|=================================== | 99% (2.56 / 2.56) KB
|====================================| 100% (2.56 / 2.56) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-013_fat_mv.test'
FAIL 013_fat_mv.test (exit status: 1)

FAIL: 014_fat_cp
================


|                                    | 0%
|===                                 | 9% (0.51 / 5.63) KB
|======                              | 18% (1.02 / 5.63) KB
|============                        | 36% (2.05 / 5.63) KB
|================                    | 45% (2.56 / 5.63) KB
|===================                 | 54% (3.07 / 5.63) KB
|======================              | 63% (3.58 / 5.63) KB
|=========================           | 72% (4.10 / 5.63) KB
|=============================       | 81% (4.61 / 5.63) KB
|================================    | 90% (5.12 / 5.63) KB
|=================================== | 99% (5.63 / 5.63) KB
|====================================| 100% (5.63 / 5.63) KB
Success!
Elapsed time: 0.005s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-014_fat_cp.test'
FAIL 014_fat_cp.test (exit status: 1)

FAIL: 017_fat_rm
================


|                                    | 0%
|==                                  | 8% (0.51 / 6.14) KB
|=====                               | 16% (1.02 / 6.14) KB
|===========                         | 33% (2.05 / 6.14) KB
|==============                      | 41% (2.56 / 6.14) KB
|==================                  | 50% (3.07 / 6.14) KB
|====================                | 58% (3.58 / 6.14) KB
|=======================             | 66% (4.10 / 6.14) KB
|===========================         | 75% (4.61 / 6.14) KB
|=============================       | 83% (5.12 / 6.14) KB
|================================    | 91% (5.63 / 6.14) KB
|=================================== | 99% (6.14 / 6.14) KB
|====================================| 100% (6.14 / 6.14) KB
Success!
Elapsed time: 0.002s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-017_fat_rm.test'
FAIL 017_fat_rm.test (exit status: 1)

FAIL: 018_numeric_progress
==========================

-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-018_numeric_progress.test'
FAIL 018_numeric_progress.test (exit status: 1)

FAIL: 019_quiet_progress
========================

-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-019_quiet_progress.test'
FAIL 019_quiet_progress.test (exit status: 1)

FAIL: 022_signed_fw
===================

Firmware signing keys created and saved to fwup-key.pub and fwup-key.priv

Distribute fwup-key.pub with your system so that firmware updates can be
authenticated. Keep fwup-key.priv in a safe location.
/tmp/nix-build-fwup-0.18.0.drv-0/source/tests
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-022_signed_fw.test'
FAIL 022_signed_fw.test (exit status: 1)

FAIL: 026_sign_again
====================

Firmware signing keys created and saved to fwup-key.pub and fwup-key.priv

Distribute fwup-key.pub with your system so that firmware updates can be
authenticated. Keep fwup-key.priv in a safe location.
/tmp/nix-build-fwup-0.18.0.drv-0/source/tests
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-026_sign_again.test'
FAIL 026_sign_again.test (exit status: 1)

FAIL: 027_fat_timestamp
=======================


|                                    | 0%
|=========                           | 25% (0.51 / 2.05) KB
|==================                  | 50% (1.02 / 2.05) KB
|=================================== | 99% (2.05 / 2.05) KB
|====================================| 100% (2.05 / 2.05) KB
Success!
Elapsed time: 0.002s
-- verify-syscalls report --
open() was never called on '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-027_fat_timestamp.test/fwup.img.1'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-027_fat_timestamp.test'
FAIL 027_fat_timestamp.test (exit status: 1)

FAIL: 028_osip
==============


|                                    | 0%
|=================================== | 99% (512.00 / 512.00) bytes
|====================================| 100% (512.00 / 512.00) bytes
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-028_osip.test'
FAIL 028_osip.test (exit status: 1)

FAIL: 029_5G_offset
===================

Sparse files supported

|                                    | 0%
|===============                     | 43% (65.16 / 150.00) KB
|===============================     | 87% (130.68 / 150.00) KB
|=================================== | 99% (150.00 / 150.00) KB
|====================================| 100% (150.00 / 150.00) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-029_5G_offset.test'
FAIL 029_5G_offset.test (exit status: 1)

FAIL: 030_2T_offset
===================

Sparse files supported

|                                    | 0%
|===============                     | 43% (65.16 / 150.00) KB
|===============================     | 87% (130.68 / 150.00) KB
|=================================== | 99% (150.00 / 150.00) KB
|====================================| 100% (150.00 / 150.00) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-030_2T_offset.test'
FAIL 030_2T_offset.test (exit status: 1)

FAIL: 031_fat_mkfs_5G
=====================

Sparse files supported

|                                    | 0%
|==================                  | 50% (0.51 / 1.02) KB
|=================================== | 99% (1.02 / 1.02) KB
|====================================| 100% (1.02 / 1.02) KB
Success!
Elapsed time: 0.097s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-031_fat_mkfs_5G.test'
FAIL 031_fat_mkfs_5G.test (exit status: 1)

FAIL: 032_fat_2T_offset
=======================

Sparse files supported

|                                    | 0%
|=====                               | 16% (0.51 / 3.07) KB
|===========                         | 33% (1.02 / 3.07) KB
|=======================             | 66% (2.05 / 3.07) KB
|=============================       | 83% (2.56 / 3.07) KB
|=================================== | 99% (3.07 / 3.07) KB
|====================================| 100% (3.07 / 3.07) KB
Success!
Elapsed time: 0.002s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-032_fat_2T_offset.test'
FAIL 032_fat_2T_offset.test (exit status: 1)

FAIL: 035_streaming
===================


|                                    | 0%
|=================================== | 99% (1.02 / 1.02) KB
|====================================| 100% (1.02 / 1.02) KB
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-035_streaming.test'
FAIL 035_streaming.test (exit status: 1)

FAIL: 036_streaming_signed_fw
=============================

Firmware signing keys created and saved to fwup-key.pub and fwup-key.priv

Distribute fwup-key.pub with your system so that firmware updates can be
authenticated. Keep fwup-key.priv in a safe location.
/tmp/nix-build-fwup-0.18.0.drv-0/source/tests
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-036_streaming_signed_fw.test'
FAIL 036_streaming_signed_fw.test (exit status: 1)

FAIL: 038_write_15M
===================


|                                    | 0%
|                                    | 1% (0.20 / 15.00) MB
|                                    | 2% (0.33 / 15.00) MB
|=                                   | 3% (0.46 / 15.00) MB
|=                                   | 4% (0.65 / 15.00) MB
|=                                   | 5% (0.79 / 15.00) MB
|==                                  | 6% (0.92 / 15.00) MB
|==                                  | 7% (1.11 / 15.00) MB
|==                                  | 8% (1.24 / 15.00) MB
|===                                 | 9% (1.38 / 15.00) MB
|===                                 | 10% (1.51 / 15.00) MB
|===                                 | 11% (1.70 / 15.00) MB
|====                                | 12% (1.83 / 15.00) MB
|====                                | 13% (1.97 / 15.00) MB
|=====                               | 14% (2.16 / 15.00) MB
|=====                               | 15% (2.29 / 15.00) MB
|=====                               | 16% (2.42 / 15.00) MB
|======                              | 17% (2.55 / 15.00) MB
|======                              | 18% (2.75 / 15.00) MB
|======                              | 19% (2.88 / 15.00) MB
|=======                             | 20% (3.01 / 15.00) MB
|=======                             | 21% (3.21 / 15.00) MB
|=======                             | 22% (3.34 / 15.00) MB
|========                            | 23% (3.47 / 15.00) MB
|========                            | 24% (3.60 / 15.00) MB
|=========                           | 25% (3.80 / 15.00) MB
|=========                           | 26% (3.93 / 15.00) MB
|=========                           | 27% (4.06 / 15.00) MB
|==========                          | 28% (4.26 / 15.00) MB
|==========                          | 29% (4.39 / 15.00) MB
|==========                          | 30% (4.52 / 15.00) MB
|===========                         | 31% (4.65 / 15.00) MB
|===========                         | 32% (4.85 / 15.00) MB
|===========                         | 33% (4.98 / 15.00) MB
|============                        | 34% (5.11 / 15.00) MB
|============                        | 35% (5.31 / 15.00) MB
|============                        | 36% (5.44 / 15.00) MB
|=============                       | 37% (5.57 / 15.00) MB
|=============                       | 38% (5.77 / 15.00) MB
|==============                      | 39% (5.90 / 15.00) MB
|==============                      | 40% (6.03 / 15.00) MB
|==============                      | 41% (6.16 / 15.00) MB
|===============                     | 42% (6.35 / 15.00) MB
|===============                     | 43% (6.49 / 15.00) MB
|===============                     | 44% (6.62 / 15.00) MB
|================                    | 45% (6.81 / 15.00) MB
|================                    | 46% (6.94 / 15.00) MB
|================                    | 47% (7.08 / 15.00) MB
|=================                   | 48% (7.21 / 15.00) MB
|=================                   | 49% (7.40 / 15.00) MB
|==================                  | 50% (7.53 / 15.00) MB
|==================                  | 51% (7.67 / 15.00) MB
|==================                  | 52% (7.86 / 15.00) MB
|===================                 | 53% (7.99 / 15.00) MB
|===================                 | 54% (8.12 / 15.00) MB
|===================                 | 55% (8.25 / 15.00) MB
|====================                | 56% (8.45 / 15.00) MB
|====================                | 57% (8.58 / 15.00) MB
|====================                | 58% (8.71 / 15.00) MB
|=====================               | 59% (8.91 / 15.00) MB
|=====================               | 60% (9.04 / 15.00) MB
|=====================               | 61% (9.17 / 15.00) MB
|======================              | 62% (9.30 / 15.00) MB
|======================              | 63% (9.50 / 15.00) MB
|=======================             | 64% (9.63 / 15.00) MB
|=======================             | 65% (9.76 / 15.00) MB
|=======================             | 66% (9.96 / 15.00) MB
|========================            | 67% (10.09 / 15.00) MB
|========================            | 68% (10.22 / 15.00) MB
|========================            | 69% (10.35 / 15.00) MB
|=========================           | 70% (10.55 / 15.00) MB
|=========================           | 71% (10.68 / 15.00) MB
|=========================           | 72% (10.81 / 15.00) MB
|==========================          | 73% (11.01 / 15.00) MB
|==========================          | 74% (11.14 / 15.00) MB
|===========================         | 75% (11.27 / 15.00) MB
|===========================         | 76% (11.46 / 15.00) MB
|===========================         | 77% (11.60 / 15.00) MB
|============================        | 78% (11.73 / 15.00) MB
|============================        | 79% (11.86 / 15.00) MB
|============================        | 80% (12.05 / 15.00) MB
|=============================       | 81% (12.19 / 15.00) MB
|=============================       | 82% (12.32 / 15.00) MB
|=============================       | 83% (12.51 / 15.00) MB
|==============================      | 84% (12.64 / 15.00) MB
|==============================      | 85% (12.78 / 15.00) MB
|==============================      | 86% (12.91 / 15.00) MB
|===============================     | 87% (13.10 / 15.00) MB
|===============================     | 88% (13.23 / 15.00) MB
|================================    | 89% (13.36 / 15.00) MB
|================================    | 90% (13.56 / 15.00) MB
|================================    | 91% (13.69 / 15.00) MB
|=================================   | 92% (13.82 / 15.00) MB
|=================================   | 93% (13.95 / 15.00) MB
|=================================   | 94% (14.15 / 15.00) MB
|==================================  | 95% (14.28 / 15.00) MB
|==================================  | 96% (14.41 / 15.00) MB
|==================================  | 97% (14.61 / 15.00) MB
|=================================== | 98% (14.74 / 15.00) MB
|=================================== | 99% (14.87 / 15.00) MB
|====================================| 100% (15.00 / 15.00) MB
Success!
Elapsed time: 0.060s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-038_write_15M.test'
FAIL 038_write_15M.test (exit status: 1)

FAIL: 039_upgrade
=================


|                                    | 0%
|                                    | 1% (1.54 / 152.56) KB
|===============                     | 42% (65.25 / 152.56) KB
|==============================      | 85% (130.77 / 152.56) KB
|=================================== | 99% (152.56 / 152.56) KB
|====================================| 100% (152.56 / 152.56) KB
Success!
Elapsed time: 0.003s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-039_upgrade.test'
FAIL 039_upgrade.test (exit status: 1)

FAIL: 042_fat_am335x
====================


|                                    | 0%
|==================                  | 50% (0.51 / 1.02) KB
|=================================== | 99% (1.02 / 1.02) KB
|====================================| 100% (1.02 / 1.02) KB
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-042_fat_am335x.test'
FAIL 042_fat_am335x.test (exit status: 1)

FAIL: 043_fat_touch
===================


|                                    | 0%
|===========                         | 33% (0.51 / 1.54) KB
|=======================             | 66% (1.02 / 1.54) KB
|=================================== | 99% (1.54 / 1.54) KB
|====================================| 100% (1.54 / 1.54) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-043_fat_touch.test'
FAIL 043_fat_touch.test (exit status: 1)

FAIL: 044_require_file_exist
============================


|                                    | 0%
|=========                           | 25% (0.51 / 2.05) KB
|==================                  | 50% (1.02 / 2.05) KB
|===========================         | 75% (1.54 / 2.05) KB
|=================================== | 99% (2.05 / 2.05) KB
|====================================| 100% (2.05 / 2.05) KB
Success!
Elapsed time: 0.000s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-044_require_file_exist.test'
FAIL 044_require_file_exist.test (exit status: 1)

FAIL: 045_legacy_require_partition1
===================================


|                                    | 0%
|                                    | 1% (1.54 / 152.56) KB
|===============                     | 42% (65.26 / 152.56) KB
|==============================      | 85% (130.78 / 152.56) KB
|=================================== | 99% (152.56 / 152.56) KB
|====================================| 100% (152.56 / 152.56) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-045_legacy_require_partition1.test'
FAIL 045_legacy_require_partition1.test (exit status: 1)

FAIL: 047_unknown_apply_succeeds
================================

/tmp/nix-build-fwup-0.18.0.drv-0/source/tests

|                                    | 0%
|====================================| 100%
Success!
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-047_unknown_apply_succeeds.test'
FAIL 047_unknown_apply_succeeds.test (exit status: 1)

FAIL: 052_file_concatenation
============================


|                                    | 0%
|===============                     | 42% (65.18 / 152.05) KB
|==============================      | 85% (130.70 / 152.05) KB
|=================================== | 99% (152.05 / 152.05) KB
|====================================| 100% (152.05 / 152.05) KB
Success!
Elapsed time: 0.001s
-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-052_file_concatenation.test'
FAIL 052_file_concatenation.test (exit status: 1)

FAIL: 053_framed_progress
=========================

-- verify-syscalls report --
open() was never called on 'fwup.img'!
----------------------------

Test failed!

Leaving test work files in '/tmp/nix-build-fwup-0.18.0.drv-0/source/tests/work-053_framed_progress.test'
FAIL 053_framed_progress.test (exit status: 1)

FAIL: 060_framed_streaming
==========================


Unable to raw_write single resource to two different offsets

When specifying the same resource to be written to two different offsets it fails with the following message.

fwup: raw_write didn't write anything. Was it called twice in an on-resource for 'rootfs.ext4'?

In my setup both partitions should have the same resource written during factory setup. I would like to avoid having to increase the size of my .fw bundle with a duplicate resource. My config currently looks like this:

    on-resource rootfs.ext4 {
        raw_write(${ROOTFS_A_PART_OFFSET}) # Write to the first rootfs partition
        raw_write(${ROOTFS_B_PART_OFFSET}) # Write to the second rootfs partition
    } 

Is this an intentional design decision?

Minor issue with fat_setlabel

It seems that the label provided gets capitalized. I would be great to get a label that is exactly what is entered without alteration. I guess some upper() function gets invoked.

eg.

on-init {
mbr_write(mbr-a)
fat_mkfs(${BOOT_OFFSET}, ${BOOT_COUNT})
fat_setlabel(${BOOT_OFFSET}, "boot")
}

Actual label on SD card: BOOT

Ubuntu 14.04

Add possibility to exclude certain devices

Problem
On a Raspberry the system sdcard is suggested instead of a external attached sd card.

Possible solutions

  1. ~/.fwup.conf file with a list of interfaces to exclude/include
  2. ~/.fwup.conf which allows to set all the defaults of the argument i can pass (so i dont have to specify -d everytime)
  3. Maybe the auto-detect feature should show all attached sd cards and you can set a default (which than would write the config):
Which memory card would you like to use (press d to set as default)?
[*] 29.72 GiB at /dev/mmcblk0
[ ] 7.14 GiB at /dev/sda

file-resource custom path does't seem to work

I am trying to add file to the fw bundle using the file-resource option in my fwup.conf file, like so:

file-resource "/release.html" {
    host-path = "${NERVES_ROOT}/../_images/release.html"
}

Then when the firmware bundle is made I get

chris@chrisdev:~/projects/ng1a$ ls _images/fw/
data  meta.conf
chris@chrisdev:~/projects/ng1a$ ls _images/fw/data/
MLO  release.html  rootfs.ext2  u-boot.img  uEnv.txt

From the documentation it seems like this should end up in the root of the bundle.

Unexpected error parsing meta.conf

When running fwup with an upgrade task on an embedded device, an error is produced (almost immediately):

[buf]:66: no such option 'include-osip'
fwup: Unexpected error parsing meta.conf

Interestingly enough, when I run the command on my local machine with the sd card simply inserted as an external device, I don't encounter this command.

fwup doesn't compile under uclibc (alix) buildroot

Was trying to change my firmware update system to use fwup rather than my own custom code but fwup doesn't seem to compile properly when I put BR2_PACKAGE_FWUP=y in my nerves config. Here is the error log..

fwup_apply.c: In function ‘task_is_applicable’:
fwup_apply.c:43:9: warning: implicit declaration of function ‘pread’ [-Wimplicit-function-declaration]
fwup_apply.c: In function ‘fwup_apply’:
fwup_apply.c:226:56: error: ‘O_CLOEXEC’ undeclared (first use in this function)
fwup_apply.c:226:56: note: each undeclared identifier is reported only once for each function it appears in
make[5]: *** [fwup-fwup_apply.o] Error 1
make[5]: *** Waiting for unfinished jobs....
fwfile.c: In function ‘cfg_to_string’:
fwfile.c:25:5: warning: implicit declaration of function ‘open_memstream’ [-Wimplicit-function-declaration]
fwfile.c:25:16: warning: initialization makes pointer from integer without a cast [enabled by default]
mv -f .deps/fwup-fwfile.Tpo .deps/fwup-fwfile.Po
mv -f .deps/fwup-fatfs.Tpo .deps/fwup-fatfs.Po
mv -f .deps/fwup-cfgfile.Tpo .deps/fwup-cfgfile.Po
functions.c: In function ‘raw_write_run’:
functions.c:185:9: warning: implicit declaration of function ‘pwrite’ [-Wimplicit-function-declaration]
mv -f .deps/fwup-functions.Tpo .deps/fwup-functions.Po
make[5]: Leaving directory /home/garth/echo/examples/hello_alix/_nerves/buildroot/output/build/fwup-v0.0.4/src' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory/home/garth/echo/examples/hello_alix/_nerves/buildroot/output/build/fwup-v0.0.4'
make[3]: *** [all] Error 2
make[3]: Leaving directory /home/garth/echo/examples/hello_alix/_nerves/buildroot/output/build/fwup-v0.0.4' make[2]: *** [/home/garth/echo/examples/hello_alix/_nerves/buildroot/output/build/fwup-v0.0.4/.stamp_built] Error 2 make[2]: Leaving directory/home/garth/echo/examples/hello_alix/_nerves/buildroot'
make[1]: *** [br-make] Error 2
make[1]: Leaving directory `/home/garth/echo/examples/hello_alix/_nerves'
make: *** [_nerves/.stamp_built] Error 2
garth@debian:~/echo/examples/hello_alix$

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.