mirror of
https://github.com/balena-io/etcher.git
synced 2025-04-25 07:47:18 +00:00
feat(driverless) show driverless devices
This commit is contained in:
parent
47937d6aaa
commit
6b270885bf
@ -232,6 +232,60 @@ app.run(() => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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 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 Compute module descriptions
|
||||||
|
* @type {Object}
|
||||||
|
* @constant
|
||||||
|
*/
|
||||||
|
const COMPUTE_MODULE_DESCRIPTIONS = {
|
||||||
|
[USB_PRODUCT_ID_BCM2708_BOOT]: 'Compute Module 1',
|
||||||
|
[USB_PRODUCT_ID_BCM2710_BOOT]: 'Compute Module 3'
|
||||||
|
}
|
||||||
|
|
||||||
app.run(($timeout) => {
|
app.run(($timeout) => {
|
||||||
const BLACKLISTED_DRIVES = settings.has('driveBlacklist')
|
const BLACKLISTED_DRIVES = settings.has('driveBlacklist')
|
||||||
? settings.get('driveBlacklist').split(',')
|
? settings.get('driveBlacklist').split(',')
|
||||||
@ -259,6 +313,27 @@ app.run(($timeout) => {
|
|||||||
updateDriveProgress(drive, progress)
|
updateDriveProgress(drive, progress)
|
||||||
})
|
})
|
||||||
return drive
|
return drive
|
||||||
|
} else if (drive instanceof sdk.sourceDestination.DriverlessDevice) {
|
||||||
|
const description = COMPUTE_MODULE_DESCRIPTIONS[drive.deviceDescriptor.idProduct] || 'Compute Module'
|
||||||
|
return {
|
||||||
|
device: `${usbIdToString(drive.deviceDescriptor.idVendor)}:${usbIdToString(drive.deviceDescriptor.idProduct)}`,
|
||||||
|
displayName: 'Missing drivers',
|
||||||
|
description,
|
||||||
|
mountpoints: [],
|
||||||
|
isReadOnly: false,
|
||||||
|
isSystem: false,
|
||||||
|
disabled: true,
|
||||||
|
icon: 'warning',
|
||||||
|
size: null,
|
||||||
|
link: 'https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md',
|
||||||
|
linkCTA: 'Install',
|
||||||
|
linkTitle: 'Install missing drivers',
|
||||||
|
linkMessage: [
|
||||||
|
'Would you like to download the necessary drivers from the Raspberry Pi Foundation?',
|
||||||
|
'This will open your browser.\n\n',
|
||||||
|
'Once opened, download and run the installer from the "Windows Installer" section to install the drivers.'
|
||||||
|
].join(' ')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user