Перейти к содержанию
    

не могу запустить kgdb

День добрый!

 

Столкнулся с проблемой для cortex-A8.

Не загружается отладчик ядра во время стартапа ядра.

Делаю вроде все правильно, по инструкции http://www.linuxforu.com/2011/09/kernel-sp...ggers-in-linux/

ядро версии 3.x.x ( 3.2.18 ).

Отладчик ядра запускаю по 232 порту, т.е. over console( ввиду того, что в ядре версии > 3.x.x kgdb over ethernet исключили ).

 

параметры, которые я дополнительно передаю ядру:

kgdboc=ttyO0,115200n8 kgdbwait

 

пробовал и так:

kgdb8250=ttyO0,115200n8 kgdbwait

 

но все равно, во время старта kgdboc не подгружается.

 

Кто нибудь может подсказать, как запустить его и в чем может быть проблема?

Есть какие нибудь идеи?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столкнулся с проблемой для cortex-A8.

Не загружается отладчик ядра во время стартапа ядра.

...

Есть какие нибудь идеи?

 

Это проблема не cortex-a8 а драйвера UART SoC

http://kernel.org/pub/linux/kernel/people/...n.html#id370455

 

When using kgdboc with a UART, the UART driver must implement two callbacks in the struct uart_ops. Example from drivers/8250.c:

 

#ifdef CONFIG_CONSOLE_POLL

.poll_get_char = serial8250_get_poll_char,

.poll_put_char = serial8250_put_poll_char,

#endif

 

смотрите драйвер вашего процессора - есть ли там эти ф-ции, если нет - допишите, это несложно. Вот например дописывал когда-то для i.mx233:

 

--- linux-imx_2.6.35_11.04.01/drivers/serial/mxs-duart.c	2011-05-02 10:41:22.000000000 +0400
+++ linux-imx-sk_2.6.35_11.04.01/drivers/serial/mxs-duart.c	2011-05-17 10:01:32.653212175 +0400
@@ -529,6 +529,33 @@
	return ret;
}

+#ifdef CONFIG_CONSOLE_POLL
+
+static int mxs_get_poll_char(struct uart_port *port)
+{
+	struct duart_port *dp = (struct duart_port *)port;
+
+	/* Wait until a character arrives. */
+	while (__raw_readl(dp->port.membase + HW_UARTDBGFR) & BM_UARTDBGFR_RXFE)
+		;
+	/* Read the character and return it. */
+	return __raw_readl(dp->port.membase + HW_UARTDBGDR) & 0xff;
+}
+
+static void mxs_put_poll_char(struct uart_port *port, unsigned char c)
+{
+	struct duart_port *dp = (struct duart_port *)port;
+
+	/* Wait until the transmit FIFO is empty. */
+	while (!(__raw_readl(dp->port.membase + HW_UARTDBGFR) & BM_UARTDBGFR_TXFE))
+		barrier();
+
+	/* Transmit the character. */
+	__raw_writel(c, dp->port.membase + HW_UARTDBGDR);
+}
+
+#endif
+
static struct uart_ops duart_pops = {
	.tx_empty = duart_tx_empty,
	.set_mctrl = duart_set_mctrl,
@@ -546,6 +573,10 @@
	.request_port = duart_request_port,
	.config_port = duart_config_port,
	.verify_port = duart_verify_port,
+#ifdef CONFIG_CONSOLE_POLL
+	.poll_get_char = mxs_get_poll_char,
+	.poll_put_char = mxs_put_poll_char,
+#endif
};

static struct duart_port duart_port = {

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо,

у меня драйвер: Serial: 8250/16550 driver

 

там эти функции реализованы и CONFIG_CONSOLE_POLL в конфиге включено

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо,

у меня драйвер: Serial: 8250/16550 driver

 

А вы уверены в этом (ttyO0 - O это от omap), drivers/tty/serial/omap-serial.c не пробовали смотреть ?

 

UPD хотя в ванильном ядре poll-ф-ции реализованы вроде

http://lxr.free-electrons.com/source/drive...3.2;a=arm#L1049

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, реализованы

 

drivers/tty/serial/omap-serial.c

 

#ifdef CONFIG_CONSOLE_POLL

static void serial_omap_poll_put_char(struct uart_port *port, unsigned char ch)
{
    struct uart_omap_port *up = (struct uart_omap_port *)port;
    wait_for_xmitr(up);
    serial_out(up, UART_TX, ch);
}

static int serial_omap_poll_get_char(struct uart_port *port)
{
    struct uart_omap_port *up = (struct uart_omap_port *)port;
    unsigned int status = serial_in(up, UART_LSR);

    if (!(status & UART_LSR_DR))
        return NO_POLL_CHAR;

    return serial_in(up, UART_RX);
}

#endif /* CONFIG_CONSOLE_POLL */

#ifdef CONFIG_SERIAL_OMAP_CONSOLE

static struct uart_omap_port *serial_omap_console_ports[4];

static struct uart_driver serial_omap_reg;

static void serial_omap_console_putchar(struct uart_port *port, int ch)
{
    struct uart_omap_port *up = (struct uart_omap_port *)port;

    wait_for_xmitr(up);
    serial_out(up, UART_TX, ch);
}

static void
serial_omap_console_write(struct console *co, const char *s,
        unsigned int count)
{
    struct uart_omap_port *up = serial_omap_console_ports[co->index];
    unsigned long flags;
    unsigned int ier;
    int locked = 1;

    local_irq_save(flags);
    if (up->port.sysrq)
        locked = 0;
    else if (oops_in_progress)
        locked = spin_trylock(&up->port.lock);
    else
        spin_lock(&up->port.lock);

    /*
     * First save the IER then disable the interrupts
     */
    ier = serial_in(up, UART_IER);
    serial_out(up, UART_IER, 0);

    uart_console_write(&up->port, s, count, serial_omap_console_putchar);

    /*
     * Finally, wait for transmitter to become empty
     * and restore the IER
     */
    wait_for_xmitr(up);
    serial_out(up, UART_IER, ier);
    /*
     * The receive handling will happen properly because the
     * receive ready bit will still be set; it is not cleared
     * on read.  However, modem control will not, we must
     * call it if we have saved something in the saved flags
     * while processing with interrupts off.
     */
    if (up->msr_saved_flags)
        check_modem_status(up);

    if (locked)
        spin_unlock(&up->port.lock);
    local_irq_restore(flags);
}

static int __init
serial_omap_console_setup(struct console *co, char *options)
{
    struct uart_omap_port *up;
    int baud = 115200;
    int bits = 8;
    int parity = 'n';
    int flow = 'n';

    if (serial_omap_console_ports[co->index] == NULL)
        return -ENODEV;
    up = serial_omap_console_ports[co->index];

    if (options)
        uart_parse_options(options, &baud, &parity, &bits, &flow);

    return uart_set_options(&up->port, co, baud, parity, bits, flow);
}

static struct console serial_omap_console = {
    .name        = OMAP_SERIAL_NAME,
    .write        = serial_omap_console_write,
    .device        = uart_console_device,
    .setup        = serial_omap_console_setup,
    .flags        = CON_PRINTBUFFER,
    .index        = -1,
    .data        = &serial_omap_reg,
};

static void serial_omap_add_console_port(struct uart_omap_port *up)
{
    serial_omap_console_ports[up->pdev->id] = up;
}

#define OMAP_CONSOLE    (&serial_omap_console)

#else

#define OMAP_CONSOLE    NULL

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проблема в чем то другом...

даже попытки инициализации kgdb нет при старте ядра, как будто ядро не реагирует на опции kgdboc и kgdbwait

 

kgdbretry тоже не спасает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть проблема в том, что физически ttyO0 подключен через hub controller к хосту и поэтому не грузится kgdb?

если да, то возможно ли реализовать нечто подобное, чтобы осуществлять отладку через USB?

В гугле нашел нечто подобное, но очень очень обзорно.( напримерhttp://bootloader.wikidot.com/android:kgdb )

т.е. получается, что у USB драйвера должны реализованы I/O poll функции для kgdb.

 

Подскажите с чего начать пожалуйста?

Ведь с одной стороны, вывод осуществляется через tty драйвер( в моем случае через omap_serial ), где реализованы все эти три функции, с другой стороны нужно эти же функции реализовать для usb драйвера.

 

Помогите пожалуйста разобраться

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть проблема в том, что физически ttyO0 подключен через hub controller к хосту и поэтому не грузится kgdb?

 

нет, от этого точно ничего не зависит, скорей всего ядро неправильно сконфигурировано

 

В гугле нашел нечто подобное, но очень очень обзорно.( напримерhttp://bootloader.wikidot.com/android:kgdb )

т.е. получается, что у USB драйвера должны реализованы I/O poll функции для kgdb.

 

это совесем другая история

 

kgdboc=ttyGS0 kgdbretry=4

 

там описан случай эмуляции консоли на USB device отлаживаемого устройства (kgdboc=ttyGS0 - GS это gadget serial), а у вас настоящий аппаратный UART.

 

У меня на хосте терминал работает через USB<->serial pl2303 и все нормально c at91sam9g45

 

Linux version 3.2.30-rt45 (sasa@sasa-laptop) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #248 Sun Jan 13 03:04:23 MSK 2013

...

Kernel command line: console=ttyS0,115200 ubi.mtd=1 root=ubi0:nandfs rw rootfstype=ubifs kgdboc=ttyS0,115200 kgdbwait

...

console [ttyS0] enabled

atmel_usart.1: ttyS1 at MMIO 0xfff8c000 (irq = 7) is a ATMEL_SERIAL

atmel_usart.2: ttyS2 at MMIO 0xfff90000 (irq = 8) is a ATMEL_SERIAL

kgdb: Registered I/O driver kgdboc.

kgdb: Waiting for connection from remote gdb...

 

даже если USB конвертер валит "мусор" в порт, в логе загрузки все равно должны быть такие строки.

 

В ядре включил такие опции

 

Kernel hacking  --->
    -*- Kernel debugging
    [*] KGDB: kernel debugger  ---> 
        <*>   KGDB: use kgdb over the serial console

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

опции для kgdb включил те же самые, но kgdb не включается.

 

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.18 (koen@dominion) (gcc version 4.5.4 20120305 (prerelease) (GCC) ) #1 Thu Jun 14 23:26:20 CEST 2012
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: am335xevm
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AM335X ES1.0 (sgx neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait ip=nonen8 kgdboc=ttyO0,115200n8 ekgdboc=ttyO0,115200n8 kgdbwait
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] allocated 1048576 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 256MB = 256MB total
[    0.000000] Memory: 253864k/253864k available, 8280k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     modules : 0xbf800000 - 0xc0000000   (   8 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0414418   (4146 kB)
[    0.000000]       .init : 0xc0415000 - 0xc044b000   ( 216 kB)
[    0.000000]       .data : 0xc044c000 - 0xc0491e20   ( 280 kB)
[    0.000000]        .bss : 0xc0491e44 - 0xc04d920c   ( 285 kB)
[    0.000000] NR_IRQS:410 nr_irqs:410 410
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
[    0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
[    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
[    0.000000] Console: colour dummy device 80x30
[    0.000183] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
[    0.058197] pid_max: default: 32768 minimum: 301
[    0.058349] Security Framework initialized
[    0.058410] Mount-cache hash table entries: 512
[    0.058837] Initializing cgroup subsys cpuacct
[    0.058898] Initializing cgroup subsys memory
[    0.058929] Initializing cgroup subsys devices
[    0.058959] Initializing cgroup subsys freezer
[    0.058959] Initializing cgroup subsys blkio
[    0.058990] Initializing cgroup subsys perf_event
[    0.059082] CPU: Testing write buffer coherency: ok
[    0.060119] devtmpfs: initialized
[    0.080627] omap_hwmod: gfx: failed to hardreset
[    0.097320] omap_hwmod: pruss: failed to hardreset
[    0.097900] print_constraints: dummy:
[    0.098175] NET: Registered protocol family 16
[    0.099426] OMAP GPIO hardware version 0.1
[    0.100646] omap_mux_init: Add partition: #1: core, flags: 0
[    0.102172]  omap_i2c.1: alias fck already exists
[    0.102569] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.102752]  omap2_mcspi.1: alias fck already exists
[    0.102905]  omap2_mcspi.2: alias fck already exists
[    0.103057]  edma.0: alias fck already exists
[    0.103088]  edma.0: alias fck already exists
[    0.103118]  edma.0: alias fck already exists
[    0.103210] cape: pcm register
[    0.113067] bio: create slab <bio-0> at 0
[    0.114318] SCSI subsystem initialized
[    0.115264] usbcore: registered new interface driver usbfs
[    0.115417] usbcore: registered new interface driver hub
[    0.115600] usbcore: registered new device driver usb
[    0.115753] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
[    0.115905] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
[    0.116424] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
[    0.117645] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.118286] Switching to clocksource gp timer
[    0.130828] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.131011] musb-hdrc musb-hdrc.0: dma type: pio
[    0.131225] MUSB0 controller's USBSS revision = 4ea20800
[    0.131713] musb-hdrc musb-hdrc.0: USB OTG mode controller at d081c000 using PIO, IRQ 18
[    0.132019] musb-hdrc musb-hdrc.1: dma type: pio
[    0.132171] MUSB1 controller's USBSS revision = 4ea20800
[    0.132324] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[    0.132415] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[    0.132568] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.132568] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.132598] usb usb1: Product: MUSB HDRC host driver
[    0.132598] usb usb1: Manufacturer: Linux 3.2.18 musb-hcd
[    0.132629] usb usb1: SerialNumber: musb-hdrc.1
[    0.133392] hub 1-0:1.0: USB hub found
[    0.133422] hub 1-0:1.0: 1 port detected
[    0.133911] musb-hdrc musb-hdrc.1: USB Host mode controller at d081e800 using PIO, IRQ 19
[    0.134368] NET: Registered protocol family 2
[    0.134582] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.135040] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.135284] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.135406] TCP: Hash tables configured (established 8192 bind 8192)
[    0.135406] TCP reno registered
[    0.135437] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.135467] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.135772] NET: Registered protocol family 1
[    0.136138] RPC: Registered named UNIX socket transport module.
[    0.136169] RPC: Registered udp transport module.
[    0.136169] RPC: Registered tcp transport module.
[    0.136199] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.138122] audit: initializing netlink socket (disabled)
[    0.138183] type=2000 audit(0.120:1): initialized
[    0.149291] VFS: Disk quotas dquot_6.5.2
[    0.149353] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.150634] msgmni has been set to 495
[    0.151733] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.151855] io scheduler noop registered
[    0.151885] io scheduler deadline registered
[    0.151947] io scheduler cfq registered (default)
[    0.152984] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.154479] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    0.787017] console [ttyO0] enabled
[    0.791381] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[    0.799285] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[    0.807128] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[    0.815002] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[    0.822906] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[    0.832031] brd: module loaded
[    0.839752] loop: module loaded

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

опции для kgdb включил те же самые, но kgdb не включается.

 

вы уверены что загружаете то ядро которое собрали ?

 

Linux version 3.2.18 (koen@dominion) (gcc version 4.5.4 20120305 (prerelease) (GCC) ) #1 Thu Jun 14 23:26:20 CEST 2012

 

потому как то что вы загружаете собрано явно не на вашей хост-системе 14 июня 2012 года

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sasamy, Спасибо огромное!

да, действительно, ядро гружу не то.

Сейчас исправлю и отпишусь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот что получилось

 

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 3.2.0 (root@debian) (gcc version 4.7.2 (Sourcery CodeBench Lite 2012.09-63) ) #1 Sun Jan 13 19:33:48 MSK 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: am335xevm
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AM335X ES1.0 (sgx neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait ip=nonen8 kgdboc=ttyO0,115200n8 ekgdboc=ttyO0,115200n8 kgdbwait
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 256MB = 256MB total
[    0.000000] Memory: 252940k/252940k available, 9204k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc05a5000   (5748 kB)
[    0.000000]       .init : 0xc05a5000 - 0xc05e4000   ( 252 kB)
[    0.000000]       .data : 0xc05e4000 - 0xc064c9c8   ( 419 kB)
[    0.000000]        .bss : 0xc064c9ec - 0xc06c087c   ( 464 kB)
[    0.000000] NR_IRQS:396
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
[    0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys_clkin_ck) for timer1, this may impact timekeeping in low power state
[    0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] Console: colour dummy device 80x30
[    0.000249] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
[    0.056316] pid_max: default: 32768 minimum: 301
[    0.056470] Security Framework initialized
[    0.056700] Mount-cache hash table entries: 512
[    0.057159] CPU: Testing write buffer coherency: ok
[    0.079105] omap_hwmod: pruss: failed to hardreset
[    0.080538] print_constraints: dummy:
[    0.081008] NET: Registered protocol family 16
[    0.083875] OMAP GPIO hardware version 0.1
[    0.087517] omap_mux_init: Add partition: #1: core, flags: 0
[    0.090144]  omap_i2c.1: alias fck already exists
[    0.091313]  omap2_mcspi.1: alias fck already exists
[    0.091646]  omap2_mcspi.2: alias fck already exists
[    0.092919]  edma.0: alias fck already exists
[    0.092949]  edma.0: alias fck already exists
[    0.092975]  edma.0: alias fck already exists
[    0.131561] bio: create slab <bio-0> at 0
[    0.134541] SCSI subsystem initialized
[    0.136783] usbcore: registered new interface driver usbfs
[    0.137219] usbcore: registered new interface driver hub
[    0.137491] usbcore: registered new device driver usb
[    0.137677] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
[    0.138040] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
[    0.139595] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
[    0.141511] tps65910 1-002d: could not be detected
[    0.143173] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.144661] Switching to clocksource gp timer
[    0.166537] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.166755] musb-hdrc musb-hdrc.0: dma type: pio
[    0.167175] MUSB0 controller's USBSS revision = 4ea20800
[    0.168075] musb-hdrc musb-hdrc.0: USB OTG mode controller at d083c000 using PIO, IRQ 18
[    0.168280] musb-hdrc musb-hdrc.1: dma type: pio
[    0.168719] MUSB1 controller's USBSS revision = 4ea20800
[    0.168962] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[    0.169051] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[    0.169224] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.169245] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.169264] usb usb1: Product: MUSB HDRC host driver
[    0.169278] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
[    0.169293] usb usb1: SerialNumber: musb-hdrc.1
[    0.170411] hub 1-0:1.0: USB hub found
[    0.170450] hub 1-0:1.0: 1 port detected
[    0.171204] musb-hdrc musb-hdrc.1: USB Host mode controller at d083e800 using PIO, IRQ 19
[    0.171748] NET: Registered protocol family 2
[    0.171987] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.172350] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.172578] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.172713] TCP: Hash tables configured (established 8192 bind 8192)
[    0.172729] TCP reno registered
[    0.172747] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.172779] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.173059] NET: Registered protocol family 1
[    0.173388] RPC: Registered named UNIX socket transport module.
[    0.173405] RPC: Registered udp transport module.
[    0.173418] RPC: Registered tcp transport module.
[    0.173430] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.173726] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.187678] VFS: Disk quotas dquot_6.5.2
[    0.187763] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.188451] msgmni has been set to 494
[    0.192603] alg: No test for stdrng (krng)
[    0.193437] io scheduler noop registered
[    0.193456] io scheduler deadline registered
[    0.193538] io scheduler cfq registered (default)
[    0.195055] Could not set LED4 to fully on
[    0.197252] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    0.770057] console [ttyO0] enabled
[    0.774502] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[    0.782585] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[    0.790614] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[    0.798615] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[    0.806622] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[    0.814760] kgdb: Registered I/O driver kgdboc.
[    0.819543] kgdb: Waiting for connection from remote gdb...

Entering kdb (current=0xcf81bc00, pid 1) due to Keyboard Entry
kdb>

 

sasamy, Вам огромное спасибо и респект!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sasamy,

Вы не подскажите,

могу я прикрутить DDD для графической отладки ядра и начать отладку с start_kernel()?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

судя по:

"If "kgdb:waiting dor connection from remote gdb" isn't early enough for you, you're going to have to try something other than kgdb. Think about this: kgdb is a service provided by the kernel. You can't debug the kernel "from the beginning" because the kernel has to perform enough initialization for it to provide the kgdb service."

 

начать отладку со start_kernel() невозможно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sasamy,

Вы не подскажите,

могу я прикрутить DDD для графической отладки ядра и начать отладку с start_kernel()?

 

Сходите сюда

http://elinux.org/Debugging_Portal

 

там много полезной информации. Пошаговая отладка пожалуй самый неэффектиный из всех методов при отладке ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...