Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Ядро в панике, SK-MNUC950
ant
Добавлено 07.01.2010 22:21 Редактировалось 07.01.2010 22:27
0
Сообщение: 1
ant
0

Регистрация: 07.01.2010
Здравствуйте.
Купил кит NUC950 с целью ознакомления с линуксом на ARM, но к сожалению небыло времени им заняться...
Сейчас праздники и время появилось. Поставил ядро 2.6.17.14. Записал в NAND Uboot и rootfs с диска от кита. Дальше возник затык - ядро взятое диска запускается и работает, а то, которое я сконфигурировал сам, не хочет...
Поделитесь пожалуйста конфигом для ядра. Взять его из образа vmware для меня проблематично. Или подскажите в чем может быть проблема?
Хотел выложить свой конфиг но не понял что делать с файлом после его загрузки.
Вот что пишет ядро:
TFTP from server 192.168.0.2; our IP address is 192.168.0.136
Filename '950kernel'.
Load address: 0x8000
Loading: #################################################################
######�##########################################################
#################################################################
#################################################################
#################################################################
#################################################################
#########################################
done
T Bytes transferred = 2203072 (219dc0 hex)
OK
100FULL
TFTP from server 192.168.0.2; our IP address is 192.168.0.136
Filename 'rootfs.gz'.
Load address: 0xa00000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#######################################################
done
T Bytes transferred = 1945533 (1dafbd hex)
## Starting application at 0x00008000 ...
Linux version 2.6.17.14 (root@ant) (gcc version 4.2.4 (Debian 4.2.4-6)) #1 PREE0
CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
Machine: NUC950
Memory policy: ECC disabled, Data cache writeback
CPU NUC950 (id 0x02900910 system clock:200MHZ)
CPU0: D VIVT write-back cache
CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
Built 1 zonelists
Kernel command line: root=/dev/ram0 console=ttyS0,115200n8 initrd=0xa00000,4000M
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 29696KB available (1860K code, 776K data, 84K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
********************************************
* You selcet NUC950,Start Init NUC950EVB *
********************************************
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NET: Registered protocol family 2
IP route cache hash table entries: 256 (order: -2, 1024 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 1024 bind 512)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
io scheduler noop registered (default)
NUC900 USB 2.0 Device Driver Initilization Success
NUC900 uart driver has been initialized successfully!
nuc900-uart.0: nuc900_serial0 at MMIO 0xb8000000 (irq = 7) is a NUC900
nuc900-uart.1: nuc900_serial1 at MMIO 0xb8000100 (irq = 8) is a NUC900
nuc900-uart.2: nuc900_serial2 at MMIO 0xb8000200 (irq = 9) is a NUC900
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
loop: loaded (max 8 devices)
NUC900 Ethernet(eth0) driver has been initialized successfully!
The ports of EMC are available in that range.
NUC900 SD driver has been initialized successfully!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 5 [#1]
CPU: 0
PC is at nand_init+0x158/0x210
LR is at __dma_alloc+0x3b0/0x468
pc : [<c00175f8>] lr : [<c00255a4>] Not tainted
sp : c0319f78 ip : 000001ff fp : c0319f9c
r10: c001abc4 r9 : 00000000 r8 : c0319fa0
r7 : 00000001 r6 : 00000001 r5 : 00000000 r4 : 00000000
r3 : c022f518 r2 : 01c80556 r1 : 01c80044 r0 : ffc03000
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment kernel
Control: 5317F Table: 00004000 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc03181a0)
Stack: (0xc0319f78 to 0xc031a000)
9f60: c022f160 0007008c
9f80: 00000001 00000000 c001a6ac c0318000 c0319ff4 c0319fa0 c001d0b8 c00174b0
9fa0: 00000000 c0319fb0 c001de04 c00309b8 00000000 00000000 c001d02c c0036e64
9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9fe0: 00000000 00000000 00000000 c0319ff8 c0036e64 c001d03c bff3ffcc bbf5fde6
Backtrace:
[<c00174a0>] (nand_init+0x0/0x210) from [<c001d0b8>] (init+0x8c/0x270)
r6 = C0318000 r5 = C001A6AC r4 = 00000000
[<c001d02c>] (init+0x0/0x270) from [<c0036e64>] (do_exit+0x0/0x8c4)
Code: e3a01b02 eb00381a e59f50a4 e59f30a4 (e5952000)
<0>Kernel panic - not syncing: Attempted to kill init!
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.01.2010 00:17 Редактировалось 08.01.2010 00:19 Сообщение: 2
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
меня в вашем логе смущает строка загрузки ядра (если конечно форум не покоцал)
Kernel command line: root=/dev/ram0 console=ttyS0,115200n8 initrd=0xa00000,4000M
у меня начальная строчка из поставки
root=/dev/ram0 console=ttyS0,115200n8 initrd=0xa00000,4000000 mem=32M
по моим наблюдениям, ядро не любит когда его "накалывают" с размером памяти и прочими параметрами..
я бы для начала отключил в ядре Nand. Нужен будет конфиг, пришлю или выложу..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
ant
Добавлено 08.01.2010 13:53 Редактировалось 08.01.2010 13:53 Сообщение: 3
ant
0

Регистрация: 07.01.2010
У меня в конфиге таже как и уВас
root=/dev/ram0 console=ttyS0,115200n8 initrd=0xa00000,4000000 mem=32M
А строку
Kernel command line: root=/dev/ram0 console=ttyS0,115200n8 initrd=0xa00000,4000M
выводит само ядро в консоли.

Сейчас пробовал отключать NAND, потом SD, сеть, USB и прочее. Ничего. Отключил все что возможно - результат все тот-же:
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 5 [#1]

Я уже и не уверен что проблема в настройках ядра. Я использую кросс компилятор из репозитроия embedded debian-lenny, а не тот что есть на диске. Может в этом проблема?
Пожалуста дайте свой рабочий конфиг, чтоб убедиться в этом.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.01.2010 14:18 Редактировалось 08.01.2010 14:24 Сообщение: 4
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Kernel command line: root=/dev/ram0 console=ttyS0,115200n8 initrd=0xa00000,4000M
выводит само ядро в консоли.

Странно конечно.. пока мыслей нет..
Попробую файл с конфигом прикрепить

Не забудьте поправить (у меня 64М) и splash можно выкинуть

э-э.. файлик корова языком слизнула.. счас куда-нить выложу..
Скрытый текст
Скрытый текст виден только зарегистрированным пользователям.

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
ant
Добавлено 08.01.2010 15:20 Сообщение: 5
ant
0

Регистрация: 07.01.2010
Изменил в вашем конфиге:
CONFIG_CMDLINE="console=ttyS0,115200n8 rw rootdelay=15 root=/dev/sdb1 mem=64M splash"
на вот это:
CONFIG_CMDLINE="console=ttyS0,115200n8 rw rootdelay=15 root=/dev/sdb1 mem=32M"

make вылетел с ошибкой:
CC arch/arm/mach-nuc900/time.o
AS arch/arm/kernel/debug.o
arch/arm/kernel/debug.S:51:34: error: asm/arch/debug-macro.S: Нет такого файла или каталога
make[1]: *** [arch/arm/kernel/debug.o] Ошибка 1
make: *** [arch/arm/kernel] Ошибка 2
make: *** Ожидание завершения заданий...
CC arch/arm/mach-nuc900/clock.o
CC arch/arm/mach-nuc900/devs.o
CC arch/arm/mach-nuc900/dmac.o
CC arch/arm/mach-nuc900/fmi.o
CC arch/arm/mach-nuc900/nuc900.o
CC arch/arm/mach-nuc900/mach-nuc900.o
LD arch/arm/mach-nuc900/built-in.o

Начал копаться и искать этот debug-macro.S. Оказалось он ищется по этому пути: linux-2.6.17.14/include/asm-arm/arch-nuc900/. Его действительно там нет.
Открыл архив с ядром linux-2.6.17.14.tar.gz там не папки arch-nuc900. Вспомнил про патч для ядра nuc900-kernel-000.patch, начал искать в нем. Но и там этого файла нет!!!
В других архитектурах, например arch-cl7500, он есть.
Вот так, получается что патчи лежащие архиве с BSP и патч лежащий в образе vmware разные?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.01.2010 15:56 Сообщение: 6
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
пардон, забыл сказать - дело в том что этого файла нет в оригинальной поставке, да и в инете я его не нашел. Пришлось самому писать по образу и подобию взяв идею из соседних файлов..
Чуть попозже я его выложу..
Чтобы сборка ядра прошла успешно без него достаточно в конфиге (Kernel Hacking) выключить Low-Level Debug (надеюсь, что не наврал)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.01.2010 16:21 Сообщение: 7
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Вот обещанный файлец (писан/правлен на коленке где-то в командировке).
Кладется в в include/asm/arch/debug-macro.S

Код
/* nuc950/debug-macro.S
*
* Debugging macro include header
*
* Copyright (C) 1994-1999 Russell King
* Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
* Moved from arch/arm/mach-l7200/include/mach/debug-macro.S by Jury093

* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
#include <asm/arch/map.h>

.equ io_virt, 0xb0000000
.equ io_phys, 0xb8000000

.macro addruart,rx
mrc p15, 0, \rx, c1, c0
tst \rx, #1 @ MMU enabled?
moveq \rx, #io_phys @ physical base address
movne \rx, #io_virt @ virtual address
add \rx, \rx, #0x00000000 @ UART0 base
.endm

.macro senduart,rd,rx
str \rd, [\rx, #0x0] @ UARTDR
.endm

.macro waituart,rd,rx
1001: ldr \rd, [\rx, #0x14] @ UART LSR Reg Read
tst \rd, #40 @ if not empty wait
@ tst \rd, #1 << 6 @ if not empty wait
bne 1001b
.endm

.macro busyuart,rd,rx
1002: ldr \rd, [\rx, #0x14] @ UARTFLG
tst \rd, #20 @ UARTFLGUBUSY - 1 when busy
@ tst \rd, #1 << 5 @ UARTFLGUBUSY - 1 when busy
bne 1002b
.endm

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
ant
Добавлено 08.01.2010 20:12 Сообщение: 8
ant
0

Регистрация: 07.01.2010
Чудо свершилось!!! Оно загрузилось. В вашем конфиге убрал поддержку модулей, дисплея, мыши, клавиатуры, синезуба и ирда. В чем была проблема с моей конфигурацией так и не понял, сейчас буду разбираться.
Спасибо за помощь.
P.S с дисплеем что-то не так - компиляция вылетала с ошибкой зависимостей. Но т.к его нету и не нужен, то фиг с ним.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 08.01.2010 20:23 Сообщение: 9
Pavel Ivanchenko
Admin
4.39

Пункты: 91381
Регистрация: 24.03.2009
Пол: Мужчина
А к чему все эти сложности, чем Вас виртуалка не устроила?
Спуститься к концу Подняться к началу
Персональная информация
ant
Добавлено 08.01.2010 23:28 Сообщение: 10
ant
0

Регистрация: 07.01.2010
Сложности в том что у меня нет установленого windows. На компьютере стоит debian и устанавливать vmware не хочется.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux