Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
Проблемы с ядром.
saa
Добавлено 26.04.2011 20:09
0
Сообщение: 1
saa
0

Пункты: 1475
Регистрация: 06.03.2011
По мотивам этой темы. Пытаюсь подключить кнопки к плате. В файле платы указал следующее:

Код

{
.code = KEY_ENTER,
.gpio = AT91_PIN_PB24,
.active_low = 1,
.desc = "Joystick Press",
},
{
.code = KEY_LEFT,
.gpio = AT91_PIN_PB30,
.active_low = 1,
.desc = "Joystick Left",
},
{
.code = KEY_ENTER,
.gpio = AT91_PIN_PB28,
.active_low = 1,
.desc = "Joystick Right",
},


В menuconfig указал поддержку Atmel Gpio Keyboard и keyboard matrix.

Собираю ядро скриптом make_kernel, который был на виртуальной машине.

Через TFTPBOOT загружаю ядро на плату, и получаю следующее:

Код

-- AT91bootstrap Project 3.0 --
-- SK-MAT91SAM9G45/M10
-- Compiled: Oct 30 2010 12:56:05 --
-I- Setting: MCK = 133MHz
-I- I cache enabled.
-I- Init DDRAM
-I- Init NAND Flash
-I- Nandflash ID is 0x9510DAEC
-I- Nandflash driver initialized
-I- Size of the whole device in bytes : 0x10000000
-I- Size in bytes of one single block of a device : 0x20000
-I- Number of blocks in the entire device : 0x800
-I- Size of the data area of a page in bytes : 0x800
-I- Number of pages in the entire device : 0x40
-I- Bus width : 8
-I- Copy "" (262144 bytes) from NAND 0x00020000 to 0x73f00000
-I- Jump to 0x73f00000


U-Boot 2010.09 (Nov 15 2010 - 13:43:18)

DRAM: 64 MiB
## Unknown FLASH on Bank 1 - Size = 0x00000000 = 0 MB
Flash: 0 Bytes
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Net: macb0
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x80000, size 0x790000
7929856 bytes read: OK
## Booting kernel from Legacy Image at 70200000 ...
Image Name: Linux Kernel Image
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 2053350 Bytes = 2 MiB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... Error: inflate() returned -5
GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover
resetting ...


И так по кругу.

Вот вывод printenv:

Код

U-Boot> printenv
bootcmd=run nand_boot
bootdelay=3
baudrate=115200
tftp_boot=tftpboot 70200000 zlinux; bootm 70200000
system_update=nand erase 80000 790000; tftpboot 70200000 zlinux; nand write 70200000 80000 790000; run nand_boot
nand_boot=nand read 70200000 80000 790000; bootm 70200000
uboot_update= tftpboot 70200000 uboot; nand erase 20000 40000; nand write 70200000 20000 40000; reset
bootstrap_update= tftpboot 70200000 bootstrap; nand erase 0 20000; nand write 70200000 0 20000; reset
clean_env= nand erase 60000 20000
safe_boot=nand read 70200000 900000 700000; bootm 70200000
safe_update=nand erase 900000 700000; tftpboot 70200000 zlinux_safe; nand write 70200000 900000 700000; run safe_boot
all_update=nand erase 80000 F00000; tftpboot 70200000 zlinux; nand write 70200000 80000 790000; tftpboot 70200000 zlinux_safe; nand write 70t
ipaddr=192.168.0.136
netmask=255.255.255.0
ethaddr=00:1f:f2:00:00:00
serverip=192.168.0.2
ethact=macb0
bootargs=console=ttyS0,115200 root=/dev/ram0 rw mem=64M

Environment size: 1021/131067 bytes



Помогите разобраться.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 26.04.2011 22:31 Редактировалось 26.04.2011 22:31 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
## Booting kernel from Legacy Image at 70200000 ...
Image Name: Linux Kernel Image
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 2053350 Bytes = 2 MiB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... Error: inflate() returned -5
GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover
resetting ...

Причины подобного мне не понятны, но иногда я подобное наблюдаю (когда начинаю что то в ядро добавлять/убирать), лечу исключительно "танцами с бубном" - двигаю в верх/вниз адрес образа, например:
Код
tftpboot 70500000 zlinux
bootm 70500000
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 26.04.2011 23:05 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
угу, только что проверил:
если грузить и запускать 70200000, то ошибка распаковки
если 70400000, то все в порядке..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
saa
Добавлено 27.04.2011 11:23 Сообщение: 4
saa
0

Пункты: 1475
Регистрация: 06.03.2011
Теперь появилась другая проблема. Ядро распаковывается, все отлично, но загрузка повисает на строчке "Starting kernel...".

И еще, если в ядре указана поддержка
Код

SK-SIMCOM-PLUG power manadgment driver


то ядро не собирается и выдает вот такие ошибки:
Код

./make_kernel
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC drivers/char/at91_gsm_gps_pwr.o
CC drivers/hid/hid-lg.o
drivers/char/at91_gsm_gps_pwr.c: In function 'at91sam9_gpio_write':
drivers/char/at91_gsm_gps_pwr.c:39: error: 'AT91_PIN_PA25' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:39: error: (Each undeclared identifier is reported only once
drivers/char/at91_gsm_gps_pwr.c:39: error: for each function it appears in.)
drivers/char/at91_gsm_gps_pwr.c:40: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c:44: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c:47: error: 'AT91_PIN_PB29' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:48: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c:52: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c: In function 'at91sam9_gpio_read':
drivers/char/at91_gsm_gps_pwr.c:63: warning: unused variable 'm'
drivers/char/at91_gsm_gps_pwr.c: In function 'at91sam9_gpio_init':
drivers/char/at91_gsm_gps_pwr.c:112: error: implicit declaration of function 'at91_set_GPIO_periph'
drivers/char/at91_gsm_gps_pwr.c:112: error: 'AT91_PIN_PA25' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:113: error: 'AT91_PIN_PB29' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:114: error: implicit declaration of function 'at91_set_gpio_output'
make[2]: *** [drivers/char/at91_gsm_gps_pwr.o] Error 1
make[1]: *** [drivers/char] Error 2
make[1]: *** Waiting for unfinished jobs....


Если же отключить поддержку
Код

SK-SIMCOM-PLUG power manadgment driver

то ядро собирается отлично.

Что здесь можно сделать?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 27.04.2011 13:26 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
я же писал - надо хидер прописать, ищите что-то типа gpio.h или hardware.h. хидеры для семейства лежат в каталоге рядом с файлом борды..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
saa
Добавлено 27.04.2011 18:36 Сообщение: 6
saa
0

Пункты: 1475
Регистрация: 06.03.2011
А что это может быть? Ядро распаковывается, все отлично, но загрузка повисает на строчке
Код
Starting kernel...
Спуститься к концу Подняться к началу
Персональная информация
saa
Добавлено 27.04.2011 19:25 Сообщение: 7
saa
0

Пункты: 1475
Регистрация: 06.03.2011
Цитата
я же писал - надо хидер прописать, ищите что-то типа gpio.h или hardware.h. хидеры для семейства лежат в каталоге рядом с файлом борды..


Их вот сюда прописать?

Код

at91_gsm_gps_pwr.c
Спуститься к концу Подняться к началу
Персональная информация
saa
Добавлено 27.04.2011 20:23 Сообщение: 8
saa
0

Пункты: 1475
Регистрация: 06.03.2011
Добавил в

Код
at91_gsm_gps_pwr.c


следующее:

Код

#include <mach/hardware.h>
#include <mach/board.h>
#include <mach/gpio.h>
#include <mach/at91sam9_smc.h>
#include <mach/at91_shdwc.h>


И все равно. ошибки при сборке:

Код

./make_kernel
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC drivers/char/at91_gsm_gps_pwr.o
drivers/char/at91_gsm_gps_pwr.c:16:24: error: mach/board.h: No such file or directory
drivers/char/at91_gsm_gps_pwr.c:18:31: error: mach/at91sam9_smc.h: No such file or directory
drivers/char/at91_gsm_gps_pwr.c:19:29: error: mach/at91_shdwc.h: No such file or directory
drivers/char/at91_gsm_gps_pwr.c: In function 'at91sam9_gpio_write':
drivers/char/at91_gsm_gps_pwr.c:43: error: 'AT91_PIN_PA25' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:43: error: (Each undeclared identifier is reported only once
drivers/char/at91_gsm_gps_pwr.c:43: error: for each function it appears in.)
drivers/char/at91_gsm_gps_pwr.c:44: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c:48: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c:51: error: 'AT91_PIN_PB29' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:52: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c:56: warning: too many arguments for format
drivers/char/at91_gsm_gps_pwr.c: In function 'at91sam9_gpio_read':
drivers/char/at91_gsm_gps_pwr.c:67: warning: unused variable 'm'
drivers/char/at91_gsm_gps_pwr.c: In function 'at91sam9_gpio_init':
drivers/char/at91_gsm_gps_pwr.c:116: error: implicit declaration of function 'at91_set_GPIO_periph'
drivers/char/at91_gsm_gps_pwr.c:116: error: 'AT91_PIN_PA25' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:117: error: 'AT91_PIN_PB29' undeclared (first use in this function)
drivers/char/at91_gsm_gps_pwr.c:118: error: implicit declaration of function 'at91_set_gpio_output'
make[2]: *** [drivers/char/at91_gsm_gps_pwr.o] Error 1
make[1]: *** [drivers/char] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....

Спуститься к концу Подняться к началу
Персональная информация
saa
Добавлено 27.04.2011 21:09 Сообщение: 9
saa
0

Пункты: 1475
Регистрация: 06.03.2011
Надо мне внимательнее читать. что пишет gcc
Спуститься к концу Подняться к началу
Персональная информация
saa
Добавлено 27.04.2011 22:12 Сообщение: 10
saa
0

Пункты: 1475
Регистрация: 06.03.2011
Все таки не понимаю, что-то не получается ему правильно указать хидеры, пробовал по другому, такие же ошибки:

Код

drivers/char/at91_gsm_gps_pwr.c:15:54: error: arch/arm/mach-at91/include/mach/hardware.h: No such file or directory
drivers/char/at91_gsm_gps_pwr.c:16:51: error: arch/arm/mach-at91/include/mach/board.h: No such file or directory
drivers/char/at91_gsm_gps_pwr.c:17:50: error: arch/arm/mach-at91/include/mach/gpio.h: No such file or directory

Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux