Re: compiling a bootable kernel for ia64 (itanium2, mckinley, rx2620)

Frank Scheiner <[email protected]>
Newsgroups gmane.linux.debian.ports.ia64
Message-ID <[email protected]>
Hi Ivan,

On 02/04/2018 11:53 PM, Ivan Zakharyaschev wrote:
>> I had Debian Wheezy with Linux v3.2.x (vmlinuz-3.2.0-4-mckinley, i.e. 
>> [this one]) running w/o issues on my rx2620 with two Itanium 2 9040 
>> (Montecito) both from an on-disk installation and a NFS root FS, but I 
>> ran it on bare-metal, not in a VM.
> 
> Yes, [this one] doesn't boot on our system. It might even be in our case 
> a strange/buggy behavior caused by old firmware for an otherwise correct 
> kernel binary code (or, of course, the code might be not correct). 
> Perhaps, there is a difference between yours and ours machines:
> It looks like ours has 2 Madison CPUs (if we are to trust this cpuinfo), 
> which are older than your Montecito ones.

I had a slightly modified NFS root FS (from the rx2620) running on my 
rx4640 which has four Madison CPUs:
```
root@rx4640:~# uname -a
Linux rx4640 3.2.0-4-mckinley #1 SMP Debian 3.2.78-1 ia64 GNU/Linux

root@rx4640:~# lscpu
Architecture:          ia64
CPU op-mode(s):        64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             4
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            31
Model:                 1
CPU MHz:               1299.718
L1d cache:             16K
L1i cache:             16K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

root@rx4640:~# cat /proc/cpuinfo
processor  : 0
vendor     : GenuineIntel
arch       : IA-64
family     : 31
model      : 1
model name : Madison
revision   : 5
archrev    : 0
features   : branchlong
cpu number : 0
cpu regs   : 4
cpu MHz    : 1299.718
itc MHz    : 1299.718465
BogoMIPS   : 1945.60
siblings   : 1
physical id: 0
[...]

root@rx4640:~# time openssl speed -elapsed
[...]
OpenSSL 1.0.1e 11 Feb 2013
built on: Mon Feb 29 00:33:28 UTC 2016
options:bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) 
blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT 
-DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIO -g -O2 -Wformat 
-Werror=format-security -D_FORTIFY_SOURCE=2  -Wa,--noexecstack -Wall 
-DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM 
-DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 
bytes
md2                  0.00         0.00         0.00         0.00 
0.00
mdc2                 0.00         0.00         0.00         0.00 
0.00
md4              11438.75k    40972.28k   100329.19k   158192.68k 
189892.09k
md5               8689.57k    30761.19k    83831.06k   147215.32k 
188617.53k
hmac(md5)         9466.35k    31766.43k    85695.40k   148677.79k 
189317.45k
[...]
```
...so maybe it's not the CPUs that make the difference.

The same applies to testing. We are able
> to test it here. Anyway, thanks for your messages, Frank and Daniel! The 
> remaining useful tasks which I see are:
> 
> 1) learn how to compile a bootable kernel for this machine and apply 
> this knowledge to compile a fresh current kernel;
> 
> 2) understand what goes wrong (by bisecting gcc), suggest a fix. (Before 
> we understand it, we can't be sure what should be fixed: it's not 
> necessarily abug in gcc).

Just to be sure, is your goal to get a working kernel for your specific 
machines (e.g. rx2620 w/Madison CPUs and possibly others)?

Or is it to get a general kernel that can be used for Debian Sid on IA64 
at its current state?

Because on Gentoo Linux v4.9.x and v4.12.x (compiled with gcc 5.x and 
possibly 6.x - but I'm not sure for the latter) work with the machines I 
tested, i.e. currently only the rx2620 w/Montecito and a rx2660 
w/Montvale. I haven't yet had the opportunity to test Gentoo on the 
rx4640 though.

For a quick test with a recent kernel on your machine you could try to 
boot kernel and initramfs from the current Gentoo Minimal Installation 
CD ([1]), with the elilo from Debian Wheezy ([2]). In the ISO I 
downloaded end of last year these were in 
`/gentoo.efimg.mountPoint/efi/boot` as `gentoo` (kernel) and 
`gentoo.igz` (initramfs).

[1]: 
http://distfiles.gentoo.org/releases/ia64/autobuilds/20180201T031003Z/install-ia64-minimal-20180201T031003Z.iso

[2]: 
http://ftp.debian.org/debian/dists/wheezy/main/installer-ia64/current/images/netboot/debian-installer/ia64/elilo.efi

Cheers,
Frank
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.