[网友投稿] 为 KPW3/KV 的 KOReader 添加远程遥控翻页
本文系网友“三山”的投稿,原标题《KPW3/KV的KOReader增加远程遥控翻页功能》。
因为喜欢把设备放在支架上,觉得触屏不方便,就琢磨一了下如何用鼠标或激光笔遥控翻页,虽安装 KindleLazy 可以实现在原生系统下翻页,但一直无法用在 KOReader 上,一顿猛操作后现在终于实现了,分享给需要的人。
必要条件
- 限制:目前只在 KPW3 和 KV 打开了 OTG 模式,其它设备试了 Oasis1 没能打开 OTG,因此下面教程现在只适用于 KPW3 和 KV。
- 需要:Kindle 越狱并安装 KUAL、KOReader、FileBrowser、KindleLazy。
- 需要:与 Kindle 连接同一 Wi-Fi 的电脑,并安装 SSH 软件(百度搜索下载)。附件包里我已经打包了 FileBrowser(下简称 FB)和 KindleLazy(下简称 KL),可直接解压使用。
- 需要:MicroUSB 转 OTG 转接线,可直接购买。如果动手能力强的,找根正常的 MicroUSB 数据线,剥开 Micro 端口,把 ID 针脚焊接地就行。
- 缺陷:因为设备切成 OTG 模式后,需要升压至 5V,并给插上的 USB 设备供电,设备续航会下降。检查设备是否能成功切成 OTG 模式,只要用 OTG 转接线插上设备,如果输出 5V 电压(光电鼠标插上会亮灯),即是正常切成 OTG 模式。如果输出电压 0V,目前看来该设备不支持 OTG 模式。
操作步骤
下面以鼠标和 KPW3 为例讲解操作过程。
开始前先备份一下 KOReader(下简称 KO),把 KOReader 文件夹拖到电脑上。打开 KO 的【顶部下滑 → 配置 → 网络设置 → SSH服务器】先勾选“不使用密码登录”,再勾选“SSH 服务器”,此时出现设备 IP,记住此 IP。
需要与 Kindle 连接同一 Wi-Fi 的电脑,用安装的 SSH 软件访问设备,命令(IP 替换成你设备的 IP):
ssh root@YOUR.IP.ADDRESS
点击接受,输入密码处直接回车即可进入命令行
[root@kindle root]# cd /dev/input
[root@kindle root]# ls
看到几个 eventN
,我这边是 event0
和 event1
。Kindle 上退出 KO,插上 OTG 转接线和光电鼠标(需要亮灯,不亮灯别往下看了),点击 KUAL-KindleLazy-Start 再回到 SSH,输入命令:
[root@kindle root]# ls
此时会增加 1 个或 2 个 event,我这边用的有线鼠标增加了 event2,用无线键鼠增加了 event2 和 event3 继续输入命令:
[root@kindle root]# evtest ./event2
按鼠标按键,如果没响应,就试 event3。直到按键后屏幕有响应,此 event 号就是你的鼠标设备号,记下 eventN
的数字。下面还要看鼠标键码,我这边的鼠标键码是 272(左键),273(右键),274(中键),类似下面响应代码:
Event code 272 (LeftBtn)/ Event:type 1 (Key), code 272 (LeftBtn), value 1
Event code 273 (RightBtn)/ Event:type 1 (Key), code 273 (RightBtn), value 1
Event code 274 (MiddleBtn)/ Event:type 1 (Key), code 274 (MiddleBtn), value 0
附件包里我已经设好了 272 和 273 键码(左键下一页,右键上一页),如果你的不一样可修改 extensions\KindleLazy\bin\config.json(记事本或用 FB 上传后浏览器里修改)。改好后,把 extensions 下的 KindleLazy 和 FileBrowser 上传到 Kindle 对应目录中。现在重启 KindleLazy 后,原生系统就能支持遥控翻页了。但 KO 还不能翻页,往下继续(继续前需要先重启下 KindleLazy)。
如果你的 KO 版本是 2024.03.1,且 USB 设备是 event2,且键码是 272
、273
,那么可以直接上传附件中 device.lua 至 koreader\frontend\device\kindle\ 中。如果不是上述数值,需用 FB 打开 koreader\frontend\device\kindle\device.lua,大约在 555 行左右找到下面代码并添加一行(参考下面 hasKeys = yes
部分):
local KindlePaperWhite3 = Kindle:extend{
model = "KindlePaperWhite3",
isTouchDevice = yes,
hasFrontlight = yes,
canTurnFrontlightOff = no,
hasKeys = yes,
display_dpi = 300,
touch_dev = "/dev/input/event1",
}
大约在 888 行附近找到并增加下面一段代码,event2
为你的设备号,273
和 272
为你设备键码,可自行替换(可参考我附件包里的配置文件):
add_event="/dev/input/event2"
if(lfs.attributes(add_event)) then
self.input.open(add_event)
self.input = require("device/input"):new{
device = self,
event_map = {
[273] = "RPgBack",
[272] = "RPgFwd",
},
}
end
如果是KV(Voyage),先找到 function KindleVoyage:init()
中的:
self.input = require("device/input"):new{
device = self,
event_map = {
[104] = "LPgBack",
[109] = "LPgFwd",
},
}
修改成(键码相应你的设备替换):
self.input = require("device/input"):new{
device = self,
event_map = {
[104] = "LPgBack",
[109] = "LPgFwd",
[273] = "RPgBack",
[272] = "RPgFwd",
},
}
再找到:
self.input.open("/dev/input/event2") -- WhisperTouch
self.input.open("fake_events")
修改成(event3 处相应替换):
self.input.open("/dev/input/event2") – WhisperTouch
add_event="/dev/input/event3"
if(lfs.attributes(add_event)) then
self.input.open(add_event)
end
self.input.open("fake_events")
现在可以启动KO了,如果鼠标可以翻页了,在留言区扣波 3 吧。
激光笔按上面方法找到设备号和键码,替换应该就能正常使用,并不复杂。虽然遥控翻页增加了电耗减少了续航,但对于喜欢用书架看书或希望手放进被窝的人还是可用的。花点时间整理出来,希望有用。
好了,不折腾,开始安静看书!
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/1103.html
延伸阅读
- [2021.02.18] Kindle 7 & KPW2 固件升级至 5.12.2.1
- 电子书格式 MOBI、AZW3、KFX、EPUB 有什么区别
- 如何在有限的阅读时间里做到过目不忘
- 十六年前首款 Kindle 的杀手级功能改变了我们的阅读方式
- [2016.08.04] Kindle 阅读器固件升级至 5.8.2
- Calibre 使用教程之为 Kindle 电子书添加页码
- Paperwhite 和 Voyage 有何不同,选哪个更好?
- [网友投稿] 用 WebToEpub 将在线电子书转换成 EPUB 文件
- 当读书失去动力,你该如何重燃阅读的激情?
- 关于《三体》、黑暗森林以及我们所不知道的一切
- 自制 Kindle 音频适配器实现 TTS 朗读功能
- 书伴十年,有幸与你相伴
- Calibre 使用教程之通过 WiFi 向 Kindle 传输电子书
- KindleStrip:大幅精简压缩 mobi 文件体积
- 读书从娃娃抓起:亚马逊推出儿童版 Kindle
scribe亲测
已安装KindleLazy
C口otg输出,没有供电,灯都不亮
所以无法使用激光笔,坑
这个方案可以蓝牙翻页吗。
搞个能同时供电的OTG线是不是可以解决耗电问题
如果家里有不关机的电脑(服务器,NAS等等)可以把操控设备挂在电脑上
通过Koreader的HTTP inspector来控制
找下AHK之类的改键工具
我试了下延迟可以接受
电脑支援的硬件更多
WIFI应该比OTG续航更好
缺点上面说了电脑不关机.
能写下教程我试试吗?理论上翻页那一刻电耗是差不多的,但能节约翻页前一段看书时间电耗,所以续航应该提高的
我看邮件好像作者有回复, 在此说下方法,感兴趣的人自己测试吧
简单说就是电脑端通过某种方式访问指定url操控Koreader
基本上Koreader的大部分操作都能实现, 以下用翻页来说明
Kindle端设置
1, Koreader-菜单-齿轮-Koreader HTTP inspector-Start HTTP inspector
1.1, 可选自动打开 Auto start HTTP inspector
电脑端设置
1, 浏览器访问Kindle IP:8080, 我这是 http://192.168.123.225:8080/koreader/
2, 点击打开 list of dispatcher/gestures actions.
3, 找到翻页 -1 page 是往前翻, +1 page 是往后翻,
4, 点击这两项测试延迟是否能够接受, 具体来说就用某种方法访问此url
改键
由于我是windows端, 以及我常用的是脚本是AHK, 所以我用AHK V2来示例
下载AHK https://www.autohotkey.com/download/ahk-v2.zip
1, 测试不用安装, 解压AutoHotkey64.exe到桌面
2, 新建文本文档, 复制最下面的代码到文本文档, 并修改url中的ip为你Kindle的ip
3, 拖拽此文本文档到AutoHotkey64.exe运行, F9向前翻, F10向后翻
4, 测试完成后右键托盘的H按钮-Exit Script 退出
花时间测了一下,方案可行,续航增加不少,且所有越狱机型都支持。
有个小问题,设备会自动休眠,检查KO代码后发现没刷新触摸时间,改了代码后面花时间再测一下。
OTG线不用扔,可以找个旧安卓手机或安卓平板,插上键鼠或激光笔可以遥控。后面准备改个旧手机,拆电池接USB充电器供电,再插OTG线键鼠遥控,这样就彻底解决供电焦虑了
请问一下需要如何改刷新触摸时间的代码呀,谢谢
打开koreader/plugins/httpinspector.koplugin/main.lua
大约14行,增加一行
local PluginShare = require(“pluginshare”)
大约1074行,在end)和return self:sendResponse之间添加
if not PluginShare.pause_auto_suspend then
PluginShare.pause_auto_suspend = true
end
打开koreader/plugins/autosuspend.koplugin/main.lua
大约140行,在PowerD:resetT1Timeout()的下面添加
if PluginShare.pause_auto_suspend then
PluginShare.pause_auto_suspend = false
self.last_action_time = UIManager:getElapsedTimeSinceBoot()
end
保存后重启koreader,只要用http正常翻页就不会自动休眠。但如果不动作,正常休眠时间会比设定的时间增加1-5分钟
如果改后还是休眠,把第三处的PluginShare.pause_auto_suspend = false注释掉或删掉,用http翻页后设备应永不休眠,若还休眠可能还有其它问题
请问一下,我的kpw4已经越狱了,能使用KindleLazy来实现蓝牙遥控翻页吗,如果可以的话,能不能给我一个教程,我在站内没有搜索到,谢谢
kpw4无法使用kindlelazy