Also add a shell.nix

This commit is contained in:
Rien Maertens 2021-11-04 16:58:13 +01:00
parent 58a28c2715
commit 85f4104796
No known key found for this signature in database
GPG Key ID: AE66CE42F1AF9DEF
4 changed files with 41 additions and 33 deletions

View File

@ -172,14 +172,11 @@ If you want to play with the `restream` code, you will have to [install Rust](ht
There are three ways of building the required restream binary for streaming the reMarkable framebuffer. For these approaches, the generated restream binary will be located under `target/armv7-unknown-linux-gnueabihf/release/restream`.
- **Using nix flakes**
With [Nix](https://nixos.org/guides/install-nix.html) installed and
[Nix flakes](https://nixos.wiki/wiki/Flakes#Installing_flakes) enabled, you
can easily setup the devlopment environment with:
```
nix develop
```
With [Nix](https://nixos.org/guides/install-nix.html) installed you can
create the development environment with `nix-shell` or (when using
[Nix flakes](https://nixos.wiki/wiki/Flakes#Installing_flakes) `nix-develop`.
After which you can simply run `cargo build --release` to build the restream
binary.
binary on your machine.
- **Using docker and the toltec toolchain:**
You can use the [toltec toolchain docker images](https://github.com/toltec-dev/toolchain) to build a restream binary compatible with the reMarkable.

27
default.nix Normal file
View File

@ -0,0 +1,27 @@
{
devShell = pkgs: with pkgs; mkShell {
buildInputs = [
remarkable-toolchain
(rust-bin.stable.latest.default.override {
targets = [ "armv7-unknown-linux-gnueabihf" ];
extensions = [ "rust-src" ];
})
openssl.dev
pkg-config
cargo-watch
cargo-limit
shellcheck
lz4
];
CARGO_BUILD_TARGET="armv7-unknown-linux-gnueabihf";
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER="${pkgs.remarkable-toolchain}/sysroots/x86_64-codexsdk-linux/usr/bin/arm-remarkable-linux-gnueabi/arm-remarkable-linux-gnueabi-gcc";
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUSTFLAGS=[
"-C link-arg=-march=armv7-a"
"-C link-arg=-marm"
"-C link-arg=-mfpu=neon"
"-C link-arg=-mfloat-abi=hard"
"-C link-arg=-mcpu=cortex-a9"
"-C link-arg=--sysroot=${pkgs.remarkable-toolchain}/sysroots/cortexa9hf-neon-remarkable-linux-gnueabi"
];
};
}

View File

@ -20,30 +20,6 @@
in
with pkgs;
{
devShell = mkShell {
buildInputs = [
remarkable-toolchain
(rust-bin.stable.latest.default.override {
targets = [ "armv7-unknown-linux-gnueabihf" ];
extensions = [ "rust-src" ];
})
openssl.dev
pkg-config
cargo-watch
cargo-limit
shellcheck
lz4
];
CARGO_BUILD_TARGET="armv7-unknown-linux-gnueabihf";
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER="${pkgs.remarkable-toolchain}/sysroots/x86_64-codexsdk-linux/usr/bin/arm-remarkable-linux-gnueabi/arm-remarkable-linux-gnueabi-gcc";
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUSTFLAGS=[
"-C link-arg=-march=armv7-a"
"-C link-arg=-marm"
"-C link-arg=-mfpu=neon"
"-C link-arg=-mfloat-abi=hard"
"-C link-arg=-mcpu=cortex-a9"
"-C link-arg=--sysroot=${pkgs.remarkable-toolchain}/sysroots/cortexa9hf-neon-remarkable-linux-gnueabi"
];
};
devShell = (import ./default.nix).devShell pkgs;
});
}

8
shell.nix Normal file
View File

@ -0,0 +1,8 @@
let
pkgs = import <nixpkgs> {
overlays = [
(import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"))
];
};
reStreamDev = import ./default.nix;
in reStreamDev.devShell pkgs