Re: How to install RTAI 5.1 on Debian?
Guo Yunfei <[email protected]> Wed, 14 Feb 2018 16:30:12 +0800
| Newsgroups | gmane.linux.real-time.rtai |
|---|---|
| Message-ID | <CAN_Un=XBJKfZELxsT6-KW4AtrX=1WSYu6DBkpjxohCAqc5208w@mail.gmail.com> |
--===============7056736752624647848== Content-Type: multipart/alternative; boundary="089e082ccab4844d88056527ebca" --089e082ccab4844d88056527ebca Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Ok. That is very nice. But, I don't know how to cooperate with you on this job. I give you my root password is enough? or I need install some tool programme on my PC? my username is : guoissac root password is : cade Best Regards Guo Yunfei On Wed, Feb 14, 2018 at 4:21 PM, Paolo Mantegazza < [email protected]> wrote: > I've just one suggestion! Give me root access to your machine, letting me > to find some time, now and then, to work on it. > Paolo > > On 02/14/2018 07:44 AM, Guo Yunfei wrote: > > Dear Paolo: > > > I install the RTAI 5.1 as the follow process: > > First, > I intstall RTAI 4.1 successful without the math function kernel support. > its latency test is good. > My envieronment is Debian 8.9.0 , kernel 3.10.32, RTAI 4.1. > > Then, for the RTAI 5.1 installation, > I still using kernel 3.10.32 patch file in RTAI 5.1 package > I "make oldconfig" from above RTAI 4.1 environment. I just choose the sam= e > kernel version for it has running good with my RTAI 4.1 > it is same kernel version ,so not much difference, but still has some > message pop out like below: > > //------------------------------------ > root@debian:/media/guoissac/13GDATA/linux-3.10.32-5.1# make oldconfig > HOSTCC scripts/basic/fixdep > HOSTCC scripts/kconfig/conf.o > SHIPPED scripts/kconfig/zconf.tab.c > SHIPPED scripts/kconfig/zconf.lex.c > SHIPPED scripts/kconfig/zconf.hash.c > HOSTCC scripts/kconfig/zconf.tab.o > In file included from scripts/kconfig/zconf.tab.c:2503:0: > scripts/kconfig/menu.c: In function =E2=80=98get_symbol_str=E2=80=99: > scripts/kconfig/menu.c:567:18: warning: =E2=80=98jump=E2=80=99 may be use= d uninitialized > in this function [-Wmaybe-uninitialized] > jump->offset =3D r->len - 1; > ^ > scripts/kconfig/menu.c:528:19: note: =E2=80=98jump=E2=80=99 was declared = here > struct jump_key *jump; > ^ > HOSTLD scripts/kconfig/conf > scripts/kconfig/conf --oldconfig Kconfig > # > # using defaults found in /boot/config-3.10.32-rt-4.1 > # > * > * Restart config... > * > * > * Processor type and features > * > DMA memory allocation support (ZONE_DMA) [Y/n/?] y > Symmetric multi-processing support (SMP) [Y/n/?] y > Enable MPS table (X86_MPPARSE) [Y/n/?] y > Support for big SMP systems with more than 8 CPUs (X86_BIGSMP) [Y/n/?] y > Support for extended (non-PC) x86 platforms (X86_EXTENDED_PLATFORM) > [N/y/?] n > Goldfish (Virtual Platform) (X86_GOLDFISH) [N/y/?] n > Eurobraille/Iris poweroff module (X86_32_IRIS) [N/m/y/?] n > Single-depth WCHAN output (SCHED_OMIT_FRAME_POINTER) [Y/n/?] y > * > * Linux guest support > * > Linux guest support (HYPERVISOR_GUEST) [Y/n/?] y > Memtest (MEMTEST) [Y/n/?] y > Processor family > 1. 486 (M486) > 2. 586/K5/5x86/6x86/6x86MX (M586) > 3. Pentium-Classic (M586TSC) > 4. Pentium-MMX (M586MMX) > 5. Pentium-Pro (M686) > 6. Pentium-II/Celeron(pre-Coppermine) (MPENTIUMII) > 7. Pentium-III/Celeron(Coppermine)/Pentium-III Xeon (MPENTIUMIII) > 8. Pentium M (MPENTIUMM) > 9. Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon (MPENTIUM4) > 10. K6/K6-II/K6-III (MK6) > 11. Athlon/Duron/K7 (MK7) > 12. Opteron/Athlon64/Hammer/K8 (MK8) > 13. Crusoe (MCRUSOE) > 14. Efficeon (MEFFICEON) > 15. Winchip-C6 (MWINCHIPC6) > 16. Winchip-2/Winchip-2A/Winchip-3 (MWINCHIP3D) > 17. AMD Elan (MELAN) > 18. GeodeGX1 (MGEODEGX1) > 19. Geode GX/LX (MGEODE_LX) > 20. CyrixIII/VIA-C3 (MCYRIXIII) > 21. VIA C3-2 (Nehemiah) (MVIAC3_2) > 22. VIA C7 (MVIAC7) > 23. Core 2/newer Xeon (MCORE2) > > 24. Intel Atom (MATOM) > choice[1-24]: 24 > Generic x86 support (X86_GENERIC) [Y/n/?] y > * > * Supported processor vendors > * > Supported processor vendors (PROCESSOR_SELECT) [N/y/?] n > HPET Timer Support (HPET_TIMER) [Y/n/?] y > Enable DMI scanning (DMI) [Y/n/?] y > Maximum number of CPUs (NR_CPUS) [4] 4 > SMT (Hyperthreading) scheduler support (SCHED_SMT) [N/y/?] n > Multi-core scheduler support (SCHED_MC) [Y/n/?] y > Preemption Model > 1. No Forced Preemption (Server) (PREEMPT_NONE) > > 2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY) > 3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT) > choice[1-3]: 2 > Interrupt pipeline (IPIPE) [Y/n/?] y > I-pipe legacy interface (IPIPE_LEGACY) [Y/n/?] y > Reroute for broken boot IRQs (X86_REROUTE_FOR_BROKEN_BOOT_IRQS) [Y/n/?] y > Machine Check / overheating reporting (X86_MCE) [Y/n/?] y > Intel MCE features (X86_MCE_INTEL) [Y/n/?] y > AMD MCE features (X86_MCE_AMD) [Y/n/?] y > Support for old Pentium 5 / WinChip machine checks (X86_ANCIENT_MCE) > [N/y/?] n > Machine check injector support (X86_MCE_INJECT) [M/n/y/?] m > Enable VM86 support (VM86) [Y/n/?] y > Toshiba Laptop support (TOSHIBA) [M/n/y/?] m > Dell laptop support (I8K) [M/n/y/?] m > Enable X86 board specific fixups for reboot (X86_REBOOTFIXUPS) [Y/n/?] y > CPU microcode loading support (MICROCODE) [Y/n/m/?] y > Intel microcode loading support (MICROCODE_INTEL) [Y/n/?] y > AMD microcode loading support (MICROCODE_AMD) [N/y/?] n > Early load microcode (MICROCODE_INTEL_EARLY) [Y/n/?] y > /dev/cpu/*/msr - Model-specific register support (X86_MSR) [M/n/y/?] m > /dev/cpu/*/cpuid - CPU information support (X86_CPUID) [M/n/y/?] m > High Memory Support > 1. off (NOHIGHMEM) > 2. 4GB (HIGHMEM4G) > > 3. 64GB (HIGHMEM64G) > choice[1-3]: 3 > Memory split > > 1. 3G/1G user/kernel split (VMSPLIT_3G) > 2. 2G/2G user/kernel split (VMSPLIT_2G) > 3. 1G/3G user/kernel split (VMSPLIT_1G) > choice[1-3?]: 1 > PAE (Physical Address Extension) Support (X86_PAE) [Y/?] y > Numa Memory Allocation and Scheduler Support (NUMA) [N/y/?] n > Memory model > > 1. Flat Memory (FLATMEM_MANUAL) > 2. Sparse Memory (SPARSEMEM_MANUAL) > choice[1-2]: 1 > Allow for balloon memory compaction/migration (BALLOON_COMPACTION) [Y/n/?= ] > y > Allow for memory compaction (COMPACTION) [Y/n/?] y > Page migration (MIGRATION) [Y/?] y > Enable bounce buffers (BOUNCE) [Y/n/?] y > Enable KSM for page merging (KSM) [Y/n/?] y > Low address space to protect from user allocation (DEFAULT_MMAP_MIN_ADDR) > [65536] 65536 > Enable recovery from hardware memory errors (MEMORY_FAILURE) [Y/n/?] y > HWPoison pages injector (HWPOISON_INJECT) [M/n/y] m > Transparent Hugepage Support (TRANSPARENT_HUGEPAGE) [N/y/?] (NEW) > Cross Memory Support (CROSS_MEMORY_ATTACH) [Y/n/?] y > Enable cleancache driver to cache clean pages if tmem is present > (CLEANCACHE) [N/y/?] n > Enable frontswap to cache swap pages if tmem is present (FRONTSWAP) > [Y/n/?] y > Allocate 3rd-level pagetables from highmem (HIGHPTE) [Y/n/?] y > Check for low memory corruption (X86_CHECK_BIOS_CORRUPTION) [N/y/?] n > Amount of low memory, in kilobytes, to reserve for the BIOS > (X86_RESERVE_LOW) [64] 64 > Math emulation (MATH_EMULATION) [N/y/?] n > MTRR (Memory Type Range Register) support (MTRR) [Y/n/?] y > MTRR cleanup support (MTRR_SANITIZER) [Y/n/?] y > MTRR cleanup enable value (0-1) (MTRR_SANITIZER_ENABLE_DEFAULT) [0] 0 > MTRR cleanup spare reg num (0-7) (MTRR_SANITIZER_SPARE_REG_NR_DEFAULT= ) > [1] 1 > x86 PAT support (X86_PAT) [Y/n/?] y > x86 architectural random number generator (ARCH_RANDOM) [Y/n/?] y > Supervisor Mode Access Prevention (X86_SMAP) [Y/n/?] y > Enable seccomp to safely compute untrusted bytecode (SECCOMP) [Y/n/?] y > Enable -fstack-protector buffer overflow detection (CC_STACKPROTECTOR) > [Y/n/?] y > Timer frequency > 1. 100 HZ (HZ_100) > > 2. 250 HZ (HZ_250) > 3. 300 HZ (HZ_300) > 4. 1000 HZ (HZ_1000) > choice[1-4?]: 2 > kexec system call (KEXEC) [Y/n/?] y > kernel crash dumps (CRASH_DUMP) [Y/n/?] y > kexec jump (KEXEC_JUMP) [N/y/?] n > Physical address where the kernel is loaded (PHYSICAL_START) [0x1000000] > 0x1000000 > Build a relocatable kernel (RELOCATABLE) [Y/n/?] y > Alignment value to which kernel should be aligned (PHYSICAL_ALIGN) > [0x1000000] 0x1000000 > Support for hot-pluggable CPUs (HOTPLUG_CPU) [Y/?] y > Set default setting of cpu0_hotpluggable (BOOTPARAM_HOTPLUG_CPU0) > [N/y/?] n > Debug CPU0 hotplug (DEBUG_HOTPLUG_CPU0) [N/y/?] n > Compat VDSO support (COMPAT_VDSO) [N/y/?] n > Built-in kernel command line (CMDLINE_BOOL) [N/y/?] n > # > # configuration written to .config > # > //------------------------------------- > > I think this might because of the difference between two patch files, > although both of the two patch file for a same version kernel. > I give it all the default option. > Then I disable the I-pipe-legacy interface support with the "make > menuconfig" > The kernel-3.10.32-rtai-5.1 was updated successful too. > > But, > when I make the RTAI 5.1, below compiling error pop out: > > //---------------------------------------------------- > > Making all in calibration > make[5]: Entering directory '/media/guoissac/13GDATA/rtai- > 5.1/base/arch/x86/calibration' > make[6]: Entering directory '/media/guoissac/13GDATA/rtai- > 5.1/base/sched/liblxrt' > make[6]: warning: jobserver unavailable: using -j1. Add '+' to parent > make rule. > make[6]: Entering directory '/media/guoissac/13GDATA/linux-3.10.32-5.1' > make[6]: 'liblxrt.la' is up to date. > make[6]: Leaving directory '/media/guoissac/13GDATA/rtai- > 5.1/base/sched/liblxrt' > /bin/bash ../../../../libtool --tag=3DCC --mode=3Dlink cc -o calib= rate > calibrate-calibrate.o ../../../sched/liblxrt/liblxrt.la -lpthread > > *** Warning: Linking the executable calibrate against the loadable module > *** liblxrt.so is not portable! > libtool: link: cc -o .libs/calibrate calibrate-calibrate.o > ../../../sched/liblxrt/.libs/liblxrt.so -lpthread > CC [M] /media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibration/ > smi-module.o > /media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibration/smi-module.c: > In function =E2=80=98check_smi_count=E2=80=99: > /media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibration/smi-module.c:2= 80:4: > error: implicit declaration of function =E2=80=98rdmsrl_safe_on_cpu=E2=80= =99 > [-Werror=3Dimplicit-function-declaration] > ret =3D rdmsrl_safe_on_cpu(cpuid, MSR_SMI_COUNT, &q); > ^ > In file included from include/linux/bitops.h:22:0, > from include/linux/kernel.h:10, > from /media/guoissac/13GDATA/rtai-5 > .1/base/arch/x86/calibration/smi-module.c:26: > /media/guoissac/13GDATA/linux-3.10.32-5.1/arch/x86/include/asm/bitops.h:3= 21:8: > warning: =E2=80=98*((void *)&p+20)=E2=80=99 is used uninitialized in this= function > [-Wuninitialized] > (addr[nr / BITS_PER_LONG])) !=3D 0; > ^ > /media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibration/smi-module.c:2= 74:21: > note: =E2=80=98p=E2=80=99 was declared here > struct cpuinfo_x86 p; > ^ > cc1: some warnings being treated as errors > scripts/Makefile.build:308: recipe for target > '/media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibration/smi-module.o' > failed > make[7]: *** [/media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibration/= smi-module.o] > Error 1 > Makefile:1224: recipe for target '_module_/media/guoissac/13GDA > TA/rtai-5.1/base/arch/x86/calibration' failed > make[6]: *** [_module_/media/guoissac/13GDATA/rtai-5.1/base/arch/x86/cali= bration] > Error 2 > make[6]: Leaving directory '/media/guoissac/13GDATA/linux-3.10.32-5.1' > GNUmakefile:916: recipe for target 'rtai_smi.ko' failed > make[5]: *** [rtai_smi.ko] Error 2 > make[5]: Leaving directory '/media/guoissac/13GDATA/rtai- > 5.1/base/arch/x86/calibration' > GNUmakefile:406: recipe for target 'all-recursive' failed > make[4]: *** [all-recursive] Error 1 > make[4]: Leaving directory '/media/guoissac/13GDATA/rtai- > 5.1/base/arch/x86' > GNUmakefile:428: recipe for target 'all-recursive' failed > make[3]: *** [all-recursive] Error 1 > make[3]: Leaving directory '/media/guoissac/13GDATA/rtai-5.1/base/arch' > GNUmakefile:423: recipe for target 'all-recursive' failed > make[2]: *** [all-recursive] Error 1 > make[2]: Leaving directory '/media/guoissac/13GDATA/rtai-5.1/base' > GNUmakefile:486: recipe for target 'all-recursive' failed > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory '/media/guoissac/13GDATA/rtai-5.1' > GNUmakefile:417: recipe for target 'all' failed > make: *** [all] Error 2 > //----------------------------------------------------------------- > > Any suggestion of solve this problem? > > Many Thanks. > > Best Regards > Guo Yunfei > > > > On Mon, Feb 12, 2018 at 10:47 PM, Paolo Mantegazza < > [email protected]> wrote: > >> I see a lot of confusion in what you write. >> >> There is no difference in installing RTAI on any distribution of choice, >> it is the same for all of them. >> First you have to learn how to make and boot a new kernel, taken form >> kernel.org and associated to any of the patches coming with your RTAI of >> choice. For that read the README in the LINUX kernel, with special care = to >> the options: "make localmodconfig" and "make localyesconfig". >> Once you have a LINUX .config that works, you'll remake the kernel anew, >> applying the related RTAI patch first and using the working .config you >> have. >> >> Paolo >> >> >> >> On 02/12/2018 02:23 PM, Guo Yunfei wrote: >> >> >> Hi. everybody. >> >> I always install RTAI 4.0 and RTAI 4.1 on Debian as below steps and usin= g >> it perfect. >> When I install RTAI 5.1 as same steps. the RTAI 5.1 can be make >> successfully. >> But the system not reponse after I test the latency by that "run " >> command. >> >> Could some one give me a guide of installation of RTAI 5.1 on Debian? >> >> Best Regards >> Guo Yunfei >> >> My steps: >> //------------------------------------------ >> This document describes how to install RTAI 4.0 on a Ubuntu 12.04.4 LTS >> using a 3.8.13 kernel, either 32bit or 64 bit version. >> Prerequisites >> >> Install Ubuntu 12.04.4 using one of the following images: >> >> http://releases.ubuntu.com/precise/ubuntu-12.04.4-desktop-amd64.iso >> >> http://releases.ubuntu.com/precise/ubuntu-12.04.4-desktop-i386.iso >> >> And then follow the installation instructions here: >> https://help.ubuntu.com/community/Installation/ >> Introduction >> >> If the ROOT user is not created yet, log as your usual user, open a >> terminal and type -> >> >> # sudo su - >> # sudo passwd root >> >> Enter the password for the ROOT user. Log out and log in as Root. >> >> Open a terminal and update your package repository source file : >> >> # apt-get update >> >> Some tools are required in order to set up the kernel (You need to be >> connected to Internet) >> >> # apt-get -y install qt3-apps-dev build-essential kernel-package vim cvs >> >> I - Kernel source and RTAI download >> >> # cd /usr/src/ >> >> Get the kernel source from kernel.org >> >> # wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.13.tar.bz2 >> # tar xf linux-3.8.13.tar.bz2 >> >> Get RTAI 4.0 from the RTAI homepage >> >> # wget https://www.rtai.org/userfiles/downloads/RTAI/rtai-4.0.tar.bz2 >> tar xf rtai-4.0.tar.bz2 >> >> II - Kernel Preparation >> >> # cd /usr/src >> # ln -s linux-3.8.13 linux >> # cd linux >> >> Applying patch >> >> If you want first simulate the patch application, use "--dry-run" after >> "-p1". It won't touch any files on your computer, but you can see if you >> get Hunks or not. >> >> # patch -p1 < /usr/src/rtai-4.0/base/arch/x86/patches/hal-linux-3.8.13-x= 86-4.patch >> >> Kernel Configuration >> >> # cd /usr/src/linux >> >> In order to retrieve your current kernel configuration : (If at this >> step, questions are asked give the answer by default) >> >> # make oldconfig >> >> Now we modify the kernel settings the way we need it (NOTE: some >> parameters cannot be disabled with xconfig - better to use menuconfig): >> >> # make xconfig >> >> Set up the kernel settings as follows : >> >> *Processor type and features* >> >> -> Processor family =3D >> *Select yours *-> Maximum number of CPUs (NR_CPUS) =3D *Set your number >> (it's generally "4")* >> -> SMT (Hyperthreading) scheduler support =3D *DISABLE IT* >> >> *Power Management and ACPI options* >> >> CPU idle PM support >> -> Cpu idle Driver for Intel Processors =3D >> *DISABLE IT *-> ACPI (Advanced Configuration and Power Interface) >> Support -> PROCESSOR =3D >> *DISABLE IT *-> APM (Advanced Power Management) BIOS support =3D >> *DISABLE IT *-> CPU Frequency scaling -> CPU Frequency scaling =3D >> *DISABLE IT *CPU idle PM support =3D DISABLE IT >> >> Save and Quit >> >> Note (Sylvain, May 2014): these settings should be verified in the >> .config file, since there have been cases that xconfig does not do it >> correctly. >> *III - Kernel Compilation* >> >> # cd /usr/src/linux >> # make && make modules_install && make install >> >> NOTE: The compilation time might be decreased by passing the flags -jX >> (with X=3Dnumber of CPUs you have on your machine). This has for effect = to >> parallelize the kernel compilation between the CPUs. This will take ~1 h= our. >> Kernel Boot Options >> >> This is very important - it took us (and the guys at the RTAI mailing >> list) ages to find that special config that makes everything work smooth= ly! >> >> You need to add the following option to the kernel at boot time >> >> lapic=3Dnotscdeadline >> >> The best way to do this is in /etc/default/grub in the field >> GRUB_CMDLINE_LINUX_DEFAULT, i.e., >> >> GRUB_CMDLINE_LINUX_DEFAULT=3D"quiet splash lapic=3Dnotscdeadline" >> >> You will also have to change the GRUB_DEFAULT to the number that >> corresponds to the new kernel. >> >> Finally run update-grub and reboot >> >> # update-grub >> # reboot >> >> *IV - RTAI installation* >> >> Now that the system has restarted, make sure you booted on your new >> OpenAir >> <https://twiki.eurecom.fr/twiki/bin/edit/OpenAirInterface/OpenAir?topicp= arent=3DOpenAirInterface.OpenAirKernel357Ubuntu1204x86Setups;nowysiwyg=3D0> >> kernel >> >> # uname -r >> >> Should give you "3.8.13" as result >> >> # cd /usr/src/rtai-4.0 >> # make xconfig >> >> UPDATE the CPUs number according to your configuration and disable >> RTAI_USE_NEWERR and real-time COMEDI support in Add-ons. Enable the >> watchdog, CONFIG_RTAI_WD. >> >> Save and quit. If any error occurs here, solve it and repeat this "make >> xconfig" step until it's OK >> >> # make && make install >> >> Add what follows, to the end of the file ~/.bashrc >> >> export PATH=3D/usr/realtime/bin:$PATH >> export LD_LIBRARY_PATH=3D$LD_LIBRARY_PATH:/usr/realtime/lib >> >> Create a file /etc/ld.so.conf.d/rtai.conf with the content >> >> /usr/realtime/lib >> >> and run "ldconfig"in order to take it into account >> >> We will test the RTAI system via the latency test >> >> # cd /usr/realtime/testsuite/kern/latency >> # ./run >> >> //---------------------------------------------------------- >> ------------------------------- >> >> >> _______________________________________________ >> Rtai mailing [email protected]://mail.rtai.org/cgi-bin/mailman/list= info/rtai >> >> >> >> _______________________________________________ >> Rtai mailing list >> [email protected] >> https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai >> > > > --089e082ccab4844d88056527ebca Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Ok. That is very nice.<div>But, I don't know how to co= operate with you on this job.</div><div>I give you my root password is enou= gh? or I need install some tool programme on my PC?</div><div>my username i= s : guoissac=C2=A0</div><div>root password is : cade</div><div><br></div><d= iv>Best Regards</div><div>Guo Yunfei</div></div><div class=3D"gmail_extra">= <br><div class=3D"gmail_quote">On Wed, Feb 14, 2018 at 4:21 PM, Paolo Mante= gazza <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" t= arget=3D"_blank">[email protected]</a>></span> wrote:<br><block= quote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc= solid;padding-left:1ex"> =20 =20 =20 <div text=3D"#000000" bgcolor=3D"#FFFFFF"><span class=3D""> <div class=3D"m_-2049666392884446017moz-cite-prefix">I've just one = suggestion! Give me root access to your machine, letting me to find some time, now and then, to work on it.<br> Paolo<br> <br> On 02/14/2018 07:44 AM, Guo Yunfei wrote:<br> </div> </span><div><div class=3D"h5"><blockquote type=3D"cite"> =20 <div dir=3D"ltr">Dear Paolo:<br> <br> <div><br> </div> <div>I install the RTAI 5.1 as the follow process:</div> <div><br> </div> <div>First,</div> <div>I intstall RTAI 4.1 successful without the math function kernel support. its latency test is good.</div> <div>My envieronment is Debian 8.9.0 , kernel 3.10.32, RTAI 4.1.</d= iv> <div><br> </div> <div>Then, for the RTAI 5.1 installation,</div> <div>I still using kernel 3.10.32 patch file in RTAI 5.1 package=C2=A0</div> <div>I "make oldconfig" from above RTAI 4.1 environment. = I just choose the same kernel version for it has running good with my RTAI 4.1</div> <div>=C2=A0it is same kernel version ,so not much difference, but still has some message pop out like below:</div> <div><br> </div> <div>//----------------------------<wbr>--------</div> <div> <div><a class=3D"m_-2049666392884446017moz-txt-link-abbreviated" = href=3D"mailto:root@debian:/media/guoissac/13GDATA/linux-3.10.32-5.1#" targ= et=3D"_blank">root@debian:/media/guoissac/<wbr>13GDATA/linux-3.10.32-5.1#</= a> make oldconfig</div> <div>=C2=A0 HOSTCC =C2=A0scripts/basic/fixdep</div> <div>=C2=A0 HOSTCC =C2=A0scripts/kconfig/conf.o</div> <div>=C2=A0 SHIPPED scripts/kconfig/zconf.tab.c</div> <div>=C2=A0 SHIPPED scripts/kconfig/zconf.lex.c</div> <div>=C2=A0 SHIPPED scripts/kconfig/zconf.hash.c</div> <div>=C2=A0 HOSTCC =C2=A0scripts/kconfig/zconf.tab.o</div> <div>In file included from scripts/kconfig/zconf.tab.c:<wbr>2503:= 0:</div> <div>scripts/kconfig/menu.c: In function =E2=80=98get_symbol_str= =E2=80=99:</div> <div>scripts/kconfig/menu.c:567:18: warning: =E2=80=98jump=E2=80= =99 may be used uninitialized in this function [-Wmaybe-uninitialized]</di= v> <div>=C2=A0 =C2=A0 =C2=A0jump->offset =3D r->len - 1;</div> <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 ^</div> <div>scripts/kconfig/menu.c:528:19: note: =E2=80=98jump=E2=80=99 = was declared here</div> <div>=C2=A0 struct jump_key *jump;</div> <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0^</div> <div>=C2=A0 HOSTLD =C2=A0scripts/kconfig/conf</div> <div>scripts/kconfig/conf --oldconfig Kconfig</div> <div>#</div> <div># using defaults found in /boot/config-3.10.32-rt-4.1</div> <div>#</div> <div>*</div> <div>* Restart config...</div> <div>*</div> <div>*</div> <div>* Processor type and features</div> <div>*</div> <div>DMA memory allocation support (ZONE_DMA) [Y/n/?] y</div> <div>Symmetric multi-processing support (SMP) [Y/n/?] y</div> <div>Enable MPS table (X86_MPPARSE) [Y/n/?] y</div> <div>Support for big SMP systems with more than 8 CPUs (X86_BIGSMP) [Y/n/?] y</div> <div>Support for extended (non-PC) x86 platforms (X86_EXTENDED_PLATFORM) [N/y/?] n</div> <div>Goldfish (Virtual Platform) (X86_GOLDFISH) [N/y/?] n</div> <div>Eurobraille/Iris poweroff module (X86_32_IRIS) [N/m/y/?] n</div> <div>Single-depth WCHAN output (SCHED_OMIT_FRAME_POINTER) [Y/n/?] y</div> <div>*</div> <div>* Linux guest support</div> <div>*</div> <div>Linux guest support (HYPERVISOR_GUEST) [Y/n/?] y</div> <div>Memtest (MEMTEST) [Y/n/?] y</div> <div>Processor family</div> <div>=C2=A0 1. 486 (M486)</div> <div>=C2=A0 2. 586/K5/5x86/6x86/6x86MX (M586)</div> <div>=C2=A0 3. Pentium-Classic (M586TSC)</div> <div>=C2=A0 4. Pentium-MMX (M586MMX)</div> <div>=C2=A0 5. Pentium-Pro (M686)</div> <div>=C2=A0 6. Pentium-II/Celeron(pre-<wbr>Coppermine) (MPENTIUMI= I)</div> <div>=C2=A0 7. Pentium-III/Celeron(<wbr>Coppermine)/Pentium-III X= eon (MPENTIUMIII)</div> <div>=C2=A0 8. Pentium M (MPENTIUMM)</div> <div>=C2=A0 9. Pentium-4/Celeron(P4-based)/<wbr>Pentium-4 M/older= Xeon (MPENTIUM4)</div> <div>=C2=A0 10. K6/K6-II/K6-III (MK6)</div> <div>=C2=A0 11. Athlon/Duron/K7 (MK7)</div> <div>=C2=A0 12. Opteron/Athlon64/Hammer/K8 (MK8)</div> <div>=C2=A0 13. Crusoe (MCRUSOE)</div> <div>=C2=A0 14. Efficeon (MEFFICEON)</div> <div>=C2=A0 15. Winchip-C6 (MWINCHIPC6)</div> <div>=C2=A0 16. Winchip-2/Winchip-2A/Winchip-3 (MWINCHIP3D)</div> <div>=C2=A0 17. AMD Elan (MELAN)</div> <div>=C2=A0 18. GeodeGX1 (MGEODEGX1)</div> <div>=C2=A0 19. Geode GX/LX (MGEODE_LX)</div> <div>=C2=A0 20. CyrixIII/VIA-C3 (MCYRIXIII)</div> <div>=C2=A0 21. VIA C3-2 (Nehemiah) (MVIAC3_2)</div> <div>=C2=A0 22. VIA C7 (MVIAC7)</div> <div>=C2=A0 23. Core 2/newer Xeon (MCORE2)</div> <div>> 24. Intel Atom (MATOM)</div> <div>choice[1-24]: 24</div> <div>Generic x86 support (X86_GENERIC) [Y/n/?] y</div> <div>*</div> <div>* Supported processor vendors</div> <div>*</div> <div>Supported processor vendors (PROCESSOR_SELECT) [N/y/?] n</di= v> <div>HPET Timer Support (HPET_TIMER) [Y/n/?] y</div> <div>Enable DMI scanning (DMI) [Y/n/?] y</div> <div>Maximum number of CPUs (NR_CPUS) [4] 4</div> <div>SMT (Hyperthreading) scheduler support (SCHED_SMT) [N/y/?] n</div> <div>Multi-core scheduler support (SCHED_MC) [Y/n/?] y</div> <div>Preemption Model</div> <div>=C2=A0 1. No Forced Preemption (Server) (PREEMPT_NONE)</div> <div>> 2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)</div> <div>=C2=A0 3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT)= </div> <div>choice[1-3]: 2</div> <div>Interrupt pipeline (IPIPE) [Y/n/?] y</div> <div>=C2=A0 I-pipe legacy interface (IPIPE_LEGACY) [Y/n/?] y</div= > <div>Reroute for broken boot IRQs (X86_REROUTE_FOR_BROKEN_BOOT_<wbr>IRQS) [Y/n/?] y</div> <div>Machine Check / overheating reporting (X86_MCE) [Y/n/?] y</d= iv> <div>=C2=A0 Intel MCE features (X86_MCE_INTEL) [Y/n/?] y</div> <div>=C2=A0 AMD MCE features (X86_MCE_AMD) [Y/n/?] y</div> <div>=C2=A0 Support for old Pentium 5 / WinChip machine checks (X86_ANCIENT_MCE) [N/y/?] n</div> <div>Machine check injector support (X86_MCE_INJECT) [M/n/y/?] m</div> <div>Enable VM86 support (VM86) [Y/n/?] y</div> <div>Toshiba Laptop support (TOSHIBA) [M/n/y/?] m</div> <div>Dell laptop support (I8K) [M/n/y/?] m</div> <div>Enable X86 board specific fixups for reboot (X86_REBOOTFIXUPS) [Y/n/?] y</div> <div>CPU microcode loading support (MICROCODE) [Y/n/m/?] y</div> <div>=C2=A0 Intel microcode loading support (MICROCODE_INTEL) [Y/n/?] y</div> <div>=C2=A0 AMD microcode loading support (MICROCODE_AMD) [N/y/?]= n</div> <div>Early load microcode (MICROCODE_INTEL_EARLY) [Y/n/?] y</div> <div>/dev/cpu/*/msr - Model-specific register support (X86_MSR) [M/n/y/?] m</div> <div>/dev/cpu/*/cpuid - CPU information support (X86_CPUID) [M/n/y/?] m</div> <div>High Memory Support</div> <div>=C2=A0 1. off (NOHIGHMEM)</div> <div>=C2=A0 2. 4GB (HIGHMEM4G)</div> <div>> 3. 64GB (HIGHMEM64G)</div> <div>choice[1-3]: 3</div> <div>Memory split</div> <div>> 1. 3G/1G user/kernel split (VMSPLIT_3G)</div> <div>=C2=A0 2. 2G/2G user/kernel split (VMSPLIT_2G)</div> <div>=C2=A0 3. 1G/3G user/kernel split (VMSPLIT_1G)</div> <div>choice[1-3?]: 1</div> <div>PAE (Physical Address Extension) Support (X86_PAE) [Y/?] y</div> <div>Numa Memory Allocation and Scheduler Support (NUMA) [N/y/?] n</div> <div>Memory model</div> <div>> 1. Flat Memory (FLATMEM_MANUAL)</div> <div>=C2=A0 2. Sparse Memory (SPARSEMEM_MANUAL)</div> <div>choice[1-2]: 1</div> <div>Allow for balloon memory compaction/migration (BALLOON_COMPACTION) [Y/n/?] y</div> <div>Allow for memory compaction (COMPACTION) [Y/n/?] y</div> <div>Page migration (MIGRATION) [Y/?] y</div> <div>Enable bounce buffers (BOUNCE) [Y/n/?] y</div> <div>Enable KSM for page merging (KSM) [Y/n/?] y</div> <div>Low address space to protect from user allocation (DEFAULT_MMAP_MIN_ADDR) [65536] 65536</div> <div>Enable recovery from hardware memory errors (MEMORY_FAILURE) [Y/n/?] y</div> <div>=C2=A0 HWPoison pages injector (HWPOISON_INJECT) [M/n/y] m</= div> <div>Transparent Hugepage Support (TRANSPARENT_HUGEPAGE) [N/y/?] (NEW)=C2=A0</div> <div>Cross Memory Support (CROSS_MEMORY_ATTACH) [Y/n/?] y</div> <div>Enable cleancache driver to cache clean pages if tmem is present (CLEANCACHE) [N/y/?] n</div> <div>Enable frontswap to cache swap pages if tmem is present (FRONTSWAP) [Y/n/?] y</div> <div>Allocate 3rd-level pagetables from highmem (HIGHPTE) [Y/n/?] y</div> <div>Check for low memory corruption (X86_CHECK_BIOS_CORRUPTION) [N/y/?] n</div> <div>Amount of low memory, in kilobytes, to reserve for the BIOS (X86_RESERVE_LOW) [64] 64</div> <div>Math emulation (MATH_EMULATION) [N/y/?] n</div> <div>MTRR (Memory Type Range Register) support (MTRR) [Y/n/?] y</div> <div>=C2=A0 MTRR cleanup support (MTRR_SANITIZER) [Y/n/?] y</div> <div>=C2=A0 =C2=A0 MTRR cleanup enable value (0-1) (MTRR_SANITIZER_ENABLE_<wbr>DEFAULT) [0] 0</div> <div>=C2=A0 =C2=A0 MTRR cleanup spare reg num (0-7) (MTRR_SANITIZER_SPARE_REG_NR_<wbr>DEFAULT) [1] 1</div> <div>=C2=A0 x86 PAT support (X86_PAT) [Y/n/?] y</div> <div>x86 architectural random number generator (ARCH_RANDOM) [Y/n/?] y</div> <div>Supervisor Mode Access Prevention (X86_SMAP) [Y/n/?] y</div> <div>Enable seccomp to safely compute untrusted bytecode (SECCOMP) [Y/n/?] y</div> <div>Enable -fstack-protector buffer overflow detection (CC_STACKPROTECTOR) [Y/n/?] y</div> <div>Timer frequency</div> <div>=C2=A0 1. 100 HZ (HZ_100)</div> <div>> 2. 250 HZ (HZ_250)</div> <div>=C2=A0 3. 300 HZ (HZ_300)</div> <div>=C2=A0 4. 1000 HZ (HZ_1000)</div> <div>choice[1-4?]: 2</div> <div>kexec system call (KEXEC) [Y/n/?] y</div> <div>kernel crash dumps (CRASH_DUMP) [Y/n/?] y</div> <div>kexec jump (KEXEC_JUMP) [N/y/?] n</div> <div>Physical address where the kernel is loaded (PHYSICAL_START) [0x1000000] 0x1000000</div> <div>Build a relocatable kernel (RELOCATABLE) [Y/n/?] y</div> <div>Alignment value to which kernel should be aligned (PHYSICAL_ALIGN) [0x1000000] 0x1000000</div> <div>Support for hot-pluggable CPUs (HOTPLUG_CPU) [Y/?] y</div> <div>=C2=A0 Set default setting of cpu0_hotpluggable (BOOTPARAM_HOTPLUG_CPU0) [N/y/?] n</div> <div>=C2=A0 Debug CPU0 hotplug (DEBUG_HOTPLUG_CPU0) [N/y/?] n</di= v> <div>Compat VDSO support (COMPAT_VDSO) [N/y/?] n</div> <div>Built-in kernel command line (CMDLINE_BOOL) [N/y/?] n</div> <div>#</div> <div># configuration written to .config</div> <div>#</div> </div> <div>//----------------------------<wbr>---------</div> <div><br> </div> <div>I think this might because of the difference between two patch files, although both of the two patch file for a same version kernel.</div> <div>I give it all the default option.</div> <div>Then I disable the I-pipe-legacy interface support with the "make menuconfig"</div> <div>The kernel-3.10.32-rtai-5.1 was updated successful too.</div> <div><br> </div> <div>But,</div> <div>when I make the RTAI 5.1, below compiling error pop out:</div> <div><br> </div> <div>//----------------------------<wbr>------------------------</d= iv> <div><br> </div> <div> <div>Making all in calibration</div> <div>make[5]: Entering directory '/media/guoissac/13GDATA/rtai-<wbr>5.1/base/arch/x86/calibr= ation'</div> <div>make[6]: Entering directory '/media/guoissac/13GDATA/rtai-<wbr>5.1/base/sched/liblxrt&#= 39;</div> <div>make[6]: warning: jobserver unavailable: using -j1.=C2=A0 Ad= d '+' to parent make rule.</div> <div>make[6]: Entering directory '/media/guoissac/13GDATA/lin= ux<wbr>-3.10.32-5.1'</div> <div>make[6]: '<a href=3D"http://liblxrt.la" target=3D"_blank= ">liblxrt.la</a>' is up to date.</div> <div>make[6]: Leaving directory '/media/guoissac/13GDATA/rtai= -<wbr>5.1/base/sched/liblxrt'</div> <div>/bin/bash ../../../../libtool =C2=A0--tag=3DCC =C2=A0 --mode= =3Dlink cc =C2=A0 =C2=A0 -o calibrate calibrate-calibrate.o ../../../sched/liblxrt/<a href=3D"http://liblxrt.la" target=3D"= _blank">liblxrt<wbr>.la</a> -lpthread=C2=A0</div> <div><br> </div> <div>*** Warning: Linking the executable calibrate against the loadable module</div> <div>*** liblxrt.so is not portable!</div> <div>libtool: link: cc -o .libs/calibrate calibrate-calibrate.o =C2=A0../../../sched/liblxrt/.libs/<wbr>l= iblxrt.so -lpthread</div> <div>=C2=A0 CC [M] =C2=A0/media/guoissac/13GDATA/rtai-<wbr>5.1/ba= se/arch/x86/calibration/<wbr>smi-module.o</div> <div>/media/guoissac/13GDATA/rtai-5<wbr>.1/base/arch/x86/calibrat= ion/s<wbr>mi-module.c: In function =E2=80=98check_smi_count=E2=80=99:</div> <div>/media/guoissac/13GDATA/rtai-5<wbr>.1/base/arch/x86/calibrat= ion/s<wbr>mi-module.c:280:4: error: implicit declaration of function =E2=80=98rdmsrl_safe_on= _cpu=E2=80=99 [-Werror=3Dimplicit-function-dec<wbr>laration]</div> <div>=C2=A0 =C2=A0 ret =3D rdmsrl_safe_on_cpu(cpuid, MSR_SMI_COUN= T, &q);</div> <div>=C2=A0 =C2=A0 ^</div> <div>In file included from include/linux/bitops.h:22:0,</div> <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0from include/linux/kernel.h:10,</div> <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0from /media/guoissac/13GDATA/rtai-5<wbr>.1/base/arch/x86/calibration/s<w= br>mi-module.c:26:</div> <div>/media/guoissac/13GDATA/linux-<wbr>3.10.32-5.1/arch/x86/incl= ude/a<wbr>sm/bitops.h:321:8: warning: =E2=80=98*((void *)&p+20)=E2=80=99 is used uniniti= alized in this function [-Wuninitialized]</div> <div>=C2=A0 =C2=A0(addr[nr / BITS_PER_LONG])) !=3D 0;</div> <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 ^</div> <div>/media/guoissac/13GDATA/rtai-5<wbr>.1/base/arch/x86/calibrat= ion/s<wbr>mi-module.c:274:21: note: =E2=80=98p=E2=80=99 was declared here</div> <div>=C2=A0 struct cpuinfo_x86 p;</div> <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0^</div> <div>cc1: some warnings being treated as errors</div> <div>scripts/Makefile.build:308: recipe for target '/media/guoissac/13GDATA/rtai-<wbr>5.1/base/arch/x86/calibr= ation/<wbr>smi-module.o' failed</div> <div>make[7]: *** [/media/guoissac/13GDATA/rtai-<wbr>5.1/base/arc= h/x86/calibration/<wbr>smi-module.o] Error 1</div> <div>Makefile:1224: recipe for target '_module_/media/guoissac/13GDA<wbr>TA/rtai-5.1/base/arch/x8= 6/<wbr>calibration' failed</div> <div>make[6]: *** [_module_/media/guoissac/13GDA<wbr>TA/rtai-5.1/= base/arch/x86/<wbr>calibration] Error 2</div> <div>make[6]: Leaving directory '/media/guoissac/13GDATA/linu= x<wbr>-3.10.32-5.1'</div> <div>GNUmakefile:916: recipe for target 'rtai_smi.ko' fai= led</div> <div>make[5]: *** [rtai_smi.ko] Error 2</div> <div>make[5]: Leaving directory '/media/guoissac/13GDATA/rtai= -<wbr>5.1/base/arch/x86/calibration'</div> <div>GNUmakefile:406: recipe for target 'all-recursive' f= ailed</div> <div>make[4]: *** [all-recursive] Error 1</div> <div>make[4]: Leaving directory '/media/guoissac/13GDATA/rtai= -<wbr>5.1/base/arch/x86'</div> <div>GNUmakefile:428: recipe for target 'all-recursive' f= ailed</div> <div>make[3]: *** [all-recursive] Error 1</div> <div>make[3]: Leaving directory '/media/guoissac/13GDATA/rtai= -<wbr>5.1/base/arch'</div> <div>GNUmakefile:423: recipe for target 'all-recursive' f= ailed</div> <div>make[2]: *** [all-recursive] Error 1</div> <div>make[2]: Leaving directory '/media/guoissac/13GDATA/rtai= -<wbr>5.1/base'</div> <div>GNUmakefile:486: recipe for target 'all-recursive' f= ailed</div> <div>make[1]: *** [all-recursive] Error 1</div> <div>make[1]: Leaving directory '/media/guoissac/13GDATA/rtai= -<wbr>5.1'</div> <div>GNUmakefile:417: recipe for target 'all' failed</div= > <div>make: *** [all] Error 2</div> </div> <div>//----------------------------<wbr>---------------------------= ---<wbr>-------</div> <div><br> </div> <div>Any suggestion of solve this problem?</div> <div><br> </div> <div>Many Thanks.</div> <div><br> </div> <div>Best Regards</div> <div>Guo Yunfei</div> <div><br> </div> <div><br> </div> <div class=3D"gmail_extra"><br> <div class=3D"gmail_quote">On Mon, Feb 12, 2018 at 10:47 PM, Paolo Mantegazza <span dir=3D"ltr"><<a href=3D"mailto:paolo.= [email protected]" target=3D"_blank">[email protected]</a>><= /span> wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0= .8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div bgcolor=3D"#FFFFFF"> <div class=3D"m_-2049666392884446017gmail-m_493313430636264= 9551moz-cite-prefix">I see a lot of confusion in what you write. <br> <br> There is no difference in installing RTAI on any distribution of choice, it is the same for all of them.<br> First you have to learn how to make and boot a new kernel, taken form <a href=3D"http://kernel.org" target= =3D"_blank">kernel.org</a> and associated to any of the patches coming with your RTAI of choice. For that read the README in the LINUX kernel, with special care to the options:=C2=A0 "mak= e localmodconfig" and=C2=A0 "make localyesconfig&= quot;.<br> Once you have a LINUX .config that works, you'll remake the kernel anew, applying the related RTAI patch first and using the working .config you have.<span = class=3D"m_-2049666392884446017gmail-"><br> <br> Paolo<br> <br> <br> <br> On 02/12/2018 02:23 PM, Guo Yunfei wrote:<br> </span></div> <blockquote type=3D"cite"> <div> <div class=3D"m_-2049666392884446017gmail-h5"> <div dir=3D"ltr"> <div><span><br> </span></div> <div><span>Hi. everybody.</span></div> <div><span><br> </span></div> <div><span>I always install RTAI 4.0 and RTAI 4.1 on Debian as below steps and using it perfect.</span></div> <div><span>When I install RTAI 5.1 as same steps. =C2=A0the RTAI 5.1 can be make successfully.</span></div> <div><span>But the system not reponse after I test the latency by that "run " comma= nd.</span></div> <div><span><br> </span></div> <div><span>Could some one give me a guide of installation of RTAI 5.1 on Debian?</span></div= > <div><span><br> </span></div> <div><span>Best Regards</span></div> <div><span>Guo Yunfei</span></div> <div><span><br> </span></div> <span> <div>My steps:<span><br> </span></div> <div><span>//----------------------------<wbr>---= -----------</span></div> <div>This document describes how to install RTAI 4.0 on a Ubuntu 12.04.4 LTS using a 3.8.13 kernel, either 32bit or 64 bit version.<br> </div> </span> <h4><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_Prerequisites"></a>Prerequisites</h4> <p>Install Ubuntu 12.04.4 using one of the following images:</p> <p><a href=3D"http://releases.ubuntu.com/precise/ub= untu-12.04.4-desktop-amd64.iso" target=3D"_blank">http://releases.ubuntu.co= m/pre<wbr>cise/ubuntu-12.04.4-desktop-<wbr>amd64.iso</a></p> <p><a href=3D"http://releases.ubuntu.com/precise/ub= untu-12.04.4-desktop-i386.iso" target=3D"_blank">http://releases.ubuntu.com= /pre<wbr>cise/ubuntu-12.04.4-desktop-<wbr>i386.iso</a></p> <p>And then follow the installation instructions here:=C2=A0<a href=3D"https://help.ubuntu.com/com= munity/Installation/" target=3D"_blank">https://help.ubuntu.com/<wbr>commun= ity/Installation/</a></p> <h4><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_Introduction"></a>Introduction</h4> <p>If the ROOT user is not created yet, log as your usual user, open a terminal and type -></p> <pre style=3D"color:rgb(0,0,0)"># sudo su - # sudo passwd root </pre> <p>Enter the password for the ROOT user. Log out and log in as Root.</p> <p>Open a terminal and update your package repository source file :</p> <pre style=3D"color:rgb(0,0,0)"># apt-get update </pre> <p>Some tools are required in order to set up the kernel (You need to be connected to Internet)</p> <pre style=3D"color:rgb(0,0,0)"># apt-get -y instal= l qt3-apps-dev build-essential kernel-package vim cvs </pre> <h4><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_I_Kernel_source_and_RTAI_downloa"></a>I - Kernel source and RTAI download</h4> <pre style=3D"color:rgb(0,0,0)"># cd /usr/src/</pre= > <p>Get the kernel source from <a href=3D"http://ker= nel.org" target=3D"_blank">kernel.org</a></p> <pre style=3D"color:rgb(0,0,0)"># wget <a href=3D"h= ttps://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.13.tar.bz2" target=3D= "_blank">https://www.kernel.org/pub/lin<wbr>ux/kernel/v3.x/linux-3.8.13.<wb= r>tar.bz2</a> # tar xf linux-3.8.13.tar.bz2 </pre> <p>Get RTAI 4.0 from the RTAI homepage</p> <pre style=3D"color:rgb(0,0,0)"># wget <a href=3D"h= ttps://www.rtai.org/userfiles/downloads/RTAI/rtai-4.0.tar.bz2" target=3D"_b= lank">https://www.rtai.org/userfiles<wbr>/downloads/RTAI/rtai-4.0.tar.<wbr>= bz2</a> tar xf rtai-4.0.tar.bz2</pre> <h4><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_II_Kernel_Preparation"></a>II - Kernel Preparation</h4> <pre style=3D"color:rgb(0,0,0)"># cd /usr/src # ln -s linux-3.8.13 linux # cd linux </pre> <h5><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_Applying_patch"></a>Applying patch</h5> <p>If you want first simulate the patch application, use "--dry-run" after &quo= t;-p1". It won't touch any files on your computer, but you can see if you get Hunks or not.</p> <pre style=3D"color:rgb(0,0,0)"># patch -p1 < /u= sr/src/rtai-4.0/base/arch/x8<wbr>6/patches/hal-linux-3.8.13-x86<wbr>-4.patc= h </pre> <h5><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_Kernel_Configuration"></a>Kernel Configuration</h5> <pre style=3D"color:rgb(0,0,0)"># cd /usr/src/linux= </pre> <p>In order to retrieve your current kernel configuration : (If at this step, questions are asked give the answer by default)</p> <pre style=3D"color:rgb(0,0,0)"># make oldconfig</p= re> <p>Now we modify the kernel settings the way we need it (NOTE: some parameters cannot be disabled with xconfig - better to use menuconfig):</p> <pre style=3D"color:rgb(0,0,0)"># make xconfig </pr= e> <p>Set up the kernel settings as follows :</p> <p><strong>Processor type and features</strong></p> <p>-> Processor family =3D=C2=A0<em>Select yours= <br> </em>-> Maximum number of CPUs (NR_CPUS) =3D= =C2=A0<em>Set your number (it's generally "4")<= /em><br> -> SMT (Hyperthreading) scheduler support =3D=C2=A0<em>DISABLE IT</em></p> <p><strong>Power Management and ACPI options</stron= g><span style=3D"background-color:transparent"></span></p> <p>CPU idle PM support<br> <span style=3D"background-color:transparent">->= ; Cpu idle Driver for Intel Processors =3D=C2=A0<= /span><em style=3D"background-color:transparent">DISABLE IT<br> </em><span style=3D"background-color:transparent"= >-> ACPI (Advanced Configuration and Power Interface) Support -> PROCESSOR =3D=C2=A0</s= pan><em style=3D"background-color:transparent">DISABLE IT<br> </em><span style=3D"background-color:transparent"= >-> APM (Advanced Power Management) BIOS support =3D=C2=A0</span><em style=3D"background-color:t= ransparent">DISABLE IT<br> </em><span style=3D"background-color:transparent"= >-> CPU Frequency scaling -> CPU Frequency scaling =3D=C2=A0</span><em style=3D"background= -color:transparent">DISABLE IT<br> </em><span style=3D"background-color:transparent"= >CPU idle PM support =3D DISABLE IT</span></p> <p>Save and Quit</p> <p>Note (Sylvain, May 2014): these settings should be verified in the .config file, since there have been cases that xconfig does not do it correctly.</p> <h4><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_III_Kernel_Compilation"></a><strong>III - Kernel Compilation</strong></h4> <pre style=3D"color:rgb(0,0,0)"># cd /usr/src/linux # make && make modules_install && make install</pre> <p>NOTE: The compilation time might be decreased by passing the flags -jX (with X=3Dnumber of CPUs you have on your machine). This has for effect to parallelize the kernel compilation between the CPUs. This will take ~1 hour.</p> <h5><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_Kernel_Boot_Options"></a>Kernel Boot Options</h5> <p>This is very important - it took us (and the guys at the RTAI mailing list) ages to find that special config that makes everything work smoothly!</p> <p>You need to add the following option to the kernel at boot time</p> <pre style=3D"color:rgb(0,0,0)">lapic=3Dnotscdeadli= ne</pre> <p>The best way to do this is in /etc/default/grub in the field GRUB_CMDLINE_LINUX_DEFAULT, i.e.,</p> <pre style=3D"color:rgb(0,0,0)">GRUB_CMDLINE_LINUX_= DEFAULT=3D"qu<wbr>iet splash lapic=3Dnotscdeadline"</pre> <p>You will also have to change the GRUB_DEFAULT to the number that corresponds to the new kernel.</p> <p>Finally run update-grub and reboot</p> <pre style=3D"color:rgb(0,0,0)"># update-grub # reboot </pre> <h4><a name=3D"m_-2049666392884446017_m_49331343063= 62649551_IV_RTAI_installation"></a><strong>IV - RTAI installation</strong></h4> <p>Now that the system has restarted, make sure you booted on your new=C2=A0<span class=3D"m_-204= 9666392884446017gmail-m_4933134306362649551gmail-twikiNewLink"><a href=3D"h= ttps://twiki.eurecom.fr/twiki/bin/edit/OpenAirInterface/OpenAir?topicparent= =3DOpenAirInterface.OpenAirKernel357Ubuntu1204x86Setups;nowysiwyg=3D0" rel= =3D"nofollow" title=3D"OpenAir (this topic does not yet exist; you can create it)" targe= t=3D"_blank">OpenAir</a></span>=C2=A0kernel</p> <pre style=3D"color:rgb(0,0,0)"># uname -r </pre> <p>Should give you "3.8.13" as result</p> <pre style=3D"color:rgb(0,0,0)"># cd /usr/src/rtai-= 4.0 =20 # make xconfig =20 </pre> <p>UPDATE the CPUs number according to your configuration and disable RTAI_USE_NEWERR and real-time COMEDI support in Add-ons. Enable the watchdog, CONFIG_RTAI_WD.</p> <p>Save and quit. If any error occurs here, solve it and repeat this "make xconfig"= step until it's OK</p> <pre style=3D"color:rgb(0,0,0)"># make && m= ake install </pre> <p>Add what follows, to the end of the file ~/.bashrc</p> <pre style=3D"color:rgb(0,0,0)">export PATH=3D/usr/= realtime/bin:$PATH=20 export LD_LIBRARY_PATH=3D$LD_LIBRARY_PA<wbr>TH:/usr/realtime/lib </pre> <p>Create a file /etc/ld.so.conf.d/rtai.conf with the content</p> <pre style=3D"color:rgb(0,0,0)">/usr/realtime/lib</= pre> <p>and run "ldconfig"in order to take it = into account</p> <p>We will test the RTAI system via the latency test</p> <pre style=3D"color:rgb(0,0,0)"># cd /usr/realtime/= testsuite/kern/l<wbr>atency =20 # ./run </pre> <div>//----------------------------<wbr>-----------= -------------------<wbr>------------------------------<wbr>-</div> </div> <br> <fieldset class=3D"m_-2049666392884446017gmail-m_4933= 134306362649551mimeAttachmentHeader"></fieldset> <br> </div> </div> <span class=3D"m_-2049666392884446017gmail-"> <pre>______________________________<wbr>_______________= __ Rtai mailing list <a class=3D"m_-2049666392884446017gmail-m_4933134306362649551moz-txt-link-a= bbreviated" href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</= a> <a class=3D"m_-2049666392884446017gmail-m_4933134306362649551moz-txt-link-f= reetext" href=3D"https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai" targe= t=3D"_blank">https://mail.rtai.org/cgi-bin/<wbr>mailman/listinfo/rtai</a></= pre> </span></blockquote> <p><br> </p> </div> <br> ______________________________<wbr>_________________<br> Rtai mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank">Rtai@rtai.= org</a><br> <a href=3D"https://mail.rtai.org/cgi-bin/mailman/listinfo/rta= i" rel=3D"noreferrer" target=3D"_blank">https://mail.rtai.org/cgi-bin/<wbr>= mailman/listinfo/rtai</a><br> </blockquote> </div> <br> </div> </div> </blockquote> <p><br> </p> </div></div></div> </blockquote></div><br></div> --089e082ccab4844d88056527ebca-- --===============7056736752624647848== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Rtai mailing list [email protected] https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai --===============7056736752624647848==--