[网友投稿] 为 KPW3/KV 的 KOReader 添加远程遥控翻页
![[网友投稿] 为 KPW3/KV 的 KOReader 添加远程遥控翻页](https://bookfere.com/wp-content/uploads/2024/04/remote-for-kindle.jpg)
本文系网友“三山”的投稿,原标题《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 [email protected]
点击接受,输入密码处直接回车即可进入命令行
[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
延伸阅读
- Sherry推荐图书(四)—— 了解马云
- 打了 18 年的字我用 Kindle Scribe 重新找回了手写乐趣
- 第二代 Kindle Paperwhite 对比第一代的区别
- 玩转 Kindle:来自你们的 Kindle 试用报告
- 云端梦一场:Kindle 伴侣将逐步放弃网盘分享
- [每周一书] 股票投资的经典著作《聪明的投资者》
- 已绑定亚马逊账户的 Kindle 设备如何注销或更换其它账户
- [每周一书]《自由选择》地球人不可不读的书
- 全新亚马逊 Kindle Oasis 上手评测视频总汇
- 更换 Kindle 账户后如何恢复或找回“收藏夹”
- [网友投稿] 如何学习、记忆、阅读和思考?
- [2019.02.15] Kindle 阅读器固件升级至 5.10.3
- [每周一书] 人文普及读物《欧洲:一堂丰富的人文课》
- [每周一书]《行为设计学:掌控关键决策》提高决断力
- 亚马逊将在微软商店推出全新 PC 版 Kindle 应用
3感谢教程,非常详细
补充一下文中KOReader的代码
“`
function KindlePaperWhite3:init()
self.screen = require(“ffi/framebuffer_mxcfb”):new{device = self, debug = logger.dbg}
self.powerd = require(“device/kindle/powerd”):new{
device = self,
fl_intensity_file = “/sys/class/backlight/max77696-bl/brightness”,
batt_capacity_file = “/sys/devices/system/wario_battery/wario_battery0/battery_capacity”,
is_charging_file = “/sys/devices/system/wario_charger/wario_charger0/charging”,
hall_file = “/sys/devices/system/wario_hall/wario_hall0/hall_enable”,
}
local add_event = “/dev/input/event3”
if lfs.attributes(add_event) then
self.input = require(“device/input”):new{
device = self,
event_map = {
[273] = “RPgBack”,
[272] = “RPgFwd”,
},
}
self.input:open(add_event)
end
Kindle.init(self)
end
“`
请问更改后,koreader和原系统界面会叠在一起,比如下滑菜单或者点按读书界面,会弹出原系统中的按键,而且能进行选择。