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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
|
(ARM64) qemu-x86_64+schroot(Debian bullseye) can't run chrome and can't load HTML
First I creat a file system that is debian(bullseye amd64)on arm64 machine,then I download google-chrome,however, when I ran Google browser, some errors occurred.
$ google-chrome --no-sandbox
or
$ qemu-x86_64-static google-chrome --no-sandbox
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[1661:1661:0806/074307.502638:ERROR:nacl_fork_delegate_linux.cc(323)] Bad NaCl helper startup ack (0 bytes)
[1664:1664:0806/074307.504159:ERROR:nacl_fork_delegate_linux.cc(323)] Bad NaCl helper startup ack (0 bytes)
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[1637:1678:0806/074308.337567:ERROR:file_path_watcher_linux.cc(315)] inotify_init() failed: Function not implemented (38)
Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"
qemu: unknown option 'type=utility'
[1637:1680:0806/074313.598432:FATAL:gpu_data_manager_impl_private.cc(439)] GPU process isn't usable. Goodbye.
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
Trace/breakpoint trap
Why?
And then I run firefox,it can be opened, but it can't load any web pages and HTML.
I really need help!
Thank.
Hi
When I run some app,like google-chrome:
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
Which QEMU version are you using ?
Hi Peter,I use 5.1.0-rc3.
It's fine on x86 that I use qemu-x86_64-static.But it's bad on arm.So what is the problem?
Tony.LI <email address hidden> writes:
> It's fine on x86 that I use qemu-x86_64-static.But it's bad on arm.So
> what is the problem?
Could be a number of things - is Chrome using threading alongside it's
multiple processes?
--
Alex Bennée
Hi,Alex.May be you are right.I don't understand what you want to express.
I don't know what causes traps.
Is it caused by software, or qemu executes CPU-sensitive instruction simulation.
Tony.LI <email address hidden> writes:
> Hi,Alex.May be you are right.I don't understand what you want to express.
> I don't know what causes traps.
> Is it caused by software, or qemu executes CPU-sensitive instruction simulation.
Does it work if you run:
taskset 1 qemu-x86_64 google-chrome
--
Alex Bennée
Hi,Alex.It can't work.And I find some thing:
$ glxinfo | grep -i open
radeon: Failed to get PCI ID, error number -38
libGL error: failed to create dri screen
libGL error: failed to load driver: radeonsi
libGL error: failed to get magic
libGL error: failed to load driver: radeonsi
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.9, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
So,could it be a problem with the PCI? I see a lot of questions about PCI when use qemu-system.But,what should I do?And I use qemu-user like qemu-x86_64-static.
$ lspci
00:00.0 PCI bridge: Cadence Design Systems, Inc. Device dc16
00:01.0 PCI bridge: Cadence Design Systems, Inc. Device dc08
00:02.0 PCI bridge: Cadence Design Systems, Inc. Device dc01
00:03.0 PCI bridge: Cadence Design Systems, Inc. Device dc16
00:04.0 PCI bridge: Cadence Design Systems, Inc. Device dc08
00:05.0 PCI bridge: Cadence Design Systems, Inc. Device dc01
02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Oland [Radeon HD 8570 / R7 240/340 / Radeon 520 OEM] (rev 87)
02:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series]
03:00.0 SATA controller: Marvell Technology Group Ltd. Device 9215 (rev 11)
06:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)
Outside chroot,I get the same infomation!
Why? "radeon: Failed to get PCI ID, error number -38"
And I can get some infomation by "qemu-x86_64-static -d strace".
....
17344 getdents(8,274880624768,32768,115,274880624899,39) = 0
17344 close(8) = 0
17344 ioctl(7,0xc0406400,0x297330) = 0
17344 ioctl(7,0xc0406400,0x297330) = 0
17344 fstat(7,0x0000004001a0b660) = 0
17344 fcntl(7,F_DUPFD_CLOEXEC,3) = 8
17344 ioctl(8,0xc0406400,0x297330) = 0
17344 ioctl(8,0xc0406400,0x297330) = 0
17344 ioctl(8,0xc0106467,0x1a0b700) = -1 errno=38 (Function not implemented)
....
Last ioctl is error,why?It drives me crazy!!!
ioctl number 0xc0106467 is DRM_IOCTL_RADEON_INFO. QEMU doesn't support that ioctl (each ioctl needs individual handling to convert the data structures it uses between the guest and host architecture). If your guest binary is trying to make graphics-card specific ioctl calls like this then I'm afraid it won't work in QEMU (unless somebody writes the QEMU patch to make it support them).
Hi,Peter.
I have added the ioctl() patch for Radeon driver in Qemu.
However, there are many ioctls that only give cmd, I don't know where it comes from.
12161 poll(275275025312,1,4294967295,1,0,67108865)
12161 futex(0x000000400002f898,FUTEX_PRIVATE_FLAG|FUTEX_WAKE,1,NULL,NULL,0) = 0
12161 memfd_create(275207539749,3,100,24,0,7883677795399066671) = 12
12161 ftruncate(12,4,100,180,0,7883677795399066671) = 0
12161 mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,12,0) = 0x0000004027f4b000
12161 clock_gettime(1,274903098336,0,4,274878804488,274878804096) = 0
12161 ioctl(11,0xc020645d,0x18063f0) = 0
12161 ioctl(11,0xc018646b,0x18063d0) = 0
12161 ioctl(11,0xc00c6468,0x18077ac) = 0
12161 ioctl(11,0xc00c642d,0x1807750) = -1 errno=38 (Function not implemented)
12161 ioctl(11,0xc018646b,0x1807880) = 0
12161 ioctl(11,0x40086409,0x1807878) = -1 errno=38 (Function not implemented)
What device is 0xc00c642d??And more...
What should I do ? Can anyone give me some suggestions?
Hi,I have already added ioctl(), but there is one individual issue.
Like this:
ioctl(54, _IOC(_IOC_READ, 0xf5, 0x0c, 0x04) <unfinished ...>
But,despite the appearance:
15461 open("/home/tony/.config/google-chrome/Default/Web Data",O_RDWR|O_CREAT|O_NOFOLLOW|O_CLOEXEC,0600) = 43
15461 clock_gettime(1,275070715216,0,16,547700673376,4) = 0
15461 fstat(43,0x0000004025148d50) = 0
15461 fstat(43,0x00000040251489a0) = 0
15461 stat("/home/greatwall/.config/google-chrome/Default/Web Data",0x0000004025148910) = 0
15461 ioctl(43,0x8004f50c,0x25148fc4) = -1 errno=25 (Inappropriate ioctl for device)
15461 pread64(43,275500011632,100,0,0,274910104856)15461 gettimeofday(275070717920,275070717904,1,547702733952,0,275070717328) = 0
= 100
Why is there such an error(Inappropriate ioctl for device)??
Hi,I added a patch for ioctl(), and in the system call, I found no other errors, but it still doesn't work.And,I use the "qemu-x86_64 -d unimp xxx" command,I found this error:
Unknown QEMU_IFLA_INFO_KIND sit
In the Qemu source code:
linux-user/fd-trans.c
....
/* nested */
case QEMU_IFLA_INFO_DATA:
if (strncmp(li_context->name, "bridge",
li_context->len) == 0) {
return host_to_target_for_each_nlattr(NLA_DATA(nlattr),
nlattr->nla_len,
NULL,
host_to_target_data_bridge_nlattr);
} else if (strncmp(li_context->name, "tun",
li_context->len) == 0) {
return host_to_target_for_each_nlattr(NLA_DATA(nlattr),
nlattr->nla_len,
NULL,
host_to_target_data_tun_nlattr);
} else {
qemu_log_mask(LOG_UNIMP, "Unknown QEMU_IFLA_INFO_KIND %s\n",
li_context->name);
}
break;
....
What does it mean?
And how can i solve it?
Thank you!!!
Could you try attached patch?
Hi,I have add QEMU_IFLA_INFO_KIND nested type for sit.But I still can't open Google browser.
And there are still the following errors:
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[1661:1661:0806/074307.502638:ERROR:nacl_fork_delegate_linux.cc(323)] Bad NaCl helper startup ack (0 bytes)
[1664:1664:0806/074307.504159:ERROR:nacl_fork_delegate_linux.cc(323)] Bad NaCl helper startup ack (0 bytes)
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
qemu: unknown option 'type=utility'
[1637:1680:0806/074313.598432:FATAL:gpu_data_manager_impl_private.cc(439)] GPU process isn't usable. Goodbye.
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
Trace/breakpoint trap
Qemu get the signal(INT3).
What causes this signal???
I don't know how to debug. When I block the operation of int3 in QEMU, it has the following error:
qemu: 0x4004bc7855: unhandled CPU exception 0x3 - aborting
RAX=953ad79643deb400 RBX=0000007fa1203140 RCX=953ad79643deb400 RDX=000000400863f1d8
RSI=0000004000b33f18 RDI=000000000000000e RBP=000000400863f590 RSP=000000400863f3c0
R8 =0000000000000000 R9 =0000000000000001 R10=0000000000000000 R11=000000400aa153c0
R12=000000400863f5a0 R13=0000000000000000 R14=0000007fa1218e10 R15=000000400863f5a0
RIP=0000004004bc7855 RFL=00000246 [---Z-P-] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 00000000 00000000
CS =0033 0000000000000000 ffffffff 00effb00 DPL=3 CS64 [-RA]
SS =002b 0000000000000000 ffffffff 00cff300 DPL=3 DS [-WA]
DS =0000 0000000000000000 00000000 00000000
FS =0000 000000400c0c3840 00000000 00000000
GS =0000 0000000000000000 00000000 00000000
LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT
TR =0000 0000000000000000 0000ffff 00008b00 DPL=0 TSS64-busy
GDT= 000000400866f000 0000007f
IDT= 000000400866e000 F000001ff
CR0=80010001 CR2=0000000000000000 CR3=0000000000000000 CR4=00000220
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000500
Is it possible that the CPU of arm does not support certain instructions?But,I don't know.
Who can give me some advice?
Thank you!
I wrote an example to load local HTML:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QWebEngineView>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QWebEngineView *webView = new QWebEngineView(this);
webView->load(QUrl("file:////home/tony/1.html"));
webView->setFixedSize(this->width(),this->height());
webView->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
At the same time, I found that a process(QtWebEngineProcess) did not start properly;
Then,I run:
$ ./QtWebEngineProcess --type=zygote --webengine-schemes=qrc:sLV --lang=zh
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
But,I didn't find any mistakes.Why does the process exit?
I wrote an example to load local HTML:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QWebEngineView>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QWebEngineView *webView = new QWebEngineView(this);
webView->load(QUrl("file:////home/tony/1.html"));
webView->setFixedSize(this->width(),this->height());
webView->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
At the same time, I found that a process(QtWebEngineProcess) did not start properly;
Then,I run:
$ ./QtWebEngineProcess --type=zygote --webengine-schemes=qrc:sLV
qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
But,I didn't find any mistakes.Why does the process exit?
Now, I found something new when I use gdb:
=> 0x400523c858: ud2
0x400523c85a: pushq $0xd
0x400523c85c: mov -0x230(%rbp),%rax
0x400523c863: mov -0x240(%rbp),%rdi
0x400523c86a: mov $0x1,%esi
0x400523c86f: movq $0x0,-0x230(%rbp)
0x400523c87a: mov %rax,-0x220(%rbp)
0x400523c881: callq 0x40051ccf00
0x400523c886: callq 0x400266c540
0x400523c88b: cmp $0x1,%eax
0x400523c88e: je 0x400523c8ed
0x400523c890: lea -0x220(%rbp),%rdi
0x400523c897: callq 0x40040fe8e0
0x400523c89c: jmpq 0x400523c60c
0x400523c8a1: int3
0x400523c8a2: ud2
0x400523c8a4: pushq $0x10
0x400523c8a6: int3
0x400523c8a7: ud2
0x400523c8a9: pushq $0x11
0x400523c8ab: mov -0x200(%rbp),%rax
0x400523c8b2: lea -0x1c0(%rbp),%rbx
0x400523c8b9: movq $0x0,-0x200(%rbp)
This is where the error occurred:
(gdb) x/30i 0x40007ff2c0
0x40007ff2c0: xor %al,%dh
0x40007ff2c2: (bad)
0x40007ff2c3: add %al,(%rax)
0x40007ff2c5: add %al,(%rax)
0x40007ff2c7: add %ch,0x0(%rbp)
0x40007ff2cd: add %al,(%rax)
0x40007ff2cf: add %dl,0x62d7(%rax)
0x40007ff2d5: add %al,(%rax)
0x40007ff2d7: add %cl,-0x16(%rdx)
0x40007ff2da: test %ecx,(%rdx)
0x40007ff2dc: add %al,(%rax)
0x40007ff2df: add %al,(%rcx)
0x40007ff2e1: repz jg 0x40007ff2e4
0x40007ff2e4: add %al,(%rax)
0x40007ff2e7: add %bl,-0xd(%rax)
0x40007ff2ea: jg 0x40007ff2ec
0x40007ff2ec: add %al,(%rax)
0x40007ff2ef: add %bl,-0xd(%rax)
0x40007ff2f2: jg 0x40007ff2f4
0x40007ff2f4: add %al,(%rax)
0x40007ff2f7: add %dh,(%rax)
0x40007ff2f9: repz jg 0x40007ff2fc
0x40007ff2fc: add %al,(%rax)
(bad)?? What's it mean?
I found out the reason for "qemu: unknown option 'type=utility'", created a sample code to demo it and a small wrokaround patch to chromium. Found more info in:
https://bugs.launchpad.net/qemu/+bug/1926246
This is an automated cleanup. This bug report has been moved to QEMU's
new bug tracker on gitlab.com and thus gets marked as 'expired' now.
Please continue with the discussion here:
https://gitlab.com/qemu-project/qemu/-/issues/280
|