Closed AaronDavidSchneider closed 4 years ago
no, you have to compile on a linux host (with the remarkable toolchain etc)
here's a compiled binary
https://github.com/ddvk/remarkable-stylus/releases/download/0.0.1/libqevdevlamyplugin.so
copy to /usr/lib/plugins/generic stop xochitl: systemctl stop xochitl start with the plugin xochitl -plugin evdevlamy
Awesome! It works!
Here are some Logs:
root@remarkable:~# systemctl stop xochitl
root@remarkable:~# xochitl -plugin evdevlamy
02:03.759 we're running on an epaper device (int main(int, char**) ../git/src/main.cpp:147)
02:03.761 QFSFileEngine::map: Mapping a file beyond its size is not portable
02:03.762 Framebuffer initialized: QImage(QSize(1404, 1872),format=7,depth=16,devicePixelRatio=1,bytesPerLine=2816,sizeInBytes=5271552) 10813440
02:03.769 EPD platform plugin loaded!
02:03.771 QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
02:03.779 evdevtouch: Using device discovery
02:03.786 evdevtouch: Adding device at "/dev/input/event1"
02:03.788 evdevtouch: Using device /dev/input/event1
02:03.811 lamy: Using device discovery
02:03.818 Adding device at "/dev/input/event0"
02:03.825 evdevtouch: /dev/input/event1: Protocol type B (multi), filtered=no
02:03.826 evdevtouch: /dev/input/event1: min X: 0 max X: 767
02:03.826 evdevtouch: /dev/input/event1: min Y: 0 max Y: 1023
02:03.826 evdevtouch: /dev/input/event1: min pressure: 0 max pressure: 0
02:03.826 evdevtouch: /dev/input/event1: device name: cyttsp5_mt
02:03.828 lamy: using /dev/input/event0
02:03.828 lamy: /dev/input/event0: device name: Wacom I2C Digitizer
02:03.861 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:03.861 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:04.215 DebugHelperClass bool WifiManager::onSupplicantAvailable() 75 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:04.216 DebugHelperClass void WifiManager::ifupdown() 77 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:04.219 Digitizer Digitizer "Wacom I2C Digitizer" initialized (Digitizer() ../git/src/epcanvas/digitizer.cpp:135)
02:06.609 Creating window
02:06.617 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:06.618 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:07.099 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:07.104 evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s)
02:07.115 WifiManager Unhandled attribute type 8 (parseNetlinkRouteMessage(const nlmsghdr*) ../git/src/wifimanager.cpp:1346)
02:07.116 WifiManager Got two gateways (parseNetlinkRouteMessage(const nlmsghdr*) ../git/src/wifimanager.cpp:1362)
02:07.118 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:07.119 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:07.402 FIXME: mipmap filtering not supported
02:07.403 FIXME: wrapmode not supported
02:07.403 FIXME: wrapmode not supported
02:07.404 FIXME, setting node inner target rect for image node not supported: QRectF(0,0 227x37)
02:07.404 FIXME: mirroring not supported
02:07.592 DrawingArea No worker! (endSelection() ../git/src/drawingarea.cpp:1922)
02:07.593 DrawingArea No worker! (endSelection() ../git/src/drawingarea.cpp:1922)
02:07.792 Library Found deleted entry in library! "05443622-c0a3-4461-8cdf-24eafab5827d" (loadEntry(const QString&) ../git/src/library/library.cpp:1321)
02:08.035 Library Found deleted entry in library! "c9eb2daa-ced7-434e-aa66-aa2fb247394d" (loadEntry(const QString&) ../git/src/library/library.cpp:1321)
02:08.132 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:08.132 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:08.222 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:08.243 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:08.244 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:08.502 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:08.503 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:08.746 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:08.752 DebugHelperClass void Library::load() 1634 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:08.800 Library Asked for invalid document "26085df0-813e-4741-97fe-2ca7d4574049" (entryForId(const QString&) const ../git/src/library/library.cpp:92)
02:10.990 DebugHelperClass virtual Entry::SharedPtr Library::createEntry(const QJsonObject&) 11 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:11.362 DocumentUploader::enqueue(EntryEntry was marked as deleted! (SharedPtr) ../git/src/documentuploader.cpp:267)
02:11.363 DocumentUploader::enqueue(EntryEntry was marked as deleted! (SharedPtr) ../git/src/documentuploader.cpp:267)
02:13.238 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:13.239 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:13.338 DebugHelperClass bool Document::createPagesMap() 97 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:13.340 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:13.341 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:13.741 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:13.743 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 504 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:13.746 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:15.131 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:15.134 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:15.226 DebugHelperClass bool Document::createPagesMap() 90 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:15.227 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:15.227 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:15.636 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:15.641 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 510 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:15.644 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:16.551 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:16.554 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:16.589 DebugHelperClass bool Document::createPagesMap() 33 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:16.590 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:16.590 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:17.056 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:17.058 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 507 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:17.061 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:17.571 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:17.572 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:17.610 DebugHelperClass bool Document::createPagesMap() 34 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:17.611 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:17.611 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:18.076 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:18.077 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 506 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:18.083 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:18.403 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:18.406 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:18.437 DebugHelperClass bool Document::createPagesMap() 29 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:18.438 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:18.439 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:18.908 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:18.910 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 506 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:18.912 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:20.009 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:20.010 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:20.082 DebugHelperClass bool Document::createPagesMap() 70 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:20.083 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:20.083 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:20.511 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:20.514 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 507 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:20.517 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:20.539 DocumentDeleter::onServiceUrlReceived(AbstractDocumentDeleterURL: QUrl("https://document-storage-production-dot-remarkable-production.appspot.com:443/document-storage/json/2/delete") (Task, QString) ../git/src/library/documentdeleter.cpp:312)
02:20.738 DocumentDeleter::onEntriesDeleted(AbstractDocumentDeleterfailed to delete document ("05443622-c0a3-4461-8cdf-24eafab5827d") (0) (Task, QNetworkReply*) ../git/src/library/documentdeleter.cpp:362)
02:22.562 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:22.563 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:22.731 DebugHelperClass bool Document::createPagesMap() 167 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:22.733 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:22.734 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:23.064 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:23.069 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 507 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:23.072 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:24.201 loading 710a6040-caf5-494a-9247-5d90b467bba2 (load qrc:/qml/device/view/documentview/ToolBox.qml:126)
02:24.264 DebugHelperClass virtual bool DocumentWorker::doLoadLinesForPage(Page*, int) 36 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.449 DebugHelperClass void DocumentWorker::doRedrawPage(Page*, int, AbstractDocumentWorker::RedrawType) 221 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.471 DebugHelperClass virtual bool DocumentWorker::doLoadLinesForPage(Page*, int) 16 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.493 DebugHelperClass void DocumentWorker::doRedrawPage(Page*, int, AbstractDocumentWorker::RedrawType) 37 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.626 Library Asked for invalid document "26085df0-813e-4741-97fe-2ca7d4574049" (entryForId(const QString&) const ../git/src/library/library.cpp:92)
02:24.666 DebugHelperClass void DocumentWorker::doRedrawPage(Page*, int, AbstractDocumentWorker::RedrawType) 159 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.683 DebugHelperClass virtual bool DocumentWorker::doLoadLinesForPage(Page*, int) 15 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.954 DebugHelperClass void DocumentWorker::doRedrawPage(Page*, int, AbstractDocumentWorker::RedrawType) 287 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.975 DebugHelperClass virtual bool DocumentWorker::doLoadLinesForPage(Page*, int) 16 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:24.999 DebugHelperClass void DocumentWorker::doRedrawPage(Page*, int, AbstractDocumentWorker::RedrawType) 40 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:25.012 DebugHelperClass virtual bool DocumentWorker::doLoadLinesForPage(Page*, int) 11 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:25.062 DebugHelperClass void DocumentWorker::doRedrawPage(Page*, int, AbstractDocumentWorker::RedrawType) 61 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:25.558 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:25.562 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:25.707 DebugHelperClass bool Document::createPagesMap() 144 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:25.710 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:25.711 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:26.064 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:26.070 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 511 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:26.074 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:26.375 generating event 1
02:26.376 Digitizer Unexpected event type 1 , code: 331 , value: 1 true (PenUnit*) ../git/src/epcanvas/digitizer.cpp:476)
02:26.535 generating event 0
02:26.535 Digitizer Unexpected event type 1 , code: 331 , value: 0 true (PenUnit*) ../git/src/epcanvas/digitizer.cpp:476)
02:26.619 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:26.619 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:26.654 DebugHelperClass bool Document::createPagesMap() 33 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:26.655 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:26.656 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:27.121 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:27.127 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 508 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:27.131 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:28.412 LoadingBlock > Loading (LoadingBlock(bool) ../git/src/loadingthread.h:80)
02:28.415 LoadingBlock Starting loading (LoadingBlock(bool) ../git/src/loadingthread.h:83)
02:28.518 DebugHelperClass bool Document::createPagesMap() 101 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:28.519 LoadingBlock < Loading (~LoadingBlock() ../git/src/loadingthread.h:92)
02:28.519 LoadingBlock Stopping loading (~LoadingBlock() ../git/src/loadingthread.h:96)
02:28.917 LoadingBlock Stopped loading (~LoadingBlock() ../git/src/loadingthread.h:98)
02:28.922 DebugHelperClass virtual AbstractDocumentWorker* DocumentWorkerPool::acquireDocumentWorker(std::shared_ptr<Document>) 510 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:28.927 Entry Failed to remove marker file to indicate entry is finished downloading (setDownloading(bool, int, bool) ../git/src/library/entry.cpp:674)
02:29.228 DocumentDownloader::requeue(AbstractDocumentDownloaderDownload task was rejected from the queue "6fc15fe9-0b87-4062-9464-c179ef56ced3" 1 0 (Task) ../git/src/documentdownloader.cpp:344)
02:29.236 QFile::remove: Empty or null file name
02:29.388 DebugHelperClass virtual void Library::cleanInvalidEntry(Entry::SharedPtr) 153 ms *** ON GUI THREAD *** (~DebugHelperClass() ../git/src/debug.h:23)
02:31.624 DebugHelperClass virtual bool DocumentWorker::doStoreLinesForPage(Page*, int) 59 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:32.208 Digitizer Unexpected event type 1 , code: 331 , value: 1 true (PenUnit*) ../git/src/epcanvas/digitizer.cpp:476)
02:32.209 generating event 1
02:32.431 generating event 0
02:32.432 Digitizer Unexpected event type 1 , code: 331 , value: 0 true (PenUnit*) ../git/src/epcanvas/digitizer.cpp:476)
02:32.720 DebugHelperClass virtual bool DocumentWorker::doStoreLinesForPage(Page*, int) 51 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:34.513 DebugHelperClass void DocumentWorker::doEraseWithLine(Page*, int, int, const Line&) 17 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:34.688 DebugHelperClass void DocumentWorker::doRedrawPage(Page*, int, AbstractDocumentWorker::RedrawType) 170 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:35.601 DebugHelperClass virtual bool DocumentWorker::doStoreLinesForPage(Page*, int) 50 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:36.150 Digitizer Unexpected event type 1 , code: 331 , value: 1 true (PenUnit*) ../git/src/epcanvas/digitizer.cpp:476)
02:36.151 generating event 1
02:36.302 Digitizer Unexpected event type 1 , code: 331 , value: 0 true (PenUnit*) ../git/src/epcanvas/digitizer.cpp:476)
02:36.303 generating event 0
02:39.012 DebugHelperClass virtual bool DocumentWorker::doStoreLinesForPage(Page*, int) 56 ms (~DebugHelperClass() ../git/src/debug.h:23)
02:40.092 DebugHelperClass virtual bool DocumentWorker::doStoreLinesForPage(Page*, int) 47 ms (~DebugHelperClass() ../git/src/debug.h:23)
I think it throws a warning when the button is pressen:
02:36.302 Digitizer Unexpected event type 1 , code: 331 , value: 0 true (PenUnit*) ../git/src/epcanvas/digitizer.cpp:476)
And a small video: https://www.dropbox.com/s/54akks05ajes0l4/IMG_1782.MOV?dl=0
Is there a way to make it permanent?
You could add the option "-plugin evdevlamy" directly in the systemd service file in /lib/systemd/system/xochitl.service:
root@remarkable:~# cat /lib/systemd/system/xochitl.service
[Unit]
Description=reMarkable main application
StartLimitIntervalSec=600
StartLimitBurst=4
OnFailure=remarkable-fail.service
After=home.mount
[Service]
ExecStart=/usr/bin/xochitl --system -plugin evdevlamy
Restart=on-failure
WatchdogSec=60
[Install]
WantedBy=multi-user.target
(Your video just made me buy the pen ^^)
Thanks!
added an installer
Hey,
thanks for writing the code! I just wanted to try if it works. I don't understand how to install.
What I did:
Where do I find the libqevdevlamyplugin.so? If I need to compile it first, do I have to compile it on the remarkable? If so:
source /usr/local/oecore-x86_64/environment-setup-cortexa9hf-neon-oe-linux-gnueabi
doesn't work on the rm.Thanks!