Re: How to install RTAI 5.1 on Debian?
Guo Yunfei <[email protected]> Wed, 14 Feb 2018 14:44:13 +0800
| Newsgroups | gmane.linux.real-time.rtai |
|---|---|
| Message-ID | <CAN_Un=W7bMndbTfMRmE7qSM9A2uX1cuaNt5NXre==gSxoXMd7w@mail.gmail.com> |
--===============2765211172958557903==
Content-Type: multipart/alternative; boundary="001a11437bbe86e88405652670d9"
--001a11437bbe86e88405652670d9
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
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 same
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 used =
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 he=
re
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 calibra=
te
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:280=
: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:321=
:8:
warning: =E2=80=98*((void *)&p+20)=E2=80=99 is used uninitialized in this f=
unction
[-Wuninitialized]
(addr[nr / BITS_PER_LONG])) !=3D 0;
^
/media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibration/smi-module.c:274=
: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/sm=
i-module.o]
Error 1
Makefile:1224: recipe for target '_module_/media/guoissac/
13GDATA/rtai-5.1/base/arch/x86/calibration' failed
make[6]: *** [_module_/media/guoissac/13GDATA/rtai-5.1/base/arch/x86/calibr=
ation]
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 t=
o
> 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 using
> 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 " comman=
d.
>
> 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-x8=
6-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 .confi=
g
> 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 t=
o
> parallelize the kernel compilation between the CPUs. This will take ~1 ho=
ur.
> 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 smoothl=
y!
>
> 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?topicpa=
rent=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/listi=
nfo/rtai
>
>
>
> _______________________________________________
> Rtai mailing list
> [email protected]
> https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai
>
--001a11437bbe86e88405652670d9
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<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 ints=
tall RTAI 4.1 successful without the math function kernel support. its late=
ncy test is good.</div><div>My envieronment is Debian 8.9.0 , kernel 3.10.3=
2, RTAI 4.1.</div><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 st=
ill has some message pop out like below:</div><div><br></div><div>//-------=
-----------------------------</div><div><div>root@debian:/media/guoissac/13=
GDATA/linux-3.10.32-5.1# make oldconfig</div><div>=C2=A0 HOSTCC =C2=A0scrip=
ts/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 scr=
ipts/kconfig/zconf.lex.c</div><div>=C2=A0 SHIPPED scripts/kconfig/zconf.has=
h.c</div><div>=C2=A0 HOSTCC =C2=A0scripts/kconfig/zconf.tab.o</div><div>In =
file included from scripts/kconfig/zconf.tab.c:2503:0:</div><div>scripts/kc=
onfig/menu.c: In function =E2=80=98get_symbol_str=E2=80=99:</div><div>scrip=
ts/kconfig/menu.c:567:18: warning: =E2=80=98jump=E2=80=99 may be used unini=
tialized in this function [-Wmaybe-uninitialized]</div><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:5=
28:19: note: =E2=80=98jump=E2=80=99 was declared here</div><div>=C2=A0 stru=
ct 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/con=
f</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>* Proces=
sor 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>Singl=
e-depth WCHAN output (SCHED_OMIT_FRAME_POINTER) [Y/n/?] y</div><div>*</div>=
<div>* Linux guest support</div><div>*</div><div>Linux guest support (HYPER=
VISOR_GUEST) [Y/n/?] y</div><div>Memtest (MEMTEST) [Y/n/?] y</div><div>Proc=
essor 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)</di=
v><div>=C2=A0 6. Pentium-II/Celeron(pre-Coppermine) (MPENTIUMII)</div><div>=
=C2=A0 7. Pentium-III/Celeron(Coppermine)/Pentium-III Xeon (MPENTIUMIII)</d=
iv><div>=C2=A0 8. Pentium M (MPENTIUMM)</div><div>=C2=A0 9. Pentium-4/Celer=
on(P4-based)/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 (MWINCHIP3=
D)</div><div>=C2=A0 17. AMD Elan (MELAN)</div><div>=C2=A0 18. GeodeGX1 (MGE=
ODEGX1)</div><div>=C2=A0 19. Geode GX/LX (MGEODE_LX)</div><div>=C2=A0 20. C=
yrixIII/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 processo=
r vendors (PROCESSOR_SELECT) [N/y/?] n</div><div>HPET Timer Support (HPET_T=
IMER) [Y/n/?] y</div><div>Enable DMI scanning (DMI) [Y/n/?] y</div><div>Max=
imum number of CPUs (NR_CPUS) [4] 4</div><div>SMT (Hyperthreading) schedule=
r support (SCHED_SMT) [N/y/?] n</div><div>Multi-core scheduler support (SCH=
ED_MC) [Y/n/?] y</div><div>Preemption Model</div><div>=C2=A0 1. No Forced P=
reemption (Server) (PREEMPT_NONE)</div><div>> 2. Voluntary Kernel Preemp=
tion (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_IRQS) [Y/n/?] y</div><div>Machine Check / overheating reporting=
(X86_MCE) [Y/n/?] y</div><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 Lap=
top 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_REBOOTFIX=
UPS) [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><d=
iv>=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 s=
plit (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</di=
v><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 (BO=
UNCE) [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_AD=
DR) [65536] 65536</div><div>Enable recovery from hardware memory errors (ME=
MORY_FAILURE) [Y/n/?] y</div><div>=C2=A0 HWPoison pages injector (HWPOISON_=
INJECT) [M/n/y] m</div><div>Transparent Hugepage Support (TRANSPARENT_HUGEP=
AGE) [N/y/?] (NEW)=C2=A0</div><div>Cross Memory Support (CROSS_MEMORY_ATTAC=
H) [Y/n/?] y</div><div>Enable cleancache driver to cache clean pages if tme=
m is present (CLEANCACHE) [N/y/?] n</div><div>Enable frontswap to cache swa=
p pages if tmem is present (FRONTSWAP) [Y/n/?] y</div><div>Allocate 3rd-lev=
el pagetables from highmem (HIGHPTE) [Y/n/?] y</div><div>Check for low memo=
ry 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</d=
iv><div>Math emulation (MATH_EMULATION) [N/y/?] n</div><div>MTRR (Memory Ty=
pe Range Register) support (MTRR) [Y/n/?] y</div><div>=C2=A0 MTRR cleanup s=
upport (MTRR_SANITIZER) [Y/n/?] y</div><div>=C2=A0 =C2=A0 MTRR cleanup enab=
le value (0-1) (MTRR_SANITIZER_ENABLE_DEFAULT) [0] 0</div><div>=C2=A0 =C2=
=A0 MTRR cleanup spare reg num (0-7) (MTRR_SANITIZER_SPARE_REG_NR_DEFAULT) =
[1] 1</div><div>=C2=A0 x86 PAT support (X86_PAT) [Y/n/?] y</div><div>x86 ar=
chitectural random number generator (ARCH_RANDOM) [Y/n/?] y</div><div>Super=
visor 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</d=
iv><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 (KE=
XEC) [Y/n/?] y</div><div>kernel crash dumps (CRASH_DUMP) [Y/n/?] y</div><di=
v>kexec jump (KEXEC_JUMP) [N/y/?] n</div><div>Physical address where the ke=
rnel is loaded (PHYSICAL_START) [0x1000000] 0x1000000</div><div>Build a rel=
ocatable kernel (RELOCATABLE) [Y/n/?] y</div><div>Alignment value to which =
kernel should be aligned (PHYSICAL_ALIGN) [0x1000000] 0x1000000</div><div>S=
upport for hot-pluggable CPUs (HOTPLUG_CPU) [Y/?] y</div><div>=C2=A0 Set de=
fault setting of cpu0_hotpluggable (BOOTPARAM_HOTPLUG_CPU0) [N/y/?] n</div>=
<div>=C2=A0 Debug CPU0 hotplug (DEBUG_HOTPLUG_CPU0) [N/y/?] n</div><div>Com=
pat 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>//---------------------------------=
----</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 ver=
sion kernel.</div><div>I give it all the default option.</div><div>Then I d=
isable the I-pipe-legacy interface support with the "make menuconfig&q=
uot;</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 compili=
ng error pop out:</div><div><br></div><div>//----------------------------<w=
br>------------------------</div><div><br></div><div><div>Making all in cal=
ibration</div><div>make[5]: Entering directory '/media/guoissac/13GDATA=
/rtai-<wbr>5.1/base/arch/x86/calibration'</div><div>make[6]: Entering d=
irectory '/media/guoissac/13GDATA/rtai-<wbr>5.1/base/sched/liblxrt'=
</div><div>make[6]: warning: jobserver unavailable: using -j1.=C2=A0 Add &#=
39;+' to parent make rule.</div><div>make[6]: Entering directory '/=
media/guoissac/13GDATA/<wbr>linux-3.10.32-5.1'</div><div>make[6]: '=
<a href=3D"http://liblxrt.la" target=3D"_blank">liblxrt.la</a>' is up t=
o date.</div><div>make[6]: Leaving directory '/media/guoissac/13GDATA/r=
tai-<wbr>5.1/base/sched/liblxrt'</div><div>/bin/bash ../../../../libtoo=
l =C2=A0--tag=3DCC =C2=A0 --mode=3Dlink cc =C2=A0 =C2=A0 -o calibrate calib=
rate-calibrate.o ../../../sched/liblxrt/<a href=3D"http://liblxrt.la" targe=
t=3D"_blank">liblxrt<wbr>.la</a> -lpthread=C2=A0</div><div><br></div><div>*=
** Warning: Linking the executable calibrate against the loadable module</d=
iv><div>*** liblxrt.so is not portable!</div><div>libtool: link: cc -o .lib=
s/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/r=
tai-<wbr>5.1/base/arch/x86/calibration/<wbr>smi-module.o</div><div>/media/g=
uoissac/13GDATA/rtai-<wbr>5.1/base/arch/x86/calibration/<wbr>smi-module.c: =
In function =E2=80=98check_smi_count=E2=80=99:</div><div>/media/guoissac/13=
GDATA/rtai-<wbr>5.1/base/arch/x86/calibration/<wbr>smi-module.c:280:4: erro=
r: implicit declaration of function =E2=80=98rdmsrl_safe_on_cpu=E2=80=99 [-=
Werror=3Dimplicit-function-<wbr>declaration]</div><div>=C2=A0 =C2=A0 ret =
=3D rdmsrl_safe_on_cpu(cpuid, MSR_SMI_COUNT, &q);</div><div>=C2=A0 =C2=
=A0 ^</div><div>In file included from include/linux/bitops.h:22:0,</div><di=
v>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0from includ=
e/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-<wbr>5.1/base/arch/x8=
6/calibration/<wbr>smi-module.c:26:</div><div>/media/guoissac/13GDATA/linux=
-<wbr>3.10.32-5.1/arch/x86/include/<wbr>asm/bitops.h:321:8: warning: =E2=80=
=98*((void *)&p+20)=E2=80=99 is used uninitialized in this function [-W=
uninitialized]</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/rt=
ai-<wbr>5.1/base/arch/x86/calibration/<wbr>smi-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/calibration/<wbr>smi-module.o' failed</div>=
<div>make[7]: *** [/media/guoissac/13GDATA/rtai-<wbr>5.1/base/arch/x86/cali=
bration/<wbr>smi-module.o] Error 1</div><div>Makefile:1224: recipe for targ=
et '_module_/media/guoissac/<wbr>13GDATA/rtai-5.1/base/arch/<wbr>x86/ca=
libration' failed</div><div>make[6]: *** [_module_/media/guoissac/<wbr>=
13GDATA/rtai-5.1/base/arch/<wbr>x86/calibration] Error 2</div><div>make[6]:=
Leaving directory '/media/guoissac/13GDATA/<wbr>linux-3.10.32-5.1'=
</div><div>GNUmakefile:916: recipe for target 'rtai_smi.ko' failed<=
/div><div>make[5]: *** [rtai_smi.ko] Error 2</div><div>make[5]: Leaving dir=
ectory '/media/guoissac/13GDATA/rtai-<wbr>5.1/base/arch/x86/calibration=
'</div><div>GNUmakefile:406: recipe for target 'all-recursive' =
failed</div><div>make[4]: *** [all-recursive] Error 1</div><div>make[4]: Le=
aving directory '/media/guoissac/13GDATA/rtai-<wbr>5.1/base/arch/x86=
9;</div><div>GNUmakefile:428: recipe for target 'all-recursive' fai=
led</div><div>make[3]: *** [all-recursive] Error 1</div><div>make[3]: Leavi=
ng directory '/media/guoissac/13GDATA/rtai-<wbr>5.1/base/arch'</div=
><div>GNUmakefile:423: recipe for target 'all-recursive' failed</di=
v><div>make[2]: *** [all-recursive] Error 1</div><div>make[2]: Leaving dire=
ctory '/media/guoissac/13GDATA/rtai-<wbr>5.1/base'</div><div>GNUmak=
efile:486: recipe for target 'all-recursive' failed</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></d=
iv><div>//----------------------------<wbr>------------------------------<w=
br>-------</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, Pa=
olo Mantegazza <span dir=3D"ltr"><<a href=3D"mailto:paolo.mantegazza@pol=
imi.it" target=3D"_blank">[email protected]</a>></span> wrote:<=
br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex">
=20
=20
=20
<div bgcolor=3D"#FFFFFF">
<div class=3D"gmail-m_4933134306362649551moz-cite-prefix">I see a lot o=
f 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> a=
nd 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 "make localmodconfig&quo=
t; and=C2=A0
"make localyesconfig".<br>
Once you have a LINUX .config that works, you'll remake the kerne=
l
anew, applying the related RTAI patch first and using the working
.config you have.<span class=3D"gmail-"><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"gmail-h5">
=20
<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 " command.</spa=
n></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>--------------</spa=
n></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_4933134306362649551_Prerequisites"></a>Prerequisit=
es</h4>
<p>Install Ubuntu 12.04.4 using one
of the following images:</p>
<p><a href=3D"http://releases.ubuntu.com/precise/ubuntu-12.04.4-des=
ktop-amd64.iso" target=3D"_blank">http://releases.ubuntu.com/<wbr>precise/u=
buntu-12.04.4-<wbr>desktop-amd64.iso</a></p>
<p><a href=3D"http://releases.ubuntu.com/precise/ubuntu-12.04.4-des=
ktop-i386.iso" target=3D"_blank">http://releases.ubuntu.com/<wbr>precise/ub=
untu-12.04.4-<wbr>desktop-i386.iso</a></p>
<p>And then follow the installation
instructions here:=C2=A0<a href=3D"https://help.ubuntu.com/commun=
ity/Installation/" target=3D"_blank">https://help.ubuntu.com/<wbr>community=
/Installation/</a></p>
<h4><a name=3D"m_4933134306362649551_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 install qt3-apps-dev b=
uild-essential kernel-package vim cvs
</pre>
<h4><a name=3D"m_4933134306362649551_I_Kernel_source_and_RTAI_downl=
oa"></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://kernel.org" target=
=3D"_blank">kernel.org</a></p>
<pre style=3D"color:rgb(0,0,0)"># wget <a href=3D"https://www.kerne=
l.org/pub/linux/kernel/v3.x/linux-3.8.13.tar.bz2" target=3D"_blank">https:/=
/www.kernel.org/pub/<wbr>linux/kernel/v3.x/linux-3.8.<wbr>13.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"https://www.rtai.=
org/userfiles/downloads/RTAI/rtai-4.0.tar.bz2" target=3D"_blank">https://ww=
w.rtai.org/<wbr>userfiles/downloads/RTAI/rtai-<wbr>4.0.tar.bz2</a>
tar xf rtai-4.0.tar.bz2</pre>
<h4><a name=3D"m_4933134306362649551_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_4933134306362649551_Applying_patch"></a>Applying
patch</h5>
<p>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.</p>
<pre style=3D"color:rgb(0,0,0)"># patch -p1 < /usr/src/rtai-4.0/=
base/arch/<wbr>x86/patches/hal-linux-3.8.13-<wbr>x86-4.patch
</pre>
<h5><a name=3D"m_4933134306362649551_Kernel_Configuration"></a>Kern=
el 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</pre>
<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 </pre>
<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</strong><span style=3D"background-color:transparen=
t"></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"backgr=
ound-color:transparent">DISABLE IT<br>
</em><span style=3D"background-color:transparent">-> ACPI
(Advanced Configuration and Power Interface) Support ->
PROCESSOR =3D=C2=A0</span><em style=3D"background-color:transpa=
rent">DISABLE
IT<br>
</em><span style=3D"background-color:transparent">-> APM
(Advanced Power Management) BIOS support =3D=C2=A0</span><em st=
yle=3D"background-color:transparent">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_4933134306362649551_III_Kernel_Compilation"></a><s=
trong>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_4933134306362649551_Kernel_Boot_Options"></a>Kerne=
l 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=3Dnotscdeadline</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"=
<wbr>quiet 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_4933134306362649551_IV_RTAI_installation"></a><str=
ong>IV - RTAI installation</strong></h4>
<p>Now that the system has
restarted, make sure you booted on your new=C2=A0<span class=3D"g=
mail-m_4933134306362649551gmail-twikiNewLink"><a href=3D"https://twiki.eure=
com.fr/twiki/bin/edit/OpenAirInterface/OpenAir?topicparent=3DOpenAirInterfa=
ce.OpenAirKernel357Ubuntu1204x86Setups;nowysiwyg=3D0" rel=3D"nofollow" titl=
e=3D"OpenAir (this topic does not yet
exist; you can create it)" target=3D"_blank">OpenAir</a></spa=
n>=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" st=
ep
until it's OK</p>
<pre style=3D"color:rgb(0,0,0)"># make && make install </pr=
e>
<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:$PA=
TH=20
export LD_LIBRARY_PATH=3D$LD_LIBRARY_<wbr>PATH:/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/<=
wbr>latency =20
# ./run </pre>
<div>//----------------------------<wbr>---------------------------=
---<wbr>------------------------------<wbr>-</div>
</div>
<br>
<fieldset class=3D"gmail-m_4933134306362649551mimeAttachmentHeader"><=
/fieldset>
<br>
</div></div><span class=3D"gmail-"><pre>_____________________________=
_<wbr>_________________
Rtai mailing list
<a class=3D"gmail-m_4933134306362649551moz-txt-link-abbreviated" href=3D"ma=
ilto:[email protected]" target=3D"_blank">[email protected]</a>
<a class=3D"gmail-m_4933134306362649551moz-txt-link-freetext" href=3D"https=
://mail.rtai.org/cgi-bin/mailman/listinfo/rtai" target=3D"_blank">https://m=
ail.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]">[email protected]</a><br>
<a href=3D"https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai" rel=3D"nore=
ferrer" target=3D"_blank">https://mail.rtai.org/cgi-bin/<wbr>mailman/listin=
fo/rtai</a><br></blockquote></div><br></div></div>
--001a11437bbe86e88405652670d9--
--===============2765211172958557903==
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
--===============2765211172958557903==--