PINE64
Real-time linux kernel - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: PINE A64(+) (https://forum.pine64.org/forumdisplay.php?fid=4)
+--- Forum: Linux on Pine A64(+) (https://forum.pine64.org/forumdisplay.php?fid=6)
+--- Thread: Real-time linux kernel (/showthread.php?tid=394)

Pages: 1 2 3 4 5


RE: Real-time linux kernel - Artyom - 03-08-2016

(03-07-2016, 11:24 AM)umiddelb Wrote: I've re-mediated the rejected hunks and this time the kernel builds and boots up nicely. You can download the the kernel binary tar archive here.

Unpack with:
Code:
curl -sSL https://github.com/umiddelb/z2d/blob/master/kernel/linux-3.10.65-2-pine64-rt69+-p64.tar.xz?raw=true | sudo tar --numeric-owner -C / -xpJf -

You may find the kernel sources here.

OK. VERY GOOD! Thanks. But i don't have Pine64 board now. Waiting my board... If you have Pine64 board you can try run test like here: https://rt.wiki.kernel.org/index.php/Cyclictest

(03-08-2016, 10:18 AM)Artyom Wrote:
(03-07-2016, 11:24 AM)umiddelb Wrote: I've re-mediated the rejected hunks and this time the kernel builds and boots up nicely. You can download the the kernel binary tar archive here.

Unpack with:
Code:
curl -sSL https://github.com/umiddelb/z2d/blob/master/kernel/linux-3.10.65-2-pine64-rt69+-p64.tar.xz?raw=true | sudo tar --numeric-owner -C / -xpJf -

You may find the kernel sources here.

OK. VERY GOOD! Thanks. But i don't have Pine64 board now. Waiting my board... If you have Pine64 board you can try run test like here: https://rt.wiki.kernel.org/index.php/Cyclictest
During the next two days I'll try to look at the configuration file for one of the distributions using kernel Linux real-time. Compare them with the configuration file you used when building of our current kernel. Let's try a little bit to optimize it)))


RE: Real-time linux kernel - Artyom - 03-09-2016

@umiddelb
Hi again Uli!

Try to recompile the kernel with these options:

...
# RCU Subsystem
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
...
# Kernel Features
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_HAVE_PREEMPT_LAZY=y
CONFIG_PREEMPT_LAZY=y
.....
CONFIG_PREEMPT_RT_FULL=y
CONFIG_PREEMPT_COUNT=y
CONFIG_HZ_FIXED=0
CONFIG_HZ_100=y
CONFIG_SCHED_HRTICK=y

# Timers subsystem
CONFIG_HIGH_RES_TIMERS=y


# Debug Lockups and Hangs
CONFIG_TIMER_STATS=y
CONFIG_DEBUG_PREEMPT=y

# RCU Debugging
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y

If the kernel build a successful, try to make the tests.


RE: Real-time linux kernel - umiddelb - 03-10-2016

(03-09-2016, 01:44 AM)Artyom Wrote: @umiddelb
Hi again Uli!

Try to recompile the kernel with these options:

...
# RCU Subsystem
(OK) CONFIG_TREE_PREEMPT_RCU=y
(OK) CONFIG_PREEMPT_RCU=y

...
# Kernel Features
(OK) CONFIG_PREEMPT=y
(OK) CONFIG_PREEMPT_RT_BASE=y
(Not present) CONFIG_HAVE_PREEMPT_LAZY=y
(Not present) CONFIG_PREEMPT_LAZY=y
.....
(Not present) CONFIG_PREEMPT_RT_FULL=y
(OK) CONFIG_PREEMPT_COUNT=y
(ARMv7 only, 3.12+ only)CONFIG_HZ_FIXED=0
(MIPS only) CONFIG_HZ_100=y
(ARMv7 only) CONFIG_SCHED_HRTICK=y

# Timers subsystem
(ARMv7 only) CONFIG_HIGH_RES_TIMERS=y 1

# Debug Lockups and Hangs
(OK) CONFIG_TIMER_STATS=y
(OK) CONFIG_DEBUG_PREEMPT=y

# RCU Debugging
(OK) CONFIG_TREE_PREEMPT_RCU=y
(OK) CONFIG_PREEMPT_RCU=y

If the kernel build a successful, try to make the tests.
Hi Artyom,

the green coloured settings are already enabled, the red coloured settings cannot be enabled due to different reasons:
- they depend on a certain architecture or minimal kernel version
- they depend on additional patches being applied first

Cheers
Uli


RE: Real-time linux kernel - Artyom - 03-10-2016

(03-10-2016, 05:01 AM)umiddelb Wrote:
(03-09-2016, 01:44 AM)Artyom Wrote: @umiddelb
Hi again Uli!

Try to recompile the kernel with these options:

...
# RCU Subsystem
(OK) CONFIG_TREE_PREEMPT_RCU=y
(OK) CONFIG_PREEMPT_RCU=y

...
# Kernel Features
(OK) CONFIG_PREEMPT=y
(OK) CONFIG_PREEMPT_RT_BASE=y
(Not present) CONFIG_HAVE_PREEMPT_LAZY=y
(Not present) CONFIG_PREEMPT_LAZY=y
.....
(Not present) CONFIG_PREEMPT_RT_FULL=y
(OK) CONFIG_PREEMPT_COUNT=y
(ARMv7 only, 3.12+ only)CONFIG_HZ_FIXED=0
(MIPS only) CONFIG_HZ_100=y
(ARMv7 only) CONFIG_SCHED_HRTICK=y

# Timers subsystem
(ARMv7 only) CONFIG_HIGH_RES_TIMERS=y 1

# Debug Lockups and Hangs
(OK) CONFIG_TIMER_STATS=y
(OK) CONFIG_DEBUG_PREEMPT=y

# RCU Debugging
(OK) CONFIG_TREE_PREEMPT_RCU=y
(OK) CONFIG_PREEMPT_RCU=y

If the kernel build a successful, try to make the tests.
Hi Artyom,

the green coloured settings are already enabled, the red coloured settings cannot be enabled due to different reasons:
- they depend on a certain architecture or minimal kernel version
- they depend on additional patches being applied first

Cheers
Uli
You use "make menuconfig" when configuring your kernel? I find some info about (as i undestand minimal kernel configuration):
--------------------------------------------------------------------------------------------
Required parameters for configuring realtime kernel?
Kernel 2.6.x:
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT=y
Kernel 3.x:
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_PREEMPT_RT_FULL=y
Optional parameters for configuring realtime kernel, but they affect realtime performance?
CONFIG_HIGH_RES_TIMERS=y
------------------------------------------------------------------------------------------------------------------
More you can find here: https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#Kernel_3.x:_2

As I undestand CONFIG_PREEMPT_RT_FULL must present in our kernel...

(03-10-2016, 05:24 AM)Artyom Wrote:
(03-10-2016, 05:01 AM)umiddelb Wrote:
(03-09-2016, 01:44 AM)Artyom Wrote: @umiddelb
Hi again Uli!

Try to recompile the kernel with these options:

...
# RCU Subsystem
(OK) CONFIG_TREE_PREEMPT_RCU=y
(OK) CONFIG_PREEMPT_RCU=y

...
# Kernel Features
(OK) CONFIG_PREEMPT=y
(OK) CONFIG_PREEMPT_RT_BASE=y
(Not present) CONFIG_HAVE_PREEMPT_LAZY=y
(Not present) CONFIG_PREEMPT_LAZY=y
.....
(Not present) CONFIG_PREEMPT_RT_FULL=y
(OK) CONFIG_PREEMPT_COUNT=y
(ARMv7 only, 3.12+ only)CONFIG_HZ_FIXED=0
(MIPS only) CONFIG_HZ_100=y
(ARMv7 only) CONFIG_SCHED_HRTICK=y

# Timers subsystem
(ARMv7 only) CONFIG_HIGH_RES_TIMERS=y 1

# Debug Lockups and Hangs
(OK) CONFIG_TIMER_STATS=y
(OK) CONFIG_DEBUG_PREEMPT=y

# RCU Debugging
(OK) CONFIG_TREE_PREEMPT_RCU=y
(OK) CONFIG_PREEMPT_RCU=y

If the kernel build a successful, try to make the tests.
Hi Artyom,

the green coloured settings are already enabled, the red coloured settings cannot be enabled due to different reasons:
- they depend on a certain architecture or minimal kernel version
- they depend on additional patches being applied first

Cheers
Uli
You use "make menuconfig" when configuring your kernel? I find some info about (as i undestand minimal kernel configuration):
--------------------------------------------------------------------------------------------
Required parameters for configuring realtime kernel?
Kernel 2.6.x:
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT=y
Kernel 3.x:
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_PREEMPT_RT_FULL=y
Optional parameters for configuring realtime kernel, but they affect realtime performance?
CONFIG_HIGH_RES_TIMERS=y
------------------------------------------------------------------------------------------------------------------
More you can find here: https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#Kernel_3.x:_2

As I undestand CONFIG_PREEMPT_RT_FULL must present in our kernel...

Uli, try to find this in "menuconfig": Preemption Model --> Fully Preemptible Kernel (RT)


RE: Real-time linux kernel - umiddelb - 03-10-2016

(03-10-2016, 05:24 AM)Artyom Wrote: Uli, try to find this in "menuconfig": Preemption Model --> Fully Preemptible Kernel (RT)

only CONFIG_PREEMPT_RT_BASE is offered at this time (and enabled). You may get in touch with chlorisdroid, he managed to build a RT enabled Linux kernel for the ODROID -C2.


RE: Real-time linux kernel - Artyom - 03-10-2016

(03-10-2016, 06:31 AM)umiddelb Wrote:
(03-10-2016, 05:24 AM)Artyom Wrote: Uli, try to find this in "menuconfig": Preemption Model --> Fully Preemptible Kernel (RT)

only CONFIG_PREEMPT_RT_BASE is offered at this time (and enabled). You may get in touch with chlorisdroid, he managed to build a RT enabled Linux kernel for the ODROID -C2.

Uli, can you post instructions how you reconfigure pine64 rt kernel from github with using menuconfig? And how you compile them...


RE: Real-time linux kernel - umiddelb - 03-10-2016

(03-10-2016, 07:03 AM)Artyom Wrote: Uli, can you post instructions how you reconfigure pine64 rt kernel from github with using menuconfig? And how you compile them...

I've updated the description how to  build a custom kernel on the PINE64 in order to reflect @longsleeps recent changes on U-Boot .

For the RT kernel just take my Github repository instead, so
Code:
git clone --depth 1 --single-branch -b pine64-hacks-1.2 https://github.com/umiddelb/linux-pine64-rt.git
curl -sSL https://github.com/longsleep/build-pine64-image/raw/master/blobs/pine64.dts > linux-pine64/arch/arm64/boot/dts/sun50i-a64-pine64-plus.dts
make sun50iw1p1smp_linux_defconfig
make menuconfig
make clean
make -j 4 Image sun50i-a64-pine64-plus.dtb modules
and so on.


RE: Real-time linux kernel - Artyom - 03-10-2016

(03-10-2016, 02:04 PM)umiddelb Wrote:
(03-10-2016, 07:03 AM)Artyom Wrote: Uli, can you post instructions how you reconfigure pine64 rt kernel from github with using menuconfig? And how you compile them...

I've updated the description how to  build a custom kernel on the PINE64 in order to reflect @longsleeps recent changes on U-Boot .

For the RT kernel just take my Github repository instead, so
Code:
git clone --depth 1 --single-branch -b pine64-hacks-1.2 https://github.com/umiddelb/linux-pine64-rt.git
curl -sSL https://github.com/longsleep/build-pine64-image/raw/master/blobs/pine64.dts > linux-pine64/arch/arm64/boot/dts/sun50i-a64-pine64-plus.dts
make sun50iw1p1smp_linux_defconfig
make menuconfig
make clean
make -j 4 Image sun50i-a64-pine64-plus.dtb modules
and so on.

Yesterday I wrote chloris droid. Waiting for an answer... I also plan to write RT patch developers. Furthermore Now I recompile the kernel Raspberry Pi 2 to integrate ARM Gator. How to deal with him, we will integrate ARM Gator in Pne64 core. 

There did not seem difficult now. You in? )))


RE: Real-time linux kernel - Artyom - 03-12-2016

(03-10-2016, 10:43 PM)Artyom Wrote:
(03-10-2016, 02:04 PM)umiddelb Wrote:
(03-10-2016, 07:03 AM)Artyom Wrote: Uli, can you post instructions how you reconfigure pine64 rt kernel from github with using menuconfig? And how you compile them...

I've updated the description how to  build a custom kernel on the PINE64 in order to reflect @longsleeps recent changes on U-Boot .

For the RT kernel just take my Github repository instead, so
Code:
git clone --depth 1 --single-branch -b pine64-hacks-1.2 https://github.com/umiddelb/linux-pine64-rt.git
curl -sSL https://github.com/longsleep/build-pine64-image/raw/master/blobs/pine64.dts > linux-pine64/arch/arm64/boot/dts/sun50i-a64-pine64-plus.dts
make sun50iw1p1smp_linux_defconfig
make menuconfig
make clean
make -j 4 Image sun50i-a64-pine64-plus.dtb modules
and so on.

Yesterday I wrote chloris droid. Waiting for an answer... I also plan to write RT patch developers. Furthermore Now I recompile the kernel Raspberry Pi 2 to integrate ARM Gator. How to deal with him, we will integrate ARM Gator in Pne64 core. 

There did not seem difficult now. You in? )))

As it turned out, even on Rpi2 ARM DS5 and ARM Gator work to put it mildly is not very good. Simply put Eclipse on Rpi2. 

So I think to abandon the ARM Gator integration into Pine64 kernel.


RE: Real-time linux kernel - Artyom - 03-28-2016

@umiddelb
Hi Uli. Seems I find solution, why FULL_PREEPT_RT didn't work.
Read this (https://patches.linaro.org/patch/47646/), and tell me what you think?