1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
| #import "@preview/touying:0.6.1": *
#import themes.metropolis: *
#import "@preview/codly:1.3.0": *
#import "@preview/codly-languages:0.1.8": *
#import "@preview/numbly:0.1.0": numbly
#set page(background: image("nix-wallpaper-nineish.src.svg"))
#set text(font: "Sarasa UI SC")
#set par(first-line-indent: 2em)
#set list(indent: 2em)
#let fake_par = {
v(-1em)
box()
}
#show: codly-init.with()
#codly(zebra-fill: none)
#codly(fill: white.transparentize(50%))
#show raw: text.with(font: "JetBrainsMono NF")
#show: metropolis-theme.with(
aspect-ratio: "16-9",
footer: self => self.info.institution,
config-info(
title: [NixOS on SBC],
subtitle: [ #h(2em) (Single Board Computer)],
author: [Cryolitia PukNgae],
date: datetime(
year: 2025,
month: 12,
day: 28,
),
institution: [NixOS CN],
),
config-common(preamble: {
codly(languages: codly-languages)
}),
)
#show: touying-set-config.with(config-colors(
primary: rgb("#4D6FB7"),
primary-light: rgb("#5FB8F2"),
secondary: black.transparentize(100%),
neutral-lightest: black,
neutral-dark: black,
neutral-darkest: black,
))
#set heading(numbering: numbly("{1}.", default: "1.1"))
#title-slide()
== Cryolitia PukNgae
- GitHub: #link("https://github.com/cryolitia", "@Cryolitia")
- Telegram: \@Cryolitia
- Email: cryolitia.pukngae\@linux.dev
\
前PLCT实习生,灵车设备(叶公好龙)爱好者,deepin-ports SIG 成员。
#place(
top + right,
image("./1.webp", width: 30%)
)
= 单板计算机
---
#align(center)[
#table(
columns: 4,
inset: 30pt,
align: center,
stroke: 0.6pt,
[], [*体积纯粹*], [*体积中立*], [*体积自由*],
[*计算纯粹*],
[Raspberry Pi],
[Radxa O6],
[SG2044],
[*计算中立*],
[ESP32],
[Ti Nspire CX],
[RTX 5090],
[*计算自由*],
[74283],
[AMD Kintex-7],
[人列计算机],
)
]
---
#image("2.jpg", width: 100%)
---
= 设备树/ACPI
---
- ACPI:*EDK2* -> 通用内核 + 驱动
- 设备树:编译内核 -> Bootloader加载 -> 内核(*版本匹配*) + 驱动
\
#link("https://github.com/radxa/kernel/blob/linux-6.17.1/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts")
= Linux 内核
---
=== 内核配置
\
- #link("https://github.com/radxa/kernel/blob/linux-6.17.1/arch/arm64/configs/qcom_module_defconfig", "qcom_module_defconfig")
- `ignoreConfigErrors = true;`
---
=== 厂商内核
\
- #link("https://github.com/deepin-community/deepin-ports-kernel/tree/new/kernel/profiles")
- #link("https://search.nixos.org/packages?channel=unstable&query=linuxKernel.kernels.")
---
#align(center)[#image("3.jpg", height: 60%)]
```log
nvme nvme0: controller is down; will reset;
nvme nvme0: Does your device have a faulty power saving mode enabled?
nvme 0001:00:00.0: Unable to change power state from D3cold to D0, device inaccessible
```
= 分区
4096 sector
---
=== 错误
- #link("https://github.com/nix-community/disko/blob/master/lib/types/gpt.nix#L315")
- #link("https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/make-disk-image.nix#L284")
=== 正确
- `fdisk --sector-size 4096`
- `losetup --sector-size 4096`
- ghostfish(但是并没有看懂)
= 技术之外的问题
---
=== 抽象厂商
- #link("https://github.com/radxa-pkg/aic8800/issues/54")
- #link("https://lore.kernel.org/all/[email protected]/")
=== 非一级架构
- RISC-V
- LoongArch
- MIPS(?)
=== 树莓派沙文主义
- #link("https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/sd-card/sd-image-aarch64.nix")
#focus-slide[
完结&提问 \
#line(length: 80%)
#set text(size: 0.8em)
感谢deepin和瑞莎计算机在相关工作中的支持
]
|