在 arch linux 上玩 android 游戏

NS 上游戏玩的差不多了,steam 上的又游戏绝赞卡关不想继续努力,于是就又跑去玩手游了

先跑一下题,说说我研究的各种在笔记本上装安卓的方案。
1.chromiumos虚拟机(虚拟显卡无法兼容,无法进入图形化界面)
2.chromiumos 实体机 (安装成功后发现里面没安卓容器,且原版chromiumos已无法正常使用---Google砍掉了登陆,且系统不登陆不给安装)
3.安卓x86虚拟机 (无法正常启动)
4.安卓x86实体机 (启动了,并且能用,arm兼容,而且还有 Google play 用,但是总觉得怪怪的,

我这么一个16Gram的笔记本就只跑了个安卓
5.anbox(arch内核太新,想用必须先打补丁)
6.android runtime on chrome 插件(没错就是 chrome os用的那玩意,但是项目无人维护,现已完全不可用,两年前折腾的时候我还跑起来一半过)
7.最终方案 android studio


没错本期要讲的就是用 android studio 带的官方模拟器

这玩意相当好用?
一边能用 arch 愉快的上网,一边模拟器挂机不美滋滋。

  • 首先 yay -S android-studio

  • 然后用 android studio 点 下一步 * 若干 ,把其他所有需要的东西安装完(建议不要从 aur 装,会遇到路径问题)

  • 点 more actions - avd manger

  • Creat Virtual Devices

  • 选好设备点 Next (有play标志的代表这个设备能用 带google play 的镜像)
    -镜像选 Android R 先点 Download 下载完了 再点Next 继续配置(目前只有R的镜像比较完美的兼容ARM 参考

  • 设置 记得把 enable device frame 给关了(

    1.这个地方很多东西设置好了不能再改(储存,ram等)
    2.或者直接不给改(比如屏幕分辨率)
    3.可以通过配置文件更改储存和ram
    4.但是更改储存大小会导致虚拟机重置
    5.选不带play service 的镜像会拥有较多的设置可能,但官方不提供 11的aosp镜像)

  • 启动虚拟机
    通过avd manger启动或者终端执行 cd ~/Android/emulator && ./emulator -avd Pixel_2_API_30(请依据自己路径还有容器名称更改)详见


以下是使用部分

  • 安装app 需通过 adb 安装 如果你没有装,请yay -S android-tools
    adb devices
    cd apk所在目录
    最后adb install 要安装的.apk

    不用android 11的镜像会报错,当然安卓里面直接装也会
  • 代理设置
    先点安卓侧边栏的... 打开菜单 - setting - proxy
    如图所示设置(10.2.2.2相当于本机的127.0.0.1,端口请按本地情况设置)
  • 其他
    1.按F11查看快捷键
    2.实体键盘输入隐藏虚拟键盘在安卓设置里

    3.横屏模式会挡住google登陆的按钮
    4.外接音响时会有异响 请参考

    更多

    性能?
    2d游戏基本是没有性能上的瓶颈,问题是3d游戏,我的i5-8400 分2c给模拟器差不多有835-845左右的效果,什么崩崩崩,站双,开极高都是能玩的,但是某个别游戏支持很诡异。

崩了
  • 具体表现为个别3d游戏加载极慢,而且有的时候模拟器甚至能带着宿主机一块卡死
  • 试图跑分测试看看,结果直接崩溃(
对就这游戏卡

Docker 部署 joplin server

碎碎念

丢人的我在搞两个服务器之间跑的玩具之间的迁移,
结果 Nextcloud 给我每个.md文件都生成了预览
索性破罐子破摔,直接用prelease的joplin server算了。


joplin server 已经是2.0版了,但依旧问题很多,不过好在多了个笔记实时分享到网页端的功能,算是比较值得尝试的一点了。


参考文档 https://github.com/laurent22/joplin/blob/dev/packages/server/README.md
  • 确保你做好了joplin的离线备份,笔记丢了那就得不偿失了
    图片

docker 安装

1.先更新
apt update && apt upgrade
2.安装 docker
curl -sSL https://get.docker.com/ | sh
3.启动 docker
systemctl enable docker && systemctl start docker
4.安装 docker-compose
apt install docker-compose
5.创建目录
mkdir joplin
6.进入目录
cd joplin
7.创建 docker-compose.yml 文件
vim docker-compose.yml#或者用其他你喜欢的编辑器
8.复制粘贴

  • 注意把你的域名 更换为你自己的域名
    *同样的最好也改下密码

version: '3'
services:
    db:
        image: postgres:13.1
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - APP_PORT=22300
            - POSTGRES_PASSWORD=密码
            - POSTGRES_USER=user
            - POSTGRES_DB=joplin
    app:
        image: joplin/server:latest
        depends_on:
            - db
        ports:
            - "22300:22300"
        restart: unless-stopped
        environment:
            - APP_BASE_URL=https://你的域名/
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=密码
            - POSTGRES_DATABASE=joplin
            - POSTGRES_USER=user
            - POSTGRES_PORT=5432
            - POSTGRES_HOST=db

9.然后安装
docker-compose up -d

至此算可用了


如果你希望用上 https

1.安装 Nginx
apt install nginx
systemctl enable nginx && systemctl start nginx
(如果出现报错一般都是你80或者443已经在跑某个东西了,请自行检查)
2.写配置文件
vim /etc/nginx/conf.d/joplin.conf
3.复制粘贴

  • 随便写的配置文件,只保证可用(
    server {
    server_name  你的域名;
    listen 80;
    #return 301 https://$server_name$request_uri;
        location / {
        proxy_pass http://127.0.0.1:22300;
        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;
    
        client_max_body_size        100m;
        client_body_buffer_size     128k;
    
        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
    }
    }

    4.安装 certbot 配置https
    apt install python-certbot-nginx
    5.使用 certbot
    certbot
    6.跟着提示走(不想详说了,报错说明你 nginx 配置有问题 请nginx -t
    7.然后选 redirect(配置自动重定向 https )
    8.然后nginx -s reload

登陆 web 管理页面
https://你的域名/login
默认帐号 admin@localhost
默认密码 admin


同步

重点
你必须先检查一次配置文件正确性才能正常同步,否则会一直报错上级目录不存在(这玩意好像是在检查配置的时候才会在服务器上生成同步文件夹的)
一有不甚会丢失所有笔记,请先备份
1.导出配置后,卸载并,删除 joplin 所有配置/文件
linux 下joplin的安装路径应该是 /home/用户名/.config在里面搜索出joplin的文件夹全删了就行。
2.重新安装 joplin 并填好同步服务器检查配置
3.导入备份文件,同步

joplin server 2.0已经没有设置同步目录的选项了,直接填同步服务器,邮箱,密码就可以同步。

如报错,请检查客户端和服务端版本是否最新


2021.6.18更新

当我躺在准备拿joplin查点东西的时候突然发现,上午记的东西没同不过来。

检查同步配置的时候才发现服务器炸了,报错 'not allowed put code:400' 。
起初我以为附在笔记上的文件太大了,去改了下nginx配置,无用,遂 google 才发现

joplin 更了个大版本,服务器也得更新

本来都睡觉了,又从床上爬起来连服务器(猝死)

更新其实也没那么麻烦,把旧镜像删了,然后 docker pull joplin/server:latest
然后重建下容器就好了(请做好 back up )

2021.6.28更新

不小心删掉了一个笔记分组,然后试图拿其他设备覆盖同步,结果服务端把我其他设备也都删了(
遂服务器快照回昨天,重新同步,失败,服务器被覆盖到删除后了。
然后又把服务器回档了一此,翻出了个一个多月没开的笔记本,同步到昨天,导出所有笔记成 .jex 文件
又发现直接同步本地备份的会莫名失败,或者出现所有笔记变成两份
去 docker 把 joplin_db 的 /var/lib/postgresql/data删掉重装,然后重启了joplin 的两个容器,重新配置 joplin server
最后又把所有客户端的 joplin 删干净,导入本地备份重新同步,才成功恢复出服务端的笔记。
反正这一趟下来折腾得要死,joplin server 啥时候出个能撤销服务端操作的功能啊(


2021.10.18更新

上上周 Let's Encrypt 根证书过期了,joplin同步也跟着挂了( ,暂时关了tls认证,等同步服务器上的证书自动续上就好了。

Nextcloud .md文件只剩标题

为什么会遇到这破事

最近在捣腾一系列工作流(尽管我跟 office 差了十万八千里)最终方案是用 Nextcloud 同步大部分文档/日历/邮件
但是今天想写点东西的时候发现,我之前写的东西去哪了,怎么就剩个标题了。

惨剧现场

解决方法

  • 禁用自带的txt编辑器
  • 再从自带应用商店下载安装Plain text editor 和Markdown Editor

    大概就能解决问题了吧?

吐槽

Nextcloud 自带 notes 支持 md 语法,但保存出来的文件却是.txt,而且中文字符预览就是个框(缺字体