Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
rt-патч
Franky
Добавлено 03.02.2012 11:43 Редактировалось 03.02.2012 11:44
0
Сообщение: 1
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
Кто-нибудь работает с rt-патчами под ARM?
Пропатчил ядро 3.2.2 последней версией патча (rt10). В конфиге появилась занятная строка "Fully preemptible kernel(full RT)".
Означает ли это что Linux стал "ОСРВ"?
Ранее ничего подобного не было.
После того как выставил это опцию, ядро перестало грузить рутовую с MMC.
пишет, (видимо Debug MMC):
atmel_serial: atmel_startup - Can't get irq

Посему есть вопросы:
что можно сделать?
нужно ли ставить промежуточные rt-патчи?
как-то можно напрямую связаться с разработчиками патча?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.02.2012 12:07 Редактировалось 03.02.2012 12:07 Сообщение: 2
sasamy
4.70

Пункты: 76990
Регистрация: 14.08.2009
О последней стабильной ветке посмотрите тут
https://www.osadl.org/Latest-Stable-Realtime.latest-stable-realtime-linux.0.html

а вообще - сначала определитесь, что вы хотите от rt-linux ибо махать gpio с высокой точностью например все равно не получится, совсем другой формат ОС, а многое из ветки -rt уже в маинстриме
https://www.osadl.org/Realtime-Linux.projects-realtime-linux.0.html
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 04.02.2012 08:33 Редактировалось 04.02.2012 08:34 Сообщение: 3
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
что то непонятно:
"Latest Stable" Realtime Linux
Kernel
www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.7.tar.bz2

а как же Linux 3.2.2???

У меня под линуксом на ARM9 планируется нечто вроде ПЛК(PLC) запустить.
при том что кроме логических функции нужен ещё веб серер и ftp-сервер.
Может тогда в сторону RTAI посмотреть?

to Sasamy:
а вы для чего rt-патч ставили?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.02.2012 12:44 Редактировалось 04.02.2012 12:50 Сообщение: 4
sasamy
4.70

Пункты: 76990
Регистрация: 14.08.2009
Цитата

а как же Linux 3.2.2???


Это ванильное ядро - основная ветка, -rt развивается параллельно поэтому стабильные версии не совпадают.

Цитата

У меня под линуксом на ARM9 планируется нечто вроде ПЛК(PLC) запустить.
при том что кроме логических функции нужен ещё веб серер и ftp-сервер.
Может тогда в сторону RTAI посмотреть?


Нужно тестировать готовую систему (собрать ядро с -rt) - другого способа проверить нет. Пошаговые инструкции
https://www.osadl.org/Latest-Stable-Quick-RT-Preempt-kerne.realtime-kernel-installation.0.html
Как использовать
https://www.osadl.org/Realtime-Preempt-Kernel.kernel-rt.0.html
https://rt.wiki.kernel.org/articles/r/t/_/RT_PREEMPT_HOWTO_6bc9.html
https://rt.wiki.kernel.org/articles/b/u/i/HOWTO~_Build_an_RT-application_6066.html
как тестировать
https://rt.wiki.kernel.org/articles/c/y/c/Cyclictest.html

Изменить приоритет - утилита chrt (помоему даже в базибоксе есть). Так как в -rt все обработчики прерываний это отдельные потоки ядра - им точно также как обычным процессам можно назначить приоритеты это утилитой. Еще момент - помоему uclibc нельзя использовать с ядром -rt.

По поводу RTAI
Цитата

Хотя подход на основе тонкого ядра имеет свои преимущества (жесткая поддержка реального времени вместе со стандартным ядром Linux), он имеет и недостатки. Обычные задачи и задачи реального времени не зависят друг от друга, это может значительно усложнить отладку. Кроме этого, обычные задачи не обеспечивают полную поддержку платформы Linux (именно по этой причине выполнение ядра носит название тонкого).
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 04.02.2012 15:54 Редактировалось 05.02.2012 14:36 Сообщение: 5
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
кстати про ногодрыг:
http://lwn.net/images/conf/rtlws11/papers/proc/p11.pdf

если я вас правильно понял, то всё патчи что старше 2.6.33.7.2-rt30 можно считать unstable.
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 05.02.2012 16:21 Сообщение: 6
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
после установки последней "стабильной" версии вижу такую картину в логе

mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SDHC card at address b368
mmcblk0: mmc0:b368 NCard 3.73 GiB
mmcblk0:
p1
VFS: Mounted root (ext2 filesystem) on device 179:1.
Freeing init memory: 96K

и всё висит(((
похоже "реалтайм" и mmc не дружат
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.02.2012 17:35 Сообщение: 7
sasamy
4.70

Пункты: 76990
Регистрация: 14.08.2009
Для i.mx233 я правил ядро, так что гладко все не всегда бывает. Лучше сделайте корневую в initramfs а mmc монтируйте потом - а так у вас даже консоли нет чтобы какую-то диагностику сделать.
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 05.02.2012 19:49 Редактировалось 05.02.2012 23:16 Сообщение: 8
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
Цитата
Для i.mx233 я правил ядро, так что гладко все не всегда бывает. Лучше сделайте корневую в initramfs а mmc монтируйте потом - а так у вас даже консоли нет чтобы какую-то диагностику сделать.


Да, наверное так и придётся сделать, но, что я заметил:

взял ядро 2.6.33.7 накатил патч 2.6.33.7.2-rt30, в конфиге отлкючил вытеснение ядра и вообще всё что связано с реалтайм.
ПРоблема осталась, а консоль выдаёт дебаг сообщения (настрол в конфиге вывод):
Код

mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SDHC card at address b368
mmcblk0: mmc0:b368 NCard 3.73 GiB
mmcblk0:
p1
VFS: Mounted root (ext2 filesystem) on device 179:1.
Freeing init memory: 96K
RCU detected stall on CPU 0(t=1000 jiffies)
RCU detected stall on CPU 0(t=2000 jiffies)
.
.
.

и так далее...
странно, ядро 3.2.4 цепляет рутовую нормально (при отключении реалтайма).
Вот и last stable version...)
Хотя кривость своих рук не отрицаю)
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.03.2012 08:45 Редактировалось 13.03.2012 08:59 Сообщение: 9
sasamy
4.70

Пункты: 76990
Регистрация: 14.08.2009
Цитата

atmel_serial: atmel_startup - Can't get irq
Посему есть вопросы:
что можно сделать?


Посмотрел на linux 3.2.9 - та же картина, связано с тем что у атмел системный таймер (PIT) висит на одном векторе с DBGU и прочими, с mmc проблем нет - у меня корневая на SD. Погуглил - не мы первые столкнулись с этим - на обычном ядре все ок а вот с rt патчем это не прокатывает, выхода 3
1 использовать для консоли другой последовательный порт (DBGU вообще не использовать - отключить в board-файле))
2 переписать системный таймер например на TC
3 переписать драйвер последовательного порта :) и использовать отложенную обработку прерываний (вне контекста irq), в контексте irq только проверять - от DBGU прерывание или нет.

вообще атмеловский AIC хоть и векторный - по дурацки используется, много периферии висит на одном векторе, тот же TC в g45 - на одном прерывании висят все блоки, так что если переписать на TC системный таймер то ни один из них больше прерывания не должен использовать.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 17.03.2012 19:29 Редактировалось 17.03.2012 19:30 Сообщение: 10
sasamy
4.70

Пункты: 76990
Регистрация: 14.08.2009
Цитата

2 переписать системный таймер например на TC


С этим оказалось все намого проще чем я думал - достаточно включить в конфиге поддержку TC cloccksource

http://sasamy.narod.ru/armwork/at91_rt.png

так как у него рейтинг выше чем у системного таймера на PIT то ядро на него переключается автоматически, ничего править не нужно - все работает как часы :)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux