On Thu, Jan 01, 2004 at 12:09:49PM +0300, Evgeny Sinelnikov wrote: > Есть готовое решение в плане реализации пакета RTLinux. > Задержка связана с крайней нестабильностью ядра rtlinux c определённым набором > патчей (тех, что изменяют содержимое include/asm-i386/), а также с некоторыми > "опциями" ядра (APM, ACPI, Kernel hacking features). Но даже это не было > главным препятствием. На текущий момент выяснилась причина, весьма странная, > многих нестабильностей на моей машине. Оказалось, что проблема была в выборе > процессора для при сборке ядра. i586 ядра на моём P4 (1.4GHz) падают при > загрузке модулей rtlinux (а именно, rtl.o), хотя ядра, с той же конфигурацией, > но для P4 идут: [ужасы skip] Похоже, где-то что-то портится в памяти. Возможно, причина в том, что где-то происходит переполнение буфера, но при сборке для P4 из-за большего значения CONFIG_X86_L1_CACHE_SHIFT (7, вместо 5 для 586) эти данные попадают в неиспользуемые области для выравнивания, поэтому ошибка остаётся незамеченной. Можно попробовать собрать ядро с CONFIG_DEBUG_SLAB (Debug memory allocations) и посмотреть, что будет - возможно, ошибка при этом будет отловлена ближе к месту её возникновения. > Меня интересует вопрос по поводу размещения модулей и библиотек > rtlinux (для каждого из ядер они свои). > Текущее разделение на пакеты следущее: > 1) стандартное ядро с дополнительным патчем: kernel-feat-rtl-2003.10.28-alt1.src.rpm > 2) модули kernel-rtlinux-2.4.22-rtl-up-3.2-alt1 (может быть стоит kernel-modules-rtlinux-2.4.22-rtl-up-3.2-alt1 ): Вообще-то при нашей системе сборки это будет kernel-modules-rtlinux-rtl-up-3.2-alt1.1 (это если собирать автоматизированно из CVS - в release добавляется номер сборки ядра). Версия ядра там не нужна - при смене ядра придётся увеличить первую часть release. > Name : kernel-rtlinux-2.4.22-rtl-up Relocations: (not relocateable) > Version : 3.2 Vendor: ALT Linux Team > Release : alt1 Build Date: Вск 14 Дек 2003 03:22:29 > Install date: (not installed) Build Host: localhost.localdomain > Group : Система/Ядро и оборудование Source RPM: kernel-rtlinux-2.4.22-rtl-up-3.2-alt1.src.rpm > Size : 2310621 License: GPL > Packager : Evgeny Sinelnikov > URL : http://www.rlinux-gpl.org/ > Summary : Modules for the RTLinux kernel > Description : > This package contains the RTLinux modules that is used to > extension your system with hard real time scheduler. Also it contains > few specific real time modules and libraries like rtl_fifo. > /lib/modules/2.4.22-rtl-up-alt12/misc 272 1071361292 040755 root root 0 0 0 X > /lib/modules/2.4.22-rtl-up-alt12/misc/mbuff.o 48 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o > /lib/modules/2.4.22-rtl-up-alt12/misc/psc.o 46 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o > /lib/modules/2.4.22-rtl-up-alt12/misc/rtl.o 46 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o > /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_fifo.o 51 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o > /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_posixio.o 54 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o > /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_sched.o 52 1071361291 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o > /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_time.o 51 1071361292 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o > /lib/modules/2.4.22-rtl-up-alt12/misc/rtsock.o 49 1071361292 0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o > /usr/rtlinux-2.4.22-rtl-up-alt12/bin 104 1071361324 040755 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtl-config 6329 1071361324 bb47120e4b44f0a08f52f464aa85f3ea 0100755 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtlinux 24 1071361324 0120777 root root 0 0 0 /etc/rc.d/init.d/rtlinux > /usr/rtlinux-2.4.22-rtl-up-alt12/modules 272 1071361292 040755 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o 275582 1071361291 2dd35d3a7d4aced05c2108390f2d0a48 0100644 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o 256796 1071361291 f5fb3bbf5d830069848912dabd939e87 0100644 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o 256338 1071361291 b0fbdbb35c47c6571beaef9ab737539a 0100644 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o 252000 1071361291 1977e83a58716c1cf6c9365f490d08c0 0100644 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o 244268 1071361291 15f84f66fbf75f136906520c3c605b03 0100644 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o 414841 1071361291 65acbd6bdd7f0e906a497fdd772a8993 0100644 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o 240579 1071361291 a7617fa50e2a33f08e0ae3088fbfbeb0 0100644 root root 0 0 0 X > /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o 363888 1071361292 53bc12c12ea03e435e9e4c5f74d6c7ca 0100644 root root 0 0 0 X > > Здесь модули лежат /usr/rtlinux-2.4.22-rtl-up-alt12/modules/, как это сделано > в при стандартной установке. Кроме того этот пакет требует > kernel-rtlinux-common-3.2-alt1, который содержит общие файлы для данной версии > rtlinux,а также скрипты, поправляющие ссылку /usr/rtlinux для текущего ядра, > подобно kheaders-common. Опять это не лезет в FHS :( И обязательно ли класть модули в /usr? Если уж скрипты так хотят их там видеть, почему бы не сделать наоборот - реальные файлы в /lib/modules, а в /usr/... - ссылки на них? > 3) kernel-rtlinux-regression-rtl-up-2.4.22-3.2-alt1 > пакет минимального тестирования (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/regression) > 4) kernel-rtlinux-devel-rtl-up-2.4.22-3.2-alt1 > пакет для разработки (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/{include,lib}) Если эти файлы действительно привязаны к конкретной сборке ядра, вероятно, пакет должен называться как-то вроде kernel-headers-rtlinux-rtl-up (см. пример в kernel-modules-v4l-*, kernel-headers-v4l-*). > Хотелось бы знать замечания тех, кто, может быть, ожидает этот пакет или > использует rtlinux. > Приму во внимание любые предложения.