树莓派家庭影音中心2

树莓派家庭影音中心2

禁止屏幕休眠显示作为 Dashboard 显示

树莓派官方的 Raspbian 系统使用的是 lightdm 桌面显示管理器,可以设置 xservice 桌面交互显示来达到屏幕常亮的目的,也就是修改桌面配置文件 lightdm.Conf

参考资料:树莓派设置禁止让屏幕休眠,显示器保持常亮状态-树莓派基础学习入门-树莓派极客,raspi.cc - Powered by raspi

1
sudo vim /etc/lightdm/lightdm.conf

找到 x-server-command 取消注释并在后面加 -s 0-dpms,添加完后重启即可。

image.png

参数里的:-s 参数:设置屏幕保护不启动,0 数字零,-dpms 参数:关闭电源节能管理。


树莓派02 家用服务器

树莓派02 家用服务器

树莓派家庭服务器的搭建以 docker 为核心,通过 docker 统一管理家庭服务,目前搭建的服务还在持续完善中,主要目的是为了方便日常使用、满足学习和探索的需求。

Docker 的安装这里不再赘述,参考 Docker Configuration01 Install on Linux 一文进行安装即可;本篇主要侧重于介绍部署的镜像和服务,以及简单介绍使用方式。

一些 Docker 容器推荐

这里推荐一些 Docker 容器:Alist、XiaoYa、PiDashboard、redis、mysql、portainer、memos、wikijs

相关的 Docker-Compose 文件会上传到AikenH/aikenh-DockerComposeYML (github.com)

数据库部署与远程连接测试

sqlite 3

Sqlite 与 Mysql 等不同,是一个无服务器、零配置的数据库,其更像是一个解析特定数据库文件的命令接口(CLI 工具),其将数据完全存储于一个单一的跨平台磁盘文件中;

由于 sqlite3 的特性,决定了其是一个轻量级不需要额外配置的数据库,但是在远程访问方面,只能通过文件共享来实现远程操作数据库。

大多数的 Linux 系统版本都会附带 SQLite 的安装,因此我们可以直接使用下面的指令验证一下是否安装:

1
sqlite3

如果没有安装的话,可以去官方的下载页面下载对应的预编译包,然后进行安装即可。

1
2
3
4
5
6
wget https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz
tar -zxvf sqlite-autoconf-3420000.tar.gz
cd sqlite-autoconf-3420000
./configure --prefix=/usr/local
make
make install

这里也提供使用 Docker-compose 安装的方式,但实际上看该数据库的特性,用 docker 安装的并不是推荐的选择。

参考资料:SQLite 3 Docker Compose – Mustafa Bugra

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3'

services:
sqlite3:
container_name: sqlite3_container
image: nouchka/sqlite3:latest
stdin_open: true
tty: true
volumes:
#Modify following line
- path-to/your/databases/sqlite3:/root/db/
ports:
- '9000:9000' # expose ports - HOST:CONTAINER
restart: unless-stopped

如果是树莓派的 ARM64,可能需要使用另一个镜像

1
docker run --rm -it -v "$(pwd):/workspace" -w /workspace keinos/sqlite3

但是该镜像的使用方式,实际上就是将其当成一个命令来用,所以还是建议本机安装。


树莓派01 家庭影音中心

树莓派01 家庭影音中心

将 RaspBerry Pi 4B 作为家庭影视中心/机顶盒的核心就是 KODI 软件,这是考虑到以下的几点:遥控器的控制、对挂载 webdav 和其他的支持

最方便的方式可以选择以 KODI 为核心的两个 OS:LibreELEC、OSMC(推荐),这两个系统以 KODI 为默认启动,同时也支持远程登录和 Docker 部署等 Linux 的功能。后者更为推荐应该是前者的官方改进版本。

考虑到后续可能会将该 SD 卡用于其他用处,因此本文选择的是使用 RaspBerryPi OS 的方案,以下围绕该方案进行展开:

RaspBerry Pi OS+Kodi+Alist 方案探究

可以参考 trouble shooting,可以发现实际上安装 kodi 最简单的方式就是直接使用 apt,无需做其他的 PPA 添加。

安装Kodi

1
sudo apt-get install kodi

安装完后,使用 kodi 命令开启或者在开始菜单的软件中心中选择 kodi 打开。

设置 GPU 显存(硬解相关)

首先做一下固件的升级

1
sudo rpi-update

然后调整一下显存:系统设置里面将 gpu_mem 调高一些,我使用的是 4G,调整到了 256MB,切记不要调整太高,否则可能会开机失败,重启后查看显存是否设置成功。

查看 GPU 显存的方式:

1
vcgencmd get_mem arm && vcgencmd get_mem gpu

最后在 kodi 中查看相关的选项的开关情况:

参考资料:树莓派RaspberryPi 4B设置显存开启硬件加速 支持Emby|Plex|JellyFin转码 LiuJason’sBlog


树莓派00 组装和亮机篇

树莓派00 组装和亮机篇

最近入手了树莓派 4B,打算基于树莓派做一些有趣&有用的项目,该系列笔记来记录个人树莓派学习和开发的历程。

连载确认!该系列文章将会从装机开始,介绍树莓派用于以下几个项目的开发和部署过程:

  • [x] 基于 Docker 的家庭服务器
  • [x] 智能家居控制中枢
  • [x] 影音中心 & 电视机顶盒
  • [ ] 物联网 or AI 的衍生应用实践

