VisionFive2 - 02

In my previous post, VisionFive2 was briefly introduced and demonstrated. Today, we're going to follow Building StarFive Debian Image and build a customized Debian Distro for VisionFive2.

1. Build Linux and Driver

1.1 Build Linux Kernel

Here, I'm NOT using StarFive Linux for VisionFive2, but standard Linux Kernel, today's newest version Linux Kernel 6.6.5.

Well, of course, before building, starfive_visionfive2_defconfig is to be copied under the folder where Linux Kernel stays.

Build VPU Driver

Due to some kernel incompatibility issue, I asked a question at VisionFive2 Github issues: Failed to build VisionFive2 soft_3rdpart, which also provides the solution.

Build SPL Tool

Nothing tough.

2. Create Debian Root Filesystem

2.1 Create BootStrap Rootfs

Instead of using a snapshot, I'm using a standard release Debian 12.3 of sid.

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
➜  VF2 sudo debootstrap --arch=riscv64 --no-check-gpg --no-merged-usr --exclude=usr-is-merged sid riscv-chroot http://deb.debian.org/debian/
I: Retrieving InRelease
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Checking component main on http://deb.debian.org/debian...
I: Retrieving libacl1 2.3.1-3+b1
I: Validating libacl1 2.3.1-3+b1
I: Retrieving adduser 3.137
I: Validating adduser 3.137
I: Retrieving libapparmor1 3.0.12-1+b1
I: Validating libapparmor1 3.0.12-1+b1
I: Retrieving apt 2.7.7
I: Validating apt 2.7.7
I: Retrieving apt-utils 2.7.7
I: Validating apt-utils 2.7.7
......
I: Configuring libgssapi-krb5-2:riscv64...
I: Configuring whiptail...
I: Configuring libtirpc3:riscv64...
I: Configuring libnftables1:riscv64...
I: Configuring nftables...
I: Configuring iproute2...
I: Configuring isc-dhcp-client...
I: Configuring ifupdown...
I: Configuring tasksel...
I: Configuring tasksel-data...
I: Configuring libc-bin...
I: Base system installed successfully.
➜ VF2

All occurrences of riscv-chroot-snapshots now changes to riscv-chroot.

2.2 Some Other Preparations

  • Install Kernel Packages: As mentioned, I'm using Linux Kernel 6.6.5
  • Copy VPU Driver: VisionFive2's VPU is ONLY for video processing. Namely, this VPU refers to video processing unit, unlike Intel Movidius Vision Processing Unit
  • Copy AIC8800 (WiFi-Dongle) and ESWIN6600U (WiFi-Dongle) Firmware: It looks to me: without using these 2 types of WiFi-Dongle, it's pointless to copy the firmware files under the specified folder.
  • Copy Mesa Packages: I was trying to use the newest of today: Mesa v0.11.0-engineering-release-wayland, but finally realize there is NO point to carry out this step, for the Mesa version coming with Debian 12.3 is even newer..
  • Copy and Install Proprietary GPU Driver: this seems to be a MUST.
  • Copy Applications: I ignored this entire part.

3. Configure Debian

3.1 Chroot Bootstrap Rootfs

1
2
3
4
➜  VF2 sudo chroot $VF2_WORK_DIR/riscv-chroot
root@lvision-MS-7C60:/# ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
root@lvision-MS-7C60:/#

3.2 Update APT Source

1
2
3
4
5
6
7
8
9
10
11
12
13
root@lvision-MS-7C60:/# echo "Acquire::Check-Valid-Until no;" > /etc/apt/apt.conf.d/99-no-check-valid-until
root@lvision-MS-7C60:/# apt update -y
Hit:1 http://deb.debian.org/debian sid InRelease
Get:2 http://deb.debian.org/debian sid/main Translation-en [7070 kB]
Fetched 7070 kB in 6s (1200 kB/s)
Reading package lists... Done
Building dependency tree... Done
All packages are up to date.
root@lvision-MS-7C60:/# apt upgrade -y
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

3.3 Install Basic Tools

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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
root@lvision-MS-7C60:/# apt install initramfs-tools systemd-timesyncd rsync bash-completion u-boot-menu wget binutils alsa-utils
Reading package lists... Done
Building dependency tree... Done
The following additional packages will be installed:
alsa-topology-conf alsa-ucm-conf binutils-common binutils-riscv64-linux-gnu busybox ca-certificates initramfs-tools-core klibc-utils libasound2 libasound2-data
libatopology2 libbinutils libctf-nobfd0 libctf0 libfftw3-single3 libgomp1 libklibc libpsl5 libsamplerate0 libsframe1 linux-base openssl publicsuffix zstd
Suggested packages:
dialog binutils-doc gprofng-gui libasound2-plugins libfftw3-bin libfftw3-dev openssh-client openssh-server python3 python3-braceexpand flash-kernel
The following NEW packages will be installed:
alsa-topology-conf alsa-ucm-conf alsa-utils bash-completion binutils binutils-common binutils-riscv64-linux-gnu busybox ca-certificates initramfs-tools
initramfs-tools-core klibc-utils libasound2 libasound2-data libatopology2 libbinutils libctf-nobfd0 libctf0 libfftw3-single3 libgomp1 libklibc libpsl5 libsamplerate0
libsframe1 linux-base openssl publicsuffix rsync systemd-timesyncd u-boot-menu wget zstd
0 upgraded, 32 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.3 MB of archives.
After this operation, 44.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://deb.debian.org/debian sid/main riscv64 rsync riscv64 3.2.7-1 [425 kB]
Get:2 http://deb.debian.org/debian sid/main riscv64 bash-completion all 1:2.11-8 [224 kB]
Get:3 http://deb.debian.org/debian sid/main riscv64 openssl riscv64 3.1.4-2 [1408 kB]
Get:4 http://deb.debian.org/debian sid/main riscv64 ca-certificates all 20230311 [153 kB]
Get:5 http://deb.debian.org/debian sid/main riscv64 systemd-timesyncd riscv64 255-1 [69.2 kB]
Get:6 http://deb.debian.org/debian sid/main riscv64 libpsl5 riscv64 0.21.2-1+b1 [59.4 kB]
Get:7 http://deb.debian.org/debian sid/main riscv64 wget riscv64 1.21.4-1 [963 kB]
Get:8 http://deb.debian.org/debian sid/main riscv64 alsa-topology-conf all 1.2.5.1-2 [15.2 kB]
Get:9 http://deb.debian.org/debian sid/main riscv64 libasound2-data all 1.2.10-1 [20.6 kB]
Get:10 http://deb.debian.org/debian sid/main riscv64 libasound2 riscv64 1.2.10-1 [378 kB]
Get:11 http://deb.debian.org/debian sid/main riscv64 alsa-ucm-conf all 1.2.10-1 [60.3 kB]
Get:12 http://deb.debian.org/debian sid/main riscv64 libatopology2 riscv64 1.2.10-1 [60.5 kB]
Get:13 http://deb.debian.org/debian sid/main riscv64 libgomp1 riscv64 13.2.0-8 [125 kB]
Get:14 http://deb.debian.org/debian sid/main riscv64 libfftw3-single3 riscv64 3.3.10-1 [380 kB]
Get:15 http://deb.debian.org/debian sid/main riscv64 libsamplerate0 riscv64 0.2.2-4 [950 kB]
Get:16 http://deb.debian.org/debian sid/main riscv64 alsa-utils riscv64 1.2.10-1 [1125 kB]
Get:17 http://deb.debian.org/debian sid/main riscv64 binutils-common riscv64 2.41.50.20231206-1 [2379 kB]
Get:18 http://deb.debian.org/debian sid/main riscv64 libsframe1 riscv64 2.41.50.20231206-1 [76.1 kB]
Get:19 http://deb.debian.org/debian sid/main riscv64 libbinutils riscv64 2.41.50.20231206-1 [501 kB]
Get:20 http://deb.debian.org/debian sid/main riscv64 libctf-nobfd0 riscv64 2.41.50.20231206-1 [157 kB]
Get:21 http://deb.debian.org/debian sid/main riscv64 libctf0 riscv64 2.41.50.20231206-1 [92.5 kB]
Get:22 http://deb.debian.org/debian sid/main riscv64 binutils-riscv64-linux-gnu riscv64 2.41.50.20231206-1 [836 kB]
Get:23 http://deb.debian.org/debian sid/main riscv64 binutils riscv64 2.41.50.20231206-1 [65.9 kB]
Get:24 http://deb.debian.org/debian sid/main riscv64 busybox riscv64 1:1.36.1-6 [509 kB]
Get:25 http://deb.debian.org/debian sid/main riscv64 libklibc riscv64 2.0.13-2 [51.0 kB]
Get:26 http://deb.debian.org/debian sid/main riscv64 klibc-utils riscv64 2.0.13-2 [108 kB]
Get:27 http://deb.debian.org/debian sid/main riscv64 initramfs-tools-core all 0.142 [105 kB]
Get:28 http://deb.debian.org/debian sid/main riscv64 linux-base all 4.9 [31.8 kB]
Get:29 http://deb.debian.org/debian sid/main riscv64 initramfs-tools all 0.142 [72.9 kB]
Get:30 http://deb.debian.org/debian sid/main riscv64 publicsuffix all 20231001.0357-0.1 [125 kB]
Get:31 http://deb.debian.org/debian sid/main riscv64 u-boot-menu all 4.2.2 [9436 B]
Get:32 http://deb.debian.org/debian sid/main riscv64 zstd riscv64 1.5.5+dfsg2-2 [771 kB]
Fetched 12.3 MB in 11s (1082 kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_CA:en",
LC_ALL = (unset),
LC_PAPER = "en_CA.UTF-8",
LC_NUMERIC = "en_CA.UTF-8",
LC_IDENTIFICATION = "en_CA.UTF-8",
LC_MEASUREMENT = "en_CA.UTF-8",
LC_NAME = "en_CA.UTF-8",
LC_TELEPHONE = "en_CA.UTF-8",
LC_ADDRESS = "en_CA.UTF-8",
LC_MONETARY = "en_CA.UTF-8",
LC_TIME = "en_CA.UTF-8",
LANG = "en_CA.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Extracting templates from packages: 100%
Preconfiguring packages ...
E: Can not write log (Is /dev/pts mounted?) - posix_openpt (19: No such device)
Selecting previously unselected package rsync.
(Reading database ... 10297 files and directories currently installed.)
Preparing to unpack .../00-rsync_3.2.7-1_riscv64.deb ...
Unpacking rsync (3.2.7-1) ...
Selecting previously unselected package bash-completion.
Preparing to unpack .../01-bash-completion_1%3a2.11-8_all.deb ...
Unpacking bash-completion (1:2.11-8) ...
Selecting previously unselected package openssl.
Preparing to unpack .../02-openssl_3.1.4-2_riscv64.deb ...
Unpacking openssl (3.1.4-2) ...
Selecting previously unselected package ca-certificates.
Preparing to unpack .../03-ca-certificates_20230311_all.deb ...
Unpacking ca-certificates (20230311) ...
Selecting previously unselected package systemd-timesyncd.
Preparing to unpack .../04-systemd-timesyncd_255-1_riscv64.deb ...
Unpacking systemd-timesyncd (255-1) ...
Selecting previously unselected package libpsl5:riscv64.
Preparing to unpack .../05-libpsl5_0.21.2-1+b1_riscv64.deb ...
Unpacking libpsl5:riscv64 (0.21.2-1+b1) ...
Selecting previously unselected package wget.
Preparing to unpack .../06-wget_1.21.4-1_riscv64.deb ...
Unpacking wget (1.21.4-1) ...
Selecting previously unselected package alsa-topology-conf.
Preparing to unpack .../07-alsa-topology-conf_1.2.5.1-2_all.deb ...
Unpacking alsa-topology-conf (1.2.5.1-2) ...
Selecting previously unselected package libasound2-data.
Preparing to unpack .../08-libasound2-data_1.2.10-1_all.deb ...
Unpacking libasound2-data (1.2.10-1) ...
Selecting previously unselected package libasound2:riscv64.
Preparing to unpack .../09-libasound2_1.2.10-1_riscv64.deb ...
Unpacking libasound2:riscv64 (1.2.10-1) ...
Selecting previously unselected package alsa-ucm-conf.
Preparing to unpack .../10-alsa-ucm-conf_1.2.10-1_all.deb ...
Unpacking alsa-ucm-conf (1.2.10-1) ...
Selecting previously unselected package libatopology2:riscv64.
Preparing to unpack .../11-libatopology2_1.2.10-1_riscv64.deb ...
Unpacking libatopology2:riscv64 (1.2.10-1) ...
Selecting previously unselected package libgomp1:riscv64.
Preparing to unpack .../12-libgomp1_13.2.0-8_riscv64.deb ...
Unpacking libgomp1:riscv64 (13.2.0-8) ...
Selecting previously unselected package libfftw3-single3:riscv64.
Preparing to unpack .../13-libfftw3-single3_3.3.10-1_riscv64.deb ...
Unpacking libfftw3-single3:riscv64 (3.3.10-1) ...
Selecting previously unselected package libsamplerate0:riscv64.
Preparing to unpack .../14-libsamplerate0_0.2.2-4_riscv64.deb ...
Unpacking libsamplerate0:riscv64 (0.2.2-4) ...
Selecting previously unselected package alsa-utils.
Preparing to unpack .../15-alsa-utils_1.2.10-1_riscv64.deb ...
Unpacking alsa-utils (1.2.10-1) ...
Selecting previously unselected package binutils-common:riscv64.
Preparing to unpack .../16-binutils-common_2.41.50.20231206-1_riscv64.deb ...
Unpacking binutils-common:riscv64 (2.41.50.20231206-1) ...
Selecting previously unselected package libsframe1:riscv64.
Preparing to unpack .../17-libsframe1_2.41.50.20231206-1_riscv64.deb ...
Unpacking libsframe1:riscv64 (2.41.50.20231206-1) ...
Selecting previously unselected package libbinutils:riscv64.
Preparing to unpack .../18-libbinutils_2.41.50.20231206-1_riscv64.deb ...
Unpacking libbinutils:riscv64 (2.41.50.20231206-1) ...
Selecting previously unselected package libctf-nobfd0:riscv64.
Preparing to unpack .../19-libctf-nobfd0_2.41.50.20231206-1_riscv64.deb ...
Unpacking libctf-nobfd0:riscv64 (2.41.50.20231206-1) ...
Selecting previously unselected package libctf0:riscv64.
Preparing to unpack .../20-libctf0_2.41.50.20231206-1_riscv64.deb ...
Unpacking libctf0:riscv64 (2.41.50.20231206-1) ...
Selecting previously unselected package binutils-riscv64-linux-gnu.
Preparing to unpack .../21-binutils-riscv64-linux-gnu_2.41.50.20231206-1_riscv64.deb ...
Unpacking binutils-riscv64-linux-gnu (2.41.50.20231206-1) ...
Selecting previously unselected package binutils.
Preparing to unpack .../22-binutils_2.41.50.20231206-1_riscv64.deb ...
Unpacking binutils (2.41.50.20231206-1) ...
Selecting previously unselected package busybox.
Preparing to unpack .../23-busybox_1%3a1.36.1-6_riscv64.deb ...
Unpacking busybox (1:1.36.1-6) ...
Selecting previously unselected package libklibc:riscv64.
Preparing to unpack .../24-libklibc_2.0.13-2_riscv64.deb ...
Unpacking libklibc:riscv64 (2.0.13-2) ...
Selecting previously unselected package klibc-utils.
Preparing to unpack .../25-klibc-utils_2.0.13-2_riscv64.deb ...
Unpacking klibc-utils (2.0.13-2) ...
Selecting previously unselected package initramfs-tools-core.
Preparing to unpack .../26-initramfs-tools-core_0.142_all.deb ...
Unpacking initramfs-tools-core (0.142) ...
Selecting previously unselected package linux-base.
Preparing to unpack .../27-linux-base_4.9_all.deb ...
Unpacking linux-base (4.9) ...
Selecting previously unselected package initramfs-tools.
Preparing to unpack .../28-initramfs-tools_0.142_all.deb ...
Unpacking initramfs-tools (0.142) ...
Selecting previously unselected package publicsuffix.
Preparing to unpack .../29-publicsuffix_20231001.0357-0.1_all.deb ...
Unpacking publicsuffix (20231001.0357-0.1) ...
Selecting previously unselected package u-boot-menu.
Preparing to unpack .../30-u-boot-menu_4.2.2_all.deb ...
Unpacking u-boot-menu (4.2.2) ...
Selecting previously unselected package zstd.
Preparing to unpack .../31-zstd_1.5.5+dfsg2-2_riscv64.deb ...
Unpacking zstd (1.5.5+dfsg2-2) ...
Setting up libpsl5:riscv64 (0.21.2-1+b1) ...
Setting up linux-base (4.9) ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Setting up wget (1.21.4-1) ...
Setting up binutils-common:riscv64 (2.41.50.20231206-1) ...
Setting up libctf-nobfd0:riscv64 (2.41.50.20231206-1) ...
Setting up libgomp1:riscv64 (13.2.0-8) ...
Setting up libsframe1:riscv64 (2.41.50.20231206-1) ...
Setting up libasound2-data (1.2.10-1) ...
Setting up busybox (1:1.36.1-6) ...
Setting up libklibc:riscv64 (2.0.13-2) ...
Setting up bash-completion (1:2.11-8) ...
Setting up systemd-timesyncd (255-1) ...
Creating group 'systemd-timesync' with GID 992.
Creating user 'systemd-timesync' (systemd Time Synchronization) with UID 992 and GID 992.
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service → /usr/lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service → /usr/lib/systemd/system/systemd-timesyncd.service.
Setting up alsa-topology-conf (1.2.5.1-2) ...
Setting up libasound2:riscv64 (1.2.10-1) ...
Setting up libbinutils:riscv64 (2.41.50.20231206-1) ...
Setting up klibc-utils (2.0.13-2) ...
No diversion 'diversion of /usr/share/initramfs-tools/hooks/klibc to /usr/share/initramfs-tools/hooks/klibc^i-t by klibc-utils', none removed.
Setting up libsamplerate0:riscv64 (0.2.2-4) ...
Setting up openssl (3.1.4-2) ...
Setting up libatopology2:riscv64 (1.2.10-1) ...
Setting up publicsuffix (20231001.0357-0.1) ...
Setting up zstd (1.5.5+dfsg2-2) ...
Setting up rsync (3.2.7-1) ...
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Running in chroot, ignoring request.
Setting up libctf0:riscv64 (2.41.50.20231206-1) ...
Setting up u-boot-menu (4.2.2) ...
Setting up libfftw3-single3:riscv64 (3.3.10-1) ...
Setting up alsa-ucm-conf (1.2.10-1) ...
Setting up binutils-riscv64-linux-gnu (2.41.50.20231206-1) ...
Setting up binutils (2.41.50.20231206-1) ...
Setting up ca-certificates (20230311) ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Updating certificates in /etc/ssl/certs...
140 added, 0 removed; done.
Setting up alsa-utils (1.2.10-1) ...
Setting up initramfs-tools-core (0.142) ...
Setting up initramfs-tools (0.142) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for libc-bin (2.37-13) ...
Processing triggers for ca-certificates (20230311) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Processing triggers for initramfs-tools (0.142) ...

Can anybody tell me why:

1
2
3
/proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.

There is a clear typo, replace sudo to apt install.

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
root@lvision-MS-7C60:/# apt install network-manager network-manager-gnome openssh-server net-tools -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
adwaita-icon-theme at-spi2-common at-spi2-core dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session dconf-gsettings-backend
dconf-service dns-root-data dnsmasq-base fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono gcr gnome-icon-theme gnome-keyring gnome-keyring-pkcs11
gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme iso-codes libassuan0 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libavahi-client3
libavahi-common-data libavahi-common3 libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbluetooth3 libbrotli1 libcairo-gobject2 libcairo2
libcbor0.10 libcloudproviders0 libcolord2 libcups2 libcurl3-gnutls libdatrie1 libdbus-1-3 libdbusmenu-glib4 libdbusmenu-gtk3-4 libdconf1 libdeflate0 libduktape207
libepoxy0 libexpat1 libfido2-1 libfontconfig1 libfreetype6 libfribidi0 libgck-1-0 libgcr-base-3-1 libgcr-ui-3-1 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
libgdk-pixbuf2.0-common libglib2.0-0 libglib2.0-data libgraphite2-3 libgtk-3-0 libgtk-3-bin libgtk-3-common libgudev-1.0-0 libharfbuzz0b libicu72 libjbig0 libjim0.82
libjpeg62-turbo liblcms2-2 libldap-2.5-0 libldap-common liblerc4 libmbim-glib4 libmbim-proxy libmbim-utils libmm-glib0 libndp0 libnetfilter-conntrack3 libnfnetlink0
libnghttp2-14 libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libnm0 libnma-common libnma0 libnsl2 libpam-gnome-keyring libpam-systemd libpango-1.0-0 libpangocairo-1.0-0
libpangoft2-1.0-0 libpcap0.8 libpcsclite1 libpixman-1-0 libpng16-16 libpolkit-agent-1-0 libpolkit-gobject-1-0 libqmi-glib5 libqmi-proxy libqmi-utils libqrtr-glib0
librsvg2-2 librsvg2-common librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libsecret-1-0 libsecret-common libsharpyuv0 libssh2-1 libteamdctl0 libthai-data
libthai0 libtiff6 libusb-1.0-0 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp7 libwrap0 libx11-6 libx11-data libxau6 libxcb-render0 libxcb-shm0 libxcb1
libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxml2 libxmuu1 libxrandr2 libxrender1 libxtst6
mobile-broadband-provider-info modemmanager ncurses-term notification-daemon openssh-client openssh-sftp-server p11-kit p11-kit-modules pinentry-gnome3 policykit-1-gnome
polkitd ppp runit-helper sgml-base shared-mime-info ucf usb-modeswitch usb-modeswitch-data usr-is-merged wireless-regdb wpasupplicant x11-common xauth xdg-user-dirs
xkb-data xml-core
Suggested packages:
isoquery colord cups-common low-memory-monitor gvfs liblcms2-utils pcscd librsvg2-bin libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap
libsasl2-modules-otp libsasl2-modules-sql libteam-utils iptables network-manager-openconnect-gnome network-manager-openvpn-gnome network-manager-vpnc-gnome
network-manager-pptp-gnome keychain libpam-ssh monkeysphere ssh-askpass molly-guard ufw pinentry-doc polkitd-pkla sgml-base-doc comgt wvdial wpagui
libengine-pkcs11-openssl debhelper
The following NEW packages will be installed:
adwaita-icon-theme at-spi2-common at-spi2-core dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session dconf-gsettings-backend
dconf-service dns-root-data dnsmasq-base fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono gcr gnome-icon-theme gnome-keyring gnome-keyring-pkcs11
gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme iso-codes libassuan0 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libavahi-client3
libavahi-common-data libavahi-common3 libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbluetooth3 libbrotli1 libcairo-gobject2 libcairo2
libcbor0.10 libcloudproviders0 libcolord2 libcups2 libcurl3-gnutls libdatrie1 libdbus-1-3 libdbusmenu-glib4 libdbusmenu-gtk3-4 libdconf1 libdeflate0 libduktape207
libepoxy0 libexpat1 libfido2-1 libfontconfig1 libfreetype6 libfribidi0 libgck-1-0 libgcr-base-3-1 libgcr-ui-3-1 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
libgdk-pixbuf2.0-common libglib2.0-0 libglib2.0-data libgraphite2-3 libgtk-3-0 libgtk-3-bin libgtk-3-common libgudev-1.0-0 libharfbuzz0b libicu72 libjbig0 libjim0.82
libjpeg62-turbo liblcms2-2 libldap-2.5-0 libldap-common liblerc4 libmbim-glib4 libmbim-proxy libmbim-utils libmm-glib0 libndp0 libnetfilter-conntrack3 libnfnetlink0
libnghttp2-14 libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libnm0 libnma-common libnma0 libnsl2 libpam-gnome-keyring libpam-systemd libpango-1.0-0 libpangocairo-1.0-0
libpangoft2-1.0-0 libpcap0.8 libpcsclite1 libpixman-1-0 libpng16-16 libpolkit-agent-1-0 libpolkit-gobject-1-0 libqmi-glib5 libqmi-proxy libqmi-utils libqrtr-glib0
librsvg2-2 librsvg2-common librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libsecret-1-0 libsecret-common libsharpyuv0 libssh2-1 libteamdctl0 libthai-data
libthai0 libtiff6 libusb-1.0-0 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp7 libwrap0 libx11-6 libx11-data libxau6 libxcb-render0 libxcb-shm0 libxcb1
libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxml2 libxmuu1 libxrandr2 libxrender1 libxtst6
mobile-broadband-provider-info modemmanager ncurses-term net-tools network-manager network-manager-gnome notification-daemon openssh-client openssh-server
openssh-sftp-server p11-kit p11-kit-modules pinentry-gnome3 policykit-1-gnome polkitd ppp runit-helper sgml-base shared-mime-info ucf usb-modeswitch usb-modeswitch-data
usr-is-merged wireless-regdb wpasupplicant x11-common xauth xdg-user-dirs xkb-data xml-core
0 upgraded, 179 newly installed, 0 to remove and 0 not upgraded.
Need to get 70.3 MB of archives.
After this operation, 295 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian sid/main riscv64 libdbus-1-3 riscv64 1.14.10-3 [207 kB]
Get:2 http://deb.debian.org/debian sid/main riscv64 dbus-bin riscv64 1.14.10-3 [105 kB]
Get:3 http://deb.debian.org/debian sid/main riscv64 dbus-session-bus-common all 1.14.10-3 [78.9 kB]
Get:4 http://deb.debian.org/debian sid/main riscv64 libexpat1 riscv64 2.5.0-2+b1 [95.2 kB]
Get:5 http://deb.debian.org/debian sid/main riscv64 dbus-daemon riscv64 1.14.10-3 [185 kB]
Get:6 http://deb.debian.org/debian sid/main riscv64 dbus-system-bus-common all 1.14.10-3 [80.0 kB]
Get:7 http://deb.debian.org/debian sid/main riscv64 usr-is-merged all 38 [5504 B]
Get:8 http://deb.debian.org/debian sid/main riscv64 dbus riscv64 1.14.10-3 [98.3 kB]
Get:9 http://deb.debian.org/debian sid/main riscv64 libcbor0.10 riscv64 0.10.2-1.1 [27.3 kB]
Get:10 http://deb.debian.org/debian sid/main riscv64 libfido2-1 riscv64 1.14.0-1 [82.1 kB]
Get:11 http://deb.debian.org/debian sid/main riscv64 openssh-client riscv64 1:9.5p1-2 [984 kB]
Get:12 http://deb.debian.org/debian sid/main riscv64 openssh-sftp-server riscv64 1:9.5p1-2 [66.8 kB]
Get:13 http://deb.debian.org/debian sid/main riscv64 ucf all 3.0043+nmu1 [55.2 kB]
Get:14 http://deb.debian.org/debian sid/main riscv64 runit-helper all 2.15.2 [6520 B]
Get:15 http://deb.debian.org/debian sid/main riscv64 libnsl2 riscv64 1.3.0-3 [40.0 kB]
Get:16 http://deb.debian.org/debian sid/main riscv64 libwrap0 riscv64 7.6.q-32 [55.4 kB]
Get:17 http://deb.debian.org/debian sid/main riscv64 openssh-server riscv64 1:9.5p1-2 [447 kB]
Get:18 http://deb.debian.org/debian sid/main riscv64 sgml-base all 1.31 [15.4 kB]
Get:19 http://deb.debian.org/debian sid/main riscv64 libpam-systemd riscv64 255-1 [260 kB]
Get:20 http://deb.debian.org/debian sid/main riscv64 ncurses-term all 6.4+20231121-1 [508 kB]
Get:21 http://deb.debian.org/debian sid/main riscv64 hicolor-icon-theme all 0.17-2 [11.4 kB]
Get:22 http://deb.debian.org/debian sid/main riscv64 libgdk-pixbuf2.0-common all 2.42.10+dfsg-3 [307 kB]
Get:23 http://deb.debian.org/debian sid/main riscv64 libglib2.0-0 riscv64 2.78.3-1 [1467 kB]
Get:24 http://deb.debian.org/debian sid/main riscv64 libicu72 riscv64 72.1-4 [9375 kB]
Get:25 http://deb.debian.org/debian sid/main riscv64 libxml2 riscv64 2.9.14+dfsg-1.3+b2 [706 kB]
Get:26 http://deb.debian.org/debian sid/main riscv64 shared-mime-info riscv64 2.4-1 [750 kB]
Get:27 http://deb.debian.org/debian sid/main riscv64 libjpeg62-turbo riscv64 1:2.1.5-2+b1 [154 kB]
Get:28 http://deb.debian.org/debian sid/main riscv64 libpng16-16 riscv64 1.6.40-2 [282 kB]
Get:29 http://deb.debian.org/debian sid/main riscv64 libdeflate0 riscv64 1.18-1 [37.2 kB]
Get:30 http://deb.debian.org/debian sid/main riscv64 libjbig0 riscv64 2.1-6.1 [32.8 kB]
Get:31 http://deb.debian.org/debian sid/main riscv64 liblerc4 riscv64 4.0.0+ds-4 [176 kB]

......

Setting up notification-daemon (3.20.0-4) ...
Setting up at-spi2-core (2.50.0-1) ...
Setting up libayatana-indicator3-7:riscv64 (0.9.3-1.1) ...
Setting up libgcr-ui-3-1:riscv64 (3.41.1-3) ...
Setting up gcr (3.41.1-3) ...
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/user/graphical-session-pre.target.wants/gcr-ssh-agent.service → /usr/lib/systemd/user/gcr-ssh-agent.service.
Created symlink /etc/systemd/user/sockets.target.wants/gcr-ssh-agent.socket → /usr/lib/systemd/user/gcr-ssh-agent.socket.
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Setting up pinentry-gnome3 (1.2.1-3) ...
Setting up libayatana-appindicator3-1 (0.5.93-1) ...
Setting up gnome-keyring (42.1-1) ...
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/user/graphical-session-pre.target.wants/gnome-keyring-daemon.service → /usr/lib/systemd/user/gnome-keyring-daemon.service.
Created symlink /etc/systemd/user/sockets.target.wants/gnome-keyring-daemon.socket → /usr/lib/systemd/user/gnome-keyring-daemon.socket.
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Processing triggers for libc-bin (2.37-13) ...
Processing triggers for sgml-base (1.31) ...
Setting up polkitd (123-3) ...
Creating group 'polkitd' with GID 991.
Creating user 'polkitd' (polkit) with UID 991 and GID 991.
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Running in chroot, ignoring request.
Reloading system message bus config...Failed to open connection to "system" message bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
invoke-rc.d: initscript dbus, action "reload" failed.
/proc/ is not mounted, but required for successful operation of systemd-tmpfiles. Please mount /proc/. Alternatively, consider using the --root= or --image= switches.
start-stop-daemon: nothing in /proc - not mounted?
start-stop-daemon: unable to stat /usr/libexec/polkitd (No such file or directory)
Setting up policykit-1-gnome (0.105-8) ...
Setting up network-manager (1.44.2-6) ...
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service → /usr/lib/systemd/system/NetworkManager-dispatcher.service.
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service → /usr/lib/systemd/system/NetworkManager-wait-online.service.
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service → /usr/lib/systemd/system/NetworkManager.service.
Setting up modemmanager (1.22.0-1) ...
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/system/dbus-org.freedesktop.ModemManager1.service → /usr/lib/systemd/system/ModemManager.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ModemManager.service → /usr/lib/systemd/system/ModemManager.service.
Setting up network-manager-gnome (1.34.0-2) ...
Processing triggers for dbus (1.14.10-3) ...
Processing triggers for libgdk-pixbuf-2.0-0:riscv64 (2.42.10+dfsg-3) ...
root@lvision-MS-7C60:/# ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
root@lvision-MS-7C60:/# ls proc
root@lvision-MS-7C60:/#

3.4 Install GNOME Desktop

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
root@lvision-MS-7C60:/# DEBIAN_FRONTEND=noninteractive apt-get install gnome-shell gnome-terminal gnome-tweaks gnome-shell-extensions -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package gnome-shell is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
gnome-shell-common

E: Package 'gnome-shell' has no installation candidate
root@lvision-MS-7C60:/# DEBIAN_FRONTEND=noninteractive apt-get install gnome-terminal gnome-tweaks gnome-shell-extensions -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
gnome-shell-extensions : Depends: gnome-shell (< 45~) but it is not installable
Depends: gnome-shell (>= 44~) but it is not installable
Recommends: gnome-shell-extension-prefs but it is not installable
E: Unable to correct problems, you have held broken packages.
root@lvision-MS-7C60:/# DEBIAN_FRONTEND=noninteractive apt-get install gnome-terminal gnome-tweaks -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
aspell aspell-en bsdextrautils bubblewrap cpp cpp-13 desktop-file-utils dictionaries-common dirmngr docbook-xml dosfstools eject emacsen-common enchant-2 exfatprogs fonts-dejavu fonts-dejavu-extra fonts-droid-fallback fonts-noto-mono fonts-urw-base35 fuse3
geocode-glib-common ghostscript gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdesktopenums-3.0 gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gnomedesktop-3.0 gir1.2-gtk-3.0 gir1.2-handy-1 gir1.2-harfbuzz-0.0 gir1.2-notify-0.7 gir1.2-pango-1.0 glib-networking
glib-networking-common glib-networking-services gnome-desktop3-data gnome-settings-daemon gnome-settings-daemon-common gnome-shell-common gnome-terminal-data gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm groff-base gstreamer1.0-gl
gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-x gvfs gvfs-common gvfs-daemons gvfs-libs hunspell-en-us iio-sensor-proxy imagemagick-6-common libaa1 libaacs0 libabsl20220623 libaom3 libaspell15 libass9
libasyncns0 libatasmart4 libatomic1 libavc1394-0 libavcodec60 libavfilter9 libavformat60 libavif16 libavtp0 libavutil58 libbdplus0 libblas3 libblockdev-crypto3 libblockdev-fs3 libblockdev-loop3 libblockdev-mdraid3 libblockdev-nvme3 libblockdev-part3 libblockdev-swap3
libblockdev-utils3 libblockdev3 libbluray2 libbs2b0 libbytesize-common libbytesize1 libc-l10n libcaca0 libcanberra-gtk3-0 libcanberra-gtk3-module libcanberra0 libcdparanoia0 libchromaprint1 libcjson1 libcodec2-1.2 libconfig++9v5 libdav1d7 libdc1394-25 libdca0 libde265-0
libdecor-0-0 libdecor-0-plugin-1-gtk libdirectfb-1.7-7 libdjvulibre-text libdjvulibre21 libdrm-amdgpu1 libdrm-common libdrm-nouveau2 libdrm-radeon1 libdrm2 libdv4 libdvdnav4 libdvdread8 libdw1 libegl-mesa0 libegl1 libenchant-2-2 libevdev2 libfaad2 libffado2
libfftw3-double3 libflac12 libflite1 libfluidsynth3 libfontenc1 libfreeaptx0 libfuse3-3 libgav1-1 libgbm1 libgeoclue-2-0 libgeocode-glib-2-0 libgfortran5 libgirepository-1.0-1 libgl1 libgl1-mesa-dri libglapi-mesa libgles2 libglibmm-2.4-1v5 libglvnd0 libglx-mesa0 libglx0
libgme0 libgnome-desktop-3-20 libgpgme11 libgpm2 libgraphene-1.0-0 libgs-common libgs10 libgs10-common libgsm1 libgssdp-1.6-0 libgstreamer-gl1.0-0 libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgupnp-1.6-0 libgupnp-igd-1.6-0
libgweather-4-0 libgweather-4-common libhandy-1-0 libharfbuzz-gobject0 libharfbuzz-icu0 libheif-plugin-aomenc libheif-plugin-dav1d libheif-plugin-libde265 libheif-plugin-x265 libheif1 libhunspell-1.7-0 libhwy1 libhyphen0 libice6 libidn12 libiec61883-0 libijs-0.35
libimath-3-1-29 libimobiledevice6 libinstpatch-1.0-2 libisl23 libjack-jackd2-0 libjavascriptcoregtk-4.1-0 libjbig2dec0 libjson-glib-1.0-0 libjson-glib-1.0-common libjxl0.7 libjxr-tools libjxr0 libkate1 libksba8 liblapack3 liblc3-1 libldacbt-abr2 libldacbt-enc2 liblilv-0-0
libllvm16 liblqr-1-0 liblrdf0 libltc11 libltdl7 liblua5.4-0 libmagickcore-6.q16-7 libmagickcore-6.q16-7-extra libmagickwand-6.q16-7 libmanette-0.2-0 libmbedcrypto7 libmjpegutils-2.1-0 libmodplug1 libmp3lame0 libmpc3 libmpcdec6 libmpeg2encpp-2.1-0 libmpfr6 libmpg123-0
libmplex2-2.1-0 libmysofa1 libnautilus-extension4 libncurses6 libneon27 libnice10 libnorm1 libnotify4 libnpth0 libnspr4 libnss3 libntfs-3g89 libnvme1 libogg0 libopenal-data libopenal1 libopenexr-3-1-30 libopenh264-7 libopenjp2-7 libopenmpt0 libopenni2-0 libopus0
liborc-0.4-0 libpangoxft-1.0-0 libpaper-utils libpaper1 libparted2 libpgm-5.3-0 libpipeline1 libpipewire-0.3-0 libpipewire-0.3-common libpipewire-0.3-modules libplacebo338 libplist3 libpocketsphinx3 libpostproc57 libproxy1v5 libpulse-mainloop-glib0 libpulse0
libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib libqrencode4 librabbitmq4 libraptor2-0 librav1e0 libraw1394-11 libraw23 librist4 libroc0.3 librubberband2 libsbc1 libsdl2-2.0-0 libsensors-config libsensors5 libserd-0-0 libshine3 libshout3 libsigc++-2.0-0v5
libsm6 libsnappy1v5 libsndfile1 libsndio7.0 libsodium23 libsord-0-0 libsoundtouch1 libsoup-3.0-0 libsoup-3.0-common libsoxr0 libspa-0.2-bluetooth libspa-0.2-modules libspandsp2 libspeex1 libspeexdsp1 libsphinxbase3 libsqlite3-0 libsratom-0-0 libsrt1.5-gnutls libsrtp2-1
libssh-gcrypt-4 libsvtav1enc1d1 libswresample4 libswscale7 libtag1v5 libtag1v5-vanilla libtdb1 libtheora0 libtwolame0 libuchardet0 libudfread0 libudisks2-0 libunibreak5 libunwind8 libupower-glib3 libusbmuxd6 libuv1 libv4l-0 libv4lconvert0 libva-drm2 libva-x11-2 libva2
libvdpau-va-gl1 libvdpau1 libvidstab1.1 libvisual-0.4-0 libvo-aacenc0 libvo-amrwbenc0 libvolume-key1 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx8 libvte-2.91-0 libvte-2.91-common libvulkan1 libwacom-common libwacom9 libwavpack1 libwayland-server0 libwebkit2gtk-4.1-0
libwebpdemux2 libwebpmux3 libwebrtc-audio-processing1 libwildmidi2 libwireplumber-0.4-0 libwmflite-0.2-7 libwoff1 libwpe-1.0-1 libwpebackend-fdo-1.0-1 libx11-xcb1 libx264-164 libx265-199 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0
libxcb-sync1 libxcb-xfixes0 libxcb-xkb1 libxft2 libxkbcommon-x11-0 libxkbregistry0 libxml++2.6-2v5 libxmu6 libxpm4 libxshmfence1 libxslt1.1 libxss1 libxt6 libxv1 libxvidcore4 libxxf86vm1 libyajl2 libyelp0 libyuv0 libz3-4 libzbar0 libzimg2 libzix-0-0 libzmq5 libzvbi-common
libzvbi0 libzxing2 locales lsb-release lsof man-db media-types mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers mutter-common nautilus-extension-gnome-terminal ntfs-3g ocl-icd-libopencl1 parted pipewire pipewire-alsa pipewire-audio pipewire-bin pipewire-pulse pkexec
pocketsphinx-en-us poppler-data python3 python3-distro python3-gi python3-minimal python3.11 python3.11-minimal rtkit sgml-data sound-theme-freedesktop timgm6mb-soundfont udisks2 upower usbmuxd va-driver-all vdpau-driver-all wireplumber x11-xserver-utils xdg-dbus-proxy
xdg-desktop-portal xdg-desktop-portal-gtk xfonts-encodings xfonts-utils yelp yelp-xsl
Suggested packages:
aspell-doc spellutils cpp-doc gcc-13-locales cpp-13-doc wordlist tor docbook docbook-dsssl docbook-xsl docbook-defguide fonts-noto fonts-freefont-otf | fonts-freefont-ttf fonts-texgyre usbguard gnome-shell-extension-prefs | gnome-shell-extension-manager parcimonie
xloadimage scdaemon groff frei0r-plugins gvfs-backends hunspell openoffice.org-hunspell | openoffice.org-core mdadm libbluray-bdj libcanberra-pulse libdirectfb-extra libdv-bin oss-compat libdvdcss2 libenchant-2-voikko libfftw3-bin libfftw3-dev gpm libvisual-0.4-plugins
gstreamer1.0-tools libheif-plugin-ffmpegdec libheif-plugin-jpegdec libheif-plugin-jpegenc libheif-plugin-j2kdec libheif-plugin-j2kenc libheif-plugin-rav1e libheif-plugin-svtenc libusbmuxd-tools jackd2 liblrdf0-dev inkscape nvme-cli libportaudio2 opus-tools libparted-dev
libparted-i18n pulseaudio raptor2-utils libraw1394-doc xdg-utils lm-sensors serdi sndiod sordi speex libwacom-bin gstreamer1.0-alsa libwildmidi-config apparmor www-browser opencl-icd parted-doc pulseaudio-utils poppler-utils fonts-japanese-mincho | fonts-ipafont-mincho
fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai fonts-arphic-uming fonts-nanum python3-doc python3-tk python3-venv python3.11-venv python3.11-doc binfmt-support perlsgml w3-recs opensp libxml2-utils fluid-soundfont-gm btrfs-progs f2fs-tools nilfs-tools
reiserfsprogs udftools udisks2-btrfs udisks2-lvm2 xfsprogs libspa-0.2-libcamera wireplumber-doc nickle cairo-5c xorg-docs-core accountsservice evince xdg-desktop-portal-gnome
Recommended packages:
gnupg
The following NEW packages will be installed:
......
Processing triggers for dictionaries-common (1.29.7) ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
aspell-autobuildhash: processing: en [en-common].
aspell-autobuildhash: processing: en [en-variant_0].
aspell-autobuildhash: processing: en [en-variant_1].
aspell-autobuildhash: processing: en [en-variant_2].
aspell-autobuildhash: processing: en [en-w_accents-only].
aspell-autobuildhash: processing: en [en-wo_accents-only].
aspell-autobuildhash: processing: en [en_AU-variant_0].
aspell-autobuildhash: processing: en [en_AU-variant_1].
aspell-autobuildhash: processing: en [en_AU-w_accents-only].
aspell-autobuildhash: processing: en [en_AU-wo_accents-only].
aspell-autobuildhash: processing: en [en_CA-variant_0].
aspell-autobuildhash: processing: en [en_CA-variant_1].
aspell-autobuildhash: processing: en [en_CA-w_accents-only].
aspell-autobuildhash: processing: en [en_CA-wo_accents-only].
aspell-autobuildhash: processing: en [en_GB-ise-w_accents-only].
aspell-autobuildhash: processing: en [en_GB-ise-wo_accents-only].
aspell-autobuildhash: processing: en [en_GB-ize-w_accents-only].
aspell-autobuildhash: processing: en [en_GB-ize-wo_accents-only].
aspell-autobuildhash: processing: en [en_GB-variant_0].
aspell-autobuildhash: processing: en [en_GB-variant_1].
aspell-autobuildhash: processing: en [en_US-w_accents-only].
aspell-autobuildhash: processing: en [en_US-wo_accents-only].
Processing triggers for libc-bin (2.37-13) ...
Processing triggers for sgml-base (1.31) ...
root@lvision-MS-7C60:/#

3.5 Configure Kernel

The MOST important step:

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
root@lvision-MS-7C60:/# dpkg-reconfigure linux-image-6.6.5-starfive
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_CA:en",
LC_ALL = (unset),
LC_NUMERIC = "en_CA.UTF-8",
LC_TIME = "en_CA.UTF-8",
LC_MEASUREMENT = "en_CA.UTF-8",
LC_TELEPHONE = "en_CA.UTF-8",
LC_IDENTIFICATION = "en_CA.UTF-8",
LC_PAPER = "en_CA.UTF-8",
LC_MONETARY = "en_CA.UTF-8",
LC_NAME = "en_CA.UTF-8",
LC_ADDRESS = "en_CA.UTF-8",
LANG = "en_CA.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
update-initramfs: Generating /boot/initrd.img-6.6.5-starfive
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8125b-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8125a-3.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8107e-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168fp-3.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168h-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-3.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-1.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-1.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8402-1.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for built-in driver r8169
W: Possible missing firmware /lib/firmware/iwlwifi-100-5.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-1000-5.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-135-6.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-105-6.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-2030-6.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-2000-6.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-5150-2.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-5000-5.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-6000g2b-6.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-6000g2a-6.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-6050-5.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-6000-6.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-7265D-29.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-7265-17.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-3168-29.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-3160-17.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-7260-17.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-8265-36.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-8000C-36.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-9260-th-b0-jf-b0-46.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-9000-pu-b0-jf-b0-46.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-cc-a0-77.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-QuZ-a0-jf-b0-77.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-QuZ-a0-hr-b0-77.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-Qu-b0-jf-b0-77.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-Qu-c0-hr-b0-77.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-Qu-b0-hr-b0-77.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-b0-mr-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-b0-gf4-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-b0-gf-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-b0-hr-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-a0-mr-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-a0-gf4-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-a0-gf-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ma-a0-hr-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-ty-a0-gf-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-so-a0-gf-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-so-a0-hr-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-so-a0-jf-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-gl-c0-fm-c0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-gl-b0-fm-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-bz-a0-fm4-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-bz-a0-fm-c0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-bz-a0-fm-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-bz-a0-gf4-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-bz-a0-gf-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-bz-a0-hr-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-sc-a0-wh-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-sc-a0-gf4-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-sc-a0-gf-a0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-sc-a0-hr-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-sc-a0-hr-b0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-sc-a0-fm-c0-83.ucode for built-in driver iwlwifi
W: Possible missing firmware /lib/firmware/iwlwifi-sc-a0-fm-b0-83.ucode for built-in driver iwlwifi
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/cat'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/cpio'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/dd'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/dmesg'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/false'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/gunzip'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/kill'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/ln'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/ls'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/mkdir'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/mkfifo'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/mknod'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/mount'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/mv'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/nuke'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/readlink'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/resume'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/sh'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/sleep'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/sync'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/true'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/umount'
cp: not replacing '/var/tmp/mkinitramfs_VdCKqO/bin/uname'
P: Checking for EXTLINUX directory... not found.
P: Creating EXTLINUX directory... done: /boot/extlinux
cat: /proc/cmdline: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_CA:en",
LC_ALL = (unset),
LC_PAPER = "en_CA.UTF-8",
LC_NUMERIC = "en_CA.UTF-8",
LC_IDENTIFICATION = "en_CA.UTF-8",
LC_MEASUREMENT = "en_CA.UTF-8",
LC_NAME = "en_CA.UTF-8",
LC_TELEPHONE = "en_CA.UTF-8",
LC_ADDRESS = "en_CA.UTF-8",
LC_MONETARY = "en_CA.UTF-8",
LC_TIME = "en_CA.UTF-8",
LANG = "en_CA.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_CA:en",
LC_ALL = (unset),
LC_PAPER = "en_CA.UTF-8",
LC_NUMERIC = "en_CA.UTF-8",
LC_IDENTIFICATION = "en_CA.UTF-8",
LC_MEASUREMENT = "en_CA.UTF-8",
LC_NAME = "en_CA.UTF-8",
LC_TELEPHONE = "en_CA.UTF-8",
LC_ADDRESS = "en_CA.UTF-8",
LC_MONETARY = "en_CA.UTF-8",
LC_TIME = "en_CA.UTF-8",
LANG = "en_CA.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
P: Writing config for vmlinuz-6.6.5-starfive...
P: Updating /boot/extlinux/extlinux.conf...
root@lvision-MS-7C60:/#

3.6 Configure Network

Follow Building StarFive Debian Image.

3.7 Configure User

Follow Building StarFive Debian Image.

3.8 Configure GPU

A variety of errors. So, ignore this step!!! Use the default Mesa coming with Debian 12.3

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
root@lvision-MS-7C60:/# cd /opt/debs
dpkg -i *.deb
dpkg: warning: downgrading libegl-mesa0:riscv64 from 23.2.1-1 to 22.3.5-1.1
(Reading database ... 41731 files and directories currently installed.)
Preparing to unpack libegl-mesa0_22.3.5-1.1_riscv64.deb ...
Unpacking libegl-mesa0:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
Selecting previously unselected package libegl1-mesa:riscv64.
Preparing to unpack libegl1-mesa_22.3.5-1.1_riscv64.deb ...
Unpacking libegl1-mesa:riscv64 (22.3.5-1.1) ...
Selecting previously unselected package libgbm-dev:riscv64.
Preparing to unpack libgbm-dev_22.3.5-1.1_riscv64.deb ...
Unpacking libgbm-dev:riscv64 (22.3.5-1.1) ...
dpkg: warning: downgrading libgbm1:riscv64 from 23.2.1-1 to 22.3.5-1.1
Preparing to unpack libgbm1_22.3.5-1.1_riscv64.deb ...
Unpacking libgbm1:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
dpkg: warning: downgrading libgl1-mesa-dri:riscv64 from 23.2.1-1 to 22.3.5-1.1
Preparing to unpack libgl1-mesa-dri_22.3.5-1.1_riscv64.deb ...
Unpacking libgl1-mesa-dri:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
Selecting previously unselected package libgl1-mesa-glx:riscv64.
Preparing to unpack libgl1-mesa-glx_22.3.5-1.1_riscv64.deb ...
Unpacking libgl1-mesa-glx:riscv64 (22.3.5-1.1) ...
dpkg: warning: downgrading libglapi-mesa:riscv64 from 23.2.1-1 to 22.3.5-1.1
Preparing to unpack libglapi-mesa_22.3.5-1.1_riscv64.deb ...
Unpacking libglapi-mesa:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
Selecting previously unselected package libgles2-mesa:riscv64.
Preparing to unpack libgles2-mesa_22.3.5-1.1_riscv64.deb ...
Unpacking libgles2-mesa:riscv64 (22.3.5-1.1) ...
dpkg: warning: downgrading libglx-mesa0:riscv64 from 23.2.1-1 to 22.3.5-1.1
Preparing to unpack libglx-mesa0_22.3.5-1.1_riscv64.deb ...
Unpacking libglx-mesa0:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
Selecting previously unselected package libosmesa6:riscv64.
Preparing to unpack libosmesa6_22.3.5-1.1_riscv64.deb ...
Unpacking libosmesa6:riscv64 (22.3.5-1.1) ...
Selecting previously unselected package libwayland-egl1-mesa:riscv64.
Preparing to unpack libwayland-egl1-mesa_22.3.5-1.1_riscv64.deb ...
Unpacking libwayland-egl1-mesa:riscv64 (22.3.5-1.1) ...
dpkg: warning: downgrading mesa-va-drivers:riscv64 from 23.2.1-1 to 22.3.5-1.1
Preparing to unpack mesa-va-drivers_22.3.5-1.1_riscv64.deb ...
Unpacking mesa-va-drivers:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
dpkg: warning: downgrading mesa-vdpau-drivers:riscv64 from 23.2.1-1 to 22.3.5-1.1
Preparing to unpack mesa-vdpau-drivers_22.3.5-1.1_riscv64.deb ...
Unpacking mesa-vdpau-drivers:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
dpkg: warning: downgrading mesa-vulkan-drivers:riscv64 from 23.2.1-1 to 22.3.5-1.1
Preparing to unpack mesa-vulkan-drivers_22.3.5-1.1_riscv64.deb ...
Unpacking mesa-vulkan-drivers:riscv64 (22.3.5-1.1) over (23.2.1-1) ...
Setting up libegl1-mesa:riscv64 (22.3.5-1.1) ...
Setting up libgbm1:riscv64 (22.3.5-1.1) ...
dpkg: dependency problems prevent configuration of libgl1-mesa-dri:riscv64:
libgl1-mesa-dri:riscv64 depends on libllvm15; however:
Package libllvm15 is not installed.

dpkg: error processing package libgl1-mesa-dri:riscv64 (--install):
dependency problems - leaving unconfigured
Setting up libglapi-mesa:riscv64 (22.3.5-1.1) ...
Setting up libgles2-mesa:riscv64 (22.3.5-1.1) ...
dpkg: dependency problems prevent configuration of libglx-mesa0:riscv64:
libglx-mesa0:riscv64 depends on libgl1-mesa-dri; however:
Package libgl1-mesa-dri:riscv64 is not configured yet.

dpkg: error processing package libglx-mesa0:riscv64 (--install):
dependency problems - leaving unconfigured
Setting up libosmesa6:riscv64 (22.3.5-1.1) ...
Setting up libwayland-egl1-mesa:riscv64 (22.3.5-1.1) ...
dpkg: dependency problems prevent configuration of mesa-va-drivers:riscv64:
mesa-va-drivers:riscv64 depends on libllvm15; however:
Package libllvm15 is not installed.

dpkg: error processing package mesa-va-drivers:riscv64 (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mesa-vdpau-drivers:riscv64:
mesa-vdpau-drivers:riscv64 depends on libllvm15; however:
Package libllvm15 is not installed.

dpkg: error processing package mesa-vdpau-drivers:riscv64 (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mesa-vulkan-drivers:riscv64:
mesa-vulkan-drivers:riscv64 depends on libllvm15; however:
Package libllvm15 is not installed.

dpkg: error processing package mesa-vulkan-drivers:riscv64 (--install):
dependency problems - leaving unconfigured
Setting up libegl-mesa0:riscv64 (22.3.5-1.1) ...
Setting up libgbm-dev:riscv64 (22.3.5-1.1) ...
dpkg: dependency problems prevent configuration of libgl1-mesa-glx:riscv64:
libgl1-mesa-glx:riscv64 depends on libglx-mesa0; however:
Package libglx-mesa0:riscv64 is not configured yet.

dpkg: error processing package libgl1-mesa-glx:riscv64 (--install):
dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.37-13) ...
Errors were encountered while processing:
libgl1-mesa-dri:riscv64
libglx-mesa0:riscv64
mesa-va-drivers:riscv64
mesa-vdpau-drivers:riscv64
mesa-vulkan-drivers:riscv64
libgl1-mesa-glx:riscv64
root@lvision-MS-7C60:/opt/debs#

3.9 Configure Initramfs

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
root@lvision-MS-7C60:/# mkdir -p /opt/initramfs-setup
cd /opt/initramfs-setup
cp /boot/initrd.img-6.6.5-starfive /opt/initramfs-setup
zstd -d initrd.img-6.6.5-starfive -o initrd
mkdir rootfs
cd rootfs
cpio -id < ../initrd
mkdir -p lib/firmware
mount -t tmpfs none lib/firmware
cp /lib/firmware/rgx.fw.* lib/firmware
cp /lib/firmware/rgx.sh.* lib/firmware
sync
find . | cpio -H newc -o | zstd -19 --ultra -o initrd.img-6.6.5-starfive
cp initrd.img-6.6.5-starfive /boot/initrd.img-6.6.5-starfive
umount /opt/initramfs-setup/rootfs/lib/firmware
rm -rf /opt/initramfs-setup
initrd.img-6.6.5-starfive: 12559872 bytes
24531 blocks
Read: 0 B ==> 0%25516 blocks
/*stdin*\ : 40.14% ( 12.5 MiB => 5.00 MiB, initrd.img-6.6.5-starfive)
root@lvision-MS-7C60:/opt/initramfs-setup/rootfs# cd /etc/kernel/postinst.d
rm -rf zz-u-boot-menu
rm -rf zz-initramfs-mod
root@lvision-MS-7C60:/etc/kernel/postinst.d# cat << EOF >> zz-u-boot-menu
#!/bin/sh
set -e
#Exit if extlinux was removed (!= purged)
if [ -x /usr/sbin/u-boot-update ]
then
#Update extlinux configuration
u-boot-update
fi
sed -i '/append/i \\\tfdtdir /dtbs' /boot/extlinux/extlinux.conf
EOF
root@lvision-MS-7C60:/etc/kernel/postinst.d# cat << EOF >> zz-initramfs-mod
#!/bin/sh
set -e
VERSION="\$1"
INITRD="/boot/initrd.img-\$VERSION"
echo "Copying rgx firmware to initrd..."
TEMPDIR=\$(mktemp -d)
mkdir "\$TEMPDIR/initrd"
cd "\$TEMPDIR/initrd"
zstd -d --stdout "\$INITRD" | cpio -id
if [ ! -d "./lib/firmware" ]; then
echo "Creating lib/firmware folder in initrd..."
mkdir -p "./lib/firmware"
fi
#Copy firmware files to lib/firmware
cp /lib/firmware/rgx.* ./lib/firmware/
#Recreate initrd image
find . | cpio -H newc -o | zstd -19 --ultra > "\$INITRD.tmp"
mv "\$INITRD.tmp" "\$INITRD"
cd -
rm -rf "\$TEMPDIR"
echo "Done."
EOF
root@lvision-MS-7C60:/etc/kernel/postinst.d# chmod +x zz-initramfs-mod
chmod +x zz-u-boot-menu
cd /etc/kernel/postrm.d
rm -rf zz-u-boot-menu
root@lvision-MS-7C60:/etc/kernel/postrm.d# cat << EOF >> zz-u-boot-menu
#!/bin/sh
set -e
#Exit if extlinux was removed (!= purged)
if [ -x /usr/sbin/u-boot-update ]
then
#Update extlinux configuration
u-boot-update
fi
sed -i '/append/i \\\tfdtdir /dtbs' /boot/extlinux/extlinux.conf
EOF
root@lvision-MS-7C60:/etc/kernel/postrm.d# chmod +x zz-u-boot-menu
root@lvision-MS-7C60:/etc/kernel/postrm.d#

3.10 Configure VPU

Follow Building StarFive Debian Image.

3.11 Configure Audio Server

Follow Building StarFive Debian Image.

3.12 Configure SSH Keygen

Follow Building StarFive Debian Image.

3.13 Mask Hibernate

1
2
3
4
5
6
7
8
9
10
root@lvision-MS-7C60:~# systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
⚠️ /proc/ is not mounted. This is not a supported mode of operation. Please fix
your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.
Your mileage may vary.
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.
root@lvision-MS-7C60:/etc/init.d# cd ~
root@lvision-MS-7C60:~#

3.14 Configure Blacklist Module

Follow Building StarFive Debian Image.

3.15 Install Applications

I didn't follow Building StarFive Debian Image, but use apt install instead.

3.16 Hold Custom Packages

Ignore.

3.17 Clean Up

Follow Building StarFive Debian Image.

4. Build Image

4.1 Build SD Image

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
➜  create_sd_image mkdir boot rootfs
sudo mkfs.vfat /dev/loop19p3
sudo mkfs.ext4 -m 0 -L root /dev/loop19p4
sudo mount /dev/loop19p3 $VF2_WORK_DIR/create_sd_image/boot
sudo mount /dev/loop19p4 $VF2_WORK_DIR/create_sd_image/rootfs
wget https://github.com/starfive-tech/VisionFive2/releases/download/JH7110_VF2_515_v3.9.3/u-boot-spl.bin.normal.out ./
wget https://github.com/starfive-tech/VisionFive2/releases/download/JH7110_VF2_515_v3.9.3/visionfive2_fw_payload.img ./
sudo dd if=u-boot-spl.bin.normal.out of=/dev/loop19p1 bs=4096
sudo dd if=visionfive2_fw_payload.img of=/dev/loop19p2 bs=4096
sudo cp -a $VF2_WORK_DIR/riscv-chroot-snapshots/* $VF2_WORK_DIR/create_sd_image/rootfs
sudo mv $VF2_WORK_DIR/create_sd_image/rootfs/boot/* $VF2_WORK_DIR/create_sd_image/boot
sudo mkdir -p $VF2_WORK_DIR/create_sd_image/boot/dtbs
sudo cp -r $VF2_WORK_DIR/create_sd_image/rootfs/usr/lib/linux-image-6.6.5*/* $VF2_WORK_DIR/create_sd_image/boot/dtbs
sync
mkfs.fat 4.2 (2021-01-31)
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 996091 4k blocks and 249488 inodes
Filesystem UUID: 6e8ce8f8-5380-4c13-b4f4-2b43eb4a68a0
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

--2023-12-09 14:44:48-- https://github.com/starfive-tech/VisionFive2/releases/download/JH7110_VF2_515_v3.9.3/u-boot-spl.bin.normal.out
Resolving github.com (github.com)... 140.82.113.4
Connecting to github.com (github.com)|140.82.113.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/575344135/af366bc5-d71d-4816-8b7a-ddaf8b1d64c3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231209%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231209T224448Z&X-Amz-Expires=300&X-Amz-Signature=fe39604eea2f133199e8b67f675c3d1c406125ae71b2f831e3006dac6b45ce6e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=575344135&response-content-disposition=attachment%3B%20filename%3Du-boot-spl.bin.normal.out&response-content-type=application%2Foctet-stream [following]
--2023-12-09 14:44:48-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/575344135/af366bc5-d71d-4816-8b7a-ddaf8b1d64c3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231209%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231209T224448Z&X-Amz-Expires=300&X-Amz-Signature=fe39604eea2f133199e8b67f675c3d1c406125ae71b2f831e3006dac6b45ce6e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=575344135&response-content-disposition=attachment%3B%20filename%3Du-boot-spl.bin.normal.out&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.111.133, 185.199.109.133, 185.199.110.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 147336 (144K) [application/octet-stream]
Saving to: ‘u-boot-spl.bin.normal.out’

u-boot-spl.bin.normal.out 100%[======================================================================================================================================================================>] 143.88K --.-KB/s in 0.03s

2023-12-09 14:44:48 (4.04 MB/s) - ‘u-boot-spl.bin.normal.out’ saved [147336/147336]

--2023-12-09 14:44:48-- http://./
Resolving . (.)... failed: Name or service not known.
wget: unable to resolve host address ‘.’
FINISHED --2023-12-09 14:44:48--
Total wall clock time: 0.6s
Downloaded: 1 files, 144K in 0.03s (4.04 MB/s)
--2023-12-09 14:44:48-- https://github.com/starfive-tech/VisionFive2/releases/download/JH7110_VF2_515_v3.9.3/visionfive2_fw_payload.img
Resolving github.com (github.com)... 140.82.113.4
Connecting to github.com (github.com)|140.82.113.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/575344135/889dfed1-a205-4455-9b23-1632d8c95e08?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231209%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231209T224448Z&X-Amz-Expires=300&X-Amz-Signature=5c3709ad854710aaff67eb4180b4e83208f30a73865b7e5710818d3e9235eb3f&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=575344135&response-content-disposition=attachment%3B%20filename%3Dvisionfive2_fw_payload.img&response-content-type=application%2Foctet-stream [following]
--2023-12-09 14:44:49-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/575344135/889dfed1-a205-4455-9b23-1632d8c95e08?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231209%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231209T224448Z&X-Amz-Expires=300&X-Amz-Signature=5c3709ad854710aaff67eb4180b4e83208f30a73865b7e5710818d3e9235eb3f&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=575344135&response-content-disposition=attachment%3B%20filename%3Dvisionfive2_fw_payload.img&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.111.133, 185.199.110.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3013813 (2.9M) [application/octet-stream]
Saving to: ‘visionfive2_fw_payload.img’

visionfive2_fw_payload.img 100%[======================================================================================================================================================================>] 2.87M --.-KB/s in 0.09s

2023-12-09 14:44:49 (31.1 MB/s) - ‘visionfive2_fw_payload.img’ saved [3013813/3013813]

--2023-12-09 14:44:49-- http://./
Resolving . (.)... failed: Name or service not known.
wget: unable to resolve host address ‘.’
FINISHED --2023-12-09 14:44:49--
Total wall clock time: 0.7s
Downloaded: 1 files, 2.9M in 0.09s (31.1 MB/s)
35+1 records in
35+1 records out
147336 bytes (147 kB, 144 KiB) copied, 0.00141836 s, 104 MB/s
735+1 records in
735+1 records out
3013813 bytes (3.0 MB, 2.9 MiB) copied, 0.0123574 s, 244 MB/s
➜ create_sd_image ll
total 2.1G
drwxr-xr-x 4 root root 16K Dec 31 1969 boot
drwxr-xr-x 18 root root 4.0K Dec 9 14:44 rootfs
-rw-r--r-- 1 root root 4.0G Dec 9 14:44 starfive-jh7110-SD-minimal-desktop.img
-rw-rw-r-- 1 lvision lvision 144K Nov 29 06:40 u-boot-spl.bin.normal.out
-rw-rw-r-- 1 lvision lvision 2.9M Nov 29 06:38 visionfive2_fw_payload.img
➜ create_sd_image

Now, finger crossed. Hopefully, starfive-jh7110-SD-minimal-desktop.img is working properly.

4.2 Build eMMC Image

Ingore

4.3 Build NVME Image

Ignore

5. Demonstration

After flashing this starfive-jh7110-SD-minimal-desktop.img, let's try out our customized Debian 12.3.

6. Other Useful Online Info

SPL New VisionFive2 Debian User Guide Quick Start Guide Application Center Software Technical Reference Manual