数码之家

 找回密码
 立即注册
搜索
查看: 4831|回复: 64

[电脑] Remarkable电子阅读器一代编译内核并改装TF卡槽

  [复制链接]
发表于 2023-10-17 21:45:59 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 小序

Remarkable是一家挪威的阅读器品牌,推出过两代基于linux的电子阅读器。在国内不销售,也没什么名气;但是由于厂商对玩家DIY行为持开放的态度,在国外形成了活跃的社区以及完整的生态。前段时间在二手渠道捡到了一台Remarkable一代。平板设计本身比较有匠气,虽然是塑料机身但是各个细节充满了精致的雕琢感,长相简约且讨喜。由于墨水屏幕天生省电的特性,机身可以做到非常轻薄,拿在手里读书或者是写字都比较舒服。由于平板问世已有七年之久,其附带的wacom电磁屏方案已有略显延迟(40ms+),并且使用microusb接口,不过总体来说不影响使用。由于不在国内销售所以板子本身不带中文,官方提供的软件功能相对有限。好在板子运行了一个被称为codex的完整linux系统,可以运行一些开源linux墨水屏阅读软件(KOREADER等),模拟ti84计算器,玩游戏等,甚至可以刷入其他桌面系统以支持x11桌面应用。可玩性拉满。玩的颠三倒四不亦乐乎。

美中不足的是这个板子的板载emmc只有8GB并且不支持存储卡,当文件数量起来以后并不够用,所以我决定对电子书进行扩容。秉承着节省预算的原则,选择向remarkable添加一个tf卡槽。国外已经有玩家提供了可行方案,跟着思路执行即可,但由于该博客并不完全足够详细并且我的自身技术水平十分有限,所以中途仍然踩了一些坑。特此记录。(本文部分图片来自该博客,感谢)

特别的三按钮设计

特别的三按钮设计

1697549206254 (大).jpg

ti84计算器模拟

ti84计算器模拟

doom2模拟

doom2模拟



2. 物料

<*>Ubuntu系统(windows下可使用wsl或者虚拟机)以及魔术上网(自备)
<*>60w内热式电烙铁一把,维修佬焊锡丝一卷,尖头式烙铁头一根(共约40)
<*>手持式切割笔(25元)
<*>小口径十字螺丝刀一把,镊子一根(约10元)
<*>万用表(可选)
<*>回弹式tf卡槽数个(3元)
<*>30AWG跳线若干(2元)
<*>705硅胶若干(忘了,应该是10元以下)
<*>tf卡一张(128GB 35元)
<*>耐心,激情与时间(无价,祝愿各位看官有)


3. 开盖手术

开盖,去除外框,取出主板
首先记得双手放电或者接地。第一步开后盖就是个难题。铝合金后盖本身材质比较柔软,又是通过胶水与背筐连接。我使用吹风机先从后盖的角落开始吹,吹至手觉得发烫,然后可以用翘片或者ic卡慢慢插入并将背板划开。由于框架呈现日字形,所以中部横梁的胶水也必须吹化才能揭开背板。拆开背板后将所有螺丝拧下来并保存好。注意胶条中也有螺丝,上侧两根,下册四根。我一开始拆的时候以为是对称的,就没有把胶条完全揭开;最后折腾好长时间才发现隐藏的两颗下螺丝。从正面的屏幕与外框的缝隙中撬开屏幕。这一步会破坏屏幕与外框之间白色的防水胶,装上后会影响美观性,介意者可以自行上胶处理。二者使用卡扣连接,非常紧密,需要用点蛮力。注意按钮逻辑板粘在塑料外框上,不要硬拉。

来自博客

来自博客

split-chassis.jpg