本篇首先介绍亮机和开发环境设置过程,包含:组装、系统安装、远程开发环境设置(SSH、XRDP)

树莓派组装

树莓派组装上比较防呆接口,唯一需要注意的是散热块和风扇的安装:

  • 在 CPU 和缓存等模块上装上散热片
  • 风扇的固定位置在外壳上,接线如下图所示
  • SD 卡的安装位置在背面

微信图片_20230626091027.jpg

系统安装

该部分仅介绍我使用的系统安装和烧录软件,系统的选择需要根据自己所拥有的设备,以及目的去选择。

硬件准备:SD 卡,读卡器,一台正常运行的 PC,可外接的屏幕。


Whats DevOps?

Whats DevOps?

在一个庞大的组织架构中,CI/CD 和 Devops 的概念是避不开的,了解它的工作原理和概念能帮助我们更好的与他人进行协作。

CI/CD 介绍

这是一个用来描绘 CI/CD 的示意图,其描绘了 CI/CD 的工作流和各自的一些职责,接下来本文分别对两者进行介绍。

CI (Continuous integration) 持续集成

持续集成是面向开发者(Developer)的环节。从上述的图也可以看出,整体的流程如下:

Developer 基于给出的需求进行编码(code),完成 Feature 或者 Bug 修复后,提交(Commit)代码,然后平台会对这些需要(Merge Request)代码进行编译(Build),编译通过后,执行自动化的持续测试(Continuous Test),待测试通过后才会正式合并入主干。

也就是说,CI 工具在检测到代码变更后,自动对其执行编译和单元测试,验证其代码的正确性和可用性,以及是否适合与源代码进行集成,然后进行自动集成。

该流程有以下的优势:

  • 能够避免不同开发环境带来的不一致问题
  • 减少手动操作
  • 清晰的版本管理和控制
  • 降低人为操作的风险

Git 01 入门与常用操作

Git 01 入门与常用操作

参考文献:稀土掘金 | ProGit2

GIT 与 SVN 的区别

SVN 是集中式版本控制系统,其所有的版本管理都是集中在某个中央服务器,因此,在干活的时候,首先都需要从中央服务器中获取最新的版本,修改后将版本推送到中央服务器,因此大多数场景下需要进行联网使用。可能会更依托于相应的图形化客户端来进行同步和版本管理,便于管理美术资源等等。

GIT 是分布式版本管理系统,每个人的电脑就是一个完整的版本库,可以进行独立的版本管理,多人协作可能依托于 github 之类的中继节点,将修改同步给对方,解决冲突。

Init 初始化

包含 ssh 的详细指令在 ssh 的文档中,这边只介绍设置完这一系列操作之后的 git 初始化,主要是初始化 ssh,并将私钥放到 github 或者 gitee 的账户中。

1
2
3
4
5
6
7
8
9
10
git config --global user.name "YourName"
git config --global user.email "YourEmailAdress"

# 查看相关的配置信息
git config --list

# 设置CRLF和LF的相关转换 第一条在提交的时候自动抓换位LF,迁出转换为CRLF
# 第二条拒绝混合换行符的提交
git config --global core.autocrlf true
git config --global core.safecrlf true

Github 设置

官方文档介绍的一些权限错误的地址:< https://docs.github.com/en/github/authenticating-to-github/error-permission-denied-publickey>

将本机的 ssh 公钥(public)放到 GITHUB 账户下的 ssh 管理地址,执行测试

1
ssh -T git@github.com

没有问题的话就可以直接进行 clone,之类的 git 操作了

1
2
# 小trick,不拉取历史的commit
git clone --depth=1 REPO_ADRESS

Colab 使用的问题记录

Colab 使用的问题记录

@Aiken 2020

在使用Google Colab的时候会有一些常见的使用错误,然后我们记录一些常见的错误的解决方案,方便后续使用。

INDEX:

  • 命令行参数的输入问题

  • tensorboard的执行方法

    1
    2
    3
    # 在colab中写的时候要把前面的符号也写上
    %load_ext tensorboard
    %tensorboard --logdir './runs'
  • command命令的使用:包括库安装和卸载之类的。
    主要就是在命令前+!

    1
    2
    3
    4
    5
    !/opt/bin/nvidia-smi
    # 下面顺便解决了一下
    # ImportError: cannot import name 'PILLOW_VERSION'(版本问题)
    !pip uninstall pillow
    !pip install pillow==5.2.0

SSH 常用场景和操作

SSH 常用场景和操作

主要介绍ssh服务在以下的几个方面(windows,linux)的使用情况:远程服务器连接(22),git&github(gitee),vscode免密登录。

ssh-key

GITHUB关于SSH的教程 👈可以直接切换成中文模式的

查看是否已存在

1
ls -al ~/.ssh

初始化 / 生成 ssh key

1
2
3
4
5
6
7
# github 推荐,优先度从上到下递减
ssh-keygen -t ed25519 -C "your_email@example.com"
# if not support
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# tradition
ssh-keygen -t rsa -C "chenlangl@outlook.com"

将ssh添加到github的个人权限界面中

免密登录

在github的教程中也有另一种方式来实现免密登录,好像是ssh-agent的方式安全的保存密码。