Real-time linux kernel
#11
(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)))
#12
@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.
#13
(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
#14
(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/Fre...nel_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/Fre...nel_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)
#15
(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.
#16
(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...
#17
(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.
#18
(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? )))
#19
(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.
#20
@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?


Possibly Related Threads…
Thread Author Replies Views Last Post
  NEMS Linux 1.5 Released for A64/A64+, A64-LTS/SOPine, Rock64, RockPro64 (NAGIOS) Baldnerd 4 9,073 03-28-2020, 06:20 PM
Last Post: ty1911
  PineA64+: Audio in 5.0 Kernel puzzles 6 8,773 11-13-2019, 09:41 AM
Last Post: roel
  Howto run Linux with resolution other than 1080p longsleep 28 65,593 06-13-2019, 01:53 AM
Last Post: Nilda
  NEMS Linux for Pine A64 (+) Luke 1 5,019 05-09-2019, 05:42 PM
Last Post: pineadmin
  Pine Board using linux stuck during boot sequence ktaragorn 4 8,043 03-30-2019, 06:48 AM
Last Post: ktaragorn
  Gentoo Linux test image xalius 23 47,863 01-28-2019, 11:05 PM
Last Post: necrose99
  Rockpro64 NFS root mount (kernel 4.20) - ethernet help? tenspd137 0 2,873 12-06-2018, 01:14 AM
Last Post: tenspd137
  NVMe and new kernel bjbb17 0 2,567 09-25-2018, 03:39 PM
Last Post: bjbb17
  DKMS on kernel 3.10.107-pine64 obrienmd 5 8,418 06-21-2018, 05:45 PM
Last Post: evilbunny
  linux distribution hazerty 3 6,001 04-01-2018, 02:48 PM
Last Post: dkryder

Forum Jump:


Users browsing this thread: 2 Guest(s)