diff --git a/tools/ade b/tools/ade index f4fc36573081ad2b4e68844ed69b6c8d007a4024..d8668c793c92ae140e3a4cad0219f8454f9dcf71 100755 --- a/tools/ade +++ b/tools/ade @@ -134,16 +134,17 @@ class Colors: class TargetTriplet: - SUPPORTED = { - 'armhf': "arm-linux-gnueabihf", - 'arm64': "aarch64-linux-gnu", - 'x86_64': "x86_64-linux-gnu" - } + # Machine name, dpkg architecture, gnu triplet + SUPPORTED = [ + [ 'armv7l', "armhf", "arm-linux-gnueabihf" ], + [ 'aarch64',"arm64", "aarch64-linux-gnu" ], + [ 'x86_64', "amd64", "x86_64-linux-gnu" ], + ] def __init__(self, string): - for items in self.SUPPORTED.items(): + for items in self.SUPPORTED: if string in items: - self.arch, self.triplet = items + self.machine, self.arch, self.triplet = items return raise NotSupportedError @@ -208,9 +209,11 @@ class Device: print(e) raise InvalidDeviceError("No image_version file found") a = self._exec('uname', '-m') - if a not in TargetTriplet.SUPPORTED: + try: + triplet = TargetTriplet (a) + except NotSupportedError: raise InvalidDeviceError("Unsupported architecture {}".format(a)) - self.version.arch = a + self.version.arch = triplet.arch class SysrootVersion: