博客

  • OEC刷机作为 Frigate NVR!

    OEC刷机作为 Frigate NVR!

    前言

    我前段时间在B站刷到OEC降价和刷机的视频,让我很兴奋,因为我很久之前就对这个设备感兴趣了
    它有rk3566 soc
    2/4+8的配置可选
    内置2.5英寸硬盘位,一个usb3.0接口,typec刷机口,但是没有视频输出口
    相比开发板要美观,便宜许多

    所以我就火速下单,某鱼90捡了一台oect

    正在ttl debug的wxy oec

    得益于rk3566的npu和mpp以及低功耗,以及设备设计成内置硬盘位,这个设备简直就是为Frigate准备的!

    开始吧!

    刷机

    由于wxy对前者的态度,我在这里不敢详情讲解刷机相关的,如果您需要,可以在网上查找相关的刷机教程,不过我会在这里指路,我推荐您使用H大的armbian包,因为这个包可以完全发挥rk3566 soc

    https://www.right.com.cn/forum/thread-8421861-1-1.html

    不建议将frigate和其它服务放在同一台机器上跑这样会影响性能,并且为了经可能的避免出错,建议您刷机清空原有配置后再安装(如果您非常了解您的系统环境当我没说)

    我只推荐您使用这个包,因为别的包都未经测试,我无法确保所需驱动是否包含以及是否稳定,如果您有能力自己编译/制作,欢迎来联系我,我非常需要,您可以在文章末尾找到我的联系方式

    安装

    docker

    您需要安装docker才能使用Frigate,您可以根据 docker官方文档 安装最新版本的docker

    随后您就可以开始安装Frigate了

    使用docker-compose安装Frigate

    我这边比较推荐创建 /opt/frigate 目录,然后写入 docker-compose.yml 文件

    ffmpeg:
      hwaccel_args: preset-rk-h264
    
    detectors: # required
      rknn: # required
        type: rknn # required
        # number of NPU cores to use
        # 0 means choose automatically
        # increase for better performance if you have a multicore NPU e.g. set to 3 on rk3588
        num_cores: 0
    
    model: # required
      # name of model (will be automatically downloaded) or path to your own .rknn model file
      # possible values are:
      # - deci-fp16-yolonas_s
      # - deci-fp16-yolonas_m
      # - deci-fp16-yolonas_l
      # - /config/model_cache/your_custom_model.rknn
      path: deci-fp16-yolonas_s
      # width and height of detection frames
      width: 320
      height: 320
      # pixel format of detection frame
      # default value is rgb but yolo models usually use bgr format
      input_pixel_format: bgr # required
      # shape of detection frame
      input_tensor: nhwc
      # needs to be adjusted to model, see below
      labelmap_path: /labelmap.txt # required
    
    mqtt:
      enabled: false
    
    go2rtc:
      streams:
        livingroom:
          - rtsp://admin:[email protected]/streaming/channels/101
        door:
          - rtsp://admin:[email protected]/streaming/channels/101
    
    motion:
      mask:
        - 0.022,0.06,0.402,0.064,0.401,0.098,0.022,0.099
        - 0.72,0.893,0.774,0.894,0.773,0.944,0.723,0.941
      threshold: 30
      contour_area: 30
      improve_contrast: true
    
    cameras:
      livingroom: # <------ Name the camera
        review:
          alerts:
            labels: []
        enabled: true
        ffmpeg:
          inputs:
            - path: rtsp://admin:[email protected]/streaming/channels/101
              roles:
                - record
            - path: rtsp://admin:[email protected]/streaming/channels/102
              roles:
                - detect
        objects:
          track:
            - person
            - dog
            - cat
    
      door: # <------ Name the camera
        enabled: true
        ffmpeg:
          inputs:
            - path: rtsp://admin:[email protected]/streaming/channels/101
              roles:
                - record
            - path: rtsp://admin:[email protected]/streaming/channels/102
              roles:
                - detect
        objects:
          track:
            - person
            - dog
            - cat
    
    snapshots:
      enabled: true
    
    record:
      enabled: true
      retain:
        days: 3
        mode: motion
      alerts:
        retain:
          days: 30
          mode: motion
      detections:
        retain:
          days: 30
          mode: motion
    
    version: 0.16-0
    detect:
      enabled: true
    

    这里指定了我们需要安装rockchip版本的frigate,共享内存
    以及 npu gpu mpp usb等设备
    时区,配置文件位置,录像保存位置
    端口
    rtsp密码(!一定要修改)
    您可以结合自己的情况进行修改
    在这里,我建议您修改 /mnt/ssd1/frigate/storage 为你挂载的硬盘位置(一定要安装一块硬盘,切记不可使用内置emmc,这会导致闪存磨损最后成砖)
    您可以在网上搜索如何在linux上挂载一块硬盘,以及编辑 /etc/fstab 文件使得硬盘可以启动时自动挂载

    然后修改配置文件存放位置 我这里就使用 /opt/frigate/config 了,在接下来的教程中,配置文件也将会是存放在这个位置,如果您有所更改,请自行适应

    首次启动

    在当前目录下(/opt/frigate) 执行 docker compose up -d

    就会自动拉取镜像并安装,如果您因为网络问题无法下载,您可能需要配置镜像源

    首次启动会自动生成密码和管理员账户,请执行 docker logs frigate 查看


    启动后,您会看到config文件夹

    oec-turbo:frigate:# ls
    config  docker-compose.yml
    

    然后你就可以访问 https://你的设备ip:8971
    登陆后台

    配置

    然后您就可以使用自带的网页编辑器编辑配置文件
    推荐使用网页编辑器,因为可以自动排错
    点击小齿轮如下图所示

    接下来,您需要编辑配置文件才能完全发挥rk3566这颗soc
    我在这里准备了我所编写的配置文件,一切都来自 frigate官方文档,请根据自己的情况修改

    ffmpeg:
      hwaccel_args: preset-rk-h264 #启用ffmpeg硬件编码
    
    detectors: # required NPU相关,一般无需修改
      rknn: # required
        type: rknn # required
        # number of NPU cores to use
        # 0 means choose automatically
        # increase for better performance if you have a multicore NPU e.g. set to 3 on rk3588
        num_cores: 0
    
    model: # required
      # name of model (will be automatically downloaded) or path to your own .rknn model file
      # possible values are:
      # - deci-fp16-yolonas_s
      # - deci-fp16-yolonas_m
      # - deci-fp16-yolonas_l
      # - /config/model_cache/your_custom_model.rknn
      path: deci-fp16-yolonas_m #所使用的模型,一般s模型就够了
      # width and height of detection frames 识别分辨率,不用动
      #这里的分辨率不建议修改,保持默认即可,这样会增加npu压力/影响识别精度/增加延迟
      width: 320
      height: 320
      # pixel format of detection frame
      # default value is rgb but yolo models usually use bgr format
      input_pixel_format: bgr # required
      # shape of detection frame
      input_tensor: nhwc
      # needs to be adjusted to model, see below
      labelmap_path: /labelmap.txt # required
    
    mqtt:
      enabled: false
    
    go2rtc: #webrtc相关,没有实时播放会很卡,根据自己情况修改,下面改成摄像头rtsp地址
      streams:
        livingroom: #<--这里改称和下面摄像头名字一样的
          - rtsp://10.0.0.3/Streaming/Channels/201
        door:
          - rtsp://10.0.0.3/Streaming/Channels/101
    
    cameras: #摄像头相关
      livingroom: # <------ Name the camera
        review:
          alerts:
            labels: [] #将客厅的摄像头定义为仅检测不警报
        enabled: true
        ffmpeg:
          inputs:
            - path: rtsp://10.0.0.3/Streaming/Channels/201 # <----- The stream you want to use for detection
              roles:
                - detect
                - record
        detect:
          enabled: true # <---- disable detection until you have a working camera feed
          width: 1280 #这里是摄像头分辨率,录像和实时会以该分辨率保存/查看
          height: 960
        objects: #需要检测哪些物体,请参考官方文档修改
          track:
            - person
            - dog
            - cat
    
      door: # <------ Name the camera
        enabled: true
        ffmpeg:
          inputs:
            - path: rtsp://10.0.0.3/Streaming/Channels/101 # <----- The stream you want to >
              roles:
                - detect
                - record
        detect:
          enabled: true # <---- disable detection until you have a working camera feed
          width: 1280
          height: 960
        objects:
          track:
            - person
            - dog
            - cat
    
    snapshots: #启用截图
      enabled: true
    
    record: #录像配置
      enabled: True
      retain:
        days: 3 #无标记录像保存天数
        mode: motion
      alerts:
        retain:
          days: 30 #警报录像保存天数
          mode: motion
      detections:
        retain:
          days: 30 #检测到物体的录像保存天数
          mode: motion
    
    version: 0.15-1
    

    随后,点击保存并重启,如果没有报错并开始重启,说明您的配置文件无误

    这里请参考官方文档进行修改,推荐 中文版社区文档

    结束

    我的联系方式:[email protected]
    QQ:2230215612

    中文社区(qq群):1043861059
    b站 https://space.bilibili.com/3546894915602564
    网站 https://docs.frigate-cn.video/

  • 从我的生活中删除了“Mairen”,我现在感觉怎么样?

    从我的生活中删除了“Mairen”,我现在感觉怎么样?

    2025年2月19日修订

    再见,

    或许某一天


    今天是2025年1月3日,就在前几天,2024年12月28日,我选择了从我的生活中删除Mairen,我所作的是拉黑Mairen所有的联系方式,退出和他有关的一切群聊,删除了一切我为他制作的周边页面,撤销了他对我Cloudflare账户的访问权限,我和他认识差不多有2年了吧,经历了那么多,我为何却选择主动离开?

    本文包含不客观的观点,全是我的主观,所以如果你感觉到不适请关闭页面谢谢

    我之前在我的个人频道里发布了这样一条消息:

    我和麦仁商议删除 指指点点(大群) 不过我商议失败了,所以我选择主动退出,就像之前麦仁的大频道一样,因为我觉得这个群烂到极致了,后期我可能会再次考虑断绝一切和麦仁有关的联系,说真的,我挺伤心的,但是我觉得考虑到我个人未来的发展以及我的身心健康以及我给社交圈内人带来的影响我不得不做,如果一个群是给人带来负面影响的,还有,这位自称是V的,带着你的父权主义思想去吃你父亲的吊吧,一个讨论群的创建初衷是为了讨论某样或多样事物,当然,指指点点最初创建也是一样,3个聊的开的人在一个群一起讨论喜欢的事情,而现在呢?刷屏的bot,lgbt与性别对立,无休无止VPS(在他们眼中似乎就没有个人电脑会运行gnu/linux发行版,桌面使用linux更是愚蠢的,除了debian等稳定发行版别的发行版似乎就不应该存在,这些都是我从他们话里话外甚至字面意思所理解的),这些决定都是我经过多次思考以及一晚上的冷静以便防止是我的冲动想法,所以,麦仁,去你的,如果你还是你的话你仍然可以私聊我,我们可以谈谈,但是如果你是 @Azusa_mikan 那一类人的话请滚吧,我不想再见到你,说真的,我在输入这段文本的时候我在哭,我不知道我在哭什么,我在难过什么,就这样吧,我不想再说太多了,我得找点事情做调节下情绪

    前段时间,Mairen还主动私聊我说准备来贵阳找我

    请继续往下看

    第一次心碎

    在2024年暑假(大致时间就是在7-8月,由于我并没有保存相关消息所以不能推断出准确时间),首先是先看到Mairen在他的一个订阅者数量较多的一个个人频道里发布了一些图片并配文:“感谢@Azusa_mikan” 图片中展示了一台安装了debian的j1800小主机,根据配置个人预估价格在70-80元,由于我也是那个频道的管理员并且我的频道当时订阅者数量极少,所以我偶尔会在那个频道分享生活,这位 @Azusa_mikan 由于送了Mairen礼物所以也理所应当的成为了频道的管理员,那么他也就看到了我在频道里发出了我现实中的朋友送我的一张“卯酉東海道”CD(东方 Project),这个人呢,非常的有特点,之前曾出现在 花月喵梦的群里,并且还和花月互挂友链,但后面由于一些事情被花月踢出并拉黑了,具体细节我并不清楚,也请看到这篇文章的人不要去找花月喵梦问这些事情,在当时,我就在这个人的某个中转频道里看到关于“反东方Project”的群聊(埋下种子了),以及他从获得小三月的信任成为小三月群聊和频道管理员再到被公开处刑Ban不过一周,再加上我经常在频道里发“I USE ARCH”相关内容,这个人呢,就对我的消息留下了非善意的留言,比如嘲讽我笔记本没有光驱等,但不幸的是我正好免费获得了一台有光驱的台式主机,所以他就开始破防了,叫我喜欢发就发到#archlinux-cn群组,那么我肯定要说回去啊,我说你先在这个群里给你(那什么玩意我忘了)的东西打广告我再发啊(实际上我就是等着他进群发并看笑话,因为我从花月那里就给我留下了极差的印象),然后被别的群友劝下来了因为当时冷曦在,也就不了了之了

    过了几天麦仁突然私信我并转发了聊天记录,就是他在别的群里议论我,并且他还得到了一些人的推崇(这也就是我为和要选择远离这帮人的原因,他们可以选择不多做评价却还要凑热闹,没错说的就是你@HonorePelchat,给老子去死)

    那么我看到这些消息我肯定是心里不爽的,那我要骂啊,我在Mairen的那个频道里diss他,我就是要让他看到,因为他只会在别人背后阴暗的角落里议论,我要当着他公开的面议论,他当场就破防了,然后就骂,而麦仁看到所做的,是删除消息,没错!删除消息!他最惯用的手段,当他看到对自己不利的言论时所作的是删除消息,而没有劝架,最后给我带来的是敌损800自损1000,

    在这之后并没有得到Mairen的安慰,即使我主动寻求,反而是小三月来安慰我,在这之后我就退了Mairen的频道并离开了群,因为我觉得太蠢了,然后我在我的个人群内用rose bot查询FBan以暗示Mairen

    • 以下联盟导致了 林 梓橙 在群组中被封禁:
    • 058baabe-c2ae-46d4-9692-98d73a741ad8: Canyie
    • 5281be76-fd24-4e6a-86f9-2f1604ae1dcd: kitsune
    • e4047102-ad20-4552-99f4-84af22182a26: APFBans
    • 若您想在特定联盟了解更多有关联盟封禁原因,请使用 /fbanstat <用户 ID> <联盟 ID>。

    我等到Mairen看到了这些消息后并删除,我想这已经不能叫暗示了,这叫明示了,但是Mairen并没有作出仍和动作

    所以我便写下了

    事情已经已经过去几天了,但是我仍然心有余悸,我从来没有想象过一个人能够如此的低俗,厚颜无耻,没有素质,恶心,我现在一想起来我就会从生理上感到恶心,再回想我在学校遇到的那些混的,男男女女我觉得真的不算什么,这以至于我晚上翻来覆去睡不着,想到那些恶心的话语我就会心绞痛,难受,我在想这个世上为何会有这种人,我真的非常难以接受,我甚至想过这个人去死,我只能假装我没事,在麦仁群里像是往常一样抽象,但是我并没有感到好些,当我再看到他的昵称的时候我又会开始难受起来,就像是一把沾满屎的尖刺插在我心脏上难受,我骂他那些话,还是想了一晚上才想出来的,而他骂我,就像是暴露了他的本体,算上这次遇见他,应该算是4次了,第一次是在喵梦的群,喵梦给他友链,第二次是小三月,第三次是麦仁,这也是最爆典的一次,因为一个他自己的配置错误导致一款开源的流服务器软件开发者全家都被他疯狂输出了,我记得我曾提醒他了3次看文档,耐心的告诉他那里该怎么改,我也不确定他真看了么………
    就在昨天,我退出了麦仁群,包括下面的小群,所有频道,然后拉黑了许多我认为和他有关系的人,包括 陌土 ,因为首先他议论我的群就是在 陌土 的群,并且我在APFBans里看到 陌土 曾尝试将他移除,这里感谢小ice把他重新加回来了,我觉得这种人就应该永远被ban,再来说点搞笑的,这个家伙看不懂英语,即使是初中水平的,而且还不愿意使用翻译软件,还有就是这个家伙反对lgbtq+,他曾在lsposed群里将其中一名mtf开发者惹恼了,然后被ban,我想他既然这么反对lgbtq+,为何还要使用这些工具,难道这里面没有lgbtq+群体开发者的心血么?你为何不自己做一个出来,如果你能从0开始完全不依靠别人和现有代码自己做出来我会由衷的敬佩你,即使只实现了一半的功能,真的,我想你这个逻辑大神肯定行,毕竟你嘲讽点评我说话不带逻辑,没有语境,这我认,毕竟我本来就是这样的,我想你肯定比清华,北大的教授还要强,但凡有个学校招你进去第二年报名的新生都能绕着地球转3圈
    现在我退了很多有他在的群,也包括有 陌土 的,我认为这两个人都无药可救,并且拉黑了许多我认为和他有关系的人,合上了我的笔记本,离开房间,我能感受到微风,夏日的热浪,邻家炒菜的香味,我觉得我的生活可以重新走上正轨了,我可以继续更新我的博客,剪辑抽象视频把它们发到社交平台上,我可以把生活过得充实有趣,而不是像以前一样漫无目的的水群
    最后,我给所有和他相处过一段时间的人或是他来主动找你或者你想要找他的人一句忠告,拉黑他,不要理他,他迟早会毁掉你的

    尽管我后来重新回到了Mairen的群,但是我也没有以前的峰棱了

    现在

    而这一次,我主动找到Mairen,我希望能他能翻篇重新开始,而不是创建小群就完了,我希望他能解散现有的群,定位一个明确的目标,再创建一个新群,所以我首先先在他的小群里提出意见并希望获得群友的观点,当我看到并没有群友提出异议并建议我主动私聊Mairen的时候我便去做了,因为这条消息我通过已读里看到了Mairen已读,所以我便私聊了他,问:“我们现在可以商议一些事情么?”并等待,而他,还在折腾他那该死的DNS服务器,所以,我继续等待,而我等待这么久,所换来的,是两个字:“不行”,我当时都被气笑了,所以我便先退出了大群和小群,希望Mairen能够引起重视,并在我的个人频道里发布了本文开头的那条消息,我继续等待,不过仍然没有收到任何回应,我通过我频道的评论区已读列表确认了Mairen已经看到了这条消息,所以我便作出了一个我觉得唯一能让我觉得好受的决定,拉黑,退群我并不人为我的逻辑有什么错误,我觉得这样做能让我好受点,所带来的结果就是我再也没有觉得我是谁谁谁的衬托,我不用再等待有人为我作出回应,我能够更加专注的做我自己的事情,我无需再等待,我想做什么就做什么,我去了重庆,而不是等待一个我从未见面的人来找我。

    并且,我希望在以后,我能够回归现实社交,我能够鼓起勇气在我喜欢的UP主的粉丝群里发言,这是我最大的一步

    Mairen,去你的!

    回想起我曾经在群里说:“再过几年,我们都成年了,有了工作,生活,家庭,我们还会彼此聚在一起么?”,“一定的”他说

    这一切都是如此讽刺

  • 使用NATMap实现NAT穿透达到公网IPv4体验

    使用NATMap实现NAT穿透达到公网IPv4体验

    前言

    虽然IPv6开始变得流行,但是由于网络运营商以及公共免费网络长期无人维护,在许多时候你还是没法连接到IPv6网络,假如你用IPv6来架设网站,游戏服务器,用户是否能访问或游玩则又是需要操心的一大问题,所以有一个公网ipv4地址是我一直梦寐以求的,即使IPv6有多么好。

    但是由于全球IPv4地址枯竭,没法做到每人每个设备一个公网IPv4地址,所以网络运营商采用了NAT的方式以保证用户在没法被分配到IPv4公网的情况下仍然能通过IPv4上网

    想象 NAT 就像一栋有多层的公寓楼,每层楼上都有 65536 扇“窗户”(端口)。公寓的每一层就像是 NAT1、NAT2、NAT3 等不同的 NAT 层次。住在楼里的住户就是内部的设备,而楼外的人则是外部网络上的人。

    当楼里的住户想和外面的世界互动时,就需要通过“窗户”来交换物品(即建立连接)。不过,不是每一层的窗户都可以轻松打开:

    1. 第一层(NAT1)上的窗户相对容易打开,但住户不能自己打开,得需要外面的人协助才能打开,这就像借助 TURN 服务器来实现 NAT 穿透。
    2. 而在更高的楼层(NAT2、NAT3 等),住户的窗户更难直接打开,所以住户需要依靠楼内的“快递员”来帮忙传递东西(即通过 NAT 映射或中继服务器)。
    3. 如果有些住户需要和别的公寓楼的住户建立联系,可以请求住在第一层的住户或者外部的“送货员”来帮忙传递(即端口转发)。

    而我就是住在第一层的那一部分用户(只是我之前一直不知道如何把“窗户”打开而已),所以本篇文章,将会教您如何使用NATMap打开“窗户”

    使用

    本教程仅适用于Linux,其他操作系统请自行查找别的教程

    首先,你需要确保你的网络NAT层级为NAT1 (Full Cone),你可以使用 NAT检测工具 查看你所在的NAT层级,并自行在网络上搜索相关教程以降低NAT层级,其中最有效的是将你的上网方式设置为桥接

    随后,你可以在OpenWrt官方仓库搜索 luci-app-natmap安装或前往NATMap Github releases页面下载适合你操作系统的版本,如果条件支持,我建议将这个程序运行在你的主网关设备上以提高打洞成功率

    OpenWrt

    我这里使用的是一个运行OpenWrt系统的软路由PPPOE拨号上网,光猫设置为桥接模式

    在 网络>防火墙>通信规则 添加一个名为Dynamic(或者别的你喜欢的),协议选择tcp与udp,源区域选择WAN,目标端口填写49152-65535,操作选择接受,启用,保存并应用
    或者你直接在 常规设置 里全部改为接受保存并应用

    如果你是使用openwrt较新的版本,如23,SNAPSHOT等,你可以直接在 系统>软件包 搜索luci-app-natmap安装,然后刷新页面,进入 服务>NATMap 删除或修改自带的示例配置,点击“添加”,选择你的端口协议(tcp/udp),地址族限制保持默认即可,接口选择WAN,Keep-alive 间隔留空(默认25),STUN 服务器可以前往 public STUN servers 查看,并选择一个合适的STUN服务器,HTTP 服务器建议填写一个稳定的支持双栈访问的网站,比如 qq.com,绑定端口则可以输入 49152-65535 之间任意端口或内网设备上运行的服务的端口(前提是已调整防火墙设置)
    不建议使用自带的转发模式,我们可以先添加,稍后设置
    设置通知脚本,你可以前往 https://github.com/heiher/natmap/issues/12 查看社区分享的通知脚本或者自己写一个

    点击保存后记得勾选启用并点击保存并应用,如果网络没有问题的话10秒内将获得公网IP和公共端口,如果没有显示可以刷新一下页面,如果你正在使用类似OpenClash的代理工具记得将你使用的STUN服务器加到绕过核心规则,否则会影响到NAT穿透,OpenClash的操作方式是 插件设置>流量控制>本地 IPv4 绕过地址 填入你的stun服务器地址(可以直接写域名,不一定需要填写ip)保存并应用

    其他Linux 发行版/旧版OpenWrt

    这就需要你从NATMap Github releases页面下载适合你操作系统的版本了,你可以执行lscpu查看你的处理器构架,然后选择合适的下载

    下载下来后,将程序保存到一个合适的位置,将其重命名为 natmap 并执行 chmod 755 natmap 修改权限使其可以执行,你可以为其添加一个环境变量使其以后操作更加方便

    # TCP
    natmap -i wan -s turn.cloudflare.com -h example.com -b 80
    # UDP
    natmap -i wan -u -s turn.cloudflare.com -b 443

    这里的参数分别对应上面OpenWrt,-s 为STUN服务器,-h 为HTTP服务器,-b 为绑定端口,-i为接口,-k为KeepAlive,-e为通知脚本

    更多选项请参考 https://github.com/heiher/natmap

    如果运行成功,会在终端打印ip和端口

    假如你最终的指令是

    natmap -d -u -i pppoe-wan -s turn.cloudflare.com -b 6000 -t 192.168.0.2 -p 6000 -e /usr/bin/ddns

    你就可以把它写入/etc/rc.local实现开机启动

    端口转发

    这里我强烈建议使用OpenWrt自带的端口转发功能,它在 网络>防火墙>端口转发,点击添加,命名一个你喜欢的名字,在 外部端口 那里输入你刚刚在NATMap输入的绑定端口,内部IP地址选择需要转发到公网的内网设备或者路由器本身,内部端口填写需要转发出去的服务的端口,比如我需要将我内网主机 10.0.1.3 上的minecraft服务器转发,下面截图就是我的配置

    为和需要这样设置呢?因为这样设置内网的服务就能获得访问者的IP地址,而不是转发设备的地址,这是我的Minecraft服务器日至

    [16:08:43] [Server thread/INFO]: Meow_www[/104.28.235.60:17792] logged in with entity id 3046 at (267.5, 71.0, 263.5)
    
    [16:08:43] [Server thread/INFO]: Meow_www joined the game
    
    [16:09:59] [Server thread/INFO]: Meow_www lost connection: Disconnected
    
    [16:09:59] [Server thread/INFO]: Meow_www left the game
    
    [05:25:50] [Server thread/INFO]: mozi1924[/1.204.171.239:34220] logged in with entity id 3817 at (381.5045765202818, 157.0, 643.0446101140859)
    
    [05:25:50] [Server thread/INFO]: mozi1924 joined the game
    
    [05:25:53] [Server thread/INFO]: mozi1924 lost connection: Disconnected
    
    [05:25:53] [Server thread/INFO]: mozi1924 left the game

    可以看到它获取到了玩家的IP地址,而不是转发主机的

    如果你使用的不是OpenWrt 并且不熟悉iptables或nftables的操作,你可以使用NATMap自带的端口转发,请查看官方文档

    而使用NATMap自带的转发功能则无法像是这样获得连接者的IP,如果你需要使用BanIP功能则会把所有玩家Ban了,对于访问者统计也十分不友好,期待后续版本更新改进

    脚本

    这是我的MC服务器SRV解析脚本,可供参考

    #!/bin/sh
    ZONE=''
    RECORD=''
    EMAIL=''
    AUTH=''
    NAME='original.mc.mozi1924.com'
    TARGET='ipv4.mozi1924.com'
    ip=
    port=
    proto=
    while true; do
        curl -X PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records/${RECORD}" \
    	        -H "X-Auth-Email: ${EMAIL}" \
    	        -H "Authorization: Bearer ${AUTH}" \
    		-H "Content-Type: application/json" \
    		--data "{
    			\"type\": \"SRV\",
    			\"name\": \"_minecraft._$proto.$NAME\",
    			\"ttl\": 60,
    			\"data\": {
    				\"priority\": 0,
    				\"weight\": 5,
    				\"port\": \"$port\",
    				\"target\": \"$TARGET\"
    				}
    			}" >/dev/null 2>/dev/null &
        if [ $? -eq 0 ]; then
            break
        fi
    done

    结束

    接下来,享受你的IPv4公网访问吧

  • 为你的网站添加一个Tor路由

    为你的网站添加一个Tor路由

    前言

    最近,我有开始对onion网络感兴趣了,并不是因为上面的那些……厄…明网上找不到的内容,而是对它的运行方式感兴趣,因为最近telegram因为一些法律原因不得不违背最初承诺的加密对话,虽然这是在我的可接受范围内,但是这仍然给我一种不舒服的感觉,所以我和我的群友便商量起了自己搭建一个加密对话平台,于是便想起了onion网络

    安装并配置Tor

    这边以archlinux和nginx为例,tor已经在默认的extra源里了,所以你只需要执行

    sudo pacman -S tor

    即可安装,随后执行 sudo nano /etc/tor/torrc 将最后一行的

    %include /etc/torrc.d/*.conf

    取消注释,随后执行 sudo mkdir /etc/torrc.d 创建一个文件夹,并且在其中写入你的配置文件,比如我的是这样的

    HiddenServiceDir /var/lib/tor/mozi/
    HiddenServicePort 80 10.0.1.2:80

    其中,10.0.1.2是提供web服务的主机,由于我使用的方案是一台主机提供正常的web服务,一台主机来进行反代,正常情况下填写127.0.0.1或者 unix套接字 地址即可,如果都是在同一台主机上运行,更加建议使用unix套接字,这样省略了tcp ip协议,延迟更小,更加安全,HiddenServiceDir 则是存放onion密钥的地方,这个密钥决定了你的onion主机名,你可以照抄我的配置,修改 mozi 为你喜欢的名字,默认情况下,如果该目录为空或者不存在 tor 则会创建并随机生成一个密钥,如果你撞出了一个你喜欢的地址也可以使用撞出来的密钥替换里面的

    然后,如果你使用了虚拟主机,则需要在你的配置文件中写入你的onion主机名,执行 sudo cat /var/lib/tor/YOURSET/hostname 即可查看

    这时我的nginx部分配置

    server {
    listen 80;
    listen [::]:80;
    .....
    
    server_name mozi1924.com www.mozi1924.com moziwewxspyfbo3lp3rnhgfqeogvbk7oj6kgprd6tms3w2kzgy7b3iyd.onion;
    
    .....
    }

    在你的 server_name中加入你的onion hostname

    然后执行 sudo systemctl enable --now tor.service 启动tor服务

    有时候,你所在的地区可能会阻断你与tor网络之间的连接,我推荐你使用 cloudflare warp 进行代理后再连接(记得设置启动优先级)具体方法请在网络上自行搜索,或者使用 obfs4proxy

    使用obfs4proxy

    执行

    sudo pacman -S obfs4proxy

    安装obfs4proxy

    确保在 torrc 文件中添加以下内容来启用 obfs4

    ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

    这行代码告诉 Tor 使用 obfs4proxy 来处理 obfs4 网桥。

    然后创建配置文件 /etc/torrc.d/bridges.conf

    UseBridges 1
    Bridge obfs4 <IP>:<Port> <Fingerprint> cert=<Certificate> iat-mode=<Mode>

    如果你无法访问 bridges.torproject.org 你可以通过 telegram bot @GetBridgesBot 获得网桥,不过网桥不是特别稳定,不保证永久可用,并且速度大多数时候不如cloudflare warp

    配置完记得执行 sudo systemctl restart tor.service 重启tor服务

    检查连接

    你可以执行 systemctl status tor.service 来查看tor服务的运行状态,假如你长期卡在了某个启动进度,比如 Bootstrapped 10% (conn_done): Connected to a relay 并且报错

    Oct 07 23:35:30 archbook Tor[40440]: Problem bootstrapping. Stuck at 10% (conn_done
    ): Connected to a relay. (No route to host; NOROUTE; count 10; recommendation warn; host B636837E9432EE15729978B24F1958
    D644D5B0D6 at 45.86.86.231:9001)
    Oct 07 23:35:30 archbook Tor[40440]: 9 connections have failed:
    Oct 07 23:35:30 archbook Tor[40440]: 8 connections died in state handshaking (TLS)
    with SSL state error in HANDSHAKE
    Oct 07 23:35:30 archbook Tor[40440]: 1 connections died in state connect()ing with
    SSL state (No SSL object)

    那么你存在连接问题,请配置一个网桥/更换网桥

    如果输出的日志里没有报错并输出了 Bootstrapped 100% (done): Done 说明你成功连接了tor网络,去访问你的网站试试吧

    获得vanity地址

    使用 https://github.com/cathugger/mkp224o 来撞出你的vanity地址,

    洋葱地址使用base32编码,不包括 0,1,8,9 数字。
    所以不,不可能生成这些,mkp224o 试图 及早检测包含它们的无效过滤器。

    我使用一台18核36线程2.9ghz处理器的老工作站来进行运算,通过docker来运行程序

    docker run --rm -it -v $PWD:/keys ghcr.io/cathugger/mkp224o:master -d /keys NAMEYOUWANT

    此过程非常的缓慢,如果使用普通的个人计算机,建议将字符限制在7个以及7个以内,否则需要撞很久

    由于暴力密钥生成的概率性质,并且 它将运行的硬件多种多样,很难做出承诺 需要多长时间,尤其是当大多数用户 只需要几把密钥。
    请参阅 此问题 以获取有关此问题的非常有价值的讨论。
    如果您的机器足够强大,则不应使用 6 个字符的前缀 如果使用批处理模式,则需要超过几十分钟(请阅读 OPTIMISATION.txt ) 7 个字符可能需要几个小时 到几天。
    不过没有承诺,这纯粹取决于运气。

    您可能需要调整所有权和权限:

    sudo chown -R tor: /var/lib/tor/nekosvc
    sudo chmod -R u+rwX,og-rwx /var/lib/tor/nekosvc

    已知问题

    wordpress(可能或者别的一些CMS)由于设计问题当使用与数据库内不同的域名访问的话会存在部分内容无法正确加载或者301跳转,请自行搜索解决办法

    结语

    本站以及我的另一个网站也有Tor路由,感兴趣的可以通过以下地址访问

    moziwewxspyfbo3lp3rnhgfqeogvbk7oj6kgprd6tms3w2kzgy7b3iyd.onion

    以及

    arasakayeflovwsg4r47ckec7omndoil4jblyxigjmcapb4d2pfs7tyd.onion

  • 我日用 Pixel 7 的体验和感受

    我日用 Pixel 7 的体验和感受

    引言

    在我上小学的时候,就在bilibili上看到了有关Google Pixel手机的视频,这手机被传的神乎其神,是Android机皇,可以和iPhone抗衡,

    就在前年,我开始对玩机起了兴趣,我想要一台能获取root权限并且是原生Android的手机,所以我购入了一台二手原装屏的小米Mix3并为其刷入了xda上的PixelExperience,初次接触了类原生Android

    初见Pixel

    后来不小心把屏幕摔坏了,换上了第三方lcd屏,不过实在是太难用了,所以我购入了我的第一台Pixel手机:Pixel 6 Pro

    这让我第一次真正接触到在Pixel手机上的Android系统,Google相机,还有那个极其抽象的Tensor G1芯片。烫,是我对它的第一感觉因为这个手机只要拿在手上就会开始发热,放在那里充电也发热,无线充电更是想都不敢想,感觉手机壳都会被热化,所以这手机完美的解决了我沉迷游戏的情况 把我端游赶(其实我也不怎么玩电子游戏了},但是也有别的好处了,比如Google相机的算法给我带来的震撼,120hz高刷屏的流畅,以及我第一次使用带有长焦……..

    不过防水溅不防手贱,这手机进水了导致指纹损坏(悲),又在我手贱尝试拆开的时候导致屏幕漏夜+两条绿线+屏闪 (大悲)

    买!买!买!

    就在上上周,我购入了Pixel7,没错,就是Pixel7,不是Pixel 7 Pro,因为我不想要曲面屏,又买不起Pixel 8 Pro,手机到手后就火速使用c-to-c数据线将数据导到新手机上了,在经过一系列配置过后我发现:我 忘 记 解 锁 B L 了,因为解锁BL要清除数据,我不想再重新配置一遍,因为我用的是移动卡所以我就将就用了

    啊?

    结果我发现即使不root刷模块优化,它也很好用!并且Pixel7原生的充电和后台调度用起来非常舒适,但是!许多国产app,比如wx,qq将会没有后台推送,只能在设置里修改电池优化允许app在后台活跃运行,不过还好的是我大多app都是找的平替或者使用play版本,除了通知推送,冻结机制还有别的一些不习惯的,记得在有一次用学习通下课打卡的时候要求使用手势打卡,我在画完手势后就顺手滑道后台了,过了一会在打开发现居然还在加载页面没有成功请求上去。

    续航

    我平时大多都是刷刷b站,facebook , X,以及使用telegram聊天,还有就是用浏览器浏览网页,少数打开几次wx zfb来进行付款,基本上可以做到一天两充

    相机

    夜视算法,是我不得不吹的Pixel特点之一,无许多言,只需两张图片即可:
    无夜视:左
    有夜视:右

    无夜视
    有夜视

    还有我平时拍的

    性能

    这次升级到了Google Tensor G2芯片,这款芯片怎么说呢,打游戏肯定是不行的,网上有许多性能测评和跑分,这里相比我不用多说,但是你日常使用肯定是能够流畅使用的,wx,qq等国产3A也是能流畅使用不卡顿

    AI

    我想Google算是比较早的一批推出AI手机的了,虽然这款手机没有像是现在最新款 Pixel 9一样夸张到在手机上运行一个完全离线的多模态模型来帮你查找照片,但是这款手机却有非常好用且支持离线魔法橡皮擦和模糊照片修复,魔法橡皮擦能够帮助你移除照片里的污渍,意外入镜的路人,模糊照片能够帮助你修复一些老照片和手抖

    魔法橡皮擦:

    又但是,首次使用需要联网更新(对于完全没法魔法的人真素不友好)

    系统体验

    如果完全不看国产手机那些本土化功能的话,我想Pixel UI在一众Android中算是用起来最舒适的,虽然不如国产某某UI/OS那样有夸张的过渡动画,高斯模糊效果,但是能在实现流畅连贯的动画同时做到最小的性能开销,并且有着许多令人舒适的细节,让人忍不住想要多看几遍

    系统无内置各种臃肿的预装第三方推广软件,系统自带应用也没有烦人的广告推送和开屏广告,桌面小组件也非常简洁精致,在桌面下滑也不是打开那个愚蠢的搜索功能

    通知栏和操作中心是一体的,从顶部下滑打开通知,再下滑打开操作中心,单手就能快速操作,说到国产UI,一个二个整天就模仿苹果,什么从左上角下滑打开通知右上角下滑打开操作中心是那个**想出来的,不好用,操作繁琐,设计者难道就不会自己上手用一下么?尤其是今天的手机屏幕一个比一个大简直完全没法单手使用

    缺点

    是时候来说说这个手机的缺点了,因为大陆的网络环境问题如果你想要使用系统某些联网功能你是必须科学上网的,即使有些不需要但第一次使用也是必须的,比如OCR,魔法橡皮,语音输入等等

    • 5g网络必须root
    • 内陆不允许办理手机esim制止目前为止双卡功能可以看作没有
    • 相比国产手机性价比不高
    • 对充电器要求较高
    • 指纹识别成功率底
    • 发热还是有点严重
    • 国内绝大多数软件未适配FCM,得挂着后台推送
  • 利用hdmi欺骗器在wayland下通过sunshine+moonlight实现副屏与远程桌面

    利用hdmi欺骗器在wayland下通过sunshine+moonlight实现副屏与远程桌面

    早在前段时间,我就开始研究sunshine+moonlight了,因为我买了个Xiaomi Pad 6还带有原装键盘,不过Android系统对我来说太局限了,并且设备配置不高,没有什么我能干的事情,所以我就想把电脑的画面串流到平板上,这样就能更加轻便的出门并且随时都能玩AAA大作或者做平板做不了的事情

    软件虽然很好用但是有个问题,当我把笔记本合上后再连接它就会报错,原因是没有显示器,而wayland下创建无头显示器网上没有太多有用的信息,有的sb创作者甚至含糊不清害得我研究了一晚上,最后询问chatgpt得知wayland下无头显示器不完善,如果需要使用无头显示器建议回x11,x11就x11,但是问题是切换需要注销,我所希望的是走的时候和上笔记本,在外面拿起平板就能,立马接力未完成的工作,并且在使用笔记本的时候平板还能充当无线副屏

    好在有有需求就会有产品,有这样的需求或者有类似的需求的人很多,所以就诞生了hdmi欺骗器这种东西,它看着像无线鼠标接收器一样小巧,然后把它插在hdmi口就会创建一个显示器,我买的是2k 144hz版本的,我希望能和我笔记本屏幕持平,然后在sunshine后台将 显示器编号 输入0,即可实现平板副屏合盖主屏,剩下的按照自己喜好配置即可

  • 在ArchLinux上安装 Ultimate Vocal Remover 5

    在ArchLinux上安装 Ultimate Vocal Remover 5

    Ultimate Vocal Remover 5 是互联网上最好的声音去除应用程序,它是完全免费和开源的!适用于Windows、Mac 和 Linux

    https://ultimatevocalremover.com/

    前言

    我经常创作一些AI翻唱的音乐,而我需要清晰且高品质的伴奏和便于ai识别的人声,之前我使用windows,但是现在我使用 archlinux,万幸的是这款工具支持linux,
    但是官网并没有提供 linux版本安装包下载,而官方仓库所提供的安装教程会破坏您的系统 python环境,所以我不建议按照官方教程安装,所以我编写这篇教程,来帮助您少走弯路

    开门见山

    首先,根据
    Anjok07/ultimatevocalremovergui/blob/master/README.md
    我们可以模糊的晓得,这款工具推荐使用python3.9.8,并且作者没有提到使用 anaconda,我本人在此之前根据 https://ivonblog.com/posts/ultimate-vocal-remover-gui/ 使用anaconda 安装,虽然程序能正常运行但是存在gui界面的字体问题,所以我更推荐使用python-venv,那么接下来,开始

    开始

    首先,使用您喜欢的方式安装python39 aur包
    https://aur.archlinux.org/packages/python39
    我喜欢使用yay

    yay -S python39

    然后使用pacman安装pip tk ffmpeg

    sudo pacman -S python-pip tk ffmpeg

    创建环境与安装依赖

    Clone仓库

    把它放在一个你喜欢的位置,比如我就放在了~/uvr5/

    cd ~
    git clone https://github.com/Anjok07/ultimatevocalremovergui.git uvr5
    cd uvr5

    创建虚拟环境并激活

    python3.9 -m venv venv
    chmod 777 ./venv/bin/activate
    . ./venv/bin/activate

    此时,你的终端应该会多出来一个(venv),像是这样
    (venv) [mozi@laptop uvr5]$

    配置镜像源(部分用户不需要)

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

    使用pip安装依赖

    # 防止The 'sklearn' PyPI package is deprecated錯誤
    export SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=true
    
    pip3 install -r requirements.txt
    
    pip install pygobject

    这个过程应该很顺利

    启动脚本

    你可以编写一个启动脚本,方便启动程序

    tee ./run.sh <<-'EOF'
    echo "Starting...."
    . ./venv/bin/activate
    python UVR.py
    EOF
    
    chmod 777 run.sh

    然后,每次启动只需要执行run.sh就行了

    结束

    uvr5 running on archlinux in gnome desktop environment

    最后,享受这款软件给你带来的便利,直到2024年6月19日,最新版本是5.6,但由于一点小bug软件会提示你更新,不用理会

  • intel NUC X15 (LAPKC71F)安装Arch Linux一些注意事项

    intel NUC X15 (LAPKC71F)安装Arch Linux一些注意事项

    前言

    在上上个月,我再也无法忍受我笔记本电脑的短续航,底性能,高发热,所以我决定安装linux,但是有那么多linux发行版,我该选择什么呢?
    然我我毫不犹豫的安装了debian(当然是在备份重要数据后了….)

    然后就是各种折腾过程,驱动安装,灯效控制什么的了,在踩了一大堆坑,最后
    我 把 系 统 玩 炸 了

    然后在群U的强烈推荐下,我安装了archlinux,然后一直用到了现在,我写这篇博客是为了同样公模想安装arch linux的小伙伴看着更方便,少踩坑(其实archlinux wiki里有这个型号的wiki,但是写的有点倒三不四的,我照着安装遇到了许多问题,有机会我会提交的)

    安装

    首先是最基本的安装,这里我建议照着网上的教程来,唯独需要注意的是显卡驱动,如果你想要使用Nouveau就选择全部,如果你要安装专有驱动则只安装intel,别的先别装

    额外驱动

    然后就是基本的驱动,和qc71_laptop兼容,有两个驱动可选,一个是带有gui控制面板的tuxedo-drivers,另一个则是专门的qc71-laptop-dkms-git,我建议安装qc71-laptop-dkms-git,如果你有多余的精力愿意试试tuxedo-drivers也可以,但是听我的,它不好用,控制面板也是个残废的状态,在qc71-laptop-dkms-git下,它拥有tuxedo-drivers所有的功能,还能控制电池充电,还能传递风扇转速到 lm-sensors ,虽然不能控制风扇转速,并且没有占用 功能键tuxedo-drivers占用了功能键,用于快捷打开控制面板,但是控制面板又有bug,很多情况下打不开,并且控制面板显示的风扇转速不准确,也无法控制风扇转速,键盘灯控制也是不能用的,所以我不推荐使用,而在没有占用的情况下功能键就能切换调度,不过这个是bios里的,具体的影响就是风扇的最大转速,灯条驱动包含在qc71_laptop里,但是不知道为什么有时候不出来,没法控制,不过无伤大雅,完美主义者就待在win好好的吧

    键盘灯

    然后就是键盘灯,我推荐安装ite8291r3-ctl来控制,注意 不要使用aur包,无法检测到设备,我建议直接git clone https://github.com/pobrn/ite8291r3-ctl.git 然后root运行setup.py,记得安装 libusb ,如果你想屏幕取色请去文档看
    然后我推荐也安装一个内核模块 hid-ite8291r3 ,不安装这个模块ite8291r3-ctl也能正常使用,安装后拓展选项更多,具体请看文档

    自用软件推荐与杂话

    既然你用了linux,那么你肯定就要忍受软件生态匮乏,但好在valve大力给wine项目投钱和这两年国产发行版的大力推动,qq和wx已经有了原生运行的版本(但是chromium)就算没有原生运行的也可以通过Steam PlayWine 运行,它们能够获得非常棒的转译效果,流畅的运行游戏,甚至支持光线追踪,又由于linux系统的占用少于windows,游戏运行性能甚至超过了windows11
    linux下的chrome非常烂,很难用,所以我建议使用firefox
    gimp替代photoshop
    inkspace替代illustrator
    建模你可以使用blender
    vlc的解码内核很强大,虽然功能不足potplayer
    种子下载我使用qbittorrent增强版 ,虽然吸血雷有linux版并且很简洁但是我不推荐用
    语音降噪可以使用Easy Effects,普通降噪+深度降噪两个滤镜叠加起来简直无敌了

  • Smart AM40 使用tf卡刷机和安装hassio

    Smart AM40 使用tf卡刷机和安装hassio

    开始

    最近,我对arm64小主机很感兴趣,在网上浏览了很多,但大多都不符合我的要求,但是,我在某鱼上面发现了一款工控小主机,型号是SMART Technologies AM40

    这个型号的主机很小众,在b站上只能找到两个有关的刷机教学视频,但是,额,怎么说,录的很随意,没有过多的介绍,不过在 lajilao.top 上面有大佬整理了详细的资料和出厂包 欢迎去 https://lajilao.top/thread-63-1-1.html 给大佬点个赞

    我购买的这台包含了本体和拓展坞,如果你也想购买一台,我建议购买附带拓展坞的,价格在180元内,超过了就不建议购买了,本体上包含以下接口:

    • USB 3.0 x2 (上面的那个用于maskrom刷机)
    • 千兆网口 x1
    • 天线接口 x2 (使用内孔天线)
    • 用于外部启动的tf卡接口 x1
    • hdmi1.4 x1(linux下需要刷内核才能使用,[(1920 × 1080) on board,由DP转的])
    • OPS接口 x1
    • 电源接口 x1 (3.0 * 1.1 [on board; hided])

    OPS拓展有这些接口:

    • USB 2.0 x4
    • HDMI 2.0[ops 4k@60Hz]
    • 6个COM口(自行研究)
    • PORT size: 5.5 * 2.5 [ops; main]

    使用rk3399处理器,4+32的内存组合,双频wifi+bt4.2

    详细请前往 https://am40.cache.cloudns.org/

    刷机

    首先,让我们先从刷机开始

    这里我只介绍tf卡卡刷法,因为没有供电所以就不介绍maskrom刷机法了,在 https://am40.cache.cloudns.org/ 上写的很详细

    首先前往 https://github.com/ophub/amlogic-s9xxx-armbian/releases 下载系统镜像,我比较推荐 HassIoSupervisor_bookworm

    下载下来的文件名字大概是这样 Armbian_x.x.x_rockchip_smart-am40_bookworm_x.x.x_server_xxxx.xx.xx.img.gz
    xxx则代表版本号

    然后使用 etcher 烧写进 高速tf卡 不然可能没法启动,建议使用8g以上的

    大概步骤如下:

    首先选择镜像

    Etcher图1
    Etcher图1

    然后选择要烧录的tf卡,注意不要选错不然数据丢失

    Etcher图2
    Etcher图2

    然后点击 Select,回到主界面,点击Flash!,出现这个页面就表示开始写入了

    然后等待,直到出现以下页面,速度取决于你的读卡器和sd卡写入速度

    接下来,就可以取出你的tf卡了

    启动

    然后将你的tf卡插入标注着service only的tf卡插槽里,芯片面朝下

    SMART Technologies AM40
    记得断电

    然后重新上电,接上网线,就会从tf卡启动,启动速度由tf卡速度决定

    然后登录你的路由器后台,查看小主机的ip

    使用 ssh root@armbian 连接主机,密码输入1234

    根据自己的喜好设置root密码,shell,创建新用户,如果不想创建则Ctrl+C

    接下来是安装到emmc,如果你不需要请跳转到3

    写入emmc

    输入 lsblk 查看磁盘命名

    然后上传Armbian_x.x.x_rockchip_smart-am40_bullseye_x.x.x_server_xxxx.xx.xx.img.gz
    上传至 ~/ 目录(/root或者/home/username)
    在这里,我的emmc被命名为mmcblk0,那么在主目录执行

    gzip -dc Armbian_x.x.x_rockchip_smart-am40_bullseye_x.x.x_server_xxxx.xx.xx.img.gz | dd of=/dev/mmcblk0

    等待指令结束则完成,然后你就可以拔掉tf卡,然后重启

    每个人的设备略有不同,并非所有的都是mmcblk0,具体请使用lsblk查看

    安装hassio

    准备工作

    首先,更新下系统

    apt update && apt upgrade -y

    如果速度慢请尝试更换镜像源,请自行搜索

    然后安装docker

    curl -fsSL get.docker.com | sh

    过程请保持科学上网,直到出现下图则安装成功

    安装os-gent

    前往 https://github.com/home-assistant/os-agent/releases 下载 os-agent_x.x.x_linux_aarch64.deb

    使用你喜欢的方式下载比如wget ,然后 apt install ./os-agent_x.x.x_linux_aarch64.deb -y 进行安装

    安装Home Assistant Supervised Debian Package

    下载 https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb

    然后 apt install ./homeassistant-supervised.deb -y 进行安装

    选择qemuarm-64,回车

    这样,就算是安装成功了,程序会自动下载docker镜像

    完成后继续执行以下指令

    cd /usr/share/hassio

    nano jobs.json

    输入

    {"ignore_conditions": ["healthy"]}

    按Ctrl + X后按Y回车保存并退出

    然后耐心等待,记得保持科学上网,否则会下载失败

    等待一会,打开http://armbian:8123/

    Preparing Home Assistant Page

    然后耐心等待,记得保持科学上网

    直到出现如下界面就可以进行配置了

    homeassistant welcome page
    homeassistant Create user page
    homeassistant home page

    安装HACS

    HACS(Home Assistant Community Store)即Home Assistant官方的插件商店,提供各种设备集成、前端装饰等的下载,是Home Assistant必备的插件。

    1)安装HACS可以通过 https://github.com/hacs/integration/releases/ 下载离线包,解压后将hacs文件夹通过FTP软件拷贝至/usr/share/Hassio/homeassistant/custom_components(没有此路径的话新建一个)。

    2)或者在SSH中输入以下命令一键安装。

    wget -O - https://get.hacs.xyz | bash - 

    然后在后台界面选择“配置”-“系统”,右上角点击“重新启动”。

    重启后,在“配置”-“设备与服务”中添加集成。

    然后按照步骤使用github登录就可以了

  • 玩客云刷hassio教程

    玩客云刷hassio教程

    刷机

    刷Armbain,建议https://github.com/hzyitc/armbian-onecloud/releases

    刷好后登入玩客云ssh

    执行cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 修正时间

    执行nano /etc/apt/sources.list

    删除所有内容,替换为:

    https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    
    deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
    
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

    Ctrl + X后按Y回车保存

    安装依赖

    先执行apt update

    安装docker

    curl -fsSL get.docker.com | sh

    下载os-gent并安装

    https://github.com/home-assistant/os-agent/releases

    dpkg -i 下载的文件名字

    随后可能会提示

    不用慌,执行apt –fix-broken install 然后按y回车

    这个时候再执行一遍dpkg -i 下载的文件名字

    你就会发现安装上了

    安装Home Assistant Supervised Debian Package

    运行sudo apt-get install apparmor

    wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb

    dpkg -i homeassistant-supervised.deb

    这个时候会报错

    执行apt –fix-broken install后按Y

    选择raspberrypi3回车

    出现下图就表示安装成功了

    如果没有出现就再执行dpkg -i homeassistant-supervised.deb选择raspberrypi3回车

    完成后继续执行以下指令

    cd /usr/share/hassio

    nano jobs.json

    输入

    {"ignore_conditions": ["healthy"]}

    按Ctrl + X后按Y回车保存并退出

    安装HACS

    依次执行

    mkdir /usr/share/hassio/homeassistant/custom_components
    
    mkdir /usr/share/hassio/homeassistant/custom_components/www
    
    mkdir /usr/share/hassio/homeassistant/custom_components/hacs
    
    cd /usr/share/hassio/homeassistant/custom_components/hacs
    
    wget https://github.com/hacs/integration/releases/latest/download/hacs.zip
    
    apt install unzip
    
    unzip hacs.zip
    
    rm hacs.zip

    等一会访问http://玩客云ip:8123就可以看见

    结束

    这个时候不要断电断网,耐心等待,可用执行docker ps查看安装进度

    网速快的话半个小时以后就可以进入http://玩客云ip:8123进行配置了

    备注

    (如果在安装时出现提示缺少依赖就执行apt –fix-broken install 后重新执行安装指令)


    2024/05/30备注:

    我新买了一个rk3399小主机,能刷armbian,不久后会写一篇新的,包含刷机教程

    已更新 Smart AM40 使用tf卡刷机和安装hassio