抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

前言

由于预算问题,当初购买笔电时牺牲了续航散热以换取极致性价比,买了凄惨红将星X15AT,实际体验下来续航确实垃圾,电池容量比同等配置的一线品牌少不说,调控也一般不过架不住他便宜啊

平时在宿舍插电无所谓,你建晚上也不断电,但是一旦上课要用电脑,这点电池可就完全不够了,比如这学期开设的大数据的Python基础,老师要求上课带电脑使用Jupyter笔记本和她一起敲代码,一节课差不多1.5h省电全开有点撑不住,带电源没地方插,所以的我就把目光移到Android平板上了。

平板代替笔电

当然是可行的,目前的课程使用电脑的主要原因就是跟着老师敲代码,基本没有多少性能要求,再加上钱包里也没多少钱,最终权衡了一下:选择二手小米平板5Pro作为替代。

moonlight进行画面串流

Tailscale组网,moonlight进行串流,电脑本体放在宿舍,平板带去教室仅作为画面的显示端,这个方案是可行,当然前提条件是网络通畅,moonlight可以调整串流码率,调整到网络可接受的范围内即可。

不过我还是忘记了一个重要的事情,那就是大家是一起坐在一个教室里上课的,这种课一个人至少一台电脑一台手机需要联网,教室里据观察只有一台AP。。。。也就是说在上课的情况下,教室的网络状态很差,实际使用过程中经常出现掉线、连接速率过慢的情况,更要命的是:一旦宿舍里网络出现问题,无人值守的情况下网络就算恢复正常也没有进行web认证登录,而你建的宿舍网络经常发生掉线重修认证的情况,宿舍里的主设备掉线,神仙来了也救不了。还有一点是,平板这边不能使用数据网络,估计是因为校园网没有IPV6,使用数据进行串流基本上处于无法连接的状态。

所以这个方法可以用,但是在两端网络不稳定的情况下不建议使用。

如何进行串流参见Moonlight 串流指南-纸鹿摸鱼处Tailscale 不完全使用指南-纸鹿摸鱼处

试试给平板装个Win/Linux

是这样的,既然远程可能因为网络原因出问题,那我为什么不给平板换个系统?买之前依稀记得小米有平板可以刷Win系统,于是乎去酷安查了下发现能装的是小米平板5,我的是小米平板5Pro。。。。。。5Pro没人做驱动适配。

至于Linux的话,查了查确实有可以在5pro上安装的发行版,但仅仅是可以装,实际使用效果不佳,虽然能开机但是驱动不全还有一堆bug不如不用,故此系统安装这条路是不通的。

当然还没结束,在查资料的途中发现可以走chroot容器这条路,简而言之是安装Termux终端安装chroot环境运行Linux容器,然后通过Termux X11连接桌面环境,这样就可以在平板上使用Linux了。

方案看起来还是挺好的,操作看教程说的不算太复杂,但是实际操作起来还是有点问题,我在安装过程中就遇到了好几个问题,一一排查后终于是跑起来了,准备安装一些常用软件,结果发现最大的问题来了:没几个软件能直接安装的。。。。。中文输入法配置了半天、LinuxQQ无法运行、Edge浏览器无法运行(还好Firefox可以)、VSCode无法运行。。。。。

别折腾了哥们

日用都不用

听劝了,此路不通。

不过如果有想折腾的同学,可以参考:

【Root】Android使用Termux安装Chroot环境跑Linux容器和桌面环境-系统只因家

[Root] 手機Termux建立chroot Ubuntu 22.04環境,免Linux Deploy-Ivon的部落格

VScode远程隧道访问

在VScode中启用远程隧道访问,可以在浏览器中通过VScode.dev(即VScode Web版)访问宿舍笔电里的工作区,拓展也可以正常加载,这个对网络的要求更低,因为根本不用传输视频图像数据,只要有网就行,数据还是校园网都不挑,但是和上一个一样,一旦宿舍里面的主设备断网掉线了,宿舍里还是无人值守无法恢复的情况,神仙来的也救不了你。

具体操作很简单,点击VScode左下角用户图标,开启远程隧道,然后在浏览器复制链接访问即可,拓展需要再安装一遍,但是设置会同步,不需要再重新配置,远程隧道的拓展,也就是说客户端能装的拓展远程隧道都可以用。

平板上安装Jupyter

这个方法其实用起来和在电脑上用Jupyter的感觉几乎一致,本地安装Jupyter,然后浏览器访问。

方法的话推荐使用Pydroid3,可在Google Play商店安装,开箱即用,自带包管理器,可以在图形界面直接安装jupyter,无需自行配置环境,而且也可以直接在里面写Python,支持运行调试,十分方便。同开发商对于C/C++和Java还开发了Cxxdroid、Jvdroid,同上。

安装软件后在打开侧边栏,在其中找到pip,然后在搜索框中搜索Jupyter安装即可,安装完成后在终端中输入jupyter notebook回车即可在本地运行jupyter。

不过缺点也还是有的,那就是需要保证锁住Pydroid3的后台,对于只有6G内存的平板来说,偶尔还是会出现杀后台的情况,有时即使锁定也还是会被杀掉,需要清理内存后在终端重启Jupyter。

对于杀后台这个问题,如果平板解锁了,找个进程锁模块锁住Pydroid3即可,或者和我一样把Pydroid3开个超级小窗放右上角就行,保证它在前台活跃就不会被杀了。

脱离远程隧道,VScode Web端+JupyterHub服务端

按道理在平板上安装Jupyter后这个文章应该就此结束才对,因为这个方法确实已经解决了Python课的需求,也完美符合老师需求,那我为什么还要往下走?

其实是我想用VScode的界面以及丰富的拓展资源,为了这个想法我第一时间想到的就是VScode的web端,这次不连远程隧道了,而是连接到Github仓库存储读取代码,不过web端不具有运行调试代码的能力,这种情况下只能写不能运行。

但是Jupyter/JupyterHub的拓展提供了一个可以连接运行有Jupyter/JupyterHub的远程服务器的选项,通过连接远程服务器就可以在VScode Web端中运行代码了。此处就需要一台服务器来搭建JupyterHub服务,我选择的是亚马逊云(简称AWS),因为AWS有持续一年的免费使用套餐(当然只有1核2G),具体如何搭建以及有哪些坑我会单独写一篇文章说,写好就会放在下一行。

现在还没。

当然这个方案也是有缺点的,VScode web端的限制比较多:

  • 很多拓展不支持安装,包括通义灵码,没有从visx安装选项,且没有解决方法。
  • 很多运行调试环境是没有办法提供的,多数情况下只能编辑
  • 自身不带存储,真正要保存需要靠远程仓库
  • 各种设置保存在cookie中,cookie被清理或者更换浏览器后,需要重新设置
    ………………………………

搭建code-server服务,真正的远程开发

是的,既然我们都有服务器了,那干嘛不直接用code-server?相比于限制较多的VScode.dev,我们可以在服务器上配置运行调试环境,安装各种拓展,基本上就是把VScode客户端搬到服务器上,通过浏览器访问,实现真正的远程开发,具体如何搭建以及有哪些坑我会单独写一篇文章说,写好就会放在下一行。

现在还没。

总结

说到底,最终最和我心意的方案就是最后一个code-server了,但是我发现一个问题,以上各种方案我都是断断续续尝试的,使用实践最长的是远程隧道,刚刚把code-server配好了,现在已经是五月末了,再过几周就要结课了,斯,好像有点晚了。

评论