Project

General

Profile

GalaxyNexusI9250SerialConsole » History » Version 10

Denis 'GNUtoo' Carikli, 11/03/2012 12:08 PM

1 1 Denis 'GNUtoo' Carikli
h1. GalaxyNexusSerialConsole
2
3
* http://redmine.replicant.us/projects/replicant/wiki/S5PC110Bootloader works as a serial cable.
4
5
When you connect the cable you get the FIQ debugger, but what if you want kgdb instead:
6
* apply that patch:
7
<pre>
8
diff --git a/arch/arm/mach-omap2/board-tuna.c b/arch/arm/mach-omap2/board-tuna.c
9
index a022a43..7098227 100644
10
--- a/arch/arm/mach-omap2/board-tuna.c
11
+++ b/arch/arm/mach-omap2/board-tuna.c
12
@@ -1001,6 +1001,8 @@ static inline void __init board_serial_init(void)
13
        omap_serial_init_port_pads(0, uart1_pads, uart1_pads_sz, NULL);
14
        omap_serial_init_port_pads(1, tuna_uart2_pads,
15
                ARRAY_SIZE(tuna_uart2_pads), &tuna_uart2_info);
16
+       omap_serial_init_port_pads(2,tuna_uart3_pads,
17
+               ARRAY_SIZE(tuna_uart3_pads), NULL);
18
        omap_serial_init_port_pads(3, tuna_uart4_pads,
19
                                   ARRAY_SIZE(tuna_uart4_pads), NULL);
20
 }
21
</pre>
22
* remove the FIQ debugger in the kernel configuration.
23
24
* change the CMDLINE trough the kernel configuration:
25
Use:
26
<pre>CONFIG_CMDLINE="console=ttyO2 androidboot.console=ttyO2 [...]"</pre>
27
Instead of:
28
<pre>CONFIG_CMDLINE="console=ttyFIQ0 androidboot.console=ttyFIQ0 [...]"</pre>
29 2 Denis 'GNUtoo' Carikli
30 3 Denis 'GNUtoo' Carikli
* Verify that you get the kernel messages.
31 2 Denis 'GNUtoo' Carikli
32 3 Denis 'GNUtoo' Carikli
* Then change the cmdline for kgdb
33 4 Denis 'GNUtoo' Carikli
<pre>
34
CONFIG_CMDLINE="kgdboc=ttyO2,115200 console=ttyO2 androidboot.console=ttyO2 [...]"
35
</pre>
36
37
Don't add kgdbwait tough because it result in that:
38
<pre>
39
(gdb) set remotebaud 115200
40
(gdb) target remote /dev/ttyUSB0
41
/dev/ttyUSB0: Device or resource busy.
42
(gdb) target remote /dev/ttyUSB0
43
Remote debugging using /dev/ttyUSB0
44
kgdb_breakpoint ()
45
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/debug/debug_core.c:954
46
954		arch_kgdb_breakpoint();
47
(gdb) c
48
Continuing.
49
50
Program received signal SIGSEGV, Segmentation fault.
51
__raw_spin_lock_irqsave (lock=0x288)
52
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/spinlock.c:112
53
112	BUILD_LOCK_OPS(spin, raw_spinlock);
54
(gdb) bt
55
#0  __raw_spin_lock_irqsave (lock=0x288)
56
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/spinlock.c:112
57
#1  0xc061aecc in _raw_spin_lock_irqsave (lock=0x288)
58
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/spinlock.c:145
59
#2  0xc0098620 in try_to_wake_up (p=0x0, state=1611595795, wake_flags=1)
60
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/sched.c:2681
61
#3  0xc009897c in wake_up_process (p=0x288)
62
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/sched.c:2785
63
#4  0xc00e2090 in proc_dohung_task_timeout_secs (table=<value optimized out>, write=<value optimized out>, 
64
    buffer=<value optimized out>, lenp=<value optimized out>, ppos=0xc782bf70)
65
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/hung_task.c:190
66
#5  0xc0174178 in proc_sys_call_handler (filp=<value optimized out>, buf=0x24808, count=1, ppos=0xc782bf70, 
67
    write=1) at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/fs/proc/proc_sysctl.c:158
68
#6  0xc01741b0 in proc_sys_write (filp=0x288, buf=0x600f0013 <Address 0x600f0013 out of bounds>, count=1, 
69
    ppos=0xc782a000)
70
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/fs/proc/proc_sysctl.c:176
71
#7  0xc0126420 in vfs_write (file=0xc73be500, buf=0x24808 "0", count=<value optimized out>, pos=0xc782bf70)
72
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/fs/read_write.c:377
73
#8  0xc0126590 in sys_write (fd=<value optimized out>, buf=0x24808 "0", count=1)
74
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/fs/read_write.c:429
75
#9  0xc0055a00 in ?? ()
76
Cannot access memory at address 0x0
77
#10 0xc0055a00 in ?? ()
78
Cannot access memory at address 0x0
79
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
80
</pre>
81 5 Denis 'GNUtoo' Carikli
82 10 Denis 'GNUtoo' Carikli
* disable the watchdog timer in the kernel, and recompile it and reflash the boot.img.
83 6 Denis 'GNUtoo' Carikli
84
then open a root console and do:
85
<pre>
86
echo g > /proc/sysrq-trigger
87
</pre>
88 7 Denis 'GNUtoo' Carikli
89
<pre>
90
gnutoo@gnutoo-laptop:~/embedded/android/replicant-4.0$ . build/envsetup.sh 
91
including device/ti/panda/vendorsetup.sh
92
including vendor/replicant/vendorsetup.sh
93
including sdk/bash_completion/adb.bash
94
gnutoo@gnutoo-laptop:~/embedded/android/replicant-4.0$ lunch replicant_maguro-eng
95
96
============================================
97
PLATFORM_VERSION_CODENAME=REL
98
PLATFORM_VERSION=4.0.4
99
TARGET_PRODUCT=replicant_maguro
100
TARGET_BUILD_VARIANT=eng
101
TARGET_BUILD_TYPE=release
102
TARGET_BUILD_APPS=
103
TARGET_ARCH=arm
104
TARGET_ARCH_VARIANT=armv7-a-neon
105
HOST_ARCH=x86
106
HOST_OS=linux
107
HOST_BUILD_TYPE=release
108
BUILD_ID=IMM76L
109
============================================
110
111
112
gnutoo@gnutoo-laptop:~/embedded/android/replicant-4.0$ arm-linux-androideabi-gdb
113
GNU gdb (GDB) 7.1-android-gg2
114
Copyright (C) 2010 Free Software Foundation, Inc.
115
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
116
This is free software: you are free to change and redistribute it.
117
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
118
and "show warranty" for details.
119
This GDB was configured as "--host=i686-linux-gnu --target=arm-elf-linux".
120
For bug reporting instructions, please see:
121
<http://www.gnu.org/software/gdb/bugs/>.
122
(gdb) file /home/gnutoo/embedded/android/replicant-4.0/out/target/product/maguro/obj/KERNEL_OBJ/vmlinux
123
Reading symbols from /home/gnutoo/embedded/android/replicant-4.0/out/target/product/maguro/obj/KERNEL_OBJ/vmlinux...done.
124
(gdb) set remotebaud 115200
125 8 Denis 'GNUtoo' Carikli
(gdb) target remote /dev/ttyUSB0
126
Remote debugging using /dev/ttyUSB0
127
kgdb_breakpoint ()
128
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/debug/debug_core.c:954
129
954		arch_kgdb_breakpoint();
130
(gdb) bt
131
#0  kgdb_breakpoint ()
132
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/debug/debug_core.c:954
133
#1  0xc00df764 in sysrq_handle_dbg (key=-29306880)
134
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/kernel/debug/debug_core.c:745
135
#2  0xc02f2e18 in __handle_sysrq (key=103, check_mask=false)
136
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/tty/sysrq.c:522
137
#3  0xc02f2ec4 in write_sysrq_trigger (file=<value optimized out>, buf=<value optimized out>, count=2, 
138
    ppos=0xc4a01f70)
139
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/drivers/tty/sysrq.c:870
140
#4  0xc016ba88 in proc_reg_write (file=0xc49ea3c0, buf=0x137fc84 "g\n\f@", count=2, ppos=0xc4a01f70)
141
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/fs/proc/inode.c:200
142
#5  0xc0126420 in vfs_write (file=0xc49ea3c0, buf=0x137fc84 "g\n\f@", count=<value optimized out>, 
143
    pos=0xc4a01f70) at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/fs/read_write.c:377
144
#6  0xc0126590 in sys_write (fd=<value optimized out>, buf=0x137fc84 "g\n\f@", count=2)
145
    at /home/gnutoo/embedded/android/replicant-4.0/kernel/samsung/tuna/fs/read_write.c:429
146
#7  0xc0055a00 in ?? ()
147
Cannot access memory at address 0x0
148
#8  0xc0055a00 in ?? ()
149
Cannot access memory at address 0x0
150
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
151
(gdb) 
152 7 Denis 'GNUtoo' Carikli
153
</pre>