#tablet #programs #now #update #further #complete #button

nightly remarkable

reMarkable平板电脑的程序集合

1 个不稳定版本

使用旧的Rust 2015

0.0.1 2018年4月6日

#6 in #tablet

MIT 许可证

1MB
1.5K SLoC

reMarkable.rs - 为reMarkable平板电脑开发

来源说明

该项目最初是从 (https://github.com/canselcik/libremarkable) 分支出来的。

从低延迟的电子墨水屏部分更新到至少最小的多点触控、物理按钮和Wacom Digitizer输入,现在都已理解,并且可以在本存储库中找到它们的最小到完整的实现。

本存储库的重点现在将转向提供这些功能的Rust库。

在Rust实现似乎与C实现相矛盾的情况下,可以以前者作为真相的来源,因为 libremarkable 的C实现是在探索阶段首次出现的。

有关进一步文档,请参阅 wiki

构建说明

设置工具链

为了构建 libremarkable 和示例(spy.sodemo),在将适当的工具链安装到您的 $PATH 之后,您将需要以下配置。使用 arm-linux-gnueabihf-gcc 工具链构建两个实现。

从以下任何一个来源获得的工具链都可用于为Remarkable平板电脑交叉编译

AUR:
  https://aur.archlinux.org/packages/arm-linux-gnueabihf-gcc/
Remarkable:
  https://remarkable.engineering/deploy/sdk/poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-2.1.3.sh

然后,您可以使用以下命令设置您的Rust工具链以进行交叉编译: rustup target add --toolchain=nightly armv7-unknown-linux-gnueabihf

构建libremarkable和示例

为了方便起见,创建了一个简单的Makefile包装器。它公开以下动词

  • examples:构建示例
  • library:构建库
  • all:库 + 示例

在设备上测试libremarkable和示例

提供的 Makefile 假设设备可达 10.11.99.1,并且为 SSH 配置了基于密钥的认证,这样每次连接时您就无需输入密码。以下操作可供选择:

  • run:在停止 xochitl 后,在设备上构建并运行 demo.rs
  • start-xochitl:停止所有 xochitldemo 实例,并正常启动 xochitl
  • spy-xochitl:构建 spy.rs 并将其预加载到 xochitl 的新实例中。在停止当前实例后。这允许发现官方程序在调用 ioctl 时的新枚举。

手动构建的进一步构建说明

如果您选择跳过 Makefile 并直接调用 cargo,请确保将 --release --target=armv7-unknown-linux-gnueabihf 包含在您的参数中,例如:

➜  rust-poc git:(master) ✗ cargo build --release --target=armv7-unknown-linux-gnueabihf
   ...
   Compiling libremarkable v0.1.0 (file:///home/main/Desktop/libremarkable)
   Compiling rust-poc v0.1.0 (file:///home/main/Desktop/RemarkableFramebuffer/rust-poc)
    Finished dev [unoptimized + debuginfo] target(s) in 24.85 secs

--release 参数很重要,因为它可以启用优化。没有优化,即使处于空闲状态,CPU利用率也会达到 ~70%。启用优化后,框架运行得非常轻量,空闲时 CPU 利用率为 0%,峰值时为 1-2%。

依赖项

~16MB
~145K SLoC