Adivces on Xenomai-3.0.9 support linux-4.19.

孙世龙 sunshilong sunshilong369 at gmail.com
Fri Sep 4 03:26:50 CEST 2020


>> We want to make Xenomai-3.0.9 work on Linux-4.19
>> (as far as I know, the latest version that it supports is Linux-4.14 and
>> Xenomai-3.1 supports Linux-4.19).
>>
>> Is it possible?
>> Could you give me some advice on how to make Xenomai-3.0.9 work on Linux-4.19?

>It's doable with reasonable effort if you do not need RTnet drivers.

Thank you for your reply.
Could you please tell me the reasons why RTnet drivers can't work well
under such a condition?

Thank you for your attention to this matter.

Best regards
Sunshilong

On Mon, Aug 31, 2020 at 5:31 PM Jan Kiszka <jan.kiszka at siemens.com> wrote:
>
> On 31.08.20 11:17, 孙世龙 sunshilong via Xenomai wrote:
> > Hi, list
> >
> > Our project depends on Xenomai-3.0.9. And we can't upgrade it to
> > Xenomai-3.1 indeed.
> >
> > We want to make Xenomai-3.0.9 work on Linux-4.19
> > (as far as I know, the latest version that it supports is Linux-4.14 and
> > Xenomai-3.1 supports Linux-4.19).
> >
> > Is it possible?
> > Could you give me some advice on how to make Xenomai-3.0.9 work on Linux-4.19?
> >
>
> It's doable with reasonable effort if you do not need RTnet drivers.
> Pick these from 3.1 (bottom first)
>
> Replace sigset_to/from_compat with post 4.14 versions
> kernel: cobalt: trace: replace dummy array with field
> kernel: cobalt: forward SRCARCH from the scripts/prepare-kernel.sh
> kernel: cobalt: use printk instead of print_symbol on v4.16 and later
> kernel: cobalt: replace ACCESS_ONCE with READ_ONCE
>
> and additionally patch
>
> diff --git a/kernel/cobalt/thread.c b/kernel/cobalt/thread.c
> index 5bba5bc703..5710c13f1c 100644
> --- a/kernel/cobalt/thread.c
> +++ b/kernel/cobalt/thread.c
> @@ -2121,7 +2121,7 @@ void xnthread_relax(int notify, int reason)
>                 suspension |= XNDBGSTOP;
>         }
>
> -       set_task_state(p, p->state & ~TASK_NOWAKEUP);
> +       set_current_state(p->state & ~TASK_NOWAKEUP);
>         xnthread_run_handler_stack(thread, relax_thread);
>         xnthread_suspend(thread, suspension, XN_INFINITE, XN_RELATIVE, NULL);
>         splnone();
>
> I'm using this in local version as well. If things do not build, I might
> have missed some commit. Report the error then.
>
> Jan
>
> --
> Siemens AG, Corporate Technology, CT RDA IOT SES-DE
> Corporate Competence Center Embedded Linux



More information about the Xenomai mailing list