LedgerHQ / ledger-live-desktop

⛔️ DEPRECATED - Ledger Live (Desktop)
https://www.ledger.com/live
MIT License
954 stars 301 forks source link

Please create a Ledger Live AppImage supporting ARM/Raspberry PI #1131

Open StayCoolDK opened 6 years ago

StayCoolDK commented 6 years ago

Since the current linux AppImage is x86/64 the following error occurs:

pi@raspberrypi:~ $ ./ledger-live-desktop-1.0.2-linux-x86_64.AppImage bash: ./ledger-live-desktop-1.0.2-linux-x86_64.AppImage: cannot execute binary file: Exec format error

Do you have any plans of creating an AppImage for ARM?

gre commented 6 years ago

I guess we could have this platform supported yes. We probably first will look at automating our current build because today workflow requires 3 machines already. If we have this automated, it will get way easier to add more platforms

StayCoolDK commented 6 years ago

Alright that makes sense. Thanks gre! Fantastic work so far.

StayCoolDK commented 6 years ago

Hey again gre, i know you're busy working on the mobile apps for the Q4 release but i wanted to ask you if there was an ETA on this feature? How far are you with automating your build proces?

1989gironimo commented 5 years ago

Interested as well, because I want to use it on the future Librem 5 phone, which is an ARM device.

flogger007 commented 5 years ago

Hi,

I have a raspberry Pi as backup of my laptop which is not working for last 1 month. I can't access my coins now till I get my laptop repaired. Please provide appimage for ARM too. Access to coins is crucial.

gre commented 5 years ago

we have recently started a commandline version of ledger-live (for test purpose at the moment) but that use the same low level libraries. You can install it with npm i -g ledger-live with Node 8, can you try if it works?

That would be the first step for us to know if the basic stack works. typically you can check if ledger-live version works, and then you can try to plug a device, open an app (like Bitcoin app), and see if ledger-live sync find your accounts. (only Bitcoin and altcoins are supported. not yet XRP nor ETH)

louisabraham commented 4 years ago

+1, I have an ARM laptop.

npm i -g ledger-live gives

npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated core-js@1.2.7: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.

> @ledgerhq/ledger-core@6.0.0-rc.5 preinstall /usr/lib/node_modules/ledger-live/node_modules/@ledgerhq/ledger-core
> node preinstall.js

fs.js:114
    throw err;
    ^

Error: EACCES: permission denied, mkdir 'lib'
    at Object.mkdirSync (fs.js:757:3)
    at Object.<anonymous> (/usr/lib/node_modules/ledger-live/node_modules/@ledgerhq/ledger-core/preinstall.js:38:6)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
npm WARN ledger-live@12.0.3 requires a peer of @ledgerhq/hw-transport-node-ble@5.7.0 but none is installed. You must install peer dependencies yourself.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ledgerhq/ledger-core@6.0.0-rc.5 preinstall: `node preinstall.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ledgerhq/ledger-core@6.0.0-rc.5 preinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-02-27T20_38_46_631Z-debug.log
gre commented 4 years ago

this seems like a folder permission, how did you install node?

louisabraham commented 4 years ago

As a root:

curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs

I got these instructions from the nodejs website for Debian.

gre commented 4 years ago
louisabraham commented 4 years ago

Thank you for your answer @gre. I launched it as root and had the exact same error message.

rphmeier commented 4 years ago

Lately I've been playing around with using a ledger on a Raspberry pi. I understand that maintaining an app image for this arch is a large support burden, but I haven't been able to build from source either.

Installation of the command-line ledger-live package from NPM fails for the same reason the ledger-live-desktop cannot build: ledger-core does not seem to successfully build for this architecture. When building the dependencies of ledger-live-desktop, I encounter a load of warnings about bad casts (perhaps some deeply-based pointer-width assumptions). Although the build succeeded, the generated ledger-core.so seemed to have been generated with an unlinkable format that the node bindings did not accept.

Unfortunately, none of the browser-based apps for ledger (MyCrypto, MyEtherWallet) seem to function with the ledger either, possibly due to outdated firmware or bad U2F implementations.

@gre I'd be very interested to hear any information on what prevents ledger-core from compiling for an arm32 target, as it seems this is currently done already for the Android and perhaps iOS targets. I do understand that the Ledger organization may not want to commit to supporting releases for this target, although I (with only outside knowledge) would not expect that being able to build from source will need many changes, given a functioning libusb-1.0.0-dev.

rphmeier commented 4 years ago

Just to try it, I was not able to successfully build https://github.com/LedgerHQ/lib-ledger-core repository on raspberry pi.

I configured with this invocation:

cmake -DBUILD_TESTS=OFF ../lib-ledger-core

I did not want to install qt5 or run tests so I disabled them.

All relevant make targets failed at the install step for secp256k1, although the error is very opaque and I have not been able to figure out the cause. The referenced log file also does not exist.

robert@bumblebee:~/ledger-src/lib-ledger-core-build$ make
[  0%] Performing install step for 'secp256k1'
CMake Error at secp256k1-install-Release.cmake:16 (message):
  Command failed: 2

   'make' 'install'

  See also

    /home/robert/ledger-src/lib-ledger-core-build/core/lib/secp256k1/secp256k1-install-*.log

make[2]: *** [core/lib/CMakeFiles/secp256k1.dir/build.make:74: core/lib/secp256k1/secp256k1-install] Error 1
make[1]: *** [CMakeFiles/Makefile2:159: core/lib/CMakeFiles/secp256k1.dir/all] Error 2
make: *** [Makefile:163: all] Error 2
matze19999 commented 4 years ago

@gre I tried to install ledger-live on winonarm with this command: npm i -g ledger-live --nodedir --force

But I got this error while installing:

if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp: C:\Users\proel\AppData\Roaming\npm\node_modules\ledger-live\node_modules\keccak\true\common.gypi not found (cwd: C:\Users\proel\AppData\Roaming\npm\node_modules\ledger-live\node_modules\keccak) while reading includes of binding.gyp while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Windows_NT 10.0.19645
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\proel\AppData\Roaming\npm\node_modules\ledger-live\node_modules\keccak
gyp ERR! node -v v15.0.0-pre
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
lfritts commented 4 years ago

I would like to have this feature. Just ordered Ledger and want to be able to use on my rasp pi that is my eth node.

dish-eme-sdr commented 3 years ago

For about the past year I have been using the recent Raspberry Pi 4 and 8 GB models (both with dual monitors), and I am so impressed with the performance that I am no longer using nor maintaining my x86 or IOS devices.

When I bought my ledger X and S I remember checking to see that Linux is supported but missed the no ARM support. I'm now having to consider scrapping all Ledger products and going another route due to lack of support on the Raspberry Pi.

I don't understand what the issue is as Android IS supported and many Android devices are using ARM processors. (?????)

I just wanted it to be known that there is growing interest in getting Ledger support on the Raspberry Pi and in the future lack of support for the Pi may start to cause a loss of sales as more people grow tired of x86 and IOS devices.

huglester commented 3 years ago

probably would be good to make ledger live supporting ARM, since MacOS is now on ARM.

jackgoh commented 3 years ago

Brought my ledger nano x and realized it does not support ARM, the only option are sell it for half of the price and buy a trezor

matze19999 commented 3 years ago

Brought my ledger nano x and realized it does not support ARM, the only option are sell it for half of the price and buy a trezor

Nobody will buy a used ledger and why didn't check the arm support first?

zvictor commented 3 years ago

probably would be good to make ledger live supporting ARM, since MacOS is now on ARM.

I was thinking the same. I just bought my first Raspberry and I plan on moving to Apple's M1 later this year. The hype is real! 😅

huglester commented 3 years ago

Installed Ledger Live on M1. works

antichris commented 3 years ago

Installed Ledger Live on M1. works

That's due to Rosetta 2, not because ARM would be deliberately supported by Ledger Live. Also, fyi, apple is not the same fruit as raspberry, which this issue is about.

rroels commented 3 years ago

I would also be interested in an ARM build. Wanted to move all my crypto stuff to a Pinebook Pro (ARM), but was sad to see Ledger Live doesn't run there. As I understood it it's mostly a matter of creating a new build pipeline, so I'm hoping this will be considered in the near future.

antichris commented 3 years ago

Whew. Took a while, but https://github.com/antichris/ledobe is ready. :tada:

Feedback much appreciated.

rroels commented 3 years ago

@antichris that's amazing!

I just gave it try, and it works perfectly on my Pinebook Pro (arm64). I just followed the instructions, everything went smoothly, and at the end I got a working app-image for Ledger Live Desktop.

To get it to recognise my device I had to sudo chmod 666 /dev/hidraw2 as mentioned here, but that's unrelated to LeDoBe.

Thanks a lot for your hard work, this is really useful for me!

antichris commented 3 years ago

@rroels I am really glad to hear it worked for you! And thanks for the tip on USB connectivity workaround, I'll look into I integrating that knowledge into my project.

nixorokish commented 3 years ago

Any update on this build? @gre

dominicdp commented 2 years ago

Whew. Took a while, but https://github.com/antichris/ledobe is ready. tada

Feedback much appreciated.

Thanks a lot for your efforts. I do however get errors after running bin/build:

E: Version '202101190.04.1' for 'ca-certificates' was not found The command '/bin/sh -c set -x && apt-get update && apt-get install -y --no-install-suggests --no-install-recommends ca-certificates=2021011920.04.1 wget=1.20.3-1ubuntu1' returned a non-zero code: 100

Afterwards when I try to run bin/run make I get the following error:

Unable to find image 'ledobe:latest' locally docker: Error response from daemon: pull access denied for ledobe, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

I'm running Ubuntu 21.04 on RPI 4.

Thanks!

antichris commented 2 years ago

@dominicdp A security update was released for ca-certificates last month, that's why. I just pushed a fix for this and another potential build failure: please, try building the latest master now, If successful, do let me know, and I'll make a new release.

In the future, though, do not hesitate to take the discussion to the ledobe repo, since this current issue here we're having this discussion at right now is something for the LedgerHQ guys to resolve and not about that project of mine.

(antichris/ledobe: Build Ledger Live components in an isolated Docker environment with persistence between sessions.)

dominicdp commented 2 years ago

@antichris Sorry, you're right..I'm new to this but will take the discussion where it belongs in the future. For what it's worth: I was able to build successfully, I think... but how do I run it now?

antichris commented 2 years ago

@dominicdp The LL Desktop app build artifacts (including the .AppImage) should end up under its dist/ directory, which is located at desktop/ under the build directory (build/ in your ledobe working directory by default).

"Build - ledger-live-desktop/README.md at develop · LedgerHQ/ledger-live-desktop"

Waxxx333 commented 2 years ago

I don't understand how building an ARM capable binary isn't on the top of Ledger's list. A Raspberry Pi is probably the most feasible device for airgapping.