From 9b42960b2fdd3c6a20ff533dce75738c1b2b7333 Mon Sep 17 00:00:00 2001 From: Jonas Hermsmeier Date: Tue, 13 Mar 2018 15:08:40 +0100 Subject: [PATCH 1/4] fix(scanner): Enable usbboot on Linux if run as root This re-enables the usbboot scanner dynamically if Etcher is run as root on Linux. Change-Type: patch --- lib/gui/app/modules/drive-scanner.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/gui/app/modules/drive-scanner.js b/lib/gui/app/modules/drive-scanner.js index 6bc9e516..9cc307d8 100644 --- a/lib/gui/app/modules/drive-scanner.js +++ b/lib/gui/app/modules/drive-scanner.js @@ -22,6 +22,7 @@ const fs = Bluebird.promisifyAll(require('fs')) const path = require('path') const settings = require('../models/settings') const SDK = require('../../../sdk') +const permissions = require('../../../shared/permissions') /** * @summary The Etcher "blobs" directory path @@ -51,4 +52,15 @@ const scanner = SDK.createScanner({ } }) +// NOTE: Enable USBBoot on Linux if run as root +permissions.isElevated().then((elevated) => { + if (elevated && process.platform === 'linux') { + const UsbbootAdapter = require('../../../sdk/adapters/usbboot') + const adapter = new UsbbootAdapter() + scanner.stop() + scanner.subscribe(adapter) + scanner.start() + } +}).catch(_.noop) + module.exports = scanner From 2aa37571f0c1fcc7d6bfc7455c0332b82b3b979f Mon Sep 17 00:00:00 2001 From: Jonas Hermsmeier Date: Thu, 15 Mar 2018 16:41:38 +0100 Subject: [PATCH 2/4] fix(gui): Fix usbboot drive icon path Change-Type: patch --- .../drive-selector/templates/drive-selector-modal.tpl.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gui/app/components/drive-selector/templates/drive-selector-modal.tpl.html b/lib/gui/app/components/drive-selector/templates/drive-selector-modal.tpl.html index 084f5a23..4723e806 100644 --- a/lib/gui/app/components/drive-selector/templates/drive-selector-modal.tpl.html +++ b/lib/gui/app/components/drive-selector/templates/drive-selector-modal.tpl.html @@ -11,7 +11,7 @@ ng-click="modal.toggleDrive(drive)"> Drive device type logo
Date: Thu, 15 Mar 2018 16:42:34 +0100 Subject: [PATCH 3/4] fix(gui): Fix usbboot blob dir path Change-Type: patch --- lib/gui/app/modules/drive-scanner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gui/app/modules/drive-scanner.js b/lib/gui/app/modules/drive-scanner.js index 9cc307d8..dc5e4ff8 100644 --- a/lib/gui/app/modules/drive-scanner.js +++ b/lib/gui/app/modules/drive-scanner.js @@ -29,7 +29,7 @@ const permissions = require('../../../shared/permissions') * @type {String} * @constant */ -const BLOBS_DIRECTORY = path.join(__dirname, '..', '..', 'blobs') +const BLOBS_DIRECTORY = path.join(__dirname, '..', '..', '..', 'blobs') const scanner = SDK.createScanner({ blockdevice: { From 69c35f7f79229e723035492ba8ce5b567fd082ce Mon Sep 17 00:00:00 2001 From: Jonas Hermsmeier Date: Wed, 21 Mar 2018 20:21:24 +0100 Subject: [PATCH 4/4] fix(drive-scanner): Warn on usbboot load error on Linux Change-Type: patch --- lib/gui/app/modules/drive-scanner.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/gui/app/modules/drive-scanner.js b/lib/gui/app/modules/drive-scanner.js index dc5e4ff8..df72113c 100644 --- a/lib/gui/app/modules/drive-scanner.js +++ b/lib/gui/app/modules/drive-scanner.js @@ -61,6 +61,8 @@ permissions.isElevated().then((elevated) => { scanner.subscribe(adapter) scanner.start() } -}).catch(_.noop) +}).catch((error) => { + console.warn('Could not add usbboot adapter:', error) +}) module.exports = scanner