焊接电缆
去除外框后主板电池屏幕以及铝合金主框架即暴露。向上撬开电池排线,拔出其他排线。然后去除主板上螺丝以及垫片。 取出主板并且翻面,可以看到remarkable已经在主板上提供了tf卡槽的金属触点,但是整个主板背面被胶带覆盖,必须小心去除点位处的胶带。需要十根二十厘米的跳线,分别焊接在九个点位,以及一个接地点位上。(非常重要,由于第九点位是卡插入检测点位,所以为了成功识别必须将卡槽金属外壳接地。)焊接后把线排整齐,用胶带固定并从下方引出。在走线的过程中铝合金背板的加强梁挡住了走线路径,我为了美观切割了一段,实际上不切割也可以。

注意接地焊点,总共十根线

注意接地焊点,总共十根线



焊接卡槽
首先确定卡槽位置。我将卡槽固定至左下角如图所示处,因为按钮逻辑板留出了部分空间允许走线。然后确定排线长度。每根排线应该是由于转角长度不等的。然后将电缆焊接到卡槽触点上。这一步必须时刻留意,确保正确的电缆连接正确的焊点。并且主板接地点一定要焊在tf卡槽金属外壳上!有条件我建议使用不同颜色的电缆方便标记。在这一步,我最开始使用的是电烙铁商家所赠送的垃圾焊锡,那玩意85铅含量,15锡含量,烙铁头也不怎么样,没烧两下就发黑氧化;不过发热体以及手柄还行。在此diss一下淘宝德力西电烙铁。我只好购买新的优质焊锡丝以及烙铁头重试。即便如此,在这么小的空间上手动焊锡也是一件有些难度的事情。我的水平很有限,只能勉强焊接到不短路不断路,做不到美丽且优秀的焊点。此外确保焊接时焊锡浸润,避免虚焊。焊接完成后使用万用表测量焊接连通性。(两个笔搭在焊点上别搭在电线上,要检测的是有没有虚焊以及断裂!)

切割中框
该步骤必须戴好口罩。焊接完成后确定好卡槽的位置,用铅笔描好,然后将卡槽用胶带固定在一旁。用手持式切割笔将铝合金中框标记处切割出tf卡入口。作业时注意噪音以及金属粉尘。可以在旁边用宽胶带拦着,不要溅射到主板上,否则可能导致短路等问题。切割完成后注意检查各排线接口是否被金属粉尘附着,必须仔细检查并清除。

固定卡槽
首先在固定位底部粘上透明胶带以绝缘。使用热熔胶或者705硅胶将卡槽固定在切割出的卡位处。可以先将卡插入卡槽再固定,防止卡位对不齐。705硅胶凝固较慢且较软,建议使用热熔胶。也可以使用ab胶等强力胶(不建议)。使用如同切割铝合金中框的方式切割塑料外框。注意粉尘,注意切割位置。在这一步完成后我建议再次使用万用表连通档或电阻档测量焊接是否正确,避免因固定时的蛮力导致的焊点断裂。

1697549206279 (大).jpg
1697549206283 (大).jpg


收尾
固定主板,接好所有排线,拧上螺丝,固定中框(可以涂防水胶),705硅胶粘上后盖。重启remarkable。

1697549206268 (大).jpg



4.编译内核启用SDHC界面

remarkable的主板是一个比较普通且标准的NXP freescale imx6sl核心主板,与同方案的其他开发板都比较相似。同样接管tf的sd控制器界面也相同。然而remarkable官核默认禁用tf卡槽位的sdhc控制器。好在官方提供了完整的内核源码,我们可以进行自行修改设备树并编译以开启设备。这个步骤有一定难度,需要会基本的linux使用。并且在进行这个步骤之前必须配置魔术上网方案,否则有些操作无法进行。我建议使用vscode进行操作。

ssh连接到remarkable
ssh连接到remarkable,并且关闭remarkable自动更新。方法上网搜索即有。

检查内核版本
#在ssh中操作
cd /bootls -a

然后检查zImage内核后面跟着的版本号。我的是1.2.5。代表着需要编译的版本代号为1.2.5。

安装工具链
你需要工具链以进行编译。remarkable官方提供了以自解压方式使用的工具链。不同的内核所使用的工具链也不同。 具体请参考:连接 我所使用的固件版本为2.15,所以流程如下。
cd ~
curl -O https://storage.googleapis.com/r ... toolchain-3.1.15.sh

chmod +x codex-x86_64-cortexa9hf-neon-rm10x-toolchain-3.1.15.shbash codex-x86_64-cortexa9hf-neon-rm10x-toolchain-3.1.15.sh

# 安装完成后启用工具链环境
source /opt/codex/rm10x/3.1.15/environment-setup-cortexa9hf-neon-remarkable-linux-gnueabi


克隆仓库并切换到相应版本分支

cd ~
git clone https://github.com/reMarkable/linux.git
cd linux

# 检查当前分支
git branch

# 切换到你所需要的分支,我所需要的是rm1xx_5.4.70_v1.2.x
git checkout -b local_rm1xx_5.4.70_v1.2.x origin/rm1xx_5.4.70_v1.2.x


编辑设备树
复制arch/arm/boot/dts/zero-gravitas-factory.dts并重命名覆盖arch/arm/boot/dts/zero-gravitas.dts 编辑arch/arm/boot/dts/zero-gravitas.dts,将usdhc1的status至为"okay"。
&usdhc1 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc1>;
        pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
        pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
        bus-width = <4>;
        cd-gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
        disable-wp;
        wp-controller;
        keep-power-in-suspend;
        enable-sdio-wakeup;
        no-1-8-v;
        /*disable-wp;*/
-       status = "disabled";
+       status = "okay";
};


生成linux config file

make zero-gravitas_defconfig

然后编辑内核主目录的.config。确保以下驱动处于启用状态。否则编译出来的内核触控以及无线会不可用。(内核主线版本4与5的驱动支持不同,现在一般编译5的,所以4的自行判断。)同时在这一步可能需要安装额外的软件,如bc,flex,gcc等,根据报错自行安装即可。
CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5=y
CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_DEVICETREE_SUPPORT=y
CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_I2C=y
CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_MT_B=y
CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_LOADER=y
CONFIG_CFG80211=yCONFIG_MAC80211=yCONFIG_BRCMUTIL=y
CONFIG_BRCMFMAC=yCONFIG_RTL_CARDS=y
CONFIG_BATTERY_BQ27XXX=y
CONFIG_BATTERY_BQ27XXX_I2C=y
CONFIG_USB_ACM=y
CONFIG_USB_F_ACM=y
CONFIG_USB_U_SERIAL=y
CONFIG_USB_CDC_COMPOSITE=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_GHASH=y
CONFIG_CRYPTO_ARC4=y



编译

# 因为启用了工具链所以不再需要设置CROSS_COMPILE等参数
make -j8

然后将编译出来的工件复制到remarkable的/boot并覆盖:arch/arm/boot/dts/zero-gravitas.dtb和arch/arm/boot/zImage

重启检查,进入系统
重启remarkable,插入存储卡,检查内核消息缓冲区,应该看到sdhc1被成功启用的消息以及SD卡的插入:
root@reMarkable:~

# dmesg | grep mmc0

[ 2.091218] mmc0: SDHCI controller on 2190000.usdhc
[2190000.usdhc] using DMA
[ 2.377570] mmc0: new high speed SDXC card at address aaaa
[ 2.391939] mmcblk0: mmc0:aaaa SC200 116 GiB


然后你可以使用fdisk进行分区操作。我将全部空间分了一个区,获得了分区\dev\mmcblk0p1。编辑/etc/fstab挂载表以更改挂载:
#/dev/mmcblk1p7 /home auto defaults,nofail 0 2/dev/mmcblk0p1 /home auto defaults,nofail 0 2


完成

现在你应该可以看到自己编译的系统版本号以及扩大的空间!

大!大!大!

大!大!大!

带有patch的固件版本号表明自编译内核

带有patch的固件版本号表明自编译内核


吐槽:数码之家的编辑器不支持markdown实在糟心!


打赏

参与人数 13家元 +375 收起 理由
亲爱的混蛋 + 30
sunnyquan + 30 硬核!
wgm468 + 30 優秀文章
jf201006 + 30 原創內容
aping365 + 30 優秀文章
x067 + 15
2n3055 + 30 謝謝分享
xuyaz + 30
e.woods + 30 優秀文章
hongo + 30 優秀文章

查看全部打赏

发表于 2023-10-17 22:25:07 | 显示全部楼层
表示觉得MarkDown并不好用...
回复 支持 反对

使用道具 举报

发表于 2023-10-18 02:31:05 | 显示全部楼层
看起来好复杂
回复 支持 反对

使用道具 举报

发表于 2023-10-18 09:51:23 | 显示全部楼层
能把这个搞定,也是厉害了!
回复 支持 反对

使用道具 举报

发表于 2023-10-18 09:52:30 | 显示全部楼层
看了下TB的价格。。。可以让他一边凉快去了
回复 支持 3 反对 0

使用道具 举报

发表于 2023-10-18 10:01:07 | 显示全部楼层
还预留了内存卡的焊点,好评!!!
回复 支持 反对

使用道具 举报

发表于 2023-10-18 10:10:23 来自手机浏览器 | 显示全部楼层
nb呀,还能自己编译ubuntu
回复 支持 反对

使用道具 举报

发表于 2023-10-18 10:26:08 | 显示全部楼层
系统流畅度怎么样,我的KPW4好卡,想换个国产的用了
回复 支持 反对

使用道具 举报

发表于 2023-10-18 10:26:15 | 显示全部楼层
口开的有点。。。还不如内置
回复 支持 反对

使用道具 举报

发表于 2023-10-18 11:24:11 | 显示全部楼层
用的飞线有点儿粗~
回复 支持 1 反对 0

使用道具 举报

发表于 2023-10-18 11:31:21 | 显示全部楼层
主板设计上可能是想内置,不支持热插拔的。飞线可能会影响SDIO的读写。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 12:31:48 | 显示全部楼层
不错,改得好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-18 13:44:32 | 显示全部楼层
xueyuking 发表于 2023-10-18 11:31
主板设计上可能是想内置,不支持热插拔的。飞线可能会影响SDIO的读写。

理论上确实如此。不过内存卡速度还是太低了,电子书也没什么性能应用,所以基本够用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-18 13:48:37 | 显示全部楼层
本帖最后由 Lihewin 于 2023-10-18 13:58 编辑
丶陪妳看流星 发表于 2023-10-18 10:26
系统流畅度怎么样,我的KPW4好卡,想换个国产的用了

一般,系统无中文,看巨型文档加载慢,好像和哪款kindle是同样的imx6sl核心,我平常就写写笔记用。想要流畅的系统还是考虑市面上安卓电纸书,一般都是A53架构起步,最近好像还有个搭载骁龙855的墨水屏怪物上市,毫无人性惨绝人寰
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-10-18 13:59:36 | 显示全部楼层
toppers 发表于 2023-10-18 10:26
口开的有点。。。还不如内置

第一次用切割机;没受伤就好
回复 支持 反对

使用道具 举报

发表于 2023-10-18 14:57:05 | 显示全部楼层
这个可是不便宜,这价格挺难入坑。
回复 支持 反对

使用道具 举报

发表于 2023-10-18 15:17:49 | 显示全部楼层
有技术还要有知识
回复 支持 反对

使用道具 举报

发表于 2023-10-18 19:29:12 | 显示全部楼层
电子书,慢慢给电子书软件替代了,直接语音朗读,省得费眼睛,不更好?
回复 支持 反对

使用道具 举报

发表于 2023-10-18 20:30:15 | 显示全部楼层
技术不 错,适 合自己需 求就 好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-28 06:23 , Processed in 0.156000 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表