AWS CRT binary not present on linux-arm64/aws-crt-nodejs - Raspberry Pi 4+Ubuntu 20.10 Desktop
See original GitHub issueConfirm by changing [ ] to [x] below to ensure that it’s a bug:
- I’ve searched for previous similar issues and didn’t find any solution
Known Issue
- I’m using ATS data type endpoint: the endpoint should look like
<prefix>-ats.iot.<region>.amazonaws.com
Platform/OS/Hardware/Device Raspberry Pi 4 with Ubuntu Desktop 20.10 Desktop
to simplify the tests I’ve made, I’m using the following one-line code in index.js:
var awsIot = require('aws-iot-device-sdk-v2');
package.json dependences:
"dependencies": {
"aws-crt": "^1.3.4",
"aws-iot-device-sdk": "^2.2.6",
"aws-iot-device-sdk-v2": "^1.3.3",
"dotenv": "^8.2.0"
}
project was created/installed both with yarn and npm, without errors.
Question/Bug?
I successfully ran my complete code with aws-iot-device-sdk-js-v2 on Ubuntu 18 - Laptop.
When I tried to run my code on a Raspberry Pi 4 with Ubuntu Desktop 20.10 Desktop, I got the following message:
/home/renato/projects/aws-iot-device-sdk-js-v2/node_modules/aws-crt/dist/native/binding.js:60
throw new Error("AWS CRT binary not present in any of the following locations:\n\t" + search_paths.join('\n\t'));
^
Error: AWS CRT binary not present in any of the following locations:
/home/renato/projects/aws-iot-device-sdk-js-v2/node_modules/aws-crt/dist/bin/native/aws-crt-nodejs
/home/renato/projects/aws-iot-device-sdk-js-v2/node_modules/aws-crt/dist/bin/linux-arm64/aws-crt-nodejs
at Object.<anonymous> (/home/renato/projects/aws-iot-device-sdk-js-v2/node_modules/aws-crt/dist/native/binding.js:60:11)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/home/renato/projects/aws-iot-device-sdk-js-v2/node_modules/aws-crt/dist/native/crt.js:22:35)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
when I looked at the aws-iot-device-sdk-js-v2/node_modules/aws-crt/dist/bin/ folder, I could only find linux-x64,darwin-x64 and win32-x64 folders, nothing with arm64.
I investigated /node_modules/aws-crt/dist/native/binding.js but found no clues.
I’ve tried to clone the rep aws-iot-device-sdk-js-v2 in another folder and npm install, but the folder linux-arm64 wasnt created and I got the same error.
I suppose it is not compiling for linux-arm64… there is a way to compile for linux-arm64? Could someone give me the instructions?
May I missed some steps during instalation?
Issue Analytics
- State:
- Created 3 years ago
- Comments:5 (2 by maintainers)

Top Related StackOverflow Question
As noted here we have added this to our backlog. I am going to change this to a feature request so the status of this can be updated when prebuilt binaries are added.
Just a note on a closed issue: per aws-crt@1.8.5 and aws-iot-device-sdk-v2@1.5.5 we now bundle pre-built linux aarch64 binaries. This hopefully addresses raspberry pi 4/3 issues. armv7a support will be more difficult and will need to come at a later date.