From f6a7b2add62bb90b23f90bb600446acba7ad64ba Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Fri, 6 Oct 2017 14:19:35 +0100 Subject: [PATCH] feat: implement usbboot adapter (#1686) This commit installs `node-usb` v1.3.0 from GitHub, since that version was never published to NPM, and is the only one that works with Visual Studio 2015 (see https://github.com/tessel/node-usb/issues/109). The usbboot communicates with a Raspberry Pi / Amber through USB and eventually mounts it as a block device we can write to. This feature bundles bootcode.bin and start.elf from the original usbboot implementation. The flow is the following: - On each scan, the usbboot scanner will try to get a usbboot compatible USB device to the next "phase", until they are all transformed to block devices the user can flash to as usual Change-Type: minor Changelog-Entry: Integrate Raspberry Pi's usbboot technology. Fixes: https://github.com/resin-io/etcher/issues/1541 See: https://github.com/raspberrypi/usbboot Signed-off-by: Juan Cruz Viotti --- .gitattributes | 2 + .travis.yml | 2 +- lib/blobs/usbboot/LICENSE | 30 ++ lib/blobs/usbboot/README.md | 5 + lib/blobs/usbboot/bootcode.bin | Bin 0 -> 50216 bytes lib/blobs/usbboot/start.elf | Bin 0 -> 433616 bytes lib/gui/modules/drive-scanner.js | 33 +- lib/shared/sdk/index.js | 3 +- lib/shared/sdk/usbboot/index.js | 387 +++++++++++++++++++ lib/shared/sdk/usbboot/protocol.js | 381 ++++++++++++++++++ lib/shared/sdk/usbboot/usb.js | 161 ++++++++ lib/shared/store.js | 3 + lib/start.js | 2 + npm-shrinkwrap.json | 133 ++++--- package.json | 2 + scripts/build/docker/Dockerfile-i686 | 4 +- scripts/build/docker/Dockerfile-x86_64 | 4 +- scripts/build/docker/Dockerfile.template | 4 +- tests/shared/models/available-drives.spec.js | 21 + 19 files changed, 1111 insertions(+), 66 deletions(-) create mode 100644 lib/blobs/usbboot/LICENSE create mode 100644 lib/blobs/usbboot/README.md create mode 100644 lib/blobs/usbboot/bootcode.bin create mode 100755 lib/blobs/usbboot/start.elf create mode 100644 lib/shared/sdk/usbboot/index.js create mode 100644 lib/shared/sdk/usbboot/protocol.js create mode 100644 lib/shared/sdk/usbboot/usb.js diff --git a/.gitattributes b/.gitattributes index 0d117874..d18e7e1b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -35,6 +35,8 @@ Makefile text *.img binary diff=hex *.iso binary diff=hex *.png binary diff=hex +*.bin binary diff=hex +*.elf binary diff=hex *.xz binary diff=hex *.zip binary diff=hex *.dmg binary diff=hex diff --git a/.travis.yml b/.travis.yml index aa97b715..c7d97645 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,7 +58,7 @@ before_install: fi install: - - travis_wait ./scripts/ci/install.sh -o $HOST_OS -r $TARGET_ARCH + - ./scripts/ci/install.sh -o $HOST_OS -r $TARGET_ARCH script: - ./scripts/ci/test.sh -o $HOST_OS -r $TARGET_ARCH diff --git a/lib/blobs/usbboot/LICENSE b/lib/blobs/usbboot/LICENSE new file mode 100644 index 00000000..89b5c0c0 --- /dev/null +++ b/lib/blobs/usbboot/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) 2006, Broadcom Corporation. +Copyright (c) 2015, Raspberry Pi (Trading) Ltd +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* This software may only be used for the purposes of developing for, + running or using a Raspberry Pi device. +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Broadcom Corporation nor the names of its suppliers + may be used to endorse or promote products derived from this software + without specific prior written permission. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + diff --git a/lib/blobs/usbboot/README.md b/lib/blobs/usbboot/README.md new file mode 100644 index 00000000..16aeb9b9 --- /dev/null +++ b/lib/blobs/usbboot/README.md @@ -0,0 +1,5 @@ +usbboot +======= + +The files in this directory were taken from +https://github.com/raspberrypi/usbboot. diff --git a/lib/blobs/usbboot/bootcode.bin b/lib/blobs/usbboot/bootcode.bin new file mode 100644 index 0000000000000000000000000000000000000000..e731673b5668054fae16f4f87a327123fec7336f GIT binary patch literal 50216 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 HwafnnT02)9 literal 0 HcmV?d00001 diff --git a/lib/gui/modules/drive-scanner.js b/lib/gui/modules/drive-scanner.js index 7254c5a1..782efe3e 100644 --- a/lib/gui/modules/drive-scanner.js +++ b/lib/gui/modules/drive-scanner.js @@ -18,6 +18,8 @@ const EventEmitter = require('events').EventEmitter const Bluebird = require('bluebird') +const fs = require('fs') +const path = require('path') const settings = require('../models/settings') const sdk = require('../../shared/sdk') @@ -26,7 +28,7 @@ const sdk = require('../../shared/sdk') * @type {Number} * @constant */ -const DRIVE_SCANNER_INTERVAL_MS = 1000 +const DRIVE_SCANNER_INTERVAL_MS = 2000 /** * @summary Scanner event emitter singleton instance @@ -54,6 +56,29 @@ const emitter = new EventEmitter() * ``` */ +/** + * @summary The Etcher "blobs" directory path + * @type {String} + * @constant + */ +const BLOBS_DIRECTORY = path.join(__dirname, '..', '..', 'blobs') + +/** + * @summary The usbboot "bootcode.bin" buffer + * @type {Buffer} + * @constant + */ +const USBBOOT_BOOTCODE_BIN_BUFFER = fs.readFileSync( + path.join(BLOBS_DIRECTORY, 'usbboot', 'bootcode.bin')) + +/** + * @summary The usbboot "start.elf" buffer + * @type {Buffer} + * @constant + */ +const USBBOOT_START_ELF_BUFFER = fs.readFileSync( + path.join(BLOBS_DIRECTORY, 'usbboot', 'start.elf')) + /** * @summary Flag to control scanning status * @type {Boolean} @@ -83,6 +108,12 @@ const scan = () => { return sdk.scan({ standard: { includeSystemDrives: settings.get('unsafeMode') + }, + usbboot: { + files: { + 'bootcode.bin': USBBOOT_BOOTCODE_BIN_BUFFER, + 'start.elf': USBBOOT_START_ELF_BUFFER + } } }).then((drives) => { emitter.emit('drives', drives) diff --git a/lib/shared/sdk/index.js b/lib/shared/sdk/index.js index 10e1f0b9..4690d3bf 100644 --- a/lib/shared/sdk/index.js +++ b/lib/shared/sdk/index.js @@ -25,7 +25,8 @@ const _ = require('lodash') * @constant */ const ADAPTORS = [ - require('./standard') + require('./standard'), + require('./usbboot') ] /** diff --git a/lib/shared/sdk/usbboot/index.js b/lib/shared/sdk/usbboot/index.js new file mode 100644 index 00000000..02fab743 --- /dev/null +++ b/lib/shared/sdk/usbboot/index.js @@ -0,0 +1,387 @@ +/* + * Copyright 2017 resin.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * This work is heavily based on https://github.com/raspberrypi/usbboot + * Copyright 2016 Raspberry Pi Foundation + */ + +'use strict' + +const _ = require('lodash') +const Bluebird = require('bluebird') +const debug = require('debug')('sdk:usbboot') +const usb = require('./usb') +const protocol = require('./protocol') + +/** + * @summary The name of this adaptor + * @public + * @type {String} + * @constant + */ +exports.name = 'usbboot' + +/** + * @summary Vendor ID of "Broadcom Corporation" + * @type {Number} + * @constant + */ +const USB_VENDOR_ID_BROADCOM_CORPORATION = 0x0a5c + +/** + * @summary Product ID of BCM2708 + * @type {Number} + * @constant + */ +const USB_PRODUCT_ID_BCM2708_BOOT = 0x2763 + +/** + * @summary Product ID of BCM2710 + * @type {Number} + * @constant + */ +const USB_PRODUCT_ID_BCM2710_BOOT = 0x2764 + +/** + * @summary List of usbboot capable devices + * @type {Object[]} + * @constant + */ +const USBBOOT_CAPABLE_USB_DEVICES = [ + + // BCM2835 + + { + vendorID: USB_VENDOR_ID_BROADCOM_CORPORATION, + productID: USB_PRODUCT_ID_BCM2708_BOOT + }, + + // BCM2837 + + { + vendorID: USB_VENDOR_ID_BROADCOM_CORPORATION, + productID: USB_PRODUCT_ID_BCM2710_BOOT + } + +] + +/** + * @summary The timeout for USB device operations + * @type {Number} + * @constant + */ +const USB_OPERATION_TIMEOUT_MS = 1000 + +/** + * @summary The number of USB endpoint interfaces in devices with a BCM2835 SoC + * @type {Number} + * @constant + */ +const USB_ENDPOINT_INTERFACES_SOC_BCM2835 = 1 + +/** + * @summary The USB device descriptor index of an empty property + * @type {Number} + * @constant + */ +const USB_DESCRIPTOR_NULL_INDEX = 0 + +/** + * @summary usbboot bootcode file name + * @type {String} + * @constant + */ +const USBBOOT_BOOTCODE_FILE_NAME = 'bootcode.bin' + +/** + * @summary Check if a USB device object is usbboot-capable + * @function + * @private + * + * @param {Object} device - device + * @returns {Boolean} whether the device is usbboot-capable + * + * @example + * if (isUsbBootCapableUSBDevice({ ... })) { + * console.log('We can use usbboot on this device') + * } + */ +const isUsbBootCapableUSBDevice = (device) => { + return _.some(USBBOOT_CAPABLE_USB_DEVICES, { + vendorID: device.deviceDescriptor.idVendor, + productID: device.deviceDescriptor.idProduct + }) +} + +/** + * @summary The radix used by USB ID numbers + * @type {Number} + * @constant + */ +const USB_ID_RADIX = 16 + +/** + * @summary The expected length of a USB ID number + * @type {Number} + * @constant + */ +const USB_ID_LENGTH = 4 + +/** + * @summary Convert a USB id (e.g. product/vendor) to a string + * @function + * @private + * + * @param {Number} id - USB id + * @returns {String} string id + * + * @example + * console.log(usbIdToString(2652)) + * > '0x0a5c' + */ +const usbIdToString = (id) => { + return `0x${_.padStart(id.toString(USB_ID_RADIX), USB_ID_LENGTH, '0')}` +} + +/** + * @summary Write bootcode to USB device (usbboot first stage) + * @function + * @private + * + * @description + * After this stage is run, the USB will be re-mounted as 0x0a5c:0x2764. + * + * @param {Object} device - node-usb device + * @param {Object} endpoint - node-usb endpoint + * @param {Buffer} bootCodeBuffer - bootcode buffer + * @returns {Promise} + * + * @example + * const usb = require('usb') + * const device = usb.findByIds(0x0a5c, 0x2763) + * const bootcode = fs.readFileSync('./bootcode.bin') + * + * writeBootCode(device, device.interfaces(0).endpoint(1), bootcode).then(() => { + * console.log('Done!') + * }) + */ +const writeBootCode = (device, endpoint, bootCodeBuffer) => { + debug('Writing bootcode') + debug(`Bootcode buffer length: ${bootCodeBuffer.length}`) + const bootMessageBuffer = protocol.createBootMessageBuffer(bootCodeBuffer.length) + + debug('Writing boot message buffer to out endpoint') + return protocol.write(device, endpoint, bootMessageBuffer).then(() => { + debug('Writing boot code buffer to out endpoint') + return protocol.write(device, endpoint, bootCodeBuffer) + }).then(() => { + debug('Reading return code from device') + return protocol.read(device, protocol.RETURN_CODE_LENGTH) + }).then((data) => { + const returnCode = data.readInt32LE() + debug(`Received return code: ${returnCode}`) + + if (returnCode !== protocol.RETURN_CODE_SUCCESS) { + throw new Error(`Couldn't write the bootcode, got return code ${returnCode} from device`) + } + }) +} + +/** + * @summary Mount a USB device as a block device (usbboot second stage) + * @function + * @private + * + * @description + * The possible files you can pass here are: + * + * - autoboot.txt + * - config.txt + * - recovery.elf + * - start.elf + * - fixup.dat + * + * @param {Object} device - node-usb device + * @param {Object} endpoint - node-usb endpoint + * @param {Object} files - a set of file buffers + * @returns {Promise} + * + * @example + * const usb = require('usb') + * const device = usb.findByIds(0x0a5c, 0x2763) + * + * startFileServer(device, device.interfaces(0).endpoint(1), { + * 'start.elf': fs.readFileSync('./start.elf') + * }).then(() => { + * console.log('Done!') + * }) + */ +const startFileServer = (device, endpoint, files) => { + debug('Listening for file messages') + return protocol + .read(device, protocol.FILE_MESSAGE_SIZE) + .then(protocol.parseFileMessageBuffer) + + // We get these error messages when reading a command + // from the device when the communication has ended + .catch({ + message: 'LIBUSB_TRANSFER_STALL' + }, { + message: 'LIBUSB_TRANSFER_ERROR' + }, (error) => { + debug(`Got ${error.message} when reading a command, assuming everything is done`) + return { + command: protocol.FILE_MESSAGE_COMMAND_DONE + } + }) + + .then((fileMessage) => { + debug(`Received message: ${fileMessage.command} -> ${fileMessage.fileName}`) + + if (fileMessage.command === protocol.FILE_MESSAGE_COMMAND_DONE) { + debug('Done') + return Bluebird.resolve() + } + + return Bluebird.try(() => { + if (fileMessage.command === protocol.FILE_MESSAGE_COMMAND_GET_FILE_SIZE) { + debug(`Getting the size of ${fileMessage.fileName}`) + const fileSize = _.get(files, [ fileMessage.fileName, 'length' ]) + + if (_.isNil(fileSize)) { + debug(`Couldn't find ${fileMessage.fileName}`) + debug('Sending error signal') + return protocol.sendErrorSignal(device) + } + + debug(`Sending size: ${fileSize}`) + return protocol.sendBufferSize(device, fileSize) + } + + if (fileMessage.command === protocol.FILE_MESSAGE_COMMAND_READ_FILE) { + debug(`Reading ${fileMessage.fileName}`) + const fileBuffer = _.get(files, [ fileMessage.fileName ]) + + if (_.isNil(fileBuffer)) { + debug(`Couldn't find ${fileMessage.fileName}`) + debug('Sending error signal') + return protocol.sendErrorSignal(device) + } + + return protocol.write(device, endpoint, fileBuffer) + } + + return Bluebird.reject(new Error(`Unrecognized command: ${fileMessage.command}`)) + }).then(() => { + debug('Starting again') + return startFileServer(device, endpoint, files) + }) + }) +} + +/** + * @summary Scan for usbboot capable USB devices + * @function + * @public + * + * @description + * You should at the very least pass a file named `bootcode.bin`. + * + * @param {Object} options - options + * @param {Object} options.files - files buffers + * @fulfil {Object[]} - USB devices + * @returns {Promise} + * + * @example + * usbboot.scan({ + * files: { + * 'bootcode.bin': fs.readFileSync('./msd/bootcode.bin'), + * 'start.elf': fs.readFileSync('./msd/start.elf') + * } + * }).each((device) => { + * console.log(device) + * }) + */ +exports.scan = (options) => { + /* eslint-disable lodash/prefer-lodash-method */ + return usb.listDevices().filter(isUsbBootCapableUSBDevice).map((device) => { + /* eslint-enable lodash/prefer-lodash-method */ + + const idPair = _.join([ + usbIdToString(device.deviceDescriptor.idVendor), + usbIdToString(device.deviceDescriptor.idProduct) + ], ':') + + device.device = idPair + device.displayName = idPair + device.raw = idPair + device.size = null + device.mountpoints = [] + device.protected = false + device.system = false + device.pending = true + device.adaptor = exports.name + + // We need to open the device in order to access _configDescriptor + debug(`Opening device: ${device.name}`) + device.open() + + // Ensures we don't wait forever if an issue occurs + device.timeout = USB_OPERATION_TIMEOUT_MS + + // Handle 2837 where it can start with two interfaces, the first + // is mass storage the second is the vendor interface for programming + const addresses = {} + /* eslint-disable no-underscore-dangle */ + if (device._configDescriptor.bNumInterfaces === USB_ENDPOINT_INTERFACES_SOC_BCM2835) { + /* eslint-enable no-underscore-dangle */ + addresses.interface = 0 + addresses.endpoint = 1 + } else { + addresses.interface = 1 + addresses.endpoint = 3 + } + + const deviceInterface = device.interface(addresses.interface) + debug(`Claiming interface: ${addresses.interface}`) + deviceInterface.claim() + + const endpoint = deviceInterface.endpoint(addresses.endpoint) + + return usb.getDeviceName(device).then((deviceName) => { + device.description = `${deviceName.manufacturer} ${deviceName.product}` + }).then(() => { + const serialNumberIndex = device.deviceDescriptor.iSerialNumber + debug(`Serial number index: ${serialNumberIndex}`) + + if (serialNumberIndex === USB_DESCRIPTOR_NULL_INDEX) { + return writeBootCode(device, endpoint, _.get(options.files, [ + USBBOOT_BOOTCODE_FILE_NAME + ])) + } + + debug('Starting file server') + return startFileServer(device, endpoint, options.files) + }).return(device).finally(() => { + device.close() + }) + + // See http://bluebirdjs.com/docs/api/promise.map.html + }, { + concurrency: 5 + }) +} diff --git a/lib/shared/sdk/usbboot/protocol.js b/lib/shared/sdk/usbboot/protocol.js new file mode 100644 index 00000000..acd8303d --- /dev/null +++ b/lib/shared/sdk/usbboot/protocol.js @@ -0,0 +1,381 @@ +/* + * Copyright 2017 resin.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * This work is heavily based on https://github.com/raspberrypi/usbboot + * Copyright 2016 Raspberry Pi Foundation + */ + +'use strict' + +const _ = require('lodash') +const Bluebird = require('bluebird') +const usb = require('./usb') + +// The equivalent of a NULL buffer, given that node-usb complains +// if the data argument is not an instance of Buffer +const NULL_BUFFER_SIZE = 0 +const NULL_BUFFER = Buffer.alloc(NULL_BUFFER_SIZE) + +/** + * @summary The size of the boot message bootcode length section + * @type {Number} + * @constant + */ +const BOOT_MESSAGE_BOOTCODE_LENGTH_SIZE = 4 + +/** + * @summary The offset of the boot message bootcode length section + * @type {Number} + * @constant + */ +const BOOT_MESSAGE_BOOTCODE_LENGTH_OFFSET = 0 + +/** + * @summary The size of the boot message signature section + * @type {Number} + * @constant + */ +const BOOT_MESSAGE_SIGNATURE_SIZE = 20 + +/** + * @summary The offset of the file message command section + * @type {Number} + * @constant + */ +const FILE_MESSAGE_COMMAND_OFFSET = 0 + +/** + * @summary The size of the file message command section + * @type {Number} + * @constant + */ +const FILE_MESSAGE_COMMAND_SIZE = 4 + +/** + * @summary The offset of the file message file name section + * @type {Number} + * @constant + */ +const FILE_MESSAGE_FILE_NAME_OFFSET = FILE_MESSAGE_COMMAND_SIZE + +/** + * @summary The size of the file message file name section + * @type {Number} + * @constant + */ +const FILE_MESSAGE_FILE_NAME_SIZE = 256 + +/** + * @summary The GET_STATUS usb control transfer request code + * @type {Number} + * @constant + * @description + * See http://www.jungo.com/st/support/documentation/windriver/811/wdusb_man_mhtml/node55.html#usb_standard_dev_req_codes + */ +const USB_REQUEST_CODE_GET_STATUS = 0 + +/** + * @summary The maximum buffer length of a usbboot message + * @type {Number} + * @constant + */ +const USBBOOT_MESSAGE_MAX_BUFFER_LENGTH = 0xffff + +/** + * @summary The delay to wait between each USB read/write operation + * @type {Number} + * @constant + * @description + * The USB bus seems to hang if we execute many operations at + * the same time. + */ +const USB_REQUEST_DELAY_MS = 1000 + +/** + * @summary The timeout for USB bulk transfers, in milliseconds + * @type {Number} + * @constant + */ +const USB_BULK_TRANSFER_TIMEOUT_MS = 1000 + +/** + * @summary The amount of bits to shift to the right on a control transfer index + * @type {Number} + * @constant + */ +const CONTROL_TRANSFER_INDEX_RIGHT_BIT_SHIFT = 16 + +/** + * @summary The size of the usbboot file message + * @type {Number} + * @constant + */ +exports.FILE_MESSAGE_SIZE = FILE_MESSAGE_COMMAND_SIZE + FILE_MESSAGE_FILE_NAME_SIZE + +/** + * @summary File message command display names + * @namespace FILE_MESSAGE_COMMANDS + * @public + */ +exports.FILE_MESSAGE_COMMANDS = { + + /** + * @property {String} + * @memberof FILE_MESSAGE_COMMANDS + * + * @description + * The "get file size" file message command name. + */ + GET_FILE_SIZE: 'GetFileSize', + + /** + * @property {String} + * @memberof FILE_MESSAGE_COMMANDS + * + * @description + * The "read file" file message command name. + */ + READ_FILE: 'ReadFile', + + /** + * @property {String} + * @memberof FILE_MESSAGE_COMMANDS + * + * @description + * The "done" file message command name. + */ + DONE: 'Done' +} + +/** + * @summary The usbboot return code that represents success + * @type {Number} + * @constant + */ +exports.RETURN_CODE_SUCCESS = 0 + +/** + * @summary The buffer length of the return code message + * @type {Number} + * @constant + */ +exports.RETURN_CODE_LENGTH = 4 + +/** + * @summary Send a buffer size to a device as a control transfer + * @function + * @public + * + * @param {Object} device - node-usb device + * @param {Number} size - buffer size + * @returns {Promise} + * + * @example + * const usb = require('usb') + * const device = usb.findByIds(0x0a5c, 0x2763) + * + * protocol.sendBufferSize(device, 512).then(() => { + * console.log('Done!') + * }) + */ +exports.sendBufferSize = (device, size) => { + return usb.performControlTransfer(device, { + bmRequestType: usb.LIBUSB_REQUEST_TYPE_VENDOR, + bRequest: USB_REQUEST_CODE_GET_STATUS, + data: NULL_BUFFER, + + /* eslint-disable no-bitwise */ + wValue: size & USBBOOT_MESSAGE_MAX_BUFFER_LENGTH, + wIndex: size >> CONTROL_TRANSFER_INDEX_RIGHT_BIT_SHIFT + /* eslint-enable no-bitwise */ + }) +} + +/** + * @summary Write a buffer to an OUT endpoint + * @function + * @private + * + * @param {Object} device - device + * @param {Object} endpoint - endpoint + * @param {Buffer} buffer - buffer + * @returns {Promise} + * + * @example + * const usb = require('usb') + * const device = usb.findByIds(0x0a5c, 0x2763) + * return protocol.write(device, device.interface(0).endpoint(1), Buffer.alloc(1)).then(() => { + * console.log('Done!') + * }) + */ +exports.write = (device, endpoint, buffer) => { + return exports.sendBufferSize(device, buffer.length) + + // We get LIBUSB_TRANSFER_STALL sometimes + // in future bulk transfers without this + .delay(USB_REQUEST_DELAY_MS) + + .then(() => { + return Bluebird.fromCallback((callback) => { + endpoint.timeout = USB_BULK_TRANSFER_TIMEOUT_MS + endpoint.transfer(buffer, callback) + }) + }) +} + +/** + * @summary Send an error signal to a device + * @function + * @public + * + * @param {Object} device - node-usb device + * @returns {Promise} + * + * @example + * const usb = require('usb') + * const device = usb.findByIds(0x0a5c, 0x2763) + * + * protocol.sendErrorSignal(device).then(() => { + * console.log('Done!') + * }) + */ +exports.sendErrorSignal = (device) => { + return exports.sendBufferSize(device, NULL_BUFFER_SIZE) +} + +/** + * @summary Read a buffer from a device + * @function + * @private + * + * @param {Object} device - device + * @param {Number} bytesToRead - bytes to read + * @fulfil {Buffer} - data + * @returns {Promise} + * + * @example + * const usb = require('usb') + * const device = usb.findByIds(0x0a5c, 0x2763) + * protocol.read(device, 4).then((data) => { + * console.log(data.readInt32BE()) + * }) + */ +exports.read = (device, bytesToRead) => { + return usb.performControlTransfer(device, { + /* eslint-disable no-bitwise */ + bmRequestType: usb.LIBUSB_REQUEST_TYPE_VENDOR | usb.LIBUSB_ENDPOINT_IN, + wValue: bytesToRead & USBBOOT_MESSAGE_MAX_BUFFER_LENGTH, + wIndex: bytesToRead >> CONTROL_TRANSFER_INDEX_RIGHT_BIT_SHIFT, + /* eslint-enable no-bitwise */ + + bRequest: USB_REQUEST_CODE_GET_STATUS, + length: bytesToRead + }) +} + +/** + * @summary Create a boot message buffer + * @function + * @private + * + * @description + * This is based on the following data structure: + * + * typedef struct MESSAGE_S { + * int length; + * unsigned char signature[20]; + * } boot_message_t; + * + * This needs to be sent to the out endpoint of the USB device + * as a 24 bytes big-endian buffer where: + * + * - The first 4 bytes contain the size of the bootcode.bin buffer + * - The remaining 20 bytes contain the boot signature, which + * we don't make use of in this implementation + * + * @param {Number} bootCodeBufferLength - bootcode.bin buffer length + * @returns {Buffer} boot message buffer + * + * @example + * const bootMessageBuffer = protocol.createBootMessageBuffer(50216) + */ +exports.createBootMessageBuffer = (bootCodeBufferLength) => { + const bootMessageBufferSize = BOOT_MESSAGE_BOOTCODE_LENGTH_SIZE + BOOT_MESSAGE_SIGNATURE_SIZE + + // Buffers are automatically filled with zero bytes + const bootMessageBuffer = Buffer.alloc(bootMessageBufferSize) + + // The bootcode length should be stored in 4 big-endian bytes + bootMessageBuffer.writeInt32BE(bootCodeBufferLength, BOOT_MESSAGE_BOOTCODE_LENGTH_OFFSET) + + return bootMessageBuffer +} + +/** + * @summary Parse a file message buffer from a device + * @function + * @public + * + * @param {Buffer} fileMessageBuffer - file message buffer + * @returns {Object} parsed file message + * + * @example + * const usb = require('usb') + * const device = usb.findByIds(0x0a5c, 0x2763) + * + * return protocol.read(device, protocol.FILE_MESSAGE_SIZE).then((fileMessageBuffer) => { + * return protocol.parseFileMessageBuffer(fileMessageBuffer) + * }).then((fileMessage) => { + * console.log(fileMessage.command) + * console.log(fileMessage.fileName) + * }) + */ +exports.parseFileMessageBuffer = (fileMessageBuffer) => { + const commandCode = fileMessageBuffer.readInt32LE(FILE_MESSAGE_COMMAND_OFFSET) + const command = _.nth([ + exports.FILE_MESSAGE_COMMANDS.GET_FILE_SIZE, + exports.FILE_MESSAGE_COMMANDS.READ_FILE, + exports.FILE_MESSAGE_COMMANDS.DONE + ], commandCode) + + if (_.isNil(command)) { + throw new Error(`Invalid file message command code: ${commandCode}`) + } + + const fileName = _.chain(fileMessageBuffer.toString('ascii', FILE_MESSAGE_FILE_NAME_OFFSET)) + + // The parsed string will likely contain tons of trailing + // null bytes that we should get rid of for convenience + // See https://github.com/nodejs/node/issues/4775 + .takeWhile((character) => { + return character !== '\0' + }) + .join('') + .value() + + // A blank file name can also mean "done" + if (_.isEmpty(fileName)) { + return { + command: exports.FILE_MESSAGE_COMMANDS.DONE + } + } + + return { + command, + fileName + } +} diff --git a/lib/shared/sdk/usbboot/usb.js b/lib/shared/sdk/usbboot/usb.js new file mode 100644 index 00000000..6ae844a9 --- /dev/null +++ b/lib/shared/sdk/usbboot/usb.js @@ -0,0 +1,161 @@ +/* + * Copyright 2017 resin.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict' + +const _ = require('lodash') +const Bluebird = require('bluebird') + +// The USB module calls `libusb_init`, which will fail +// if the device we're running in has no USB controller +// plugged in (e.g. in certain CI services). +// In order to workaround that, we need to return a +// stub if such error occurs. +const usb = (() => { + try { + return require('usb') + } catch (error) { + return { + getDeviceList: _.constant([]) + } + } +})() + +// Re-expose some `usb` constants +_.each([ + 'LIBUSB_REQUEST_TYPE_VENDOR', + 'LIBUSB_ENDPOINT_IN', + 'LIBUSB_TRANSFER_TYPE_BULK', + 'LIBUSB_ERROR_NO_DEVICE', + 'LIBUSB_ERROR_IO' +], (constant) => { + exports[constant] = usb[constant] +}) + +/** + * @summary List the available USB devices + * @function + * @public + * + * @fulfil {Object[]} - usb devices + * @returns {Promise} + * + * @example + * usb.listDevices().each((device) => { + * console.log(device) + * }) + */ +exports.listDevices = () => { + return Bluebird.resolve(usb.getDeviceList()) +} + +/** + * @summary Get a USB device string from an index + * @function + * @public + * + * @param {Object} device - device + * @param {Number} index - string index + * @fulfil {String} - string + * @returns {Promise} + * + * @example + * usb.getDeviceStringFromIndex({ ... }, 5).then((string) => { + * console.log(string) + * }) + */ +exports.getDeviceStringFromIndex = (device, index) => { + return Bluebird.fromCallback((callback) => { + device.getStringDescriptor(index, callback) + }) +} + +/** + * @summary Perform a USB control transfer + * @function + * @public + * + * @description + * See http://libusb.sourceforge.net/api-1.0/group__syncio.html + * + * @param {Object} device - usb device + * @param {Object} options - options + * @param {Number} options.bmRequestType - the request type field for the setup packet + * @param {Number} options.bRequest - the request field for the setup packet + * @param {Number} options.wValue - the value field for the setup packet + * @param {Number} options.wIndex - the index field for the setup packet + * @param {Buffer} [options.data] - output data buffer (for OUT transfers) + * @param {Number} [options.length] - input data size (for IN transfers) + * @fulfil {(Buffer|Undefined)} - result + * @returns {Promise} + * + * @example + * const buffer = Buffer.alloc(512) + * + * usb.performControlTransfer({ ... }, { + * bmRequestType: usb.LIBUSB_REQUEST_TYPE_VENDOR + * bRequest: 0, + * wValue: buffer.length & 0xffff, + * wIndex: buffer.length >> 16, + * data: Buffer.alloc(256) + * }) + */ +exports.performControlTransfer = (device, options) => { + if (_.isNil(options.data) && _.isNil(options.length)) { + return Bluebird.reject(new Error('You must define either data or length')) + } + + if (!_.isNil(options.data) && !_.isNil(options.length)) { + return Bluebird.reject(new Error('You can define either data or length, but not both')) + } + + return Bluebird.fromCallback((callback) => { + device.controlTransfer( + options.bmRequestType, + options.bRequest, + options.wValue, + options.wIndex, + options.data || options.length, + callback + ) + }) +} + +/** + * @summary Get a human friendly name for a USB device + * @function + * @public + * + * @description + * This function assumes the device is open. + * + * @param {Object} device - usb device + * @fulfil {String} - device name + * @returns {Promise} + * + * @example + * usb.getDeviceName({ ... }).then((name) => { + * console.log(name) + * }) + */ +exports.getDeviceName = (device) => { + return Bluebird.props({ + manufacturer: exports.getDeviceStringFromIndex(device, device.deviceDescriptor.iManufacturer), + product: exports.getDeviceStringFromIndex(device, device.deviceDescriptor.iProduct) + }).tap((properties) => { + return `${properties.manufacturer} ${properties.product}` + }) +} diff --git a/lib/shared/store.js b/lib/shared/store.js index 6141ea0c..b244f8d3 100644 --- a/lib/shared/store.js +++ b/lib/shared/store.js @@ -120,6 +120,9 @@ const storeReducer = (state = DEFAULT_STATE, action) => { }) } + // Convert object instances to plain objects + action.data = JSON.parse(JSON.stringify(action.data)) + if (!_.isArray(action.data) || !_.every(action.data, _.isPlainObject)) { throw errors.createError({ title: `Invalid drives: ${action.data}` diff --git a/lib/start.js b/lib/start.js index 4462945e..75e9d4d8 100644 --- a/lib/start.js +++ b/lib/start.js @@ -16,6 +16,8 @@ 'use strict' +process.env.DEBUG = `sdk:usbboot,${process.env.DEBUG}` + // See http://electron.atom.io/docs/v0.37.7/api/environment-variables/#electronrunasnode // // Notice that if running electron with `ELECTRON_RUN_AS_NODE`, the binary diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index eaa2b5b0..d34f27b9 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -56,8 +56,7 @@ "abbrev": { "version": "1.1.0", "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz" }, "acorn": { "version": "4.0.11", @@ -229,8 +228,7 @@ "aproba": { "version": "1.1.1", "from": "aproba@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz" }, "arch": { "version": "2.1.0", @@ -240,8 +238,7 @@ "are-we-there-yet": { "version": "1.1.2", "from": "are-we-there-yet@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz" }, "argparse": { "version": "1.0.7", @@ -447,8 +444,7 @@ "balanced-match": { "version": "0.4.2", "from": "balanced-match@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" }, "base64-js": { "version": "0.0.8", @@ -489,8 +485,7 @@ "block-stream": { "version": "0.0.9", "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz" }, "bloodline": { "version": "1.0.1", @@ -599,8 +594,7 @@ "brace-expansion": { "version": "1.1.6", "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz" }, "braces": { "version": "1.8.5", @@ -913,8 +907,7 @@ "concat-map": { "version": "0.0.1", "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" }, "concat-stream": { "version": "1.5.2", @@ -951,8 +944,7 @@ "console-control-strings": { "version": "1.1.0", "from": "console-control-strings@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" }, "contains-path": { "version": "0.1.0", @@ -1142,8 +1134,7 @@ "deep-extend": { "version": "0.4.1", "from": "deep-extend@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" }, "deep-is": { "version": "0.1.3", @@ -1254,8 +1245,7 @@ "delegates": { "version": "1.0.0", "from": "delegates@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" }, "detect-node": { "version": "2.0.3", @@ -2593,14 +2583,17 @@ "fs.realpath": { "version": "1.0.0", "from": "fs.realpath@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" }, "fstream": { "version": "1.0.11", "from": "fstream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz" + }, + "fstream-ignore": { + "version": "1.0.5", + "from": "fstream-ignore@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz" }, "ftp": { "version": "0.3.10", @@ -2625,8 +2618,7 @@ "gauge": { "version": "2.7.3", "from": "gauge@>=2.7.1 <2.8.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz" }, "gaze": { "version": "1.1.2", @@ -2721,8 +2713,7 @@ "glob": { "version": "7.1.1", "from": "glob@>=7.1.0 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" }, "glob-base": { "version": "0.3.0", @@ -2836,8 +2827,7 @@ "graceful-fs": { "version": "4.1.11", "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" }, "graceful-readlink": { "version": "1.0.1", @@ -2914,8 +2904,7 @@ "has-unicode": { "version": "2.0.1", "from": "has-unicode@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" }, "has-values": { "version": "0.1.4", @@ -3086,8 +3075,7 @@ "inflight": { "version": "1.0.6", "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" }, "inherits": { "version": "2.0.1", @@ -3097,8 +3085,7 @@ "ini": { "version": "1.3.4", "from": "ini@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, "inquirer": { "version": "0.11.4", @@ -4554,8 +4541,7 @@ "minimatch": { "version": "3.0.3", "from": "minimatch@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz" }, "minimist": { "version": "1.2.0", @@ -4590,13 +4576,11 @@ "version": "0.5.1", "from": "mkdirp@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dev": true, "dependencies": { "minimist": { "version": "0.0.8", "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, @@ -4900,6 +4884,23 @@ "from": "node-ipc@8.9.2", "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-8.9.2.tgz" }, + "node-pre-gyp": { + "version": "0.6.36", + "from": "node-pre-gyp@>=0.6.30 <0.7.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", + "dependencies": { + "nopt": { + "version": "4.0.1", + "from": "nopt@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz" + }, + "semver": { + "version": "5.4.1", + "from": "semver@>=5.3.0 <6.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" + } + } + }, "node-sass": { "version": "4.5.3", "from": "node-sass@4.5.3", @@ -4958,13 +4959,11 @@ "version": "4.0.2", "from": "npmlog@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", - "dev": true, "dependencies": { "set-blocking": { "version": "2.0.0", "from": "set-blocking@~2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" } } }, @@ -8206,8 +8205,7 @@ "os-homedir": { "version": "1.0.2", "from": "os-homedir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" }, "os-locale": { "version": "1.4.0", @@ -8222,8 +8220,7 @@ "osenv": { "version": "0.1.4", "from": "osenv@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz" }, "p-finally": { "version": "1.0.0", @@ -8337,8 +8334,7 @@ "path-is-absolute": { "version": "1.0.1", "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" }, "path-is-inside": { "version": "1.0.2", @@ -8622,8 +8618,7 @@ "rc": { "version": "1.1.7", "from": "rc@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz" }, "react": { "version": "15.5.4", @@ -8987,8 +8982,7 @@ "rimraf": { "version": "2.6.1", "from": "rimraf@>=2.5.2 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz" }, "run-async": { "version": "0.1.0", @@ -9495,8 +9489,7 @@ "strip-json-comments": { "version": "2.0.1", "from": "strip-json-comments@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" }, "striptags": { "version": "2.2.1", @@ -9617,8 +9610,12 @@ "tar": { "version": "2.2.1", "from": "tar@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" + }, + "tar-pack": { + "version": "3.4.0", + "from": "tar-pack@>=3.4.0 <4.0.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz" }, "tempfile": { "version": "1.1.1", @@ -9896,6 +9893,11 @@ "dev": true, "optional": true }, + "uid-number": { + "version": "0.0.6", + "from": "uid-number@>=0.0.6 <0.0.7", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" + }, "uid2": { "version": "0.0.3", "from": "uid2@0.0.3", @@ -9974,6 +9976,18 @@ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "dev": true }, + "usb": { + "version": "1.3.0", + "from": "tessel/node-usb#1.3.0", + "resolved": "git://github.com/tessel/node-usb.git#38cc9cc75759e74f3d3ee8c79ca852395c3529b0", + "dependencies": { + "nan": { + "version": "2.6.2", + "from": "nan@>=2.4.0 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz" + } + } + }, "user-home": { "version": "2.0.0", "from": "user-home@>=2.0.0 <3.0.0", @@ -10099,8 +10113,7 @@ "wide-align": { "version": "1.1.0", "from": "wide-align@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz" }, "widest-line": { "version": "1.0.0", diff --git a/package.json b/package.json index 3f9cc884..29df491f 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "bootstrap-sass": "3.3.6", "chalk": "1.1.3", "command-join": "2.0.0", + "debug": "2.6.0", "drivelist": "5.1.8", "electron-is-running-in-asar": "1.0.0", "etcher-image-write": "9.1.3", @@ -82,6 +83,7 @@ "trackjs": "2.3.1", "udif": "0.10.0", "unbzip2-stream": "1.0.11", + "usb": "github:tessel/node-usb#1.3.0", "uuid": "3.0.1", "xml2js": "0.4.17", "yargs": "4.7.1", diff --git a/scripts/build/docker/Dockerfile-i686 b/scripts/build/docker/Dockerfile-i686 index 8adfc84e..c6c35703 100644 --- a/scripts/build/docker/Dockerfile-i686 +++ b/scripts/build/docker/Dockerfile-i686 @@ -21,8 +21,10 @@ RUN apt-get update \ libasound2 \ libgconf-2-4 \ libgtk2.0-0 \ - libx11-xcb1 \ + libudev-dev \ + libusb-1.0-0-dev \ libnss3 \ + libx11-xcb1 \ libxss1 \ libxtst6 \ libyaml-dev \ diff --git a/scripts/build/docker/Dockerfile-x86_64 b/scripts/build/docker/Dockerfile-x86_64 index d4803409..d26b3d04 100644 --- a/scripts/build/docker/Dockerfile-x86_64 +++ b/scripts/build/docker/Dockerfile-x86_64 @@ -20,8 +20,10 @@ RUN apt-get update \ libasound2 \ libgconf-2-4 \ libgtk2.0-0 \ - libx11-xcb1 \ + libudev-dev \ + libusb-1.0-0-dev \ libnss3 \ + libx11-xcb1 \ libxss1 \ libxtst6 \ libyaml-dev \ diff --git a/scripts/build/docker/Dockerfile.template b/scripts/build/docker/Dockerfile.template index 327b6de0..e18e6dc7 100644 --- a/scripts/build/docker/Dockerfile.template +++ b/scripts/build/docker/Dockerfile.template @@ -25,8 +25,10 @@ RUN apt-get update \ libasound2 \ libgconf-2-4 \ libgtk2.0-0 \ - libx11-xcb1 \ + libudev-dev \ + libusb-1.0-0-dev \ libnss3 \ + libx11-xcb1 \ libxss1 \ libxtst6 \ libyaml-dev \ diff --git a/tests/shared/models/available-drives.spec.js b/tests/shared/models/available-drives.spec.js index 84d57e54..27f2c17c 100644 --- a/tests/shared/models/available-drives.spec.js +++ b/tests/shared/models/available-drives.spec.js @@ -74,6 +74,27 @@ describe('Model: availableDrives', function () { m.chai.expect(availableDrives.getDrives()).to.deep.equal(drives) }) + it('should be able to set non-plain drive objects', function () { + class Device { + constructor () { + this.device = '/dev/sdb' + this.description = 'Foo' + this.mountpoint = '/mnt/foo' + this.system = false + } + } + + availableDrives.setDrives([ new Device() ]) + m.chai.expect(availableDrives.getDrives()).to.deep.equal([ + { + device: '/dev/sdb', + description: 'Foo', + mountpoint: '/mnt/foo', + system: false + } + ]) + }) + it('should be able to set drives with extra properties', function () { const drives = [ {