とりあえず HP Integrity rx1620 に Debian-IA64 インストールできた

輪番停電のペースが緩んだ頃から開始してたんだが,いやぁ苦労した... インストールの苦労なんてずいぶん久しぶりに味わった.Vine Linux 2.6 とか言ってた頃のことを思い出すよ.詳細は後で書く.

$ uname -a
Linux debia64 2.6.32-5-mckinley #1 SMP Tue Mar 8 12:33:48 UTC 2011 ia64 GNU/Linux
$ cat /proc/cpuinfo
processor  : 0
vendor     : GenuineIntel
arch       : IA-64
family     : 31
model      : 2
model name : Madison up to 9M cache
revision   : 2
archrev    : 0
features   : branchlong
cpu number : 0
cpu regs   : 4
cpu MHz    : 1299.988
itc MHz    : 1299.988137
BogoMIPS   : 1945.60
siblings   : 1
physical id: 0

processor  : 1
vendor     : GenuineIntel
arch       : IA-64
family     : 31
model      : 2
model name : Madison up to 9M cache
revision   : 2
archrev    : 0
features   : branchlong
cpu number : 0
cpu regs   : 4
cpu MHz    : 1299.988
itc MHz    : 1299.988137
BogoMIPS   : 1945.60
siblings   : 1
physical id: 1

$ free -m
             total       used       free     shared    buffers     cached
Mem:          4032        639       3392          0         85        456
-/+ buffers/cache:         97       3934
Swap:         9536          0       9536

いわゆるItanium2 1.3 GHz ×2で,細かく言うとItanium2の名前を持つ最初のCPU "Mckinley" の次の "Madison" らしい:

目下の問題は aptitude(8) がSEGVること:

# gdb `which aptitude` -ex 'run update'
GNU gdb (GDB) 7.2-debian
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "ia64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/aptitude...(no debugging symbols found)...done.
Starting program: /usr/bin/aptitude update
[Thread debugging using libthread_db enabled]
[New Thread 0x2000000001e53190 (LWP 5376)]
取得:1 http://ftp.jp.debian.org testing InRelease [120 kB]
99% [1 InRelease gpgv 119618]
Program received signal SIGSEGV, Segmentation fault.
0x200000000009a121 in TimeRFC1123(long) () from /usr/lib/libapt-pkg.so.4.10
(gdb) whe
#0  0x200000000009a121 in TimeRFC1123(long) () from /usr/lib/libapt-pkg.so.4.10
#1  0x200000000016c1c0 in pkgAcqIndex::Custom600Headers() () from /usr/lib/libapt-pkg.so.4.10
#2  0x2000000000136110 in pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem*) ()
   from /usr/lib/libapt-pkg.so.4.10
#3  0x2000000000129d50 in pkgAcquire::Queue::Cycle() () from /usr/lib/libapt-pkg.so.4.10
#4  0x200000000012a930 in pkgAcquire::Queue::Enqueue(pkgAcquire::ItemDesc&) () from /usr/lib/libapt-pkg.so.4.10
#5  0x200000000012fb30 in pkgAcquire::Enqueue(pkgAcquire::ItemDesc&) () from /usr/lib/libapt-pkg.so.4.10
#6  0x200000000016ffe0 in pkgAcqIndex::Init(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libapt-pkg.so.4.10
#7  0x2000000000182f20 in pkgAcqIndex::pkgAcqIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString, std::basic_string<char, std::char_traits<char>, std::allocator<char> >) () from /usr/lib/libapt-pkg.so.4.10
#8  0x20000000001838a0 in pkgAcqDiffIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*) () from /usr/lib/libapt-pkg.so.4.10
#9  0x2000000000184850 in pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString) () from /usr/lib/libapt-pkg.so.4.10
#10 0x2000000000189de0 in pkgAcqMetaIndex::QueueIndexes(bool) () from /usr/lib/libapt-pkg.so.4.10
#11 0x200000000018b7a0 in pkgAcqMetaIndex::AuthDone(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) () from /usr/lib/libapt-pkg.so.4.10
#12 0x200000000018bde0 in pkgAcqMetaIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*) () from /usr/lib/libapt-pkg.so.4.10
#13 0x2000000000139c20 in pkgAcquire::Worker::RunMessages() () from /usr/lib/libapt-pkg.so.4.10
#14 0x200000000013bc40 in pkgAcquire::Worker::InFdReady() () from /usr/lib/libapt-pkg.so.4.10
#15 0x200000000012a290 in pkgAcquire::RunFds(fd_set*, fd_set*) () from /usr/lib/libapt-pkg.so.4.10
#16 0x200000000012d350 in pkgAcquire::Run(int) () from /usr/lib/libapt-pkg.so.4.10
#17 0x400000000058d3f0 in ?? ()

とりあえずUSBメモリ経由で openssh-server とか入れたので,Aptが動かなくても後の管理は(面倒だが)どうにかなる.
問題とはあまり関係ないが,

(gdb) inf fr
Stack level 0, frame at 0x60000fffffeceb70:
 pc = 0x200000000009a121 in TimeRFC1123(long); saved pc 0x200000000016c1c0
 called by frame at 0x60000fffffecec30
 Arglist at 0x60000fffffeceb70, args:
 Locals at 0x60000fffffeceb70, Previous frame's sp is 0x60000fffffeceb70
 Saved registers:
   at 0x600007ffffed4cb0,  at 0x600007ffffed4cb8,  at 0x600007ffffed4cc0,  at 0x600007ffffed4cc8,
   at 0x600007ffffed4cd0,  at 0x600007ffffed4cd8,  at 0x600007ffffed4ce0,  at 0x600007ffffed4ce8,
   at 0x600007ffffed4cf0,  at 0x600007ffffed4cf8,  at 0x600007ffffed4d00,  at 0x600007ffffed4d08,
   at 0x600007ffffed4d10,  at 0x600007ffffed4d18,  at 0x600007ffffed4d20,  at 0x600007ffffed4d28,
   at 0x600007ffffed4d30,  at 0x600007ffffed4d38,  at 0x600007ffffed4d40,  at 0x600007ffffed4d48,
   at 0x600007ffffed4d50,  at 0x600007ffffed4d58, ip at 0x600007ffffed4d08, cfm at 0x600007ffffed4d10,
  pfs at 0x600007ffffed4d10, ec at 0x600007ffffed4d10, r32 at 0x600007ffffed4cb0, r33 at 0x600007ffffed4cb8,
  r34 at 0x600007ffffed4cc0, r35 at 0x600007ffffed4cc8, r36 at 0x600007ffffed4cd0, r37 at 0x600007ffffed4cd8,
  r38 at 0x600007ffffed4ce0, r39 at 0x600007ffffed4ce8, r40 at 0x600007ffffed4cf0, r41 at 0x600007ffffed4cf8,
  r42 at 0x600007ffffed4d00, r43 at 0x600007ffffed4d08, r44 at 0x600007ffffed4d10, r45 at 0x600007ffffed4d18,
  r46 at 0x600007ffffed4d20, r47 at 0x600007ffffed4d28, r48 at 0x600007ffffed4d30, r49 at 0x600007ffffed4d38,
  r50 at 0x600007ffffed4d40, r51 at 0x600007ffffed4d48, r52 at 0x600007ffffed4d50, r53 at 0x600007ffffed4d58

ヒャッハー 64 bitレジスタがこんなにいっぱい((2年くらいまえに「ヒャッハー vec_float4レジスタが128個もある! おまけに8コア!」とか言ってた気がするが,気のせいに違いない.))! (なおIA-64SPARCと同じくレジスタウィンドウ)いやぁIA-64は最強過ぎる... 超クール.時代は64 bitだよね!!!