R3300-M运行Manjaro ARM Vim2 22.06

Manjaro ARM 22.06已经发布一段时间,刚好我们需要重新刷系统,镜像还是选用Vim2: https://github.com/manjaro-arm/vim2-images/releases
在最近的几个版本中,系统的启动方式经历了几次变化。在Vim2 22.06镜像中,boot分区只包含下述文件/目录:

1
2
3
4
5
6
$ ls -l /boot
drwxr-xr-x 8 root root 8192 Aug 3 22:49 dtbs
drwxr-xr-x 2 root root 8192 Jun 4 05:03 extlinux
-rw-r--r-- 1 root root 24730112 Jul 12 23:44 Image
-rw-r--r-- 1 root root 8382621 Aug 3 22:50 initramfs-linux.img
-rw-r--r-- 1 root root 1363968 Feb 12 00:11 u-boot.bin

需要稍加变动以支持R3300-M启动:

1
2
3
4
5
6
7
8
9
-rw-r--r-- 1 root root      713 Jul 28 15:17 aml_autoscript
-rw-r--r-- 1 root root 463 Jul 28 15:17 aml_autoscript.zip
drwxr-xr-x 8 root root 8192 Aug 3 22:49 dtbs
drwxr-xr-x 2 root root 8192 Jun 4 05:03 extlinux
-rw-r--r-- 1 root root 24730112 Jul 12 23:44 Image
-rw-r--r-- 1 root root 8382621 Aug 3 22:50 initramfs-linux.img
-rw-r--r-- 1 root root 537 Aug 4 06:34 s905_autoscript
-rw-r--r-- 1 root root 1363968 Feb 12 00:11 u-boot.bin
-rw-r--r-- 1 root root 609247 Aug 4 06:30 u-boot.ext

注意补充的几个文件,u-boot.bin可以删掉。这几个文件我已经打包好: bootfiles.tgz,注意你需要选择合适的u-boot文件,然后重命名为u-boot.ext。

Manjaro ARM Mininal 22.06非常简洁,总共占用空间1.5GB,提供了206个软件包:

1
2
3
4
5
6
7
8
9
10
11
12
$ df -h
Filesystem Size Used Avail Use% Mounted on
dev 331M 0 331M 0% /dev
run 465M 7.5M 457M 2% /run
/dev/mmcblk0p2 115G 1.4G 109G 2% /
tmpfs 465M 0 465M 0% /dev/shm
tmpfs 465M 0 465M 0% /tmp
/dev/mmcblk0p1 458M 45M 413M 10% /boot
tmpfs 93M 0 93M 0% /run/user/1000

$ pacman -Q | wc
206 412 3746

软件包还可以继续精简,比如 ap6398s-firmware 显然可以删掉因为R3300-M使用的是RTL8189ETV。另外经过测试,主线内核在22.06中支持良好,关机重启都正常,没必要使用odroid内核了。不过Vim2镜像自带的 linux-khadas 内核简单使用也没发现问题,根据个人喜好选用吧。
另外之前将Manjaro ARM安装到emmc分区的试验没有成功:

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
U-Boot 2015.01-gf813653 (Oct 30 2015 - 09:47:48)

DRAM: 1 GiB
Relocation Offset is: 36ed6000
register usb cfg[0][1] = 0000000037f62b98
register usb cfg[0][2] = 0000000037f62bb8
register usb cfg[2][0] = 0000000037f62bd8
vpu detect type: 5
vpu clk_level = 7
set vpu clk: 666667000Hz, readback: 666660000Hz(0x300)
boot_device_flag : 1
Nand PHY Ver:1.01.001.0006 (c) 2013 Amlogic Inc.
init bus_cycle=6, bus_timing=8, system=5.0ns
reset failed
get_chip_type and ret:fffffffe
get_chip_type and ret:fffffffe
chip detect failed and ret:fffffffe
nandphy_init failed and ret=0xfffffff1
MMC: aml_priv->desc_buf = 0x0000000033ec6770
aml_priv->desc_buf = 0x0000000033ec8900
SDIO Port B: 0, SDIO Port C: 1
[mmc_init] mmc init success
mmc read lba=0x14000, blocks=0x400
start dts,buffer=0000000033ecad70,dt_addr=0000000033ecad70
parts: 11
00: logo 0000000002000000 1
01: recovery 0000000002000000 1
02: rsv 0000000000800000 1
03: tee 0000000000800000 1
04: crypt 0000000002000000 1
05: misc 0000000002000000 1
06: instaboot 0000000020000000 1
07: boot 0000000002000000 1
08: system 0000000050000000 1
09: cache 0000000020000000 2
10: data ffffffffffffffff 4
get_dtb_struct: Get emmc dtb OK!
[mmc_get_partition_table] skip cache partition.
Partition table get from SPL is :
name offset size flag
===================================================================================
0: bootloader 0 400000 0
1: reserved 2400000 4000000 0
2: cache 6c00000 20000000 2
3: env 27400000 800000 0
4: logo 28400000 2000000 1
5: recovery 2ac00000 2000000 1
6: rsv 2d400000 800000 1
7: tee 2e400000 800000 1
8: crypt 2f400000 2000000 1
9: misc 31c00000 2000000 1
10: instaboot 34400000 20000000 1
11: boot 54c00000 2000000 1
12: system 57400000 50000000 1
13: data a7c00000 41400000 4
mmc read lba=0x12000, blocks=0x1
mmc read lba=0x12001, blocks=0x1
mmc_read_partition_tbl: mmc read partition OK!
eMMC/TSD partition table have been checked OK!
mmc env offset: 0x27400000
In: serial
Out: serial
Err: serial
[store]To run cmd[emmc dtb_read 0x1000000 0x40000]
read emmc dtb
Net: Meson_Ethernet
wipe_data=successful
wipe_cache=successful
upgrade_step=2
reboot_mode=normal
hpd_state=0
[CANVAS]addr=0x3f800000 width=3840, height=2160

Not find '576cvbs' mapped VIC
Err imgread(L315):Logo header err.
There is no valid bmp file at the given address
amlkey_init() enter!
[EFUSE_MSG]keynum is 4
[KM]Error:f[key_manage_query_size]L504:key[usid] not programed yet
[KM]Error:f[key_manage_query_size]L504:key[deviceid] not programed yet
gpio: pin GPIOAO_3 (gpio 122) value is 1
Hit any key to stop autoboot: 0
ret = 1 .(Re)start USB...
USB0: dwc_usb driver version: 2.94 6-June-2012
USB (0) peri reg base: c0000000
USB (0) use clock source: XTAL input, div: 1
USB (0) base addr: 0xc9000000
Force id mode: Host
dwc_otg: No USB device found !
lowlevel init failed
USB1: dwc_usb driver version: 2.94 6-June-2012
USB (1) peri reg base: c0000020
USB (1) use clock source: XTAL input, div: 1
USB (1) base addr: 0xc9100000
Force id mode: Host
dwc_otg: No USB device found !
lowlevel init failed
USB error: all controllers failed lowlevel init
** Bad device usb 0 **
** Bad device usb 1 **
** Bad device usb 2 **
** Bad device usb 3 **
[mmc_init] mmc init success
switch to partitions #0, OK
mmc1(part 0) is current device

MMC read: dev # 1, block # 8192, count 3 ... 3 blocks read: OK
## Executing script at 01020000
########## cmd= echo "Select EMMC"
mmc dev 1
sleep 3
echo "Set env variables"
setenv dtb_addr 0x1000000
setenv dtb_sector 0x2003
setenv dtb_block_cnt 0x47
setenv env_addr 0x1040000
setenv env_sector 0x204a
setenv env_block_cnt 0x1
setenv env_size 329
setenv kernel_addr 0x11000000
setenv kernel_sector 0x204b
setenv kernel_block_cnt 0xbcae
setenv initrd_addr 0x13000000
setenv initrd_sector 0x32000
setenv initrd_block_cnt 0x3fe7
setenv boot_start booti ${kernel_addr} ${initrd_addr} ${dtb_addr}
setenv addmac 'if printenv mac; then setenv bootargs ${bootargs} mac=${mac}; elif printenv eth_mac; then setenv bootargs ${bootargs} mac=${eth_mac}; elif printenv ethaddr; then setenv bootargs ${bootargs} mac=${ethaddr}; fi'

echo "Read mmc partitions"
echo "Read /boot/uEnv_emmc.txt from EMMC"
if mmc read ${env_addr} ${env_sector} ${env_block_cnt}; then env import -t ${env_addr} ${env_size};setenv bootargs ${APPEND};printenv bootargs;echo "Read zImage from EMMC";if mmc read ${kernel_addr} ${kernel_sector} ${kernel_block_cnt}; then echo "Read uInitrd from EMMC";if mmc read ${initrd_addr} ${initrd_sector} ${initrd_block_cnt}; then echo "Read FDT from EMMC";if mmc read ${dtb_addr} ${dtb_sector} ${dtb_block_cnt}; then run addmac;echo "Start booting system...";run boot_start;fi;fi;fi;fi

Select EMMC
[mmc_init] mmc init success
switch to partitions #0, OK
mmc1(part 0) is current device
Set env variables
Read mmc partitions
Read /boot/uEnv_emmc.txt from EMMC

MMC read: dev # 1, block # 8266, count 1 ... 1 blocks read: OK
bootargs=root=/dev/mmcblk1p1 rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 quiet splash plymouth.ignore-serial-consoles blkdevparts=mmcblk1:-@116M(rootfs)
Read zImage from EMMC

MMC read: dev # 1, block # 8267, count 48302 ... 48302 blocks read: OK
Read uInitrd from EMMC

MMC read: dev # 1, block # 204800, count 16359 ... 16359 blocks read: OK
Read FDT from EMMC

MMC read: dev # 1, block # 8195, count 71 ... 71 blocks read: OK
mac=76:f1:6c:90:00:03
Start booting system...
"Synchronous Abort" handler, esr 0x96000010
ELR: 37ee00cc
LR: 37ee00c0
x0 : 0000000037f73a00 x1 : 0000000000000000
x2 : 0000000001830000 x3 : 0000000001830000
x4 : 0000000000000086 x5 : 0000000011000000
x6 : 0000000037f455c0 x7 : 0000000000000044
x8 : 0000000000000001 x9 : 0000000000000002
x10: 8c400409c940146c x11: a850c8189a6e9ad0
x12: 0000000000000000 x13: 0000000000000000
x14: 0000000000000000 x15: 0000000037ed70d0
x16: 0000000037ed72b4 x17: 0000000000000000
x18: 0000000033ec5e28 x19: 0000000037f738c0
x20: 0000000000000003 x21: 0000000033ed1068
x22: 0000000037f73000 x23: 0000000037f738c0
x24: 0000000000000000 x25: 0000000033ed1060
x26: 0000000037f685e0 x27: 0000000033ed1090
x28: 0000000000000000 x29: 0000000033ec4ca0

Resetting CPU ...

虽说没成功,但是从UART输出来看已经很接近,而且盒子也没变砖,还是可以从TF卡启动,感兴趣的可以继续研究,我不缺TF卡就不折腾了。


R3300-M运行Manjaro ARM Vim2 22.06
http://xiaofami.github.io/2022/08/04/manjaro2206/
作者
tccmu
发布于
2022年8月4日
许可协议