From: Andreas S. <an...@sc...> - 2002-09-13 11:12:28
|
i tried to get the kernel messages and the oops i get to the serial console, and i failed. two minicoms can talk to each other over my nullmodem cable, but no messages come through. i had fixed a obvious compilation bug (too man arguments to handle_sysrq in serial.c), but there seems to be more wrong. i use the patches by Aivils Stoss and work with a backport on 2.4.19. My ultimat aim is to get a mult-console box for two (or more) people. |
From: Andreas S. <an...@sc...> - 2002-09-13 23:25:12
|
* Andreas Schuldei (an...@sc...) [020913 13:13]: > i tried to get the kernel messages and the oops i get to the > serial console, and i failed. that was because i has enable the magic sys request /kernel hacking feature, and that broke in serial.c. Note that Aivils did not backport ruby serial layer rewrite, so this is understandable not working as it should. however, when the kernel hacking is disabled, the serial consol works again and i was able to catch the oops and decode it. ksymoops -m /boot/System.map-2.4.19-backstreet-ruby /tmp/oops ksymoops 2.4.6 on i686 2.4.19-backstreet-ruby. Options used -V (default) -k /proc/ksyms (default) -l /proc/modules (default) -o /lib/modules/2.4.19-backstreet-ruby/ (default) -m /boot/System.map-2.4.19-backstreet-ruby (specified) Warning (compare_maps): ksyms_base symbol ip_ct_attach_R__ver_ip_ct_attach not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol ip_route_me_harder_R__ver_ip_route_me_harder not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol neigh_app_ns_R__ver_neigh_app_ns not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_getsockopt_R__ver_nf_getsockopt not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_hook_slow_R__ver_nf_hook_slow not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_hooks_R__ver_nf_hooks not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_register_hook_R__ver_nf_register_hook not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_register_queue_handler_R__ver_nf_register_queue_handler not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_register_sockopt_R__ver_nf_register_sockopt not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_reinject_R__ver_nf_reinject not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_setsockopt_R__ver_nf_setsockopt not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_unregister_hook_R__ver_nf_unregister_hook not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_unregister_queue_handler_R__ver_nf_unregister_queue_handler not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol nf_unregister_sockopt_R__ver_nf_unregister_sockopt not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol sk_chk_filter_R__ver_sk_chk_filter not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol sk_run_filter_R__ver_sk_run_filter not found in System.map. Ignoring ksyms_base entry Unable to handle kernel NULL pointer dereference at virtual address 00000000 c0178d8b *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c0178d8b>] Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00010282 eax: 0000002c ebx: 00000001 ecx: ee98e440 edx: 00000000 esi: ee986fdc edi: 00000000 ebp: 00000001 esp: c026fdb4 ds: 0018 es: 0018 ss: 0018 Process swapper (pid: 0, stackpage=c026f000) Stack: 00000001 ee986fdc ee986fdc 0000002c 0000000a c0178fb5 00000000 0000002c 00000001 c01b01be ee98e440 00000001 0000002c 00000001 00000001 ee98421c ee986fdc ee984000 c186e1a0 c186e1a0 ee98e440 f08be4ae ee986fdc 00000001 Call Trace: [<c0178fb5>] [<c01b01be>] [<f08be4ae>] [<f08bbf66>] [<f08bc221>] [<f08bc2d7>] [<f08bc312>] [<f08cc204>] [<f08cc579>] [<f08cc7c2>] [<c0110001>] [<c010985d>] [<c01099c6>] [<c0106bd0>] [<c0106bd0>] [<c0106bd0>] [<c0106bd0>] [<c0106bf3>] [<c0106c59>] [<c0105000>] [<c0105027>] Code: 8b 37 83 fd 02 74 16 8a 44 24 1c 00 c0 89 ea 30 d0 0f b6 c0 >>EIP; c0178d8b <kbd_keycode+f/21c> <===== >>ecx; ee98e440 <_end+2e6d1b28/305ef748> >>esi; ee986fdc <_end+2e6ca6c4/305ef748> >>esp; c026fdb4 <init_task_union+1db4/2000> Trace; c0178fb5 <kbd_event+1d/3c> Trace; c01b01be <input_event+2ee/308> Trace; f08be4ae <[hid]hidinput_hid_event+16a/190> Trace; f08bbf66 <[hid]hid_process_event+22/30> Trace; f08bc221 <[hid]hid_input_field+2ad/2ec> Trace; f08bc2d7 <[hid]hid_input_report+77/a0> Trace; f08bc312 <[hid]hid_irq_in+12/18> Trace; f08cc204 <[usb-uhci]process_interrupt+a8/228> Trace; f08cc579 <[usb-uhci]process_urb+7d/200> Trace; f08cc7c2 <[usb-uhci]uhci_interrupt+c6/12c> Trace; c0110001 <apm_bios_call_simple+29/6c> Trace; c010985d <handle_IRQ_event+31/5c> Trace; c01099c6 <do_IRQ+6a/a8> Trace; c0106bd0 <default_idle+0/28> Trace; c0106bd0 <default_idle+0/28> Trace; c0106bd0 <default_idle+0/28> Trace; c0106bd0 <default_idle+0/28> Trace; c0106bf3 <default_idle+23/28> Trace; c0106c59 <cpu_idle+41/54> Trace; c0105000 <_stext+0/0> Trace; c0105027 <rest_init+27/28> Code; c0178d8b <kbd_keycode+f/21c> 00000000 <_EIP>: Code; c0178d8b <kbd_keycode+f/21c> <===== 0: 8b 37 mov (%edi),%esi <===== Code; c0178d8d <kbd_keycode+11/21c> 2: 83 fd 02 cmp $0x2,%ebp Code; c0178d90 <kbd_keycode+14/21c> 5: 74 16 je 1d <_EIP+0x1d> c0178da8 <kbd_keycode+2c/21c> Code; c0178d92 <kbd_keycode+16/21c> 7: 8a 44 24 1c mov 0x1c(%esp,1),%al Code; c0178d96 <kbd_keycode+1a/21c> b: 00 c0 add %al,%al Code; c0178d98 <kbd_keycode+1c/21c> d: 89 ea mov %ebp,%edx Code; c0178d9a <kbd_keycode+1e/21c> f: 30 d0 xor %dl,%al Code; c0178d9c <kbd_keycode+20/21c> 11: 0f b6 c0 movzbl %al,%eax <0>Kernel panic: Aiee, killing interrupt handler! 16 warnings issued. Results may not be reliable. Any comments? |
From: Andreas S. <an...@sc...> - 2002-09-14 00:36:50
|
* Andreas Schuldei (an...@sc...) [020914 01:26]: > * Andreas Schuldei (an...@sc...) [020913 13:13]: > Code; c0178d8b <kbd_keycode+f/21c> <===== > 0: 8b 37 mov (%edi),%esi <===== > Code; c0178d8d <kbd_keycode+11/21c> > 2: 83 fd 02 cmp $0x2,%ebp > Code; c0178d90 <kbd_keycode+14/21c> this oops takes place in the function kbd_keycode, because vt is a nullpointer. i added a check for vt==0 and print out some warning and returnd, and now it crashes no longer. so why would the vt pointer be NULL? |
From: Brad H. <bh...@bi...> - 2002-09-14 01:06:18
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sat, 14 Sep 2002 10:36, Andreas Schuldei wrote: > * Andreas Schuldei (an...@sc...) [020914 01:26]: > > * Andreas Schuldei (an...@sc...) [020913 13:13]: > > Code; c0178d8b <kbd_keycode+f/21c> <===== > > 0: 8b 37 mov (%edi),%esi <===== > > Code; c0178d8d <kbd_keycode+11/21c> > > 2: 83 fd 02 cmp $0x2,%ebp > > Code; c0178d90 <kbd_keycode+14/21c> > > this oops takes place in the function kbd_keycode, because vt is > a nullpointer. i added a check for vt==0 and print out some > warning and returnd, and now it crashes no longer. Does this happen with "vanilla" versions of 2.4.19 (or 2.4.20-pre7) or 2.5.34? Brad - -- http://conf.linux.org.au. 22-25Jan2003. Perth, Australia. Birds in Black. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9goodW6pHgIdAuOMRAk/7AJ4j9I1TexjesblyI5RLalILAHYuzQCcDmz9 Qsa+K3ngAWbanQYzMbgAhl4= =n9ZS -----END PGP SIGNATURE----- |
From: Andreas S. <an...@sc...> - 2002-09-15 22:27:17
|
* Brad Hards (bh...@bi...) [020914 03:06]: > On Sat, 14 Sep 2002 10:36, Andreas Schuldei wrote: > > * Andreas Schuldei (an...@sc...) [020914 01:26]: > > > * Andreas Schuldei (an...@sc...) [020913 13:13]: > > > Code; c0178d8b <kbd_keycode+f/21c> <===== > > > 0: 8b 37 mov (%edi),%esi <===== > > > Code; c0178d8d <kbd_keycode+11/21c> > > > 2: 83 fd 02 cmp $0x2,%ebp > > > Code; c0178d90 <kbd_keycode+14/21c> > > > > this oops takes place in the function kbd_keycode, because vt is > > a nullpointer. i added a check for vt==0 and print out some > > warning and returnd, and now it crashes no longer. > Does this happen with "vanilla" versions of 2.4.19 (or 2.4.20-pre7) or 2.5.34? it can not, since all those can not have multiple independent vt. However i did dig some more and this problem occures if the void pointer private is not initialized in kbd_connect. Then it points to NULL, and booom. The pointer gets dereferenced in kbd_keycode, where it is supposed to point to the vt_struct of the controlling terminal. This (void pointer private not beeing initialized) happens, it there are more keyboards then VTs. The common case in the bottom of the function does not catch this, it does not touch private. Would it make sense to let private point to some fix point, in that case? as a (really bad) solution i pointed it at admin_vt, which results in funny effekts, when one types on the keyboard and there is no controlling vt. then the characters showed up in my root ssh session, and i could even close that session. (c: Anyone who is better at this: what would be a sensible vt to point to? |