blob: c2c447e8a7a5747d047eb1c6d8defad9d7e024d8 (
plain) (
blame)
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
|
qemu-x86_64 on aarch64 reports "Synchronous External Abort"
Purpose: to run x86_64 utilities on aarch64 platform (Intel/Dell network adapters' firmware upgrade tools)
System: aarch64 server platform, with ubuntu 16.04 (xenial) Linux 4.13.0-45-generic #50~16.04.1-Ubuntu SMP Wed May 30 11:14:25 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
Reproduce:
1) build linux-user qemu-x86_64 static from source (tried both version 1.12.0 & 1.11.02)
./configure --target-list=x86_64-linux-user --disable-system --static --enable-linux-user
2) install the interpreter into binfmt_misc filesystem
$ cat /proc/sys/fs/binfmt_misc/qemu-x86_64
enabled
interpreter /usr/local/bin/qemu-x86_64
flags:
offset 0
magic 7f454c4602010100000000000000000002003e00
mask fffffffffffefefcfffffffffffffffffeffffff
3) packaging Intel/Dell upgrade utilities into docker images, I've published two on docker hub:
REPOSITORY TAG IMAGE ID CREATED SIZE
heyi/dellupdate latest 8e013f5511cd 6 hours ago 210MB
heyi/nvmupdate64e latest 9d2de9d0edaa 3 days ago 451MB
4) run the docker container on aarch64 server platform:
docker run -it --privileged --network host --volume /usr/local/bin/qemu-x86_64:/usr/local/bin/qemu-x86_64 heyi/dellupdate:latest
5) finally, within docker container run the upgrade tool:
# ./Network_Firmware_T6VN9_LN_18.5.17_A00.BIN
Errors: in dmesg it reports excessive 'Synchronous External Abort':
kernel: [242850.159893] Synchronous External Abort: synchronous external abort (0x92000610) at 0x0000000000429958
kernel: [242850.169199] Unhandled fault: synchronous external abort (0x92000610) at 0x0000000000429958
thanks and best regards, Yi
|