How to turn openSUSE 12.2 into realtime system?

Hi,

I would like to take the openSUSE 12.2 and reconfigure with…

CONFIG_PREEMPT=y

CONFIG_PREEMPT_RT_FULL=y

CONFIG_HIGH_RES_TIMERS=y

CONFIG_IRQBALANCE=y

I have tried to download the kernels http://kernel.org and compile them.
I followed the instructions, however this fails to compile.

Someone pointed this out:

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO
I’m afraid this will leave me with a system completely different than openSUSE 12.2.

I would like to convert the system I have with realtime characteristics, I don’t need to create a kernel to load on another machine.

Someone pointed this out:
There is an unofficial build of a real-time kernel for openSUSE 12.2 on the open build service. Though if this is for something mission critical you need it for, I would contact the maintainer for information on the package first. software.opensuse.org:

I tried this, however there is no instructions on how to apply this to openSUSE 12.2.

I tried to download an install the openSUSE 12.2 clone kernel for my system, but when I reboot it fails to load.

I’ kind of stuck at the moment trying to make some progress!

Any ideas/suggestions? What is the best way to accomplish this?

Thank you,
Augie

On 2012-11-06 16:36, AugieHenriques wrote:
> I would like to convert the system I have with realtime
> characteristics, I don’t need to create a kernel to load on another
> machine.

If you want to start with the openSUSE kernel, the first step on the
sources is “make cloneconfig”. Then use “make menuconfig”, add a new
name, and do your changes.


Cheers / Saludos,

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

Hi,
There is no Makefile in the /usr/src/linux directory.
I can’t use any of the make options.
Not sure why.
Thank you,
Augie

/usr/src/linux# ls
total 448
drwxr-xr-x  21 root root   4096 Nov  1 13:16 ./
drwxr-xr-x   4 root root   4096 Nov  1 15:13 ../
-rw-r--r--   1 root root   4320 Sep 26 12:05 .mailmap
-rw-r--r--   1 root root  18693 Sep 26 12:05 COPYING
-rw-r--r--   1 root root  94984 Sep 26 12:05 CREDITS
drwxr-xr-x  97 root root  12288 Nov  1 13:16 Documentation/
-rw-r--r--   1 root root 210306 Sep 26 12:05 MAINTAINERS
-rw-r--r--   1 root root  17459 Sep 26 12:05 README
lrwxrwxrwx   1 root root     50 Nov  1 13:16 README.SUSE -> ../../share/doc/packages/kernel-source/README.SUSE
-rw-r--r--   1 root root   3371 Sep 26 12:05 REPORTING-BUGS
drwxr-xr-x  29 root root   4096 Nov  1 13:16 arch/
drwxr-xr-x   3 root root   4096 Nov  1 13:16 block/
drwxr-xr-x   3 root root   4096 Nov  1 13:16 crypto/
drwxr-xr-x 101 root root   4096 Nov  1 13:16 drivers/
drwxr-xr-x  37 root root   4096 Nov  1 13:16 firmware/
drwxr-xr-x  71 root root   4096 Nov  1 13:16 fs/
drwxr-xr-x   2 root root   4096 Nov  1 13:16 init/
drwxr-xr-x   2 root root   4096 Nov  1 13:16 ipc/
drwxr-xr-x  10 root root   4096 Nov  1 13:16 kernel/
drwxr-xr-x   9 root root   4096 Nov  1 13:16 lib/
drwxr-xr-x   2 root root   4096 Nov  1 13:16 mm/
drwxr-xr-x  55 root root   4096 Nov  1 13:16 net/
drwxr-xr-x  11 root root   4096 Nov  1 13:16 samples/
drwxr-xr-x   9 root root   4096 Nov  1 13:16 security/
drwxr-xr-x  22 root root   4096 Nov  1 13:16 sound/
drwxr-xr-x  13 root root   4096 Nov  1 13:16 tools/
drwxr-xr-x   2 root root   4096 Nov  1 13:16 usr/
drwxr-xr-x   3 root root   4096 Nov  1 13:16 virt/
/usr/src/linux# 


Install kernel-devel RPM.

Hi,
How? I used Yast before to get what I had.
I found this (see bellow), but luck.

Thank you,
Augie

/# sudo zypper in -t pattern kernel-devel
Loading repository data...
Reading installed packages...
'kernel-devel' not found in package names. Trying capabilities.
No provider of 'pattern:kernel-devel' found.
Resolving package dependencies...

Nothing to do.
/# 


If you want the kernel development pattern then the name is devel_kernel


su -
zypper in -t pattern devel_kernel


PC: oS 12.2 x86_64 | i7-2600@3.40GHz | 16GB | KDE 4.8.5 | GeForce GT 420
ThinkPad E320: oS 12.2 x86_64 | i3@2.30GHz | 8GB | KDE 4.9.2 | HD 3000
eCAFE 800: oS 11.4 i586 | AMD Geode LX 800@500MHz | 512MB | lamp server

Hi,
Please see bellow…
Same problem still.
There is no Mkefile in the /usr/src/linux folder.
Thank you,
Augie

/usr/src/linux# zypper in -t pattern devel_kernel
Loading repository data...
Reading installed packages...
'pattern:devel_kernel' is already installed.
No update candidate for 'devel_kernel-12.2-5.5.1.i586'. The highest available version is already installed.
Resolving package dependencies...

Nothing to do.


Something is wrong with your system


martinh@ganymed:~> rpm -qf /usr/src/linux/Makefile
kernel-devel-3.4.11-2.16.1.noarch

reinstall forced the kernel-devel package


su -
zypper in -f kernel-devel


PC: oS 12.2 x86_64 | i7-2600@3.40GHz | 16GB | KDE 4.8.5 | GeForce GT 420
ThinkPad E320: oS 12.2 x86_64 | i3@2.30GHz | 8GB | KDE 4.9.2 | HD 3000
eCAFE 800: oS 11.4 i586 | AMD Geode LX 800@500MHz | 512MB | lamp server

Hi,
Still having the same issue.
Please see bellow.
Thank you,

Augie

/usr/src/linux# zypper in -f kernel-devel
Loading repository data...
Reading installed packages...
Forcing installation of 'kernel-devel-3.4.11-2.16.1.noarch' from repository 'openSUSE-12.2-Update'.
Resolving package dependencies...

The following package is going to be reinstalled:
  kernel-devel 

1 package to reinstall.
Overall download size: 8.1 MiB. No additional space will be used or freed after the operation.
Continue? [y/n/?] (y): y
Retrieving package kernel-devel-3.4.11-2.16.1.noarch                                                                                                                          (1/1),   8.1 MiB ( 39.2 MiB unpacked)
Retrieving: kernel-devel-3.4.11-2.16.1.noarch.rpm ...............................................................................................................................................[done (3.7 MiB/s)]
Installing: kernel-devel-3.4.11-2.16.1 ......................................................................................................................................................................[done]
/usr/src/linux# 


On Tue 06 Nov 2012 08:06:02 PM CST, AugieHenriques wrote:

Hi,
Still having the same issue.
Please see bellow.
Thank you,

Augie

Code:

/usr/src/linux# zypper in -f kernel-devel
Loading repository data…
Reading installed packages…
Forcing installation of ‘kernel-devel-3.4.11-2.16.1.noarch’ from
repository ‘openSUSE-12.2-Update’. Resolving package dependencies…

The following package is going to be reinstalled:
kernel-devel

1 package to reinstall.
Overall download size: 8.1 MiB. No additional space will be used or
freed after the operation. Continue? [y/n/?] (y): y
Retrieving package
kernel-devel-3.4.11-2.16.1.noarch
(1/1), 8.1 MiB ( 39.2 MiB unpacked) Retrieving:
kernel-devel-3.4.11-2.16.1.noarch.rpm …[done
(3.7 MiB/s)] Installing:
kernel-devel-3.4.11-2.16.1 …[done] /usr/src/linux#

Hi
I would not compile the kernel as root user, have a look at this thread
and post from user lwfinger;
http://forums.opensuse.org/pre-release-beta/421320-questions-help-regarding-kernel-2-6-31-a.html#post2036276


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.11-2.16-desktop
up 8 days 21:22, 4 users, load average: 0.21, 0.11, 0.07
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

Hi,
I’m able to make cloneconfig, etc.
Now what should I do next?
Thank you,
Augie

Hi,
The make as normal user doesn’t work.

When I did “sudo make xconfig”, didn’t work.

Should I do the install as normal user?

Or make as root?

Thank you,
Augie

On 2012-11-06 21:46, AugieHenriques wrote:
>
> Hi,
> I’m able to make cloneconfig, etc.
> Now what should I do next?

There is a suse readme file you should read. Basically, and from memory,
the steps are:

make cloneconfig
make menuconfig
change the destination name (important)
Add your changes
make
make modules
make modules_install
make install

And different people do it differently.


Cheers / Saludos,

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

Hi
Just download the source tarball from kernel.org (3.4) extract into your working directory, then rebuild as your user…

I would check the config file first, some of the options, do exist and are set to yes, the others don’t exist…?

Have you tried running some of the rt-tests against your running kernel before building a custom one?
software.opensuse.org:

On 2012-11-06 22:06, AugieHenriques wrote:
>
> Hi,
> The make as normal user doesn’t work.

It does if you follow the steps - read that thread.

> When I did “sudo make xconfig”, didn’t work.

No surprise.

> Should I do the install as normal user?

The install you have to do as root.

> Or make as root?

No.


Cheers / Saludos,

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

Hi,

This is what I got for “sudo make rpm”
Thank You,
Augie

  INSTALL sound/usb/snd-usbmidi-lib.ko
  INSTALL sound/usb/usx2y/snd-usb-us122l.ko
  INSTALL sound/usb/usx2y/snd-usb-usx2y.ko
  MKDIR   /root/rpmbuild/BUILDROOT/kernel-3.4.11_2.16_desktop-1.i386/lib/firmware/3.4.11-2.16-desktop/3com/
make[3]: *** No rule to make target `/root/rpmbuild/BUILDROOT/kernel-3.4.11_2.16_desktop-1.i386/lib/firmware/3.4.11-2.16-desktop/./', needed by `/root/rpmbuild/BUILDROOT/kernel-3.4.11_2.16_desktop-1.i386/lib/firmware/3.4.11-2.16-desktop/atmsar11.fw'.  Stop.
make[3]: *** Waiting for unfinished jobs....
  MKDIR   /root/rpmbuild/BUILDROOT/kernel-3.4.11_2.16_desktop-1.i386/lib/firmware/3.4.11-2.16-desktop/acenic/
  MKDIR   /root/rpmbuild/BUILDROOT/kernel-3.4.11_2.16_desktop-1.i386/lib/firmware/3.4.11-2.16-desktop/adaptec/
make[2]: *** [_modinst_post] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.fihgSa (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.fihgSa (%install)
make[1]: *** [rpm] Error 1
make: *** [rpm] Error 2
/usr/src/linux> sudo make rpm


I know on debian you do something like this using the fakeroot command. There is a fakeroot package in open build service, but I have not tested it much myself. I am not sure if that is the suse way of doing things.
software.opensuse.org:

Edit: I ran cyclic test from rt-tests on default (non-preemptive) kernel. It has some long latencies but the average one is miniscule. So it might not be suitable for industrial lasers but it should work for most things.

Hi,
I followed the instructions here.
Ran “make” as normal user.
See bellow for results.
Thank you,
Augie

/usr/src/linux> make
  HOSTCC  scripts/basic/fixdep
scripts/basic/fixdep.c:433:1: fatal error: opening dependency file scripts/basic/.fixdep.d: Permission denied
compilation terminated.
make[2]: *** [scripts/basic/fixdep] Error 1
make[1]: *** [scripts_basic] Error 2
mkdir: cannot create directory ‘arch/x86/syscalls/../include/generated’: Permission denied
make[1]: *** No rule to make target `/usr/src/linux-3.4.11-2.16/arch/x86/syscalls/syscall_32.tbl', needed by `arch/x86/syscalls/../include/generated/asm/unistd_32.h'.  Stop.
make: *** [archheaders] Error 2
/usr/src/linux> 

You never want to output result of kernel build in /usr/src/linux - this may have any unforeseen results later. You do it somewhere in home directory.

make O=/your/home/linux/build

This is capital O, not zero.

Hi,
I ran “make cloneconfig” as normal user.
Should this be done as root?
The instructions don’t state clearly with commands to do as root or normal user.
Thank you,
Augie

/usr/src/linux> make cloneconfig
  HOSTCC  scripts/basic/fixdep
scripts/basic/fixdep.c:433:1: fatal error: opening dependency file scripts/basic/.fixdep.d: Permission denied
compilation terminated.
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2
/usr/src/linux>