How to turn openSUSE 12.2 into realtime system?

On 11/08/2012 12:06 PM, AugieHenriques wrote:
>
> Hi,
> The “make” worked as normal user.
> I was missing some files.
> The README.SUSE says to do “make”, “make modules_install” followed by
> “make install”.
> However it was suggested to to “make modules” after “make”.
> Which is correct?

I build many kernels every day. In fact, I had 6 kernel builds going at the same
time yesterday. The sequence I gave you earlier is the correct one. A “make”
includes “make modules”. The install part of the make needs to be done as root.

Hi,
I did “make install” as root.
What is then next step?
The instructions say to use lilo, but there is no lilo in my system.
Thank you,
Augie

On 11/08/2012 02:36 PM, AugieHenriques wrote:
>
> Hi,
> I did “make install” as root.
> What is then next step?
> The instructions say to use lilo, but there is no lilo in my system.
> Thank you,

Those instructions must be old. Current systems use grub or grup2.

Did you do the “make install_modules”? If so, the new kernel should be in the
grub/grub2 menu and should be available for booting.

Are you really sure you have the skills necessary to undertake a real-time system?

Hi,

The instructions I was following from the README.SUSE file.

So, I should do the “make module_install”?

How much work are we talking about here to convert the openSUSE kernel to RT?
The RT patches to the openSUSE kernel need a lot of work?
I guess if I get a picture of what is necessary, I can decide.

My background is QNX 4 RT OS, QNX 6 RT OS, C, etc.

Some experience with Linux system…

Thank you,
Augie

On 11/08/2012 03:16 PM, AugieHenriques wrote:
>
> Hi,
>
>
> The instructions I was following from the README.SUSE file.
>
>
> So, I should do the “make module_install”?
>
> How much work are we talking about here to convert the openSUSE kernel
> to RT?
> The RT patches to the openSUSE kernel need a lot of work?
> I guess if I get a picture of what is necessary, I can decide.
>
>
> My background is QNX 4 RT OS, QNX 6 RT OS, C, etc.
>
> Some experience with Linux system…

The reason I asked is that you seemed not to have a good understanding of the
Linus file system and permissions in general.

Rather than trying to modify the openSUSE kernel with the real-time patches, I
suggest that you pull a kernel from the appropriate git repo. To do that,


sudo zypper in git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git
git branch v3.4-rt

I am guessing at the last step based on what is said at
http://kernel.org/pub/linux/kernel/projects/rt/3.4/README. In any case, you
should spend some time familiarizing yourself with git. These steps will get you
a kernel source with the RT patches already installed and it has been tested.
All you need is to copy the .config file from the source you have been using,
modify it for the RT stuff, build, and install. You will also be able to get any
updates with the simple command ‘git pull’.

On 2012-11-08 22:16, AugieHenriques wrote:

> So, I should do the “make module_install”?

We told you that several posts ago, and more than once.

> How much work are we talking about here to convert the openSUSE kernel
> to RT?
> The RT patches to the openSUSE kernel need a lot of work?
> I guess if I get a picture of what is necessary, I can decide.
>
>
> My background is QNX 4 RT OS, QNX 6 RT OS, C, etc.
>
> Some experience with Linux system…

Not enough, IMHO… we explain to you how to do things and you do
differently, skipping important steps we told you about. You do not know
how Linux permissions work, or you would have compiled the kernel many
posts ago without guidance.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” (Minas Tirith))

Hi,
This is an unfair comment.
I’m aware of the how the Linux permissions work.
I was following the directions that come with the source code, which were not correct.
I tried to follow the suggestions made here, even though they conflicted each other.
There was nothing specific in the instructions that indicated that you must make as normal user.
I might be new with the kernel stuff, but I’m not new at this!
I do appreciate the help… :slight_smile:
Thank you,
Augie

Hi,
I attempted to compile the kernel sources and the make fails (from kernel.org).

Version linux-3.6.5, In file:

net/nfc/llcp/llcp.c

local->sockets.lock = __RW_LOCK_UNLOCKED(local->sockets.lock);

local->connecting_sockets.lock = __RW_LOCK_UNLOCKED(local->connecting_sockets.lock);

macro defined in.

include/linux/rwlock_type.h

This seem removed from openSUSE kernel source.

My goal is to have an openSUSE system that supports realtime.

Is it easier to make a openSUSE from the kernel sources with realtime patch?

Or to take openSUSE and apply the realtime patches?

Thank you,

Augie

On 11/09/2012 07:46 AM, AugieHenriques wrote:
>
> Hi,
> I attempted to compile the kernel sources and the make
> fails (from kernel.org).
>
>
>
> Version linux-3.6.5, In file:
>
> net/nfc/llcp/llcp.c
>
> local->sockets.lock = __RW_LOCK_UNLOCKED(local->sockets.lock);
>
> local->connecting_sockets.lock =
> __RW_LOCK_UNLOCKED(local->connecting_sockets.lock);
>
>
>
> macro defined in.
>
>
>
> include/linux/rwlock_type.h
>
>
>
> This seem removed from openSUSE kernel source.
>
>
>
> My goal is to have an openSUSE system that supports realtime.
>
> Is it easier to make a openSUSE from the kernel sources with realtime
> patch?
>
>
>
> Or to take openSUSE and apply the realtime patches?

You can run openSUSE from the kernel.org system without the openSUSE patches. I
do it all the time. In fact, the only time I run the distribution kernel is
during the installation of a new system. Once it boots, I immediately switch to
development kernels. I am running 3.7-rc3 right now because that is the one
needed for the new drivers that I am working on.

Your posting of the “error” message involves too much interpretation!!! Just
post the exact message that the build system output. I have to fix such build
errors all the time, but I cannot make any sense of what you posted.

Once again, you failed to take the suggestions that were offered. If you look
back, I wanted you to use the 3.4 branch of the RT git repo, yet here you are
building a 3.6.5 kernel.

Building a real-time kernel from the appropriate repo will be MUCH easier than
applying patches to the openSUSE sources.

Hi,

I’m not sure if this is related to this topic or not…

I was trying to setup an interrupt handling routine but the /usr/include/linux/irq.h file is missing.
The file is present under /usr/src/linux/arch/x86/irq.h.
What do I need to do to fix this?
Thank you,
Augie

On 06/17/2013 02:56 PM, AugieHenriques wrote:
>
> Hi,
>
> arvidjaar;2502292 Wrote:
>> Just reinstall the package(s):>
> Code:
> --------------------
> > > zypper in -f kernel-source kernel-devel
> --------------------
>>>
>> And I strongly advise you - copy source tree from /usr/src/linux to
>> somewhere else in your home directory and play there. Not in
>> /usr/src/linux.
>
> I’m not sure if this is related to this topic or not…
>
>
> I was trying to setup an interrupt handling routine but the
> /usr/include/linux/irq.h file is missing.
> The file is present under /usr/src/linux/arch/x86/irq.h.
> What do I need to do to fix this?

Almost nothing. The file is /usr/src/linux/include/linux/irq.h. Every
architecture has its own irq peculiarities and the kernel build system will get
the correct special version. In kernel code, you need to “#include
<linux/irq.h>”. You don’t need it from user code.

Hi,
I agree.
My irq.h file is missing. I have no idea how to install it.
Any ideas?
Thank you,
Augie

Hi,
To be clear, this is what I did!

/# zypper in -f kernel-source kernel-devel
Loading repository data...
Reading installed packages...
Forcing installation of 'kernel-devel-3.4.42-2.28.1.noarch' from repository 'openSUSE-12.2-Update'.
Forcing installation of 'kernel-source-3.4.42-2.28.1.noarch' from repository 'openSUSE-12.2-Update'.
Resolving package dependencies...

The following packages are going to be reinstalled:
  kernel-devel kernel-source 

2 packages to reinstall.
Overall download size: 72.2 MiB. No additional space will be used or freed after the operation.
Continue? [y/n/?] (y): y
Retrieving package kernel-devel-3.4.42-2.28.1.noarch                                                  (1/2),   8.1 MiB ( 39.2 MiB unpacked)
Retrieving: kernel-devel-3.4.42-2.28.1.noarch.rpm .......................................................................[done (2.2 MiB/s)]
Retrieving package kernel-source-3.4.42-2.28.1.noarch                                                 (2/2),  64.1 MiB (385.9 MiB unpacked)
Retrieving: kernel-source-3.4.42-2.28.1.noarch.rpm ......................................................................[done (2.7 MiB/s)]
Installing: kernel-devel-3.4.42-2.28.1 ..............................................................................................[done]
Installing: kernel-source-3.4.42-2.28.1 .............................................................................................[done]
/# cd /usr/include


/usr/include# find -name 'ir*.h'
./linux/irqnr.h
./linux/irda.h
/usr/include# 
/usr/include# 
/usr/include# find -name 'interr*.h'
./arch/interrupts_64.h
./arch/interrupts_32.h
./arch/interrupts.h
/usr/include# 


The file is still missing. Any ideas?
Thank you,
Augie

On 06/17/2013 03:56 PM, AugieHenriques wrote:
>
> Hi,
> To be clear, this is what I did!
>
>
> Code:
> --------------------
> /# zypper in -f kernel-source kernel-devel
> Loading repository data…
> Reading installed packages…
> Forcing installation of ‘kernel-devel-3.4.42-2.28.1.noarch’ from repository ‘openSUSE-12.2-Update’.
> Forcing installation of ‘kernel-source-3.4.42-2.28.1.noarch’ from repository ‘openSUSE-12.2-Update’.
> Resolving package dependencies…
>
> The following packages are going to be reinstalled:
> kernel-devel kernel-source
>
> 2 packages to reinstall.
> Overall download size: 72.2 MiB. No additional space will be used or freed after the operation.
> Continue? [y/n/?] (y): y
> Retrieving package kernel-devel-3.4.42-2.28.1.noarch (1/2), 8.1 MiB ( 39.2 MiB unpacked)
> Retrieving: kernel-devel-3.4.42-2.28.1.noarch.rpm …[done (2.2 MiB/s)]
> Retrieving package kernel-source-3.4.42-2.28.1.noarch (2/2), 64.1 MiB (385.9 MiB unpacked)
> Retrieving: kernel-source-3.4.42-2.28.1.noarch.rpm …[done (2.7 MiB/s)]
> Installing: kernel-devel-3.4.42-2.28.1 …[done]
> Installing: kernel-source-3.4.42-2.28.1 …[done]
> /# cd /usr/include
>
>
> /usr/include# find -name ‘ir*.h’
> ./linux/irqnr.h
> ./linux/irda.h
> /usr/include#
> /usr/include#
> /usr/include# find -name ‘interr*.h’
> ./arch/interrupts_64.h
> ./arch/interrupts_32.h
> ./arch/interrupts.h
> /usr/include#
>
>
> --------------------
>
>
> The file is still missing. Any ideas?

/usr/include is for user programs, not the kernel. I read this forum on NNTP,
and I do not have the beginning of the thread so I don’t know what it is you
want to do. If a user program wants irq.h, then it is garbage. Any attempt to
mess with interrupts from user space will result in a segmentation fault. If you
are working with kernel code, then that header is where I told you to look earlier.