Sanoend 0 21 августа, 2012 Опубликовано 21 августа, 2012 · Жалоба нет в suspend.c он не чего не правил. Заметил полную не состоятельность патча. Патч не чего не добавляет не в /arch/arm/tools/mach-types /arch/arm/Kconfig /arch/arm/Makefile /arch/arm/mm/Kconfig а без этого ИМХО новая платформа просто не добавится. Ну да фиг с ним, я не гордый. Раскидал руками всё что надо. Строчки добавил. В конфиге явно прописал CONFIG_SUSPEND=n CONFIG_SUSPEND_FREEZER=n и т.д. но в той директории в которую я собираю появляется конфиг сформированный через автокоф компилятора и в нем CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y Почему игнорируются опции, которые я подставил не представляю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 21 августа, 2012 Опубликовано 21 августа, 2012 · Жалоба CONFIG_SUSPEND=n Вроде должно быть: # CONFIG_SUSPEND not set Смотрите внимательней, может какме другие настройки включают это. Вообще, я бы поотключал через menuconfig, можно быстро найти необходимые настройки "/". Плюс, будет видно, что оно еще тянет и от чего зависит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба Заметил полную не состоятельность патча. :) /arch/arm/Kconfig /arch/arm/Makefile есть они там патчи ложатся, суспенд отключи через menuconfig Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanoend 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба Idle - файлы /arch/arm/Kconfig /arch/arm/Makefile есть в первом патче но нет во втором. Но не суть. Я решил попробовать собрать ядро с первым патчем. Собрал всё что нужно из переписки, создал файлы патчей. Попробовал пропатсчить ядра 3.0.4 , 3.1.1 , 3.1.2 , 3.2.0 , 3.2.1 всегда один и тот же результат. Ошибка при сборке /home/armkernel/source/patchtest/linux-3.1.1/arch/arm/kernel/entry-armv.S: Assembler messages: /home/armkernel/source/patchtest/linux-3.1.1/arch/arm/kernel/entry-armv.S:211: Error: bad instruction `get_irqnr_preamble r6,lr' /home/armkernel/source/patchtest/linux-3.1.1/arch/arm/kernel/entry-armv.S:211: Error: bad instruction `get_irqnr_and_base r0,r2,r6,lr' /home/armkernel/source/patchtest/linux-3.1.1/arch/arm/kernel/entry-armv.S:408: Error: bad instruction `get_irqnr_preamble r6,lr' /home/armkernel/source/patchtest/linux-3.1.1/arch/arm/kernel/entry-armv.S:408: Error: bad instruction `get_irqnr_and_base r0,r2,r6,lr' make[2]: *** [arch/arm/kernel/entry-armv.o] Error 1 make[1]: *** [arch/arm/kernel] Error 2 make: *** [sub-make] Error 2 Зато разобрался почему ядро игнорировало мои опции конфигурирования. Я таскал свой конфиг с ветки 2.6.31, для третьей ветки в нем многого не хватало. Через автоконф перевел его на третью ветку, а затем руками подправил всё что нужно. Но что делать я ошибками сборки, я пока не представляю. Под ARM VERSATILE ядро успешно собирается. Значит ошибка где-то в mach части под мой камень. Или в конфигурации, например, верно выбран процессор, но не верна целевая платформа. Разбираюсь дальше.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба /arch/arm/Kconfig /arch/arm/Makefile есть в первом патче но нет во втором. так вот же в пятой части: http://lists.infradead.org/pipermail/linux...ber/070011.html всегда один и тот же результат. Ошибка при сборке да, у меня такие же ошибки, но тулчейн специально не ставил, не уверен что подходит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanoend 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба если поменять в конфиге CONFIG_ARCH_VERSATILE=y на CONFIG_ARCH_VERSATILE=n а CONFIG_ARCH_SHARK=y то ошибки получаются другие. Похоже на третьей ветке ядра по мимо процесора надо ещё и целевую платформу выбрать. Какую выбирать для этого проца пока не знаю. Но сейчас попробую покурить сырцы mach части. Может там какую подсказку найду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба Или в конфигурации, например, верно выбран процессор, но не верна целевая платформа. да, что-то не так с выбором архитектуры -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanoend 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба -D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi можно по подробнее про вот эту строку? а то я что-то не понял. Жаль, что к патчу не прилагается defconfig Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба можно по подробнее про вот эту строку? а то я что-то не понял. вообще, а какое там ядро-то? может тот самое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanoend 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба Не понял ядро чего? Процессора, если так , то spmp8000 основан на ARM926, а он в свою очередь имеет V5 architecture Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба Не понял ядро чего? Процессора, если так , то spmp8000 основан на ARM926, а он в свою очередь имеет V5 architecture понятно, значит с ядром порядок в arch/arm/mach-spmp8000/include/mach не хватает макросов (get_irqnr_preamble и прочие) или инклудов откуда их брать это я уже не в курсе - к армоводам Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanoend 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба Idle спасибо вам за помощь. Ну опубликую для истории, куда двинулся дальше. get_irqnr_preamble и т.д. в действительности не хватало в mach части. Я уже писал их для ядра 2.6.31 по этому просто добавил в /mach/include/entry-macro.S строки #include <mach/hardware.h> #include <mach/irqs.h> #include <mach/platform.h> <-----><------>.macro<>disable_fiq <------><------>.endm <------><------>.macro get_irqnr_preamble, base, tmp <------><------>.endm <------><------>.macro arch_ret_to_user, tmp1, tmp2 <------><------>.endm <------><------>.macro<>get_irqnr_and_base, irqnr, irqstat, base, tmp <------><------>.endm и создал там же файл platform.h #ifndef __PLATFORM_H__ #define __PLATFORM_H__ #define>SPMP8K_IO_BASE<><------>0x90000000 #define>SPMP8K_UART0_BASE<----->0x92B04000 #define>SPMP8K_UART0_DATA<----->0x00 #define>SPMP8K_UART0_STAT1<---->0x14<-->// 0x92B04014 #define>SPMP8K_UART0_STAT2<---->0x18<-->// 0x92B04018 #define>SPMP8K_UART0_STAT3<---->0x20<-->// Эта ошибка пропала. Компиляция двинулась чуть дальше и стала появляться ошибка /home/armkernel/source/patchtest/linux-3.2.28/arch/arm/kernel/debug.S: Assembler messages: /home/armkernel/source/patchtest/linux-3.2.28/arch/arm/kernel/debug.S:159: Error: too many positional arguments /home/armkernel/source/patchtest/linux-3.2.28/arch/arm/kernel/debug.S:175: Error: too many positional arguments Ну тут более менее понятно в чем причина, видимо в более старых (или наоборот новых) версиях ядра, передавались два параметра в addruart и именно это и объявленно в /arch/arm/mach-spmp8000/include/mach/debug-macro.S <------>.macro addruart, rp, rv <------>mov \rp, #0x92000000 <------>add<--->\rp, #0x00B00000 <------>add<--->\rp, #0x00004000 <------>orr<--->\rv, \rp, #0xF0000000 <------>.endm #define UART_SHIFT 2 #include <asm/hardware/debug-8250.S> а в /arch/arm/kernel/debug.S вызов идет с тремя параметрами <------><------>addruart_current r3, r1, r2 На данный моммент я решил не вникать, что там такое изменили и решил проблему самым простым и не правильным образом (только для теста) в /arch/arm/mach-spmp8000/include/mach/debug-macro.S <------>.macro addruart, rp, rv, rb и встретил новую ошибку компиляции CC arch/arm/mach-spmp8000/core.o /home/armkernel/source/patchtest/linux-3.2.28/arch/arm/mach-spmp8000/core.c: In function ‘spmp8000_init_irq’: /home/armkernel/source/patchtest/linux-3.2.28/arch/arm/mach-spmp8000/core.c:90:2: error: implicit declaration of function ‘vic_of_init’ а вот такие ошибки всегда ставят меня в полный тупик. неявное объявление функции "vic_of_init" , как его сделать явным? у меня есть подозрение, что функция vic_of_init вызывается, но не где не объявлена. Или объявлена но не инклудится. Ход моих мыслей верный? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба у меня есть подозрение, что функция vic_of_init вызывается, но не где не объявлена. Или объявлена но не инклудится. Ход моих мыслей верный? да, такой функции нигде нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanoend 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба посмотрел в ванили 3.5.х там эта функция есть. Так что похоже патч предназначен для более познего ядра. В ядре 3.2.1 этой функции так же нет. Буду лазить тут http://lxr.free-electrons.com/source/arch/...mmon/vic.c#L407 и искать в какой версии она появилась. Затем попробую скачать и пропатчить эту версию. Посмотрим на что ругаться будет. Сильнее всего угнетает перспектива по новой править конфиг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sanoend 0 22 августа, 2012 Опубликовано 22 августа, 2012 · Жалоба Ядро упорно собирается под арм версализ. Пытаюсь выставить через make ARCH=arm menuconfig и загрузку своего конфига нужный мне процессор в system type -> ARM system type нудный мне проц. А там его нету. Хотя на более раних версиях ядра было SPMP8000 SoC. Думаю как сделать что бы он появился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться