Opened 7 years ago

Closed 7 years ago

Last modified 4 years ago

#9054 closed enhancement (no change required)

Automatically generate QR-Code

Reported by: dsjonny Owned by: axeld
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/Development
Keywords: qr-code Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

It would be very usefull if qr-code is automatically generated after enter the KDL.

Because many times the user cannot generate a code (because for example the keyboard not works), he/she can use the automatic generated code instead.

The code needs to automatically generate only when the KDL starts. There can be a message too (for example: "Please send this code to the Haiku team."), becase I think the most of the users cannot use (don't understand) the KDL. The KDL can be more "user friendly", if there would be only a generated qr-code, a message (what to do), and a prompt.

For example:

And of course, if the user is at home in the KDL, and can use the keyboard, than the qr-code can generate any other time, when need.

Attachments (3)

qrkdl.png (9.8 KB ) - added by dsjonny 7 years ago.
qrcode.9157970.png (2.5 KB ) - added by kallisti5 7 years ago.
backtrace
qr-larger.png (6.6 KB ) - added by kallisti5 7 years ago.
qr code for backtrace, larger

Download all attachments as: .zip

Change History (15)

by dsjonny, 7 years ago

Attachment: qrkdl.png added

comment:1 by anevilyak, 7 years ago

Component: - GeneralSystem/Kernel
Owner: changed from nobody to axeld
Version: R1/alpha3R1/Development

Generating the message in the above format is not quite so trivial, bear in mind KDL is *extremely* limited in terms of what capabilities one has available.

comment:2 by kallisti5, 7 years ago

Keywords: qr-code added

This isn't a horrible idea... however:

Pros:

  • Simple, better then screen shots of backtrace text
  • Most people have smartphones which can read qr codes.

Cons:

  • QR code is too small.. to store an entire backtrace would require several *huge* QR codes. (try to generate a qr-code with a backtrace, it just doesn't go well)
  • We don't want to just blast qr codes on screen... by that time a backtrace would be more useful when no keyboard is available.

comment:3 by dsjonny, 7 years ago

That image was created with WonderBrush for example only. The text is usefull in "standard" KDL format too, of course.

I do not know how many character/byte a "normal" KDL error message (what we got of an error when enter KDL), but based on the wikipedia it can contains many data:

Numeric only Max. 7,089 characters (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) Alphanumeric Max. 4,296 characters (0–9, A–Z [upper-case only], space, $, %, *, +, -, ., /, :) Binary/byte Max. 2,953 characters (8-bit bytes) (23624 bits) Kanji/Kana Max. 1,817 characters

But, really, nobody want to use a fullscreen qr-code.

However, the KDL can decide if there is a large amount of data, than do not create a qr-code, just only give some message for the user.

And I've got another idea: if it is possible, than in every kernel error (when entering KDL), save the onscreen error messages as a text file on the Desktop. I know, the most of the times it is in the syslog, but the enduser will not found and read the syslog. So; if there will be the text error on the Desktop or in the home folder, than the user can find it, and can use it in e-mail or in ticket. But: this works only if there is no fatal error, and the KDL can save the file.

by kallisti5, 7 years ago

Attachment: qrcode.9157970.png added

backtrace

comment:4 by kallisti5, 7 years ago

attached is a qr code for an average size kdl backtrace... one smaller size, one larger size.

My phone won't read either. (Galaxy Nexus 4G LTE)

by kallisti5, 7 years ago

Attachment: qr-larger.png added

qr code for backtrace, larger

comment:5 by kallisti5, 7 years ago

the backtrace text I used was:

PANIC: no space in log after sync (1424 for 2043 blocks)!
Welcome to Kernel Debugging Land...
Thread 14908 "nsinstall" running on CPU 0
stack trace for thread 14908 "nsinstall"
    kernel stack: 0xcd536000 to 0xcd53a000
      user stack: 0x7efef000 to 0x7ffef000
frame               caller     <image>:function + offset
 0 cd539af8 (+  32) 80124efa   <kernel_x86>:arch_debug_stack_trace + 0x0012
 1 cd539b18 (+  16) 80091d87   <kernel_x86> stack_trace_trampoline(NULL) + 0x000b
 2 cd539b28 (+  12) 8012a366   <kernel_x86>:arch_debug_call_with_fault_handler + 0x001b
 3 cd539b34 (+  48) 80093816   <kernel_x86>:debug_call_with_fault_handler + 0x005e
 4 cd539b64 (+  64) 80091fa7   <kernel_x86> kernel_debugger_loop(0x8016ed57 "PANIC: ", 0x815364a0 "no space in log after sync (%ld for %ld blocks)!", 0xcd539c10 "", int32: 0) + 0x021b
 5 cd539ba4 (+  48) 8009230b   <kernel_x86> kernel_debugger_internal(0x8016ed57 "PANIC: ", 0x815364a0 "no space in log after sync (%ld for %ld blocks)!", 0xcd539c10 "", int32: 0) + 0x0053
 6 cd539bd4 (+  48) 80093b90   <kernel_x86>:panic + 0x0024
 7 cd539c04 (+ 224) 81527154   <bfs> Journal<0xd602f250>::_WriteTransactionToLog(0xebc6386e) + 0x0324
 8 cd539ce4 (+  48) 81527be5   <bfs> Journal<0xd602f250>::_TransactionDone(true) + 0x00d5
 9 cd539d14 (+  48) 81527a12   <bfs> Journal<0xd602f250>::Unlock(Transaction*: 0xcd539d94, true) + 0x004e
10 cd539d44 (+  96) 8152ef04   <bfs> bfs_create_symlink(fs_volume*: 0xd02b8798, fs_vnode*: 0xdfbaa420, 0xcd539de4 "nsIInterfaceRequestor.idl", 0xdf50a570 "/use-the-source/bezilla/mozilla/xpcom/base/nsIInterfaceRequestor.idl", int32: 0) + 0x02e0
11 cd539da4 (+ 320) 800e0643   <kernel_x86> common_create_symlink(int32: -1, 0xdf505070 "/generated", 0xdf50a570 "/use-the-source/bezilla/mozilla/xpcom/base/nsIInterfaceRequestor.idl", int32: 0, false) + 0x0073
12 cd539ee4 (+  96) 800e5adc   <kernel_x86>:_user_create_symlink + 0x010c
13 cd539f44 (+ 100) 8012b5d0   <kernel_x86>:handle_syscall + 0x00cd
user iframe at 0xcd539fa8 (end = 0xcd53a000)
 eax 0x73           ebx 0x2d2f14        ecx 0x7ffecdc0   edx 0xffff0114
 esi 0x7ffef6aa     edi 0x44            ebp 0x7ffecdec   esp 0xcd539fdc
 eip 0xffff0114  eflags 0x3216     user esp 0x7ffecdc0
 vector: 0x63, error code: 0x0
14 cd539fa8 (+   0) ffff0114   <commpage>:commpage_syscall + 0x0004
15 7ffecdec (+8592) 0020259b   <nsinstall>:main + 0x0b97
16 7ffeef7c (+  48) 0020120f   <nsinstall>:_start + 0x005b
17 7ffeefac (+  48) 00106236   </boot/system/runtime_loader@0x00100000>:unknown + 0x6236
18 7ffeefdc (+   0) 7ffeefec   719937:nsinstall_14908_stack@0x7efef000 + 0xffffec

comment:6 by phoudoin, 7 years ago

While I'm not for an automatic QR code at KDL entry, I think that KDL can be a little bit less user-unfriendly by having by default a short small "what can I do?" text and a bt2qr command generated a set of QR codes as much as needed to host the whole backtrace that the text can hint toward.

What could be cooler even is that dev.haiku-os.org provides a way to directly report a full screenshot of such QR codes set... Using a fragment number in each QR code could make this a bit easier too.

Last edited 7 years ago by phoudoin (previous) (diff)

comment:7 by dsjonny, 7 years ago

I didn't know that this "few lines" generates an unusable qr-code. :( But I think the develpoer need to find some usable solutoin for the very end-users too. Because; like my mother never will know what is that error (and she also cannot read it, because cannot speak english...). As I know Haiku is not only for professional users, so need to find out some user-friendly solution. This is just my opinion...

comment:8 by phoudoin, 7 years ago

I guess we could imagine a kernel settings enabling an automatic and more user friendly qrcode based report kdl welcome message . The text will invite the end user to capture the whole set of qr codes and somehow post it on haiku web site.

in reply to:  7 comment:9 by bonefish, 7 years ago

Replying to dsjonny:

I didn't know that this "few lines" generates an unusable qr-code. :( But I think the develpoer need to find some usable solutoin for the very end-users too. Because; like my mother never will know what is that error (and she also cannot read it, because cannot speak english...). As I know Haiku is not only for professional users, so need to find out some user-friendly solution. This is just my opinion...

I would not recommend Haiku in its current -- alpha (!) -- state to end user. In a final product kernel crashes should virtually never happen. So I don't think it's reasonable to make KDL more end user friendly (we certainly shouldn't start localizing it or things like that).

Regarding the main point of the ticket, as has been written before, the information density of QR codes isn't that good. Their main use is to relatively easily retrieve a text version of a stack trace (which is more convenient for developers to work with). I don't think they add much user friendliness for the people retrieving the stack trace. Due to the lower data density it even makes things worse, if the keyboard isn't working.

I wouldn't mind a kernel setting and a boot loader option to enable automatic QR codes, but enabling them is not a good default IMO.

comment:10 by luroh, 7 years ago

Resolution: no change required
Status: newclosed

The discussion seems to have run its course, closing.

comment:11 by dsjonny, 4 years ago

Just for note: Microsoft implement a similar solution in Windows 10: http://arstechnica.com/information-technology/2016/04/microsoft-adds-qr-codes-to-bsods-in-new-windows-10-preview-build/

Would be it possible to make this solution work on Haiku also (for example for common problems)?

comment:12 by pulkomandy, 4 years ago

What about just fixing the problems instead? No need to waste time on this feature. If you manage to KDL the system, the developers should feel bad about their broken code and fix it so it never happens again. That's it. KDL is not a friendly place for users, and in stable releases, we will probably have a "type reboot to reboot" message there, but we can't do much more.

Note: See TracTickets for help on using tickets.