■ 6/1
先月24日の続き。CentOS を起動しようとしたときに出てくる eMMC のデバイスの
4つを見てみる。4つのデバイスは。
/dev/mmcblk0
/dev/mmcblk0boot0
/dev/mmcblk0boot1
/dev/mmcblk0rpmb
fdisk を使って確認する。
dracut:/# mkdir /mnt0
dracut:/# mkdir /mnt1
dracut:/# mkdir /mnt2
dracut:/# mount /dev/sda1 /mnt0
dracut:/# mount -o loop /mnt0/LiveOS/squashfs.img /mnt1
dracut:/# mount -o loop /mnt1/LiveOS/rootfs.img /mnt2
dracut:/# /mnt2/usr/sbin/fdisk /dev/mmcblk0boot0
~snip~
Command (m for help): p
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x7818####
Device Boot Start End Blocks Id System
Command (m for help): quit
dracut:/# /mnt2/usr/sbin/fdisk /dev/mmcblk0boot1
~snip~
Command (m for help): p
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe907####
Device Boot Start End Blocks Id System
Command (m for help): quit
dracut:/# /mnt2/usr/sbin/fdisk /dev/mmcblk0rpmb
~snip~
Command (m for help): p
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x3a38####
Device Boot Start End Blocks Id System
Command (m for help): quit
どれも dos とあるので、fat なんだろうけど、mount を掛けてみるとエラーが
おきてマウントできない。この3つのデバイスは、あまり考えずに無視して良いの
かな。/dev/mmcblk0 だけ使うことを考えて続けることに。
■ 6/2
昨日の続き。コマンドが色々と使えるので、fdisk を使って eMMC をフォーマット
したいのだけど、UEFI 周りをどうすれば良いのか、勉強不足でよくわからない。
grub なんかのブートローダをどこに入れるのとか。その辺りは、CentOS での
インストーラでうまくやってくれそうなので、まずインストーラを起動させる
ことに。
どんな起動プロセスで、インストーラが起動されているのか眺めていると、systemd
という聞きなれないものが。すっかり時代に取り残されているな。USB に入れた
CentOS を起動したときの最後はこんな感じ。
[ OK ] Reached target Basic System.
Mounting Configuration File System...
[ OK ] Mounting Configuration File System.
dracut-initqueue[562]: Warning: Could not boot.
dracut-initqueue[562]: Warning: /dev/root does not exist
Starting Dracut Emergency Shell...
Warning: /dev/root does not exist
Generating "/run/initramfs/rdsosreport.txt"
Entering emergency mode. Exit the shell to continue.
Type "journalctl" to view system logs.
You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot
after mounting them and attach it to a bug report.
dracut:/#
/dev/root が見つからなくて、エラーが起きている。マウントした rootfs.img を
使って起動しなおしてみる。
dracut:/# mkdir /mnt0
dracut:/# mkdir /mnt1
dracut:/# mkdir /mnt2
dracut:/# mount /dev/sda1 /mnt0
dracut:/# mount -o loop /mnt0/LiveOS/squashfs.img /mnt1
dracut:/# mount -o loop /mnt1/LiveOS/rootfs.img /mnt2
dracut:/# systemctl switch-root /mnt2
インストーラが起動しかけたが、エラーが起きた。状況を確認してみると、python
がネットワークを使おうとしている感じだったので、IP アドレスを取得してから
やってみる。
dracut:/# mkdir /mnt0
dracut:/# mkdir /mnt1
dracut:/# mkdir /mnt2
dracut:/# mount /dev/sda1 /mnt0
dracut:/# mount -o loop /mnt0/LiveOS/squashfs.img /mnt1
dracut:/# mount -o loop /mnt1/LiveOS/rootfs.img /mnt2
dracut:/# dhclient
dhcp: PREINIT enp3s0
dhcp: BOND setting enp3s0
dracut:/# systemctl switch-root /mnt2
インストーラが起動した。インストール元の指定である INSTALLATION SOURCE を
USB メモリーの /dev/sda1 にしてみるが、
Error setting up base repository
とエラーが起きて指定できない。指定をネットワークにするしかないみたい。
続きは明日。
■ 6/3
昨日の続き。CentOS 7 のインストール元をネットワークにするために、別 PC で
アドレスを確認する。このときのアドレスってどこになるのだろう。それっぽい
場所をメモしておく。
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso
CentOS 7 のインストーラを昨日の手順で起動し、INSTALLATION SOURCE の指定を
On the network に、アドレスを入れる。上記の3つを試してみたけど、エラーが
出てうまくいかない。何が原因か少し考える。ふと思って、インストーラを起動
する前にテストしてみた。
dracut:/# dhclient
dhcp: PREINIT enp3s0
dhcp: BOND setting enp3s0
dracut:/# ping ftp.jaist.ac.jp
ping: unknown host ftp.jaist.ac.jp
dracut:/# ping 8.8.8.8
connect: Network is unreachable
dracut:/# ping 192.168.17.1
PING 192.168.17.1 (192.168.17.1) 56(84) bytes of data.
64 bytes from 192.168.17.1: cimp_seq=1 ttl=128 time=0.889 ms
64 bytes from 192.168.17.1: cimp_seq=2 ttl=128 time=0.483 ms
64 bytes from 192.168.17.1: cimp_seq=3 ttl=128 time=0.397 ms
^C
--- 192.168.17.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.397/0.589/0.889/0.216 ms
そういうことみたい。手動で設定してみる。
dracut:/# /mnt2/usr/sbin/route add default gw 192.168.17.1
dracut:/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: cimp_seq=1 ttl=128 time=20.2 ms
64 bytes from 8.8.8.8: cimp_seq=2 ttl=128 time=18.2 ms
64 bytes from 8.8.8.8: cimp_seq=3 ttl=128 time=20.6 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 18.226/19.701/20.645/1.062 ms
ネームサーバの指定は resolv.conf なのだけど、switch-root した後の /etc
ディレクトリは読み込み専用なので、変更できない。これは ftp.jaist.ac.jp の
IP アドレス 150.65.7.130 を使ってやってみることに。
インストーラを起動して、On the network のアドレスを
http://150.65.7.130/pub/Linux/CentOS/7/os/x86_64/
にしてみると、読み込んでくれた。1歩前進。次はパーティションの設定をどう
しようか。自動でまかせると、こうなった。
mount | 容量 | Device Type | File System
|
---|
/home | 17.63GiB | LVM | xfs
| /boot | 500MiB | Standard Partition | ext4
| /boot/efi | 200MiB | Standard Partition | EFI System Partition
| / | 36.11GiB | LVM | xfs
| swap | 3840MiB | Standard Partition | swap
| |
xfs とか ext4 とか、新しい fs が当たり前のように使われていて、メリットと
デメリットを考えて使わないといけない。サーバで使うし、ログは一旦 ram に保存
するので、書き込みは1時間に1回とかそんな感じの予定。なので、xfs とかを使う
メリットが無いのかなと思うし、メモリを消費するから使いたくない。LVM も
いらないかな。/home を分ける必要も感じないので、変更して。
mount | 容量 | Device Type | File System
|
---|
/boot | 500MiB | Standard Partition | ext4
| /boot/efi | 200MiB | Standard Partition | EFI System Partition
| / | 53.8GiB | Standard Partition | ext2
| swap | 3840MiB | Standard Partition | swap
| |
swap も削る予定だったけど、このぐらいの容量なら何かのために残しておこう
かと。いつもは swapoff すれば良いことだし。インストールするパッケージの
種類は Infrastructure Server にして、インストール実行。しかし、エラーが
起きた。ざっと見たけど、/dev 周りでエラーが起きていたり、色々と。ちょっと
長くなりそうなので、続きは明日に。
■ 6/4
昨日の続き。エラーが起きたタイミング的には /dev/mmcblk0p4 の作成時なの
だけど、ログを見ていたら、/dev/random や hardware clock にアクセスできない
など、/dev 周りが問題な感じがするけど、そうじゃない気もする。/dev には
ファイルがなくて、readonly なマウントなので追加もできない。じゃ、という
ことで、ram drive を作って、そこから起動することにした。
dracut:/# mkdir /mnt0
dracut:/# mkdir /mnt1
dracut:/# mkdir /mnt2
dracut:/# mount /dev/sda1 /mnt0
dracut:/# mount -o loop /mnt0/LiveOS/squashfs.img /mnt1
dracut:/# mount -o loop /mnt1/LiveOS/rootfs.img /mnt2
dracut:/# dhclient
dhcp: PREINIT enp3s0
dhcp: BOND setting enp3s0
dracut:/# /mnt2/usr/sbin/route add default gw 192.168.17.1
dracut:/# mkdir /mnt3
dracut:/# mount -t ramfs none /mnt3
dracut:/# cp -p -r /mnt2/* /mnt3/
dracut:/# systemctl switch-root /mnt3
なんだか継ぎ接ぎだらけな感じだな。これで、インストールをしてみる。特に
エラーもなく、インストール完了。bios を変更して、内部 eMMC から起動する
ように変更して、起動させてみる。無事に起動した。LIVA に CentOS 7 を入れる
のにだいぶかかったな。後は、色々設定をしていかないと。
■ 6/5
Liva に Redhat 7 をインストールして、無事に起動した。デフォルトで sshd が
起動しているので、コンソールはとっとと放置して ssh で接続。
[toyota@mygeeto /]$ cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[toyota@mygeeto /]$ uname -a
Linux mygeeto.tatsuyoshi.net 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UT
C 2015 x86_64 x86_64 x86_64 GNU/Linux
Kernel 3 なんて初めてなんで、勝手がわからない。空き容量はこんな感じで、
1GB ぐらい使っている。
[toyota@mygeeto tmp]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mmcblk0p4 55526788 1041108 51665024 2% /
devtmpfs 958984 0 958984 0% /dev
tmpfs 967728 0 967728 0% /dev/shm
tmpfs 967728 8632 959096 1% /run
tmpfs 967728 0 967728 0% /sys/fs/cgroup
/dev/mmcblk0p2 495844 72899 397345 16% /boot
/dev/mmcblk0p1 204580 9988 194592 5% /boot/efi
メモリの空き容量は 1.7GB ぐらいある。メモリは ramfs で使う予定もあるし、
eMMC なんかに swap させたくないので、なるべく抑えたい。
[toyota@mygeeto tmp]# cat /proc/meminfo
MemTotal: 1935460 kB
MemFree: 1702844 kB
MemAvailable: 1691856 kB
Buffers: 11776 kB
Cached: 71212 kB
SwapCached: 0 kB
Active: 100560 kB
Inactive: 56780 kB
Active(anon): 74536 kB
Inactive(anon): 8468 kB
Active(file): 26024 kB
Inactive(file): 48312 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 3932156 kB
SwapFree: 3932156 kB
Dirty: 28 kB
Writeback: 0 kB
AnonPages: 74400 kB
Mapped: 22304 kB
Shmem: 8656 kB
Slab: 39460 kB
SReclaimable: 16308 kB
SUnreclaim: 23152 kB
KernelStack: 1664 kB
PageTables: 4168 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 4899884 kB
Committed_AS: 264376 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 542256 kB
VmallocChunk: 34359187543 kB
HardwareCorrupted: 0 kB
AnonHugePages: 6144 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 53868 kB
DirectMap2M: 1929216 kB
既に 300MB 使っているのは Kernel なのかな。initramfs も関係しているのかも
しれないかと分解してみた。
[root@mygeeto /]# cp /boot/initramfs-3.10.0-229.el7.x86_64.img /tmp
[root@mygeeto /]# cd /tmp
[root@mygeeto tmp]# mkdir initrf
[root@mygeeto tmp]# cd initrf/
[root@mygeeto initrf]# zcat ../initramfs-3.10.0-229.el7.x86_64.img | cpio -id
keyboard のレイアウトなんかの、いらないものがいっぱいあったので、削除して
サイズを見てみる。そんなに小さくならなかった。不要なモジュールも削除。
その initramfs で起動してみたら、あっけなく panic した。やりすぎたみたい。
仕方ない kernel の Make から始めるか。
■ 6/6
ちょっとノート PC でメモを取りたいことがあって、久々に Windows7 の旅行用
ノート PC を起動して、メモ帳でメモ。すると、見慣れないウィンドウが出て来た。
対話型サービスの検出
このコンピューター上で実行されているプログラムが、メッセージの表示を思考して
います
プログラムがタスクを完了するには、ユーザーの情報またはユーザーのアクセス許可が
必要になることがあります。
ちょっと作業中だったので、そのまま×を押してウィンドウを閉じてしまったけど、
今考えれば、詳細だけでも見ておけば良かったなと。よくわからないだけに、不安。
■ 6/7
3、4日前に部屋の蛍光灯が切れた。あまり使っていない部屋なので、しばらく
そのまま放置していたけど、点かないと点かないで不便。蛍光灯を交換しようかと
40W 丸管の値段を調べたら、安いところで500円ぐらい、40W と 32W とのセットで
1000円ぐらいの値段。どうしたものかと昼間の明るい時間に、取り外してみた。
この電灯、安物を買ったのだけど、しばらく使っていたら内側の 32W が点かなく
なったことを思い出してきた。だから 40W の蛍光灯だけ切れても、真っ暗になって
しまうんだと。見た感じ 32W の蛍光灯は切れていないけど、点かないので蛍光灯が
問題なのか、この電灯自体が問題なのか。40W + 32W の蛍光灯を買って、32W が
点かなかったときはショックが大きいしどうしようかなと考えていて、近くの店で
LED 電灯が安く売っているのを見つけた。調光と調色ができるものが 6200円で、
明るさは 2730lm とあった。蛍光灯を1000円で買ったとして、2年に1回替えて
いくのと比較すると、LED 電灯は12年で元が取れる感じ。消費電力は 34W と、
電気代も安そうだけど、リモコン式なので点けていないときも電気を消費する
のがちょっと気になるかな。
なんて考えていて、店に行ってみることにした。しかし既にその製品は売り切れ。
別の製品で調色できないけど 3800lm のものが同じ値段で売っていた。消費電力は
41W で、明るさに比例するみたい。少し悩んで買ってきた。
中はこんな感じで、LED が二重の環になっている。黄色い小さな豆電球のような
光も LED で模倣している。装着して点けてみたら、十分に明るい、というか少し
明るすぎるので、明るさを落としたぐらい。これで蛍光灯の交換の手間は省ける
ようになったな。
■ 6/8
LIVA で kernel の作り直しをしようかと。kernel.org から新しいものを取って
くるか、CentOS のものを使うか、少し悩む。まずは、CentOS のものでやって
みようかと、ダウンロードする。
[toyota@mygeeto ~]$ cd /tmp
[toyota@mygeeto tmp]$ mkdir kernel
[toyota@mygeeto tmp]$ cd kernel/
[toyota@mygeeto kernel]$ wget http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/kernel-3.10.0-229.el7.x86_64.rpm
--2015-06-08 21:12:20-- http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_64/Pa
ckages/kernel-3.10.0-229.el7.x86_64.rpm
Resolving ftp.jaist.ac.jp (ftp.jaist.ac.jp)... 150.65.7.130
Connecting to ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 32381560 (31M) [application/octet-stream]
Saving to: 'kernel-3.10.0-229.el7.x86_64.rpm'
100%[======================================>] 32,381,560 1.05MB/s in 30s
2015-06-08 21:12:50 (1.02 MB/s) - 'kernel-3.10.0-229.el7.x86_64.rpm' saved [323
81560/32381560]
[toyota@mygeeto kernel]$ wget http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/kernel-headers-3.10.0-229.el7.x86_64.rpm
--2015-06-08 21:13:43-- http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_64/Pa
ckages/kernel-headers-3.10.0-229.el7.x86_64.rpm
Resolving ftp.jaist.ac.jp (ftp.jaist.ac.jp)... 150.65.7.130
Connecting to ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2386560 (2.3M) [application/octet-stream]
Saving to: 'kernel-headers-3.10.0-229.el7.x86_64.rpm'
100%[======================================>] 2,386,560 773KB/s in 3.0s
2015-06-08 21:13:46 (773 KB/s) - 'kernel-headers-3.10.0-229.el7.x86_64.rpm' sav
ed [2386560/2386560]
[toyota@mygeeto kernel]$ rpm2cpio kernel-3.10.0-229.el7.x86_64.rpm |cpio -id
228489 blocks
[toyota@mygeeto kernel]$ rpm2cpio kernel-headers-3.10.0-229.el7.x86_64.rpm |cpi
o -id
6611 blocks
その前に、ちょっと嫌な予感がしたので、チェックする。
[toyota@mygeeto kernel]$ gcc -v
-bash: gcc: command not found
嫌な予感は当たるものである。gcc だけは、最初にパッケージで入れないと、
gcc 自体もコンパイルできないし、仕方がない。
[toyota@mygeeto kernel]$ cd /tmp
[toyota@mygeeto tmp]$ wget http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_64/
Packages/gcc-4.8.3-9.el7.x86_64.rpm
--2015-06-08 21:20:05-- http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_64/Pa
ckages/gcc-4.8.3-9.el7.x86_64.rpm
Resolving ftp.jaist.ac.jp (ftp.jaist.ac.jp)... 150.65.7.130
Connecting to ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16887940 (16M) [application/octet-stream]
Saving to: 'gcc-4.8.3-9.el7.x86_64.rpm'
100%[======================================>] 16,887,940 1.01MB/s in 16s
2015-06-08 21:20:22 (1013 KB/s) - 'gcc-4.8.3-9.el7.x86_64.rpm' saved [16887940/
16887940]
[toyota@mygeeto tmp]$ su
Password:
[root@mygeeto tmp]# rpm -iv gcc-4.8.3-9.el7.x86_64.rpm
warning: gcc-4.8.3-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a
80eb5: NOKEY
error: Failed dependencies:
cpp = 4.8.3-9.el7 is needed by gcc-4.8.3-9.el7.x86_64
glibc-devel >= 2.2.90-12 is needed by gcc-4.8.3-9.el7.x86_64
libmpc.so.3()(64bit) is needed by gcc-4.8.3-9.el7.x86_64
libmpfr.so.4()(64bit) is needed by gcc-4.8.3-9.el7.x86_64
依存性の関係で、4つほど入れないといけない。cpp, glibc-devel, libmpc は
パッケージにあったけど、libmfr が見つからない。探してみると、mpfr の中に
入っているみたいなので、ダウンロードしてインストール。
[root@mygeeto tmp]# exit
exit
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/cpp-4.8.3-9.el7.x86_64.rpm
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/glibc-devel-2.17-78.el7.x86_64.rpm
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/libmpc-1.0.1-3.el7.x86_64.rpm
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/mpfr-3.1.1-4.el7.x86_64.rpm
[toyota@mygeeto tmp]$ su
Password:
[root@mygeeto tmp]# rpm -iv cpp-4.8.3-9.el7.x86_64.rpm
warning: cpp-4.8.3-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a
80eb5: NOKEY
error: Failed dependencies:
libmpc.so.3()(64bit) is needed by cpp-4.8.3-9.el7.x86_64
libmpfr.so.4()(64bit) is needed by cpp-4.8.3-9.el7.x86_64
[root@mygeeto tmp]# rpm -iv libmpc-1.0.1-3.el7.x86_64.rpm
warning: libmpc-1.0.1-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID
f4a80eb5: NOKEY
error: Failed dependencies:
libmpfr.so.4()(64bit) is needed by libmpc-1.0.1-3.el7.x86_64
[root@mygeeto tmp]# rpm -iv mpfr-3.1.1-4.el7.x86_64.rpm
warning: mpfr-3.1.1-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4
a80eb5: NOKEY
Preparing packages...
mpfr-3.1.1-4.el7.x86_64
[root@mygeeto tmp]# rpm -iv libmpc-1.0.1-3.el7.x86_64.rpm
warning: libmpc-1.0.1-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID
f4a80eb5: NOKEY
Preparing packages...
libmpc-1.0.1-3.el7.x86_64
[root@mygeeto tmp]# rpm -iv cpp-4.8.3-9.el7.x86_64.rpm
warning: cpp-4.8.3-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a
80eb5: NOKEY
Preparing packages...
cpp-4.8.3-9.el7.x86_64
[root@mygeeto tmp]# rpm -iv glibc-devel-2.17-78.el7.x86_64.rpm
warning: glibc-devel-2.17-78.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, ke
y ID f4a80eb5: NOKEY
error: Failed dependencies:
glibc-headers is needed by glibc-devel-2.17-78.el7.x86_64
glibc-headers = 2.17-78.el7 is needed by glibc-devel-2.17-78.el7.x86_64
glibc-devel には glibc-headers が必要なので、ダウンロードしてインストール
する。
[root@mygeeto tmp]# exit
exit
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/glibc-headers-2.17-78.el7.x86_64.rpm
[toyota@mygeeto tmp]$ su
Password:
[root@mygeeto tmp]# rpm -iv glibc-headers-2.17-78.el7.x86_64.rpm
warning: glibc-headers-2.17-78.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature,
key ID f4a80eb5: NOKEY
error: Failed dependencies:
kernel-headers is needed by glibc-headers-2.17-78.el7.x86_64
kernel-headers >= 2.2.1 is needed by glibc-headers-2.17-78.el7.x86_64
結局 kernel-header が必要ということで。これは既にダウンロードしてあった
ので、それを使ってインストール。
[root@mygeeto tmp]# rpm -iv kernel/kernel-headers-3.10.0-229.el7.x86_64.rpm
warning: kernel/kernel-headers-3.10.0-229.el7.x86_64.rpm: Header V3 RSA/SHA256
Signature, key ID f4a80eb5: NOKEY
Preparing packages...
kernel-headers-3.10.0-229.el7.x86_64
[root@mygeeto tmp]# rpm -iv glibc-headers-2.17-78.el7.x86_64.rpm
warning: glibc-headers-2.17-78.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature,
key ID f4a80eb5: NOKEY
Preparing packages...
glibc-headers-2.17-78.el7.x86_64
[root@mygeeto tmp]# rpm -iv glibc-devel-2.17-78.el7.x86_64.rpm
warning: glibc-devel-2.17-78.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, ke
y ID f4a80eb5: NOKEY
Preparing packages...
glibc-devel-2.17-78.el7.x86_64
これで依存しているものが全部入ったので、やっと gcc のインストールができる。
こんな作業は yum とか使ったら、勝手にやってくれるものなんだろうね。
[root@mygeeto tmp]# rpm -iv gcc-4.8.3-9.el7.x86_64.rpm
warning: gcc-4.8.3-9.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a
80eb5: NOKEY
Preparing packages...
gcc-4.8.3-9.el7.x86_64
[root@mygeeto tmp]# exit
exit
[toyota@mygeeto tmp]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/
usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-boots
trap --enable-shared --enable-threads=posix --enable-checking=release --with-sy
stem-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-uni
que-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-langu
ages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfi
ni-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/o
bj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3
-20140911/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function
--with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
やっと作業が開始できる。続きは明日だな。
■ 6/9
昨日の続き。昨日ダウンロードした kernel-3.10.0-229.el7.x86_64.rpm って
source じゃなくて kernel のバイナリそのものだった。kernel-devel かなと
思い、ダウンロードすることに。
[toyota@mygeeto ~]$ cd /tmp
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/kernel-devel-3.10.0-229.el7.x86_64.rpm
[toyota@mygeeto tmp]$ cd kernel
[toyota@mygeeto kernel]$ rpm2cpio ../kernel-devel-3.10.0-229.el7.x86_64.rpm |cp
io -id
70473 blocks
[toyota@mygeeto kernel]$ find . | less
それっぽいものが入ったように見えるが、ファイル量が少ない。アーキテクチャが
x86_64 に限定しているためだからかな。やるだけやってみる。
[toyota@mygeeto kernel]$ cd usr/src/kernels/3.10.0-229.el7.x86_64/
[toyota@mygeeto 3.10.0-229.el7.x86_64]$ make clean
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/bin2c
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
scripts/Makefile.clean:17: /tmp/kernel/usr/src/kernels/3.10.0-229.el7.x86_64/dr
ivers/infiniband/hw/amso1100/Makefile: No such file or directory
make[4]: *** No rule to make target `/tmp/kernel/usr/src/kernels/3.10.0-229.el7
.x86_64/drivers/infiniband/hw/amso1100/Makefile'. Stop.
make[3]: *** [drivers/infiniband/hw/amso1100] Error 2
make[2]: *** [drivers/infiniband/hw] Error 2
make[1]: *** [drivers/infiniband] Error 2
make: *** [_clean_drivers] Error 2
やっぱり駄目みたい。find でファイルを眺めてみたけど、ファイルが足りない
気がするな。ここで考えること30秒、思い出した。kernel.org からダウンロード
するか、kernel の src.rpm を使うのだった。探してダウンロードした。
[toyota@mygeeto ~]$ cd /tmp
[toyota@mygeeto tmp]$ wget -q http://vault.centos.org/7.1.1503/os/Source/SPacka
ges/kernel-3.10.0-229.el7.src.rpm
大きさは 77MB もある。swap させて eMMC を使いたくないので、tmpfs とメモリの
状況を確認しておく。swapoff しても良いけど、作用中に止まるのも嫌なので、
swap 自体はそのまま起動しておく。
[toyota@mygeeto tmp]$ du -s -k kernel
188664 kernel
[toyota@mygeeto tmp]$ cat /proc/meminfo | head -10
MemTotal: 1935460 kB
MemFree: 1214020 kB
MemAvailable: 1650364 kB
Buffers: 41724 kB
Cached: 487764 kB
SwapCached: 0 kB
Active: 448772 kB
Inactive: 154652 kB
Active(anon): 74124 kB
Inactive(anon): 8468 kB
大丈夫そうなので展開して、展開後の容量とメモリの様子も確認する。77MB を
展開なので、だいぶ増えそうだな。
[toyota@mygeeto tmp]$ mkdir kernel
[toyota@mygeeto tmp]$ cd kernel
[toyota@mygeeto kernel]$ rpm2cpio ../kernel-3.10.0-229.el7.src.rpm | cpio -id
158639 blocks
[toyota@mygeeto kernel]$ du -s -k ../kernel
268172 ../kernel
[toyota@mygeeto kernel]$ !cat
cat /proc/meminfo | head -10
MemTotal: 1935460 kB
MemFree: 1131928 kB
MemAvailable: 1648932 kB
Buffers: 41840 kB
Cached: 567164 kB
SwapCached: 0 kB
Active: 528272 kB
Inactive: 154644 kB
Active(anon): 74100 kB
Inactive(anon): 8468 kB
想像よりも増えなかったな。80MB ぐらいしか増えた感じがない。変だなと思い、
展開させた様子を確認してみる。
[toyota@mygeeto kernel]$ ls
Makefile.common kernel-3.10.0-ppc64.config
Module.kabi_ppc64 kernel-3.10.0-ppc64le-debug.config
Module.kabi_ppc64le kernel-3.10.0-ppc64le.config
Module.kabi_s390x kernel-3.10.0-s390x-debug.config
Module.kabi_x86_64 kernel-3.10.0-s390x-kdump.config
boot kernel-3.10.0-s390x.config
centos-kpatch.x509 kernel-3.10.0-x86_64-debug.config
centos-ldup.x509 kernel-3.10.0-x86_64.config
centos.cer kernel-abi-whitelists.tar.bz2
check-kabi kernel.spec
cpupower.config lib
cpupower.service linux-3.10.0-229.el7.tar.xz
debrand-rh-i686-cpu.patch linux-kernel-test.patch
debrand-rh_taint.patch secureboot.cer
debrand-single-cpu.patch sign-modules
etc usr
extra_certificates x509.genkey
kernel-3.10.0-ppc64-debug.config
ディレクトリ以下に入らずに、ファイルがべたっと展開された。展開せずに、
そのまま中身を見てみた。
[toyota@mygeeto tmp]$ rpm2cpio ../kernel-3.10.0-229.el7.src.rpm | cpio -t
Makefile.common
Module.kabi_ppc64
Module.kabi_ppc64le
Module.kabi_s390x
Module.kabi_x86_64
centos-kpatch.x509
centos-ldup.x509
centos.cer
check-kabi
cpupower.config
cpupower.service
debrand-rh-i686-cpu.patch
debrand-rh_taint.patch
debrand-single-cpu.patch
extra_certificates
kernel-3.10.0-ppc64-debug.config
kernel-3.10.0-ppc64.config
kernel-3.10.0-ppc64le-debug.config
kernel-3.10.0-ppc64le.config
kernel-3.10.0-s390x-debug.config
kernel-3.10.0-s390x-kdump.config
kernel-3.10.0-s390x.config
kernel-3.10.0-x86_64-debug.config
kernel-3.10.0-x86_64.config
kernel-abi-whitelists.tar.bz2
kernel.spec
linux-3.10.0-229.el7.tar.xz
linux-kernel-test.patch
secureboot.cer
sign-modules
x509.genkey
158639 blocks
ファイルは30ぐらいしかなく、肝心の kernel 本体は展開されていない。自分で
展開して patch を当てる必要があるのか。kernel-devel との関係もあるので、
展開するディレクトリを考えてやらないとな。本来なら、/usr/src/kernels の
下でやるべきなんだけど、eMMC に書き込みしたくない。一旦、保留する。
■ 6/10
Google で「ビーフストロガノフ」を検索すると、「他の人はこちらも検索」と
いう表示が出てきた。その中の「ボルシチ」をクリックしてみると、これまで
見たことがない画面が出てくる。
ビーフストロガノフ > 他の人はこちらも検索 > ボルシチ
これは面白いと、もう1回やってみた。今度は、タルトからでも検索してみると、
おいしそうなお菓子がいっぱい出て来た。
タルト > 他の人はこちらも検索 > キッシュ
さらに逆もやってみる。すると、鶏卵、リーキ、ホウレンソウとかが出て来た。
どんな広がり方なんだろう。
キッシュ > 他の人はこちらも検索 > タルト
こんな機能いつ出て来たのだろう。
■ 6/11
昨日の続き。面白いので、色々やってみた。まずは、食べ物をとジャガイモを
入れてみたら、サツマイモ、トマト、ニンジン、タマネギと続いた。
ジャガイモ > 他の人はこちらも検索
食べ物以外ではどうなるのか、姫路城でやってみると、姫路セントラルパーク、
大阪城、竹田城、圓教寺、彦根城、名古屋城と続く。
姫路城 > 他の人はこちらも検索
人でも試せるかと、ハリソン・フォードを入れてみた。奥さん、スターウォーズで
共演のマーク・ハミル、同じくキャリー・フィッシャー、インディージョーンズで
共演したショーン・コネリーと続いた。マーク・ハミルは歳とったな。
ハリソン・フォード > 他の人はこちらも検索
さらに、映画をクリックすると、映画の結果も写真で出てきた。エビソード7に
出るのだっけ。
ハリソン・フォード > 映画
右上の「人気順」を「古い順」にしてみた。知らない映画がいくつも出てきて、
さらにアメリカン・グラフィティに出ていたんだと知ったり。
ハリソン・フォード > 映画
日本人も入れてみようということで、「ビートたけし」を入れてみた。奥さん、
娘、タモリ、明石家さんま、藤達也、お兄ちゃんが出て来た。藤達也は北野武の
最新映画で主演しているせいかな。同じように映画検索もできた。
ビートたけし > 他の人はこちらも検索
新垣隆で検索してみる。まずは、佐内河内守、神山典士、小保方晴子なんて順で
出て来た。時代的な繋がりなんだろうか。
新垣隆 > 他の人はこちらも検索
これは何が楽しいのか考えてみると、Google が検索結果などの人の手を介さない
情報を集めて、それを写真で出すことが楽しく感じてしまうのかな。この人と
この人はどんな繋がりがあるのかな、と考えたりできるし。
■ 6/12
ここのところはまっている、Google の検索結果遊び。今日も少しやってみる。
まずは、横浜市で検索してみた。ここからクリックできるのは、面積、現在の天気、
人口、現在の時間、名所、大学の6つ。名所をクリックしてみた。
横浜中華街、三渓園、新横浜ラーメン博物館、横浜赤レンガ倉庫と続いた。
横浜市 > 名所
同じく、隣の市である鎌倉市を見てみると、長谷寺、高徳院、鶴岡八幡宮と、
それっぽいのが続く。ただし、季節の補正はしないようで、今の季節人が多い
明月院や成就院が先に出てくることはなく。
鎌倉市 > 名所
別の隣、藤沢市になると、今までのような黒背景の部品は出ずに、シンプルな
表示になった。
藤沢市 > 名所
葉山町では、また表示形式が変わって、名所と言うサブカテゴリのようなものが
なくなった感じになる。
葉山町 > 名所
三浦市では、そのまま検索結果が出るようになってしまった。このあたりの表示の
差は一体どうやって決めているのだろうか。
三浦市 > 名所
ちょっと範囲を広げて、東京都で見てみた。明治神宮、浅草寺、新宿御苑と続く。
一部、都内じゃないものが見えるけど、気にしないことに。
東京都 > 名所
じゃ、日本はどうなんだとやってみる。最初に東京ディズニーランドが出てきた
のには納得できないけど、金閣寺を鹿苑寺とちゃんと書いてあるのは評価できる。
USJ もあったりして、アジアの人の観光向けな感じもする。
日本 > 名所
別な国はどうなのだろうと、オーストラリアを見てみる。オペラハウスなんかが
出て来た。最初の3つは、同じような場所なのでちょっと微妙かな。
オーストラリア > 名所
Google ならやってくれると思い、地球でもやってみる。しかし、期待したような
結果は出なかった。残念。
地球 > 名所
せっかくなので、もう少し遊んで見る。「ビートルズ」を検索すると、いくつか
クリックできる項目がある。その中で、メインボーカルをクリックしてみた。
カテゴリでちゃんと出てくるが、ギター、やドラムなどではこの形式の表示に
ならなかった。
ビートルズ > メインボーカル
メンバーをクリックしてみたら、ちゃんとピートやスチュアートまで出てきて、
きちんとした結果っぽい。ひょっとして、wikipedia の情報をそのまま使って
いるのかな。
ビートルズ > メンバー
UK でメンバーが激しく入れ替わるバントを考えて、キング・クリムゾンを入れて
みた。正式メンバーはちゃんと入っていそうな感じ。
キング・クリムゾン > メンバー
しかし、よく見るとシンフィールドがキーボードになっていたり、ウェットンが
ギターになっていたりする。シンフィールドは、「作詞」か「照明」のはず。
キング・クリムゾン > メンバー
キング・クリムゾンの場合、メインボーカルをクリックすると、黒背景の部品を
使った画面で出て来た。エイドリアンやめちゃったんだね。
キング・クリムゾン > メインボーカル
日本人でメンバーが多そうなアーチストを考えてみた。単純に考えると AKB48 とか
なんだろうけど、本当にメンバーが何人なのかわからなそうな米米CLUBでやって
みた。27人出て来たけど、合っているのかどうか、合っている概念はあるのかどうか
さえわからない。
米米CLUB > メンバー
古いアーティストはどうなのか、やってみる。現存しているかどうか怪しい、
ザ・ドリフターズを見てみた。志村けん、加藤茶、高木ブーの3人だけ。いかりや
さんは亡くなったからいないとして、仲本さんは?生きてたよね、と思わず調べて
しまったけど、やっぱりご存命。何で3人しか出てこないのだろう。
ザ・ドリフターズ > メンバー
「おニャン子クラブ」は出てきた。ゴダイゴとかザ・タイガースは出て来た。
(初代)ジャニーズは出たけど、ダークダックスは出ない。アーチスト以外で
試してみると、東京03、ダチョウ倶楽部、七福神、赤穂浪士、新撰組は出てこな
かった。海援隊はどっちも出てこなかった。
おニャン子クラブ > メンバー
歌を出した実績がないと駄目なのかな。wikipedia と比較したけど、関係ない
感じもするし、基準が良くわからない。
■ 6/13
なんだか面白くなってきたので、もう少し続けてみる。まず、家族を出させて
みることにした。親を出す。
北野井子 > 親
子供も出してみた。ここのところはチャーリー・シーンよりマーティン・シーンの
方が見る機会が多い気がするな。
マーティン・シーン > 子
兄弟でもやってみた。青木三兄弟が出てこなかったので、林家正蔵で出してみた。
峰竜太は出てこないので、義理の兄弟は出ないみたい。アンディ・ウォシャウスキー
の兄弟で出してみたら、ラリーじゃなくラナが姉として出て来た。この辺は情報が
新しいみたい。
林家正蔵 > 兄弟
犬種で出してみたら、クリックできるのは、寿命、上位分類、原産地、性格、
体重、体高、他の人はこちらも検索、の7種類。性格をクリックしてみた。
ラブラドール・レトリバー > 性格
続けて体重。オスとメスじゃなくて、男性、女性と出るのがちょっと違和感がある。
でも、最近はペットショップで「エサ」と呼ばずに「食べ物」と言うようになって
いると聞いたので、そんな時代なのかもしれない。
ラブラドール・レトリバー > 体重
寿命をクリックしてみた。ゴールデン・レトリバーとかジャーマンシェパードの
寿命も出てくる。
ラブラドール・レトリバー > 寿命
他にも色々やってみた。化学式が出るみたいだけど、数字は大きいままでわかり
辛いし、構成図も出てこない。ちょっと残念。
アスパルテーム > 化学式
「日本 国民総生産」とか、「横浜市 現在の天気」とか見ていたけど、そろそろ
飽きてきた。
■ 6/14
探し物をしていたら、新品のビデオカードが出て来た。IBM / Number9 製で、
チップは S3 の Savage4 16MB が載っている。対応は APG スロットで、切り欠きを
確認すると、3.3V の電圧。DVI の出力が付いていて、袋の中には DVI-RGB の
変換コネクタも入っていた。AGP なので、今さら使うことも無さそうだし、でも
新品なので捨てるのもちょっともったいないし、どうしたものかな。少し考えて
見つけた場所にそっと戻しておいた。
■ 6/15
LCC の Scoot から eメールがやってきた。販促メールなのは良いとして、その
内容がちょっと。
今年の海外旅行は新機材のLCCスクートで
新機材というか「機材」って言葉は、航空業界の業界用語だと思うんだよね。
辞書で調べても、材料という言葉が付いて出るし。だから、新機材と言われると、
新しいジュラルミンとかで作ったようなイメージをしてしまうと言うか。意味は
わかるけど、こんな当たり前に使うのにはどうかと思う。
■ 6/16
すっかり Google 検索で遊んでしまって、放置していた LIVA の続き。起動すると
sshd が起動するので、置いている場所を変更する。いつまでも、机の片隅を占領
していても邪魔なので。キーボードと HDMI のコネクタを抜いて、PC の上に移動
して電源ボタンを押した。起動しない。電源を一度切って、キーボードを挿して
みるがやっぱり起動しない。HDMI のケーブルを繋いでやっと起動した。どうも、
キーボードは繋がなくても大丈夫だけど、モニタは繋げないと駄目みたい。少し
面倒だな。ダミーの RGB というか D-sub 15 ピンのコネクタか、HDMI コネクタが
必要みたい。少し web で検索してみると、Mac mini で必要としているシーンが
あるらしく、海外製のダミー HDMI が売られている。しかし、3000円とかして
高くて手が出ない。D-sub 15 ピンの方なら自作して200円ぐらいで収まりそう。
安全性を考えなければ、抵抗器1本で済むので数円というところ。家に抵抗器が
ないか調べてみたけど無いので、今度実家に行ったときに探してみよう。
■ 6/17
LIVA の CentOS 7 Kernel の作り直し。どこまで何をやったか覚えてないので、
一旦全て消してしまう。
[toyota@mygeeto ~]$ cd /tmp
[toyota@mygeeto tmp]$ rm -rf kernel
[toyota@mygeeto tmp]$ mkdir kernel
[toyota@mygeeto tmp]$ cd kernel/
[toyota@mygeeto kernel]$ rpm2cpio ../kernel-devel-3.10.0-229.el7.x86_64.rpm | c
pio -id
70473 blocks
別ディレクトリを作成して kernel の src.rpm を展開する。最近 cpio って、
rpm2cpio と一緒にしか使わないな。
[toyota@mygeeto kernel]$ cd /tmp
[toyota@mygeeto tmp]$ mkdir kernel_src
[toyota@mygeeto tmp]$ cd kernel_src/
[toyota@mygeeto kernel_src]$ rpm2cpio ../kernel-3.10.0-229.el7.src.rpm |cpio -i
d
158639 blocks
[toyota@mygeeto kernel_src]$ ls
Makefile.common kernel-3.10.0-ppc64.config
Module.kabi_ppc64 kernel-3.10.0-ppc64le-debug.config
Module.kabi_ppc64le kernel-3.10.0-ppc64le.config
Module.kabi_s390x kernel-3.10.0-s390x-debug.config
Module.kabi_x86_64 kernel-3.10.0-s390x-kdump.config
centos-kpatch.x509 kernel-3.10.0-s390x.config
centos-ldup.x509 kernel-3.10.0-x86_64-debug.config
centos.cer kernel-3.10.0-x86_64.config
check-kabi kernel-abi-whitelists.tar.bz2
cpupower.config kernel.spec
cpupower.service linux-3.10.0-229.el7.tar.xz
debrand-rh-i686-cpu.patch linux-kernel-test.patch
debrand-rh_taint.patch secureboot.cer
debrand-single-cpu.patch sign-modules
extra_certificates x509.genkey
kernel-3.10.0-ppc64-debug.config
前回はこのへんまでやった気がする。まず、kernel を分解してコンパイルする
ことになったら、tmpfs というかメモリは swap してしまうか確認。解凍して
みた。
[toyota@mygeeto kernel_src]$ tar xfJ linux-3.10.0-229.el7.tar.xz
[toyota@mygeeto kernel_src]$ du -s -k linux-3.10.0-229.el7
613244 linux-3.10.0-229.el7
[toyota@mygeeto kernel_src]$ cat /proc/meminfo | head -10
MemTotal: 1935460 kB
MemFree: 481144 kB
MemAvailable: 1611824 kB
Buffers: 92892 kB
Cached: 1058468 kB
SwapCached: 0 kB
Active: 674748 kB
Inactive: 554560 kB
Active(anon): 78156 kB
Inactive(anon): 8480 kB
たいぶ食い尽くしてるな。コンパイルしたら、足りなくなって swap しそう。
一旦削除する。この src.rpm を build するには rpmbuild で patch を当てたり
するらしい。man rpmbuild したら出てこない。確認。
[toyota@mygeeto kernel_src]$ ls {,/usr}/{,s}bin/rpm*
ls: cannot access /sbin/rpm*: No such file or directory
ls: cannot access /usr/sbin/rpm*: No such file or directory
/bin/rpm /bin/rpmkeys /usr/bin/rpm /usr/bin/rpmkeys
/bin/rpm2cpio /bin/rpmquery /usr/bin/rpm2cpio /usr/bin/rpmquery
/bin/rpmdb /bin/rpmverify /usr/bin/rpmdb /usr/bin/rpmverify
そっからみたい。source からコンパイルしようと思ったが、このへんぐらいは
rpm で入れてしまおうと。
[toyota@mygeeto tmp]$ cd /tmp
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/rpm-build-4.11.1-25.el7.x86_64.rpm
[toyota@mygeeto tmp]$ su
Password:
[root@mygeeto tmp]# rpm -i rpm-build-4.11.1-25.el7.x86_64.rpm
warning: rpm-build-4.11.1-25.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, ke
y ID f4a80eb5: NOKEY
error: Failed dependencies:
patch >= 2.5 is needed by rpm-build-4.11.1-25.el7.x86_64
perl(Thread::Queue) is needed by rpm-build-4.11.1-25.el7.x86_64
system-rpm-config is needed by rpm-build-4.11.1-25.el7.x86_64
[root@mygeeto tmp]# exit
exit
先が長そうな感じがしてきた。まず patch と、patchutils をダウンロードして
きた。
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/patch-2.7.1-8.el7.x86_64.rpm
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/patchutils-0.3.3-4.el7.x86_64.rpm
Perl が入っているかの確認。さすがに入ってた。今日の嫌な予感は当たらない
方向みたい。
[toyota@mygeeto tmp]$ perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-threa
d-multi
(with 28 registered patches, see perl -V for more detail)
Copyright 1987-2012, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
続けて Perl の Thread Queue モジュールと rpm-config のダウンロードをして、
インストールしてみた。
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/perl-Thread-Queue-3.02-2.el7.noarch.rpm
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/redhat-rpm-config-9.1.0-68.el7.centos.noarch.rpm
[toyota@mygeeto tmp]$ su
Password:
[root@mygeeto tmp]# rpm -i redhat-rpm-config-9.1.0-68.el7.centos.noarch.rpm
warning: redhat-rpm-config-9.1.0-68.el7.centos.noarch.rpm: Header V3 RSA/SHA256
Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:
dwz >= 0.4 is needed by redhat-rpm-config-9.1.0-68.el7.centos.noarch
perl-srpm-macros is needed by redhat-rpm-config-9.1.0-68.el7.centos.noa
rch
まだ足りないみたい。せっかく root なので、インストールできるかどうかは
わからないが、他の rpm もインストールしてみた。他は大丈夫そう。
[root@mygeeto tmp]# rpm -i perl-Thread-Queue-3.02-2.el7.noarch.rpm
warning: perl-Thread-Queue-3.02-2.el7.noarch.rpm: Header V3 RSA/SHA256 Signatur
e, key ID f4a80eb5: NOKEY
[root@mygeeto tmp]# rpm -i patch-2.7.1-8.el7.x86_64.rpm
warning: patch-2.7.1-8.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f
4a80eb5: NOKEY
[root@mygeeto tmp]# rpm -i patchutils-0.3.3-4.el7.x86_64.rpm
warning: patchutils-0.3.3-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key
ID f4a80eb5: NOKEY
[root@mygeeto tmp]# exit
exit
redhat-rpm-config に必要な dwz と perl-srpm-macros を入れる。dwz って、
DWARF optimization and duplicate removal tool なんだって。
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/dwz-0.11-3.el7.x86_64.rpm
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/perl-srpm-macros-1-8.el7.noarch.rpm
[toyota@mygeeto tmp]$ su
Password:
[root@mygeeto tmp]# rpm -i dwz-0.11-3.el7.x86_64.rpm
warning: dwz-0.11-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a8
0eb5: NOKEY
[root@mygeeto tmp]# rpm -i perl-srpm-macros-1-8.el7.noarch.rpm
warning: perl-srpm-macros-1-8.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, k
ey ID f4a80eb5: NOKEY
[root@mygeeto tmp]# rpm -i redhat-rpm-config-9.1.0-68.el7.centos.noarch.rpm
warning: redhat-rpm-config-9.1.0-68.el7.centos.noarch.rpm: Header V3 RSA/SHA256
Signature, key ID f4a80eb5: NOKEY
[root@mygeeto tmp]# rpm -i rpm-build-4.11.1-25.el7.x86_64.rpm
warning: rpm-build-4.11.1-25.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, ke
y ID f4a80eb5: NOKEY
[root@mygeeto tmp]# exit
exit
これで rpmbuild が入っているかの確認をしてみる。/bin と /usr/bin に2つ
あるのは、ハードリンクしている。
[toyota@mygeeto kernel_src]$ ls {,/usr}/{,s}bin/rpm*
ls: cannot access /sbin/rpm*: No such file or directory
ls: cannot access /usr/sbin/rpm*: No such file or directory
/bin/rpm /bin/rpmkeys /usr/bin/rpm /usr/bin/rpmkeys
/bin/rpm2cpio /bin/rpmquery /usr/bin/rpm2cpio /usr/bin/rpmquery
/bin/rpmbuild /bin/rpmspec /usr/bin/rpmbuild /usr/bin/rpmspec
/bin/rpmdb /bin/rpmverify /usr/bin/rpmdb /usr/bin/rpmverify
ここまでくると、何やってたんだっけ?となってしまう。眠くなってきたので、
続きは明日。
■ 6/18
rpmbuild が入ったので実行してみる。/tmp/kernel_src に src.rpm を分解した
ので、そこで実行。
[toyota@mygeeto kernel_src]$ rpmbuild -bp kernel.spec
error: File /home/toyota/rpmbuild/SOURCES/linux-3.10.0-229.el7.tar.xz: No such
file or directory
/home/toyota/rpmbuild/SOURCES を探しにいってしまう。このへんは、rpm コマンド
なんかで決まっているみたい。確認すると、$HOME/rpmbuild 以下に色々と探しに
行くみたいな設定。
[toyota@mygeeto kernel_src]$ rpm --showrc |grep SOURCES
-14: _sourcedir %{_topdir}/SOURCES
[toyota@mygeeto kernel_src]$ rpm --showrc |grep topdir
-14: _builddir %{_topdir}/BUILD
-14: _buildrootdir %{_topdir}/BUILDROOT
-14: _rpmdir %{_topdir}/RPMS
-14: _sourcedir %{_topdir}/SOURCES
-14: _specdir %{_topdir}/SPECS
-14: _srcrpmdir %{_topdir}/SRPMS
-14: _topdir %{getenv:HOME}/rpmbuild
_topdir を変えてしまおうかと思ったが、他にもいくつかディレクトリを作る
必要があるし、ここはシンボリックリンクで誤魔化すことにした。
[toyota@mygeeto kernel_src]$ cd /tmp
[toyota@mygeeto tmp]$ rm -rf kernel_src
[toyota@mygeeto tmp]$ mkdir rpmbuild
[toyota@mygeeto tmp]$ ln -s /tmp/rpmbuild ~/rpmbuild
[toyota@mygeeto tmp]$ cd rpmbuild/
[toyota@mygeeto rpmbuild]$ mkdir BUILD
[toyota@mygeeto rpmbuild]$ mkdir RPMS
[toyota@mygeeto rpmbuild]$ mkdir SOURCES
[toyota@mygeeto rpmbuild]$ mkdir SPECS
[toyota@mygeeto rpmbuild]$ mkdir SRPMS
src.rpm の展開も、rpm でインストールすると作ったディレクトリ配下にいく
ようなので、rpm コマンドを使ってみた。
[toyota@mygeeto rpmbuild]$ cd /tmp
[toyota@mygeeto tmp]$ rpm -i kernel-3.10.0-229.el7.src.rpm
warning: kernel-3.10.0-229.el7.src.rpm: Header V3 RSA/SHA256 Signature, key ID
f4a80eb5: NOKEY
warning: user builder does not exist - using root
warning: group builder does not exist - using root
~snip~
[toyota@mygeeto tmp]$ find ./rpmbuild/
./rpmbuild/
./rpmbuild/SOURCES
./rpmbuild/SOURCES/kernel-3.10.0-s390x-debug.config
./rpmbuild/SOURCES/kernel-3.10.0-x86_64-debug.config
./rpmbuild/SOURCES/Makefile.common
./rpmbuild/SOURCES/kernel-3.10.0-ppc64-debug.config
./rpmbuild/SOURCES/check-kabi
./rpmbuild/SOURCES/Module.kabi_x86_64
./rpmbuild/SOURCES/kernel-abi-whitelists.tar.bz2
./rpmbuild/SOURCES/Module.kabi_ppc64
./rpmbuild/SOURCES/kernel-3.10.0-ppc64le.config
./rpmbuild/SOURCES/kernel-3.10.0-s390x-kdump.config
./rpmbuild/SOURCES/secureboot.cer
./rpmbuild/SOURCES/kernel-3.10.0-s390x.config
./rpmbuild/SOURCES/linux-kernel-test.patch
./rpmbuild/SOURCES/cpupower.config
./rpmbuild/SOURCES/cpupower.service
./rpmbuild/SOURCES/Module.kabi_s390x
./rpmbuild/SOURCES/extra_certificates
./rpmbuild/SOURCES/centos.cer
./rpmbuild/SOURCES/debrand-rh-i686-cpu.patch
./rpmbuild/SOURCES/kernel-3.10.0-ppc64.config
./rpmbuild/SOURCES/x509.genkey
./rpmbuild/SOURCES/centos-kpatch.x509
./rpmbuild/SOURCES/debrand-single-cpu.patch
./rpmbuild/SOURCES/debrand-rh_taint.patch
./rpmbuild/SOURCES/sign-modules
./rpmbuild/SOURCES/centos-ldup.x509
./rpmbuild/SOURCES/linux-3.10.0-229.el7.tar.xz
./rpmbuild/SOURCES/kernel-3.10.0-x86_64.config
./rpmbuild/SOURCES/kernel-3.10.0-ppc64le-debug.config
./rpmbuild/SOURCES/Module.kabi_ppc64le
./rpmbuild/RPMS
./rpmbuild/SPECS
./rpmbuild/SPECS/kernel.spec
./rpmbuild/SRPMS
./rpmbuild/BUILD
こんな感じで展開されるのか。やっと rpmbuild を実行できるようになった。
実行してみたら、とんでもない感じに。
[toyota@mygeeto SPECS]$ rpmbuild -bp kernel.spec
error: Failed build dependencies:
m4 is needed by kernel-3.10.0-229.el7.centos.x86_64
xmlto is needed by kernel-3.10.0-229.el7.centos.x86_64
asciidoc is needed by kernel-3.10.0-229.el7.centos.x86_64
hmaccalc is needed by kernel-3.10.0-229.el7.centos.x86_64
python-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
newt-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
perl(ExtUtils::Embed) is needed by kernel-3.10.0-229.el7.centos.x86_64
pesign >= 0.109-4 is needed by kernel-3.10.0-229.el7.centos.x86_64
elfutils-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
zlib-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
binutils-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
bison is needed by kernel-3.10.0-229.el7.centos.x86_64
audit-libs-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
numactl-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
pciutils-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
ncurses-devel is needed by kernel-3.10.0-229.el7.centos.x86_64
1つ1つ入れていくしかないな。これまで rpm ファイルを手元にダウンロードして
確認してから rpm コマンドでインストールしていたが、多いので rpm コマンドで
直接 URL を入れてインストールすることに。
[toyota@mygeeto SPECS]$ su
Password:
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/m4-1.4.16-9.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.K1IV1Y: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/xmlto-0.0.25-7.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.hpEObS: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
error: Failed dependencies:
docbook-dtds is needed by xmlto-0.0.25-7.el7.x86_64
docbook-xsl >= 1.74.2 is needed by xmlto-0.0.25-7.el7.x86_64
flex is needed by xmlto-0.0.25-7.el7.x86_64
libxslt is needed by xmlto-0.0.25-7.el7.x86_64
text-www-browser is needed by xmlto-0.0.25-7.el7.x86_64
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/docbook-dtds-1.0-60.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.BCjYqF: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
error: Failed dependencies:
sgml-common is needed by docbook-dtds-1.0-60.el7.noarch
xml-common is needed by docbook-dtds-1.0-60.el7.noarch
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/sgml-common-0.6.3-39.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.QuIMiV: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/xml-common-0.6.3-39.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.KLexNB: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/docbook-dtds-1.0-60.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.aR9Mfy: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/docbook-style-xsl-1.78.1-3.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.Gn5bXF: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/flex-2.5.37-3.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.qtnpYJ: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/libxslt-1.1.28-5.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.RrshlL: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/lynx-2.8.8-0.3.dev15.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.AejjLq: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/xmlto-0.0.25-7.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.iusezA: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/asciidoc-8.6.8-5.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.oanjwt: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
error: Failed dependencies:
graphviz is needed by asciidoc-8.6.8-5.el7.noarch
source-highlight is needed by asciidoc-8.6.8-5.el7.noarch
[root@mygeeto SPECS]# rpm -i http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_6
4/Packages/graphviz-2.30.1-19.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.W0Igel: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
error: Failed dependencies:
libICE.so.6()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libSM.so.6()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libXaw.so.7()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libXext.so.6()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libXmu.so.6()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libXpm.so.4()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libXrender.so.1()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libXt.so.6()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libatk-1.0.so.0()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libcairo.so.2()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libfontconfig.so.1()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libgd.so.2()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libgdk-x11-2.0.so.0()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libgs.so.9()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libgtk-x11-2.0.so.0()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libltdl.so.7()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libpango-1.0.so.0()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
libpangocairo-1.0.so.0()(64bit) is needed by graphviz-2.30.1-19.el7.x86
_64
libpangoft2-1.0.so.0()(64bit) is needed by graphviz-2.30.1-19.el7.x86_6
4
librsvg-2.so.2()(64bit) is needed by graphviz-2.30.1-19.el7.x86_64
urw-fonts is needed by graphviz-2.30.1-19.el7.x86_64
果てしなくなってきた。yum でも使おうかと真剣に思ってきた。続きは明日。
■ 6/19
昨日の続き。昨日分も含めて、以下の感じになった。人々が yum を使うのも納得
してきた。
# rpm -i m4-1.4.16-9.el7.x86_64.rpm
# rpm -i sgml-common-0.6.3-39.el7.noarch.rpm
# rpm -i xml-common-0.6.3-39.el7.noarch.rpm
# rpm -i docbook-dtds-1.0-60.el7.noarch.rpm
# rpm -i docbook5-style-xsl-1.78.1-4.el7.noarch.rpm
# rpm -i flex-2.5.37-3.el7.x86_64.rpm
# rpm -i libxslt-1.1.28-5.el7.x86_64.rpm
# rpm -i lynx-2.8.8-0.3.dev15.el7.x86_64.rpm
# rpm -i xmlto-0.0.25-7.el7.x86_64.rpm
# rpm -i libICE-1.0.8-7.el7.x86_64.rpm
# rpm -i libSM-1.2.1-7.el7.x86_64.rpm
# rpm -i libXext-1.3.2-2.1.el7.x86_64.rpm
# rpm -i libXt-1.1.4-6.1.el7.x86_64.rpm
# rpm -i libXmu-1.1.1-5.1.el7.x86_64.rpm
# rpm -i libXpm-3.5.10-5.1.el7.x86_64.rpm
# rpm -i libXaw-1.0.11-6.1.el7.x86_64.rpm
# rpm -i libXrender-0.9.8-2.1.el7.x86_64.rpm
# rpm -i atk-2.8.0-4.el7.x86_64.rpm
# rpm -i mesa-libglapi-10.2.7-5.20140910.el7.x86_64.rpm
# rpm -i mesa-libgbm-10.2.7-5.20140910.el7.x86_64.rpm
# rpm -i mesa-libEGL-10.2.7-5.20140910.el7.x86_64.rpm
# rpm -i libXfixes-5.0.1-2.1.el7.x86_64.rpm
# rpm -i libXdamage-1.1.4-4.1.el7.x86_64.rpm
# rpm -i libXxf86vm-1.1.3-2.1.el7.x86_64.rpm
# rpm -i mesa-libGL-10.2.7-5.20140910.el7.x86_64.rpm
# rpm -i fontpackages-filesystem-1.44-8.el7.noarch.rpm
# rpm -i fontconfig-2.10.95-7.el7.x86_64.rpm
# rpm -i pixman-0.32.4-3.el7.x86_64.rpm
# rpm -i cairo-1.12.14-6.el7.x86_64.rpm
# rpm -i gd-2.0.35-26.el7.x86_64.rpm
# rpm -i hicolor-icon-theme-0.12-7.el7.noarch.rpm
# rpm -i libXcomposite-0.4.4-4.1.el7.x86_64.rpm
# rpm -i libXcursor-1.1.14-2.1.el7.x86_64.rpm
# rpm -i libXi-1.7.2-2.1.el7.x86_64.rpm
# rpm -i libXinerama-1.1.3-2.1.el7.x86_64.rpm
# rpm -i libXrandr-1.4.1-2.1.el7.x86_64.rpm
# rpm -i libXft-2.3.1-5.1.el7.x86_64.rpm
# rpm -i graphite2-1.2.2-5.el7.x86_64.rpm
# rpm -i libthai-0.1.14-9.el7.x86_64.rpm
# rpm -i harfbuzz-0.9.20-4.el7.x86_64.rpm
# rpm -i pango-1.34.1-5.el7.x86_64.rpm
# rpm -i cups-libs-1.6.3-17.el7.x86_64.rpm
# rpm -i gtk2-2.24.22-5.el7_0.1.x86_64.rpm
# rpm -i libfontenc-1.1.1-5.el7.x86_64.rpm
# rpm -i libXfont-1.4.7-2.el7_0.x86_64.rpm
# rpm -i xorg-x11-font-utils-7.5-18.1.el7.x86_64.rpm
# rpm -i ghostscript-fonts-5.50-32.el7.noarch.rpm
# rpm -i lcms2-2.5-4.el7.x86_64.rpm
# rpm -i openjpeg-libs-1.5.1-10.el7.x86_64.rpm
# rpm -i poppler-data-0.4.6-3.el7.noarch.rpm
# rpm -i urw-fonts-2.4-16.el7.noarch.rpm
# rpm -i ghostscript-9.07-18.el7.x86_64.rpm
# rpm -i libtool-ltdl-2.4.2-20.el7.x86_64.rpm
# rpm -i librsvg2-2.39.0-1.el7.x86_64.rpm
# rpm -i graphviz-2.30.1-19.el7.x86_64.rpm
# rpm -i ctags-5.8-13.el7.x86_64.rpm
# rpm -i libicu-50.1.2-11.el7.x86_64.rpm
# rpm -i boost-regex-1.53.0-23.el7.x86_64.rpm
# rpm -i source-highlight-3.1.6-6.el7.x86_64.rpm
# rpm -i asciidoc-8.6.8-5.el7.noarch.rpm
# rpm -i hmaccalc-0.9.13-4.el7.x86_64.rpm
# rpm -i python-devel-2.7.5-16.el7.x86_64.rpm
# rpm -i slang-devel-2.2.4-11.el7.x86_64.rpm
# rpm -i newt-devel-0.52.15-4.el7.x86_64.rpm
# rpm -i gdbm-devel-1.10-8.el7.x86_64.rpm
# rpm -i libdb-devel-5.3.21-17.el7_0.1.x86_64.rpm
# rpm -i perl-Test-Harness-3.28-2.el7.noarch.rpm
# rpm -i perl-ExtUtils-Manifest-1.61-244.el7.noarch.rpm
# rpm -i pyparsing-1.5.6-9.el7.noarch.rpm
# rpm -i systemtap-sdt-devel-2.6-8.el7.x86_64.rpm
# rpm -i perl-ExtUtils-ParseXS-3.18-2.el7.noarch.rpm perl-ExtUtils-Install-1.58
-285.el7.noarch.rpm perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm perl-devel-5.
16.3-285.el7.x86_64.rpm
# rpm -i perl-ExtUtils-Embed-1.30-285.el7.noarch.rpm
# rpm -i pcsc-lite-libs-1.8.8-5.el7.x86_64.rpm
# rpm -i pcsc-lite-ccid-1.4.10-7.el7.x86_64.rpm pcsc-lite-1.8.8-5.el7.x86_64.rp
m
# rpm -i coolkey-1.1.0-28.el7.x86_64.rpm
# rpm -i opensc-0.13.0-9.el7.x86_64.rpm
# rpm -i pesign-0.109-9.el7.x86_64.rpm
# rpm -i elfutils-libelf-devel-0.160-1.el7.x86_64.rpm
# rpm -i elfutils-devel-0.160-1.el7.x86_64.rpm
# rpm -i zlib-devel-1.2.7-13.el7.x86_64.rpm
# rpm -i binutils-devel-2.23.52.0.1-30.el7.x86_64.rpm
# rpm -i bison-2.7-4.el7.x86_64.rpm
# rpm -i audit-libs-devel-2.4.1-5.el7.x86_64.rpm
# rpm -i numactl-devel-2.0.9-4.el7.x86_64.rpm
# rpm -i pciutils-devel-3.2.1-4.el7.x86_64.rpm
# rpm -i ncurses-devel-5.9-13.20130511.el7.x86_64.rpm
少し悩んだところを。xmlto で text-www-browser が必要と出た。w3m を入れようと
したら、package に無いので lynx を入れた。perl-devel 周りは、お互いに依存性が
あって、同時にいれないといけなかったので、4つ同時にインストール。pcsc-lite
のところでは2つ同時に入れた。他に、不足と出てきたもので、パッケージの名前と
違っていたものを、下にメモしておく。
docbook-xsl -> docbook-style-xsl
text-www-browser -> lynx-2.8.8
libatk-1.0.so.0()(64bit) -> atk-2.8.0
libglapi.so.0()(64bit) -> mesa-libglapi-10.2.7
libgbm.so.1()(64bit) -> mesa-libgbm-10.2.7
libEGL.so.1()(64bit) -> mesa-libEGL-10.2.7
libGL.so.1()(64bit) -> mesa-libGL-10.2.7
libfontconfig.so.1()(64bit) -> fontconfig-2.10.95
libcairo.so.2()(64bit) -> cairo-1.12.14
libpixman-1.so.0()(64bit) -> pixman-0.32.4
libgd.so.2()(64bit) -> gd-2.0.35
libgraphite2.so.3()(64bit) -> graphite2-1.2.2
libharfbuzz.so.0()(64bit) -> harfbuzz-0.9.20
libcups.so.2()(64bit) -> cups-libs-1.6.3
libgdk-x11-2.0.so.0()(64bit) -> gtk2-2.24.22
liblcms2.so.2()(64bit) -> lcms2-2.5
libopenjpeg.so.1()(64bit) -> openjpeg-libs-1.5.1
libltdl.so.7()(64bit) -> libtool-ltdl-2.4.2
libicudata.so.50()(64bit) -> libicu-50.1.2
libicui18n.so.50()(64bit) -> libicu-50.1.2
libicuuc.so.50()(64bit) -> libicu-50.1.2
libboost_regex.so.1.53.0()(64bit) -> boost-regex-1.53.0
ccid -> pcsc-lite-ccid-1.4.10-7
一度、間違えて i686 用のパッケージをインストールしてしまい、えらい数の
依存不足のエラーが出て来た。こんな感じ。
# rpm -i gtk2-2.24.22-5.el7_0.1.i686.rpm
warning: /var/tmp/rpm-tmp.rdmJGb: Header V3 RSA/SHA256 Signature, key ID f4a80e
b5: NOKEY
error: Failed dependencies:
libX11.so.6 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXcomposite.so.1 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXcursor.so.1 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXdamage.so.1 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXext.so.6 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXfixes.so.3 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXi.so.6 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXinerama.so.1 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXrandr.so.2 is needed by gtk2-2.24.22-5.el7_0.1.i686
libXrender.so.1 is needed by gtk2-2.24.22-5.el7_0.1.i686
libatk-1.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6 is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.0) is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.1) is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.1.3) is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.2) is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.3) is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.3.3) is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.3.4) is needed by gtk2-2.24.22-5.el7_0.1.i686
libc.so.6(GLIBC_2.4) is needed by gtk2-2.24.22-5.el7_0.1.i686
libcairo.so.2 is needed by gtk2-2.24.22-5.el7_0.1.i686
libcups.so.2 is needed by gtk2-2.24.22-5.el7_0.1.i686
libfontconfig.so.1 is needed by gtk2-2.24.22-5.el7_0.1.i686
libfreetype.so.6 is needed by gtk2-2.24.22-5.el7_0.1.i686
libgdk_pixbuf-2.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libgio-2.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libglib-2.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libgmodule-2.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libgobject-2.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libm.so.6 is needed by gtk2-2.24.22-5.el7_0.1.i686
libm.so.6(GLIBC_2.0) is needed by gtk2-2.24.22-5.el7_0.1.i686
libm.so.6(GLIBC_2.1) is needed by gtk2-2.24.22-5.el7_0.1.i686
libpango-1.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libpangocairo-1.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libpangoft2-1.0.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libpthread.so.0 is needed by gtk2-2.24.22-5.el7_0.1.i686
libpthread.so.0(GLIBC_2.0) is needed by gtk2-2.24.22-5.el7_0.1.i686
気になったのはこのぐらいかな。多分、これで kernel の rpmbuild ができると
思うので、明日やってみる。
■ 6/20
昨日、一昨日とだいぶ package を入れたので、どのぐらい容量が増えたのかと
確認してみた。
[toyota@mygeeto tmp]$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mmcblk0p4 55526788 1565036 51141096 3% /
devtmpfs 958984 0 958984 0% /dev
tmpfs 967728 0 967728 0% /dev/shm
tmpfs 967728 8656 959072 1% /run
tmpfs 967728 0 967728 0% /sys/fs/cgroup
/dev/mmcblk0p2 495844 87166 383078 19% /boot
/dev/mmcblk0p1 204580 9992 194588 5% /boot/efi
500MB ぐらい増えたな。まだまだ余裕があるので、気にするほどでもないけど。
rpmbuild を実行してみる。src.rpm から kernel を make するのは、10年以上
振りな気がする。
[toyota@mygeeto ~]$ cd /tmp/rpmbuild/SPECS/
[toyota@mygeeto SPECS]$ rpmbuild -bp kernel.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.MtETWQ
+ umask 022
+ cd /home/toyota/rpmbuild/BUILD
+ patch_command='patch -p1 -F1 -s'
+ cd /home/toyota/rpmbuild/BUILD
+ rm -rf kernel-3.10.0-229.el7
+ /usr/bin/mkdir -p kernel-3.10.0-229.el7
+ cd kernel-3.10.0-229.el7
+ /usr/bin/xz -dc /home/toyota/rpmbuild/SOURCES/linux-3.10.0-229.el7.tar.xz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ mv linux-3.10.0-229.el7 linux-3.10.0-229.el7.centos.x86_64
+ cd linux-3.10.0-229.el7.centos.x86_64
+ cp /home/toyota/rpmbuild/SOURCES/kernel-3.10.0-ppc64-debug.config /home/toyot
a/rpmbuild/SOURCES/kernel-3.10.0-ppc64.config /home/toyota/rpmbuild/SOURCES/ker
nel-3.10.0-ppc64le-debug.config /home/toyota/rpmbuild/SOURCES/kernel-3.10.0-ppc
64le.config /home/toyota/rpmbuild/SOURCES/kernel-3.10.0-s390x-debug.config /hom
e/toyota/rpmbuild/SOURCES/kernel-3.10.0-s390x-kdump.config /home/toyota/rpmbuil
d/SOURCES/kernel-3.10.0-s390x.config /home/toyota/rpmbuild/SOURCES/kernel-3.10.
0-x86_64-debug.config /home/toyota/rpmbuild/SOURCES/kernel-3.10.0-x86_64.config
.
+ ApplyOptionalPatch debrand-rh_taint.patch
+ local patch=debrand-rh_taint.patch
+ shift
+ '[' '!' -f /home/toyota/rpmbuild/SOURCES/debrand-rh_taint.patch ']'
++ wc -l /home/toyota/rpmbuild/SOURCES/debrand-rh_taint.patch
++ awk '{print $1}'
+ local C=25
+ '[' 25 -gt 9 ']'
+ ApplyPatch debrand-rh_taint.patch
+ local patch=debrand-rh_taint.patch
+ shift
+ '[' '!' -f /home/toyota/rpmbuild/SOURCES/debrand-rh_taint.patch ']'
Patch1001: debrand-rh_taint.patch
+ case "$patch" in
+ patch -p1 -F1 -s
+ ApplyOptionalPatch debrand-single-cpu.patch
+ local patch=debrand-single-cpu.patch
+ shift
+ '[' '!' -f /home/toyota/rpmbuild/SOURCES/debrand-single-cpu.patch ']'
++ wc -l /home/toyota/rpmbuild/SOURCES/debrand-single-cpu.patch
++ awk '{print $1}'
+ local C=25
+ '[' 25 -gt 9 ']'
+ ApplyPatch debrand-single-cpu.patch
+ local patch=debrand-single-cpu.patch
+ shift
+ '[' '!' -f /home/toyota/rpmbuild/SOURCES/debrand-single-cpu.patch ']'
Patch1000: debrand-single-cpu.patch
+ case "$patch" in
+ patch -p1 -F1 -s
+ ApplyOptionalPatch debrand-rh-i686-cpu.patch
+ local patch=debrand-rh-i686-cpu.patch
+ shift
+ '[' '!' -f /home/toyota/rpmbuild/SOURCES/debrand-rh-i686-cpu.patch ']'
++ wc -l /home/toyota/rpmbuild/SOURCES/debrand-rh-i686-cpu.patch
++ awk '{print $1}'
+ local C=11
+ '[' 11 -gt 9 ']'
+ ApplyPatch debrand-rh-i686-cpu.patch
+ local patch=debrand-rh-i686-cpu.patch
+ shift
+ '[' '!' -f /home/toyota/rpmbuild/SOURCES/debrand-rh-i686-cpu.patch ']'
Patch1002: debrand-rh-i686-cpu.patch
+ case "$patch" in
+ patch -p1 -F1 -s
+ ApplyOptionalPatch linux-kernel-test.patch
+ local patch=linux-kernel-test.patch
+ shift
+ '[' '!' -f /home/toyota/rpmbuild/SOURCES/linux-kernel-test.patch ']'
++ wc -l /home/toyota/rpmbuild/SOURCES/linux-kernel-test.patch
++ awk '{print $1}'
+ local C=0
+ '[' 0 -gt 9 ']'
+ chmod +x scripts/checkpatch.pl
+ touch .scmversion
+ '[' -L configs ']'
+ rm -f configs
+ mkdir configs
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-ppc64-debug.config
+ '[' 0 -eq 0 ']'
+ rm -f kernel-3.10.0-ppc64-debug.config
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-ppc64.config
+ '[' 0 -eq 0 ']'
+ rm -f kernel-3.10.0-ppc64.config
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-ppc64le-debug.config
+ '[' 0 -eq 0 ']'
+ rm -f kernel-3.10.0-ppc64le-debug.config
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-ppc64le.config
+ '[' 0 -eq 0 ']'
+ rm -f kernel-3.10.0-ppc64le.config
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-s390x-debug.config
+ '[' 0 -eq 0 ']'
+ rm -f kernel-3.10.0-s390x-debug.config
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-s390x-kdump.config
+ '[' 0 -eq 0 ']'
+ rm -f kernel-3.10.0-s390x-kdump.config
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-s390x.config
+ '[' 0 -eq 0 ']'
+ rm -f kernel-3.10.0-s390x.config
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-x86_64-debug.config
+ '[' 1 -eq 0 ']'
+ for cfg in 'kernel-3.10.0-*.config'
++ echo kernel-3.10.0-x86_64-debug.config kernel-3.10.0-x86_64.config
++ grep -c kernel-3.10.0-x86_64.config
+ '[' 1 -eq 0 ']'
+ for i in '*.config'
+ mv kernel-3.10.0-x86_64-debug.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=x86_64
+ make ARCH=x86_64 listnewconfig
+ grep -E '^CONFIG_'
+ true
+ '[' -s .newoptions ']'
+ rm -f .newoptions
+ make ARCH=x86_64 oldnoconfig
scripts/kconfig/conf --olddefconfig Kconfig
#
# configuration written to .config
#
+ echo '# x86_64'
+ cat .config
+ for i in '*.config'
+ mv kernel-3.10.0-x86_64.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=x86_64
+ make ARCH=x86_64 listnewconfig
+ grep -E '^CONFIG_'
+ true
+ '[' -s .newoptions ']'
+ rm -f .newoptions
+ make ARCH=x86_64 oldnoconfig
scripts/kconfig/conf --olddefconfig Kconfig
#
# configuration written to .config
#
+ echo '# x86_64'
+ cat .config
+ find . '(' -name '*.orig' -o -name '*~' ')' -exec rm -f '{}' ';'
+ find . -name .gitignore -exec rm -f '{}' ';'
+ cd ..
+ exit 0
色々やってくれているけど、手動でできないこともなかったな。linux の kernel
を解凍したので、メモリの空きが心配。確認してみると、残り 300MB ぐらい。
make したら、足りなくなる気がする。このときぐらいは swap を使ってみるか。
[toyota@mygeeto SPECS]$ cat /proc/meminfo | head -10
MemTotal: 1935460 kB
MemFree: 315676 kB
MemAvailable: 1612316 kB
Buffers: 102796 kB
Cached: 1217580 kB
SwapCached: 0 kB
Active: 709136 kB
Inactive: 689476 kB
Active(anon): 78484 kB
Inactive(anon): 8440 kB
.config の確認をしてみると、/boot のものと同じものだったからこのまま使って
make oldconfig した。
[toyota@mygeeto SPECS]$ cd ../BUILD/kernel-3.10.0-229.el7/linux-3.10.0-229.el7.
centos.x86_64
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ diff /boot/config-3.10.0-2
29.el7.x86_64 .config
3c3
< # Linux/x86_64 3.10.0-229.el7.x86_64 Kernel Configuration
---
> # Linux/x86_64 3.10.0 Kernel Configuration
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ make oldconfig
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#
この状態で make してみる。別ウィンドウで /proc/meminfo を watch で実行
して、ときどき監視しながら。
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ time make
scripts/kconfig/conf --silentoldconfig Kconfig
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_32.h
SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_64_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_64.h
~snip~
長くなりそうなので、続きは明日。1晩以上かかかったら嫌だな。
■ 6/21
朝にはコンパイルが終わっていた。time の結果を見る限り、3時間近くかかった
ことになる。だいぶかかってるな。コンパイルして、10分後ぐらいに本体を触って
みたけど、特に熱くなる感じはなかった。
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ time make
scripts/kconfig/conf --silentoldconfig Kconfig
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_32.h
SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_64_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_64.h
~snip~
IHEX firmware/edgeport/down3.bin
IHEX2FW firmware/whiteheat_loader.fw
IHEX2FW firmware/whiteheat.fw
IHEX2FW firmware/keyspan_pda/keyspan_pda.fw
IHEX2FW firmware/keyspan_pda/xircom_pgs.fw
real 162m51.035s
user 152m4.233s
sys 17m40.552s
swap の状況は、寝る前ぐらいまでは 2.5MB ぐらい発生していた。そのぐらいなら
大丈夫かなと気にしてなかった。
[toyota@mygeeto etc]$ cat /proc/meminfo |head -16
MemTotal: 1935460 kB
MemFree: 103368 kB
MemAvailable: 1559348 kB
Buffers: 32552 kB
Cached: 1493372 kB
SwapCached: 140 kB
Active: 817188 kB
Inactive: 846660 kB
Active(anon): 57784 kB
Inactive(anon): 86176 kB
Active(file): 759404 kB
Inactive(file): 760484 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 3932156 kB
SwapFree: 3929500 kB
コンパイル終了した直後は、swap は 9MB ぐらいしていた。頻繁に発生するよう
だったら心配だけど、この swap の filesystem って使われるアドレスって決まって
いるものだろうか。
[toyota@mygeeto etc]$ cat /proc/meminfo |head -16
MemTotal: 1935460 kB
MemFree: 92324 kB
MemAvailable: 1632316 kB
Buffers: 29312 kB
Cached: 1585052 kB
SwapCached: 96 kB
Active: 801320 kB
Inactive: 886760 kB
Active(anon): 392 kB
Inactive(anon): 77764 kB
Active(file): 800928 kB
Inactive(file): 808996 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 3932156 kB
SwapFree: 3923108 kB
これで make menuconfig を実行してみる。えらい数のデバイスとかが出てきて、
調べたりするのに時間がかかった。USB も使わなくて良いので、削って削って、
make して放置してみた。
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ time make
scripts/kconfig/conf --silentoldconfig Kconfig
#
# configuration written to .config
#
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_32.h
~snip~
CC net/unix/unix_diag.mod.o
LD [M] net/unix/unix_diag.ko
CC net/xfrm/xfrm_ipcomp.mod.o
LD [M] net/xfrm/xfrm_ipcomp.ko
real 40m32.331s
user 38m33.936s
sys 4m59.020s
40分とだいぶ時間が短くなった。make する前に、CPU のクロックを表示させて
みたら、600MHz ぐらい。
[toyota@mygeeto ~]$ grep "cpu MHz" /proc/cpuinfo
cpu MHz : 599.984
cpu MHz : 599.984
make 中は 2.6GHz と最高速になっている。それでも、本体は特に熱くならない
ので、熱に関しては心配しなくても良いかも。
[toyota@mygeeto ~]$ grep "cpu MHz" /proc/cpuinfo
cpu MHz : 2600.179
cpu MHz : 2599.957
kernel 周りで必要なファイルを準備するけど、時代に取り残されてしまって、
調べないといけないことが多い。続きは明日。
■ 6/22
/boot にあるファイルを観察してみる。この中で良くわからないファイルが3つ
あって、1つ目は拡張子が .hmac のもの。2つ目が、symvers というファイル。
そして、最後の1つが initrd-plymouth.img というファイル。
[toyota@mygeeto ~]$ ls -a /boot
.
..
.vmlinuz-3.10.0-229.el7.x86_64.hmac
System.map-3.10.0-229.el7.x86_64
config-3.10.0-229.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-731e9da27b004a8286ca127141282749.img
initramfs-3.10.0-229.el7.x86_64.img
initrd-plymouth.img
lost+found
symvers-3.10.0-229.el7.x86_64.gz
vmlinuz-0-rescue-731e9da27b004a8286ca127141282749
vmlinuz-3.10.0-229.el7.x86_64
上のファイルから1つ1つ。.vmlinuz-3.10.0-229.el7.x86_64.hmac は、拡張子が
hmac なので、ファイルの正当性を確保するためのハッシュ値なのだろうけど、
HMAC は MD5 や SHA-1 などと違い、検証するもの以外に鍵が必要である。この
鍵はどこのものを使うのか、それとこのファイルの必要性も知りたい。
まず、このファイルについてちょっと調べると、dracut-fips というパッケージの
スクリプトが使っているようなので、分解してみ見てみた。
[toyota@mygeeto ~]$ cd /tmp
[toyota@mygeeto tmp]$ mkdir dracut-fips
[toyota@mygeeto tmp]$ cd dracut-fips/
[toyota@mygeeto dracut-fips]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7
/os/x86_64/Packages/dracut-fips-033-240.el7.x86_64.rpm
[toyota@mygeeto dracut-fips]$ rpm2cpio dracut-fips-033-240.el7.x86_64.rpm |cpio
-id
15 blocks
[toyota@mygeeto dracut-fips]$ cat usr/lib/dracut/modules.d/01fips/fips.sh
~snip~
else
sha512hmac -c "/boot/.vmlinuz-${KERNEL}.hmac" || return 1
fi
~snip~
なんだか sha512hmac と言うコマンドを単純に使っているだけのように見えた。
鍵とか考えなくて良いのかもと思い、man sha512hmac してみると。
-K text
Use the text of the argument as the secret key used in computing the HMAC val
ues. If no key file or text is specified, a hard-coded default value is used.
鍵を指定しないと、default のものが使われる。考え方としてアルゴリズム的に
鍵が必要だけど、そんなに重要ではないという使われ方なのかな。確認してみる。
[toyota@mygeeto ~]$ su
Password:
[root@mygeeto toyota]# cd /boot
[root@mygeeto boot]# cat .vmlinuz-3.10.0-229.el7.x86_64.hmac
1dab107beae80a3bc39fd57d756b2c2c9f61c1d54272a6a835d6676cb39cb390685e2d34b21f1e6
9b30c9911fc34b75aaac58157f2fb90b35fcf311bb07a099b /boot/vmlinuz-3.10.0-229.el7
.x86_64
[root@mygeeto boot]# sha512hmac vmlinuz-3.10.0-229.el7.x86_64
1dab107beae80a3bc39fd57d756b2c2c9f61c1d54272a6a835d6676cb39cb390685e2d34b21f1e6
9b30c9911fc34b75aaac58157f2fb90b35fcf311bb07a099b vmlinuz-3.10.0-229.el7.x86_6
4
あ、簡単に作成できた。この hmac ファイルは問題なくなった。
次、symvers-3.10.0-229.el7.x86_64.gz を確認。なんとなく、Module の正当性を
確認するようなものみたい。1300以上のモジュールがあるってことかな。かなりの
量があるんだな。
[root@mygeeto boot]# cd /tmp
[root@mygeeto tmp]# cp /boot/symvers-3.10.0-229.el7.x86_64.gz ./
[root@mygeeto tmp]# gunzip symvers-3.10.0-229.el7.x86_64.gz
[root@mygeeto tmp]# file symvers-3.10.0-229.el7.x86_64
symvers-3.10.0-229.el7.x86_64: ASCII text
[root@mygeeto tmp]# wc -l symvers-3.10.0-229.el7.x86_64
13451 symvers-3.10.0-229.el7.x86_64
[root@mygeeto tmp]# cat symvers-3.10.0-229.el7.x86_64
0x1660aa98 iscsi_host_add drivers/scsi/libiscsi EXPORT_SYMBOL_GPL
0xc47c22e8 mpt_deregister drivers/message/fusion/mptbase EXPORT_SYMBOL
0x81d024a8 tm6000_set_reg_mask drivers/media/usb/tm6000/tm6000 EXPORT_
SYMBOL_GPL
0x067bfbfd sata_pmp_error_handler drivers/ata/libata EXPORT_SYMBOL_GPL
~snip~
0x733e26b9 devm_remove_action vmlinux EXPORT_SYMBOL_GPL
0xc0fba65a generic_removexattr vmlinux EXPORT_SYMBOL
0xb4fd1b24 deactivate_super vmlinux EXPORT_SYMBOL
0xac41c6d8 vmap vmlinux EXPORT_SYMBOL
モジュールのドキュメントを見ると、頭16進数8桁は CRC とあった。kernel の
config で CONFIG_MODVERSIONS が有効だと使われるので、逆に無効にすると、
モジュールのロードが早くなりそう。BUILD のカーネルディレクトリ以下で検索
してみた。Modules.symvers というファイルが見つかったので、見てみた。
[toyota@mygeeto ~]$ cd /tmp/rpmbuild/BUILD/kernel-3.10.0-229.el7/linux-3.10.0-2
29.el7.centos.x86_64/
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ find ./ -name "*symvers*"
./Module.symvers
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ wc -l Module.symvers
6431 Module.symvers
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ cat Module.symvers
0x55417264 unregister_vt_notifier vmlinux EXPORT_SYMBOL_GPL
0xa658de88 generic_file_splice_write vmlinux EXPORT_SYMBOL
0x5783ca0e set_anon_super vmlinux EXPORT_SYMBOL
0x66bdd4e6 __cleancache_invalidate_page vmlinux EXPORT_SYMBOL
0x698e6a59 kmem_cache_alloc vmlinux EXPORT_SYMBOL
~snip~
0x3dc7f709 sk_filter vmlinux EXPORT_SYMBOL
0x13327391 devm_remove_action vmlinux EXPORT_SYMBOL_GPL
0x70717ad8 generic_removexattr vmlinux EXPORT_SYMBOL
0x10bbf677 deactivate_super vmlinux EXPORT_SYMBOL
0x37c25883 vmap vmlinux EXPORT_SYMBOL
このファイルを gzip で圧縮したら symvers-3.10.0-229.el7.x86_64.gz と同じ
ものができそう。make modules_install すれば勝手にやってくれそうな気もする。
残りの initrd-plymouth.img を見てみた。
[root@mygeeto /]# file /boot/initrd-plymouth.img
/boot/initrd-plymouth.img: gzip compressed data, from Unix, last modified: Mon
Jun 5 22:05:58 2015, max compression
[root@mygeeto /]# cp /boot/initrd-plymouth.img /tmp
[root@mygeeto /]# cd /tmp
[root@mygeeto tmp]# mv initrd-plymouth.img initrd-plymouth.img.gz
[root@mygeeto tmp]# gunzip initrd-plymouth.img.gz
[root@mygeeto tmp]# file initrd-plymouth.img
initrd-plymouth.img: ASCII cpio archive (SVR4 with no CRC)
[root@mygeeto tmp]# cpio -t < initrd-plymouth.img
.
lib64
sbin
bin
usr
usr/lib64
usr/lib64/libgcc_s.so.1
usr/lib64/librt-2.17.so
usr/lib64/libdrm.so.2.4.0
usr/lib64/libgcc_s-4.8.3-20140911.so.1
usr/lib64/libpcre.so.1
usr/lib64/libply-splash-core.so.2.1.0
usr/lib64/liblzma.so.5.0.99
usr/lib64/liblzma.so.5
usr/lib64/libply.so.2
usr/lib64/libselinux.so.1
usr/lib64/libudev.so.1.4.0
usr/lib64/librt.so.1
usr/lib64/plymouth
usr/lib64/plymouth/details.so
usr/lib64/plymouth/text.so
usr/lib64/plymouth/renderers
usr/lib64/plymouth/renderers/drm.so
usr/lib64/plymouth/renderers/frame-buffer.so
usr/lib64/libply-splash-core.so.2
usr/lib64/libdrm.so.2
usr/lib64/libpcre.so.1.2.0
usr/lib64/libply.so.2.1.0
usr/lib64/libudev.so.1
usr/sbin
usr/sbin/plymouthd
usr/bin
usr/bin/plymouth
usr/lib
usr/lib/systemd
usr/lib/systemd/system
usr/lib/systemd/system/plymouth-poweroff.service
usr/lib/systemd/system/plymouth-kexec.service
usr/lib/systemd/system/poweroff.target.wants
usr/lib/systemd/system/poweroff.target.wants/plymouth-poweroff.service
usr/lib/systemd/system/plymouth-halt.service
usr/lib/systemd/system/sysinit.target.wants
usr/lib/systemd/system/sysinit.target.wants/plymouth-start.service
usr/lib/systemd/system/plymouth-start.service
usr/lib/systemd/system/plymouth-quit-wait.service
usr/lib/systemd/system/kexec.target.wants
usr/lib/systemd/system/kexec.target.wants/plymouth-kexec.service
usr/lib/systemd/system/plymouth-quit.service
usr/lib/systemd/system/reboot.target.wants
usr/lib/systemd/system/reboot.target.wants/plymouth-reboot.service
usr/lib/systemd/system/initrd-switch-root.target.wants
usr/lib/systemd/system/initrd-switch-root.target.wants/plymouth-start.service
usr/lib/systemd/system/initrd-switch-root.target.wants/plymouth-switch-root.ser
vice
usr/lib/systemd/system/systemd-ask-password-plymouth.path
usr/lib/systemd/system/systemd-ask-password-plymouth.service
usr/lib/systemd/system/multi-user.target.wants
usr/lib/systemd/system/multi-user.target.wants/plymouth-quit-wait.service
usr/lib/systemd/system/multi-user.target.wants/plymouth-quit.service
usr/lib/systemd/system/plymouth-switch-root.service
usr/lib/systemd/system/halt.target.wants
usr/lib/systemd/system/halt.target.wants/plymouth-halt.service
usr/lib/systemd/system/plymouth-reboot.service
usr/share
usr/share/pixmaps
usr/share/pixmaps/system-logo-white.png
usr/share/plymouth
usr/share/plymouth/themes
usr/share/plymouth/themes/text
usr/share/plymouth/themes/text/text.plymouth
usr/share/plymouth/themes/details
usr/share/plymouth/themes/details/details.plymouth
usr/share/plymouth/plymouthd.defaults
etc
etc/plymouth
etc/plymouth/plymouthd.conf
etc/os-release
2735 blocks
起動後に plymouth というものを動かすものという感じかな。plymouth では、
イングランド南部の都市しか思いつかない。Exeter から Dartmoor を経由して
行ったと思うが記憶が全く残っていない。どっちにしても、都市とは全く関係
ないだろうから調べてみる。
簡単に言うと起動中の画面をグラフィカルにするものみたい。私にとって無くても
良いものだな。現在がどうなっているのか見てみた。
[root@mygeeto tmp]# plymouth-set-default-theme
text
[root@mygeeto tmp]# plymouth-set-default-theme -l
details
text
text になっているので、使われていないのかもしれないな。grub の設定のとき
もう一度確認してみよう。
■ 6/23
新しく作った kernel をインストールする準備ができたので、インストールして
みようかと。
[toyota@mygeeto ~]$ cd /tmp/rpmbuild/BUILD/kernel-3.10.0-229.el7/linux-3.10.0-2
29.el7.centos.x86_64/
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ vi Makefile
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ make bzImage
~snip~
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ make modules
~snip~
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ su
Password:
[root@mygeeto linux-3.10.0-229.el7.centos.x86_64]# make modules_install
~snip~
[root@mygeeto linux-3.10.0-229.el7.centos.x86_64]# make install
sh /tmp/rpmbuild/BUILD/kernel-3.10.0-229.el7/linux-3.10.0-229.el7.centos.x86_64
/arch/x86/boot/install.sh 3.10.0el7.mygeeto.1506 arch/x86/boot/bzImage System.m
ap "/boot"
make install で数分かかって、インストールが終わった。どこまでやってくれて
いるのか、チェックしてみる。/boot 下は、vmlinuz の .hmac ファイルと symvers
ファイルは作成してくれなかったが、あとは作ってくれた。無くても起動するもの
なのかもしれない。
[toyota@mygeeto linux-3.10.0-229.el7.centos.x86_64]$ ls -a /boot
.
..
.vmlinuz-3.10.0-229.el7.x86_64.hmac
System.map
System.map-3.10.0-229.el7.x86_64
System.map-3.10.0el7.mygeeto.1506
config-3.10.0-229.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-731e9da27b004a8286ca127141282749.img
initramfs-3.10.0-229.el7.x86_64.img
initramfs-3.10.0el7.mygeeto.1506.img
initrd-plymouth.img
lost+found
symvers-3.10.0-229.el7.x86_64.gz
vmlinuz
vmlinuz-0-rescue-731e9da27b004a8286ca127141282749
vmlinuz-3.10.0-229.el7.x86_64
vmlinuz-3.10.0el7.mygeeto.1506
ブートローダの grub の設定を確認すると、/boot/efi/EFI/centos/grub.cfg を
書き換えてくれている。あとは、再起動を待つばかり見たい。再起動をすると、
/tmp 以下が消えてしまうので、大事なものを退避。作った kernel で起動した。
[ 0.215852] pnp 00:00: can't evaluate _CRS: 1
[ 1.875808] i8042: No controller found
[ 1.947037] systemd[1]: Failed to insert module 'ipv6'
しかし、途中で止まってしまった。またやり直し。
■ 6/24
昨日インストールした kernel は、systemd の中で IPv6 をロードできなくて
起動していない様子だった。今の環境では、IPv6 を使わないので、kernel は
このまま IPv6 を組み込まずに systemd で呼び出している何かを確認してみる。
その前に、systemd のお勉強。今までの init/upstart はシェルスクリプトで
書かれていたので、人間には非常にわかりやすかったけど、systemd は unit だの
依存関係だの target と、わかり辛いものになってしまった。
まず、ネットワークの設定についてを確認。これまでの /etc/sysconfig 以下の
ファイルを変更するのではなく、nmcli というコマンドを使うみたい。GUI 版も
あるみたいだけど、今の環境には関係ないので置いて。ちょっとやってみた。
[toyota@mygeeto ~]$ nmcli device show
GENERAL.DEVICE: enp3s0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: B8:AE:ED:##:##:##
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ???? 1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveC
onnection/0
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.17.3/24
IP4.GATEWAY: 192.168.17.1
IP4.DNS[1]: 192.168.17.1
IP6.ADDRESS[1]: fe80::baae:edff:fe##:####/64
IP6.GATEWAY:
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY:
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY:
[toyota@mygeeto ~]# nmcli connection show
NAME UUID TYPE DEVICE
???? 1 dcc16564-da05-45d2-b0eb-65c5d7ff1c42 802-3-ethernet enp3s0
なんか、文字化けしてるな。環境変数 LANG を[ja_JP.UTF-8]に変更してこの部分を
見てみたら「有線接続 1」になっていた。なんだか、嫌な感じ。何かあったとき、
固定の IP を振ることできないかもしれないな。
[toyota@mygeeto systemd]$ nmcli connection show "有線接続 1"
connection.id: ???? 1
connection.uuid: dcc16564-da05-45d2-b0eb-65c5d7ff1c42
connection.interface-name: --
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1435315450
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: B8:AE:ED:##:##:##
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options:
ipv4.method: auto
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:
ipv4.gateway: --
ipv4.routes:
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv6.method: auto
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.gateway: --
ipv6.routes:
ipv6.route-metric: -1
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: --
GENERAL.NAME: ???? 1
GENERAL.UUID: dcc16564-da05-45d2-b0eb-65c5d7ff1c42
GENERAL.DEVICES: enp3s0
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: no
GENERAL.VPN: no
GENERAL.ZONE: --
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveC
onnection/0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Setting
s/0
GENERAL.SPEC-OBJECT: /
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 192.168.17.3/24
IP4.GATEWAY: 192.168.17.1
IP4.DNS[1]: 192.168.17.1
DHCP4.OPTION[1]: requested_domain_search = 1
DHCP4.OPTION[2]: requested_nis_domain = 1
DHCP4.OPTION[3]: requested_time_offset = 1
DHCP4.OPTION[4]: requested_broadcast_address = 1
DHCP4.OPTION[5]: requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[6]: requested_classless_static_routes = 1
DHCP4.OPTION[7]: requested_domain_name = 1
DHCP4.OPTION[8]: expiry = 1435381453
DHCP4.OPTION[9]: requested_wpad = 1
DHCP4.OPTION[10]: next_server = 192.168.17.1
DHCP4.OPTION[11]: broadcast_address = 192.168.17.255
DHCP4.OPTION[12]: dhcp_message_type = 5
DHCP4.OPTION[13]: requested_subnet_mask = 1
DHCP4.OPTION[14]: dhcp_lease_time = 86400
DHCP4.OPTION[15]: routers = 192.168.17.1
DHCP4.OPTION[16]: ip_address = 192.168.17.3
DHCP4.OPTION[17]: requested_static_routes = 1
DHCP4.OPTION[18]: requested_interface_mtu = 1
DHCP4.OPTION[19]: requested_nis_servers = 1
DHCP4.OPTION[20]: requested_ntp_servers = 1
DHCP4.OPTION[21]: subnet_mask = 255.255.255.0
DHCP4.OPTION[22]: domain_name_servers = 192.168.17.1
DHCP4.OPTION[23]: requested_ms_classless_static_routes = 1
DHCP4.OPTION[24]: requested_routers = 1
DHCP4.OPTION[25]: requested_domain_name_servers = 1
DHCP4.OPTION[26]: network_number = 192.168.17.0
DHCP4.OPTION[27]: requested_host_name = 1
DHCP4.OPTION[28]: dhcp_server_identifier = 192.168.17.1
IP6.ADDRESS[1]: fe80::baae:edff:fe##:####/64
IP6.GATEWAY:
「ipv6.method」を変更すれば良いのかな。これでモジュールの状況を確認して、
一旦 reboot をかけて、CentOS7 の kernel で起動してみる。
[root@mygeeto etc]# nmcli connection modify "有線接続 1" ipv6.method ignore
[root@mygeeto etc]# lsmod | grep ip6
ip6t_rpfilter 12546 1
ip6t_REJECT 12939 2
ip6table_nat 12864 1
nf_nat_ipv6 14131 1 ip6table_nat
ip6table_mangle 12700 1
ip6table_security 12710 1
ip6table_raw 12683 1
ip6table_filter 12815 1
ip6_tables 27025 5 ip6table_filter,ip6table_mangle,ip6table_securi
ty,ip6table_nat,ip6table_raw
再起動して lsmod を見てみたけど、全く変わらず。nmcli コマンドで見てみると、
ipv6.method は ignore になっているので、別の設定かもしれない。
[toyota@mygeeto ~]$ lsmod | grep ip6
ip6t_rpfilter 12546 1
ip6t_REJECT 12939 2
ip6table_nat 12864 1
nf_nat_ipv6 14131 1 ip6table_nat
ip6table_mangle 12700 1
ip6table_security 12710 1
ip6table_raw 12683 1
ip6table_filter 12815 1
ip6_tables 27025 5 ip6table_filter,ip6table_mangle,ip6table_securi
ty,ip6table_nat,ip6table_raw
nmcli コマンドと sysctl コマンドで確認してみる。なんか、設定項目に反対語の
disable とか ignore を入れるとわかり辛い気がするのは、気のせいかな。ともあれ
net.ipv6.conf.all.disable_ipv6 を1にしたい。
[root@mygeeto /]# nmcli connection show "有線接続 1" | grep ipv6
ipv6.method: ignore
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.gateway: --
ipv6.routes:
ipv6.route-metric: -1
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: --
[root@mygeeto /]# sysctl -a | grep v6
~snip~
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.force_mld_version = 0
~snip~
sysctl でやるのが良い方法なのかわからないが、やるだけやってみることに。
設定して、再起動を。最近は sync の意味を知らない人が多いのだとか。私は
不要とわかっていても、手が勝手に動く。
[root@mygeeto /]# sysctl net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
[root@mygeeto /]# sysctl net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.autoconf = 0
[root@mygeeto /]# sync
[root@mygeeto /]# sync
[root@mygeeto /]# sync
[root@mygeeto /]# reboot
再起動したら、sysctl の設定した項目が元に戻っているのは想定内で、lsmod して
みたら、ipv6 関係のモジュールが少し減った。/etc/sysctl.conf を見てみると、
/usr/lib/sysctl.d/00-system.conf になるとかなんとか。
[toyota@mygeeto ~]$ lsmod | grep ipv6
nf_conntrack_ipv6 18738 5
nf_defrag_ipv6 34651 1 nf_conntrack_ipv6
nf_nat_ipv6 14131 1 ip6table_nat
nf_nat 26146 2 nf_nat_ipv4,nf_nat_ipv6
nf_conntrack 105702 6 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_
conntrack_ipv4,nf_conntrack_ipv6
[root@mygeeto /]# cat /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<n
ame>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
/usr/lib/sysctl.d/00-system.conf の変更と nmcli でいくつかの変更をする。
この有線接続とか、なんとかならないものなのだろうか。
[root@mygeeto /]# cd /usr/lib/sysctl.d
[root@mygeeto sysctl.d]# echo >> 00-system.conf
[root@mygeeto sysctl.d]# echo "# Disable IPv6" >> 00-system.conf
[root@mygeeto sysctl.d]# echo "net.ipv6.conf.all.autoconf = 0" >> 00-system.con
f
[root@mygeeto sysctl.d]# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> 00-system
.conf
[root@mygeeto sysctl.d]# nmcli connection modify "有線接続 1" ipv6.ignore-auto-
routes yes
[root@mygeeto sysctl.d]# nmcli connection modify "有線接続 1" ipv6.ignore-auto-
dns yes
[root@mygeeto sysctl.d]# nmcli connection modify "有線接続 1" ipv6.never-defaul
t yes
これで再起動してみたが、読み込まれるモジュールは変わらず。なんだか目的を
忘れかけてきた。この設定で新しい kernel を起動してみた。が、やっぱり起動
せず。なんだか嵌ってきたな、続きは明日。
■ 6/25
昨日の続き。kernel が起動せず、しばらく放置していたら、emergency mode に
切り替わった。ここで情報収集をしようとしたが、kernel で USB さえ使わない
ようにしてしまったので、入力ができない。一旦、USB キーボードだけでも使える
ようにして kernel を作り、起動させてみたら、IPv6 が問題とかじゃなくて、
モジュールのロードに問題があるみたい。
no symbol version for module_layout
というエラーがいくつか出ている。ひとまず、ダウンロードしてきた kernel の
.config をいじらずに、そのまま kernel を作ってみて、様子を見てみることに。
make に時間がかかるので、続きは明日。
■ 6/26
昨日の続き。.config をいじらずに作った kernel で起動してみた。やっぱり、
途中で止まってしまった。emergency mode に切り替わり、dmesg なんかで見て
みると、やっぱり「no symbol version for module_layout」が原因みたいな。
/boot には、CentOS インストール時の symvers-3.10.0-229.el7.x86_64.gz と
いうファイルがあるので、これっぽくファイルを作成してみた。
[toyota@mygeeto]$ file /boot/symvers-3.10.0-229.el7.x86_64.gz
/boot/symvers-3.10.0-229.el7.x86_64.gz: gzip compressed data, from Unix, last m
odified: Fri Mar 6 20:44:39 2015, max compression
[toyota@mygeeto]$ cp -p Module.symvers symvers-3.10.0
[toyota@mygeeto]$ gzip -9 symvers-3.10.0
[toyota@mygeeto]$ su
Password:
[root@mygeeto]# cp symvers-3.10.0.gz /boot/
比較してみたけど、行数がえらい短い気がしてならないんだけど。これで起動
させてみた。
[toyota@mygeeto]$ wc -l Module.symvers
6597 Module.symvers
[toyota@mygeeto]$ zcat /boot/symvers-3.10.0-229.el7.x86_64.gz | wc -l
13451
現象変わらず。一時しのぎとして、.config の CONFIG_MODVERSIONS をコメントに
して、kernel の make をし直すことにした。時間がかかりそうなので、続きは
明日。
■ 6/27
昨日の続き。CONFIG_MODVERSIONS を無効にした kernel 一式だと、無事に起動
した。このまま CONFIG_MODVERSIONS を使わずに kernel を使うか、それとも
有効にして何とか kernel を作ろうか悩ましいところ。無効にした方が少しだけ
起動も早いだろうし。比較する CRC はどこに格納されているのか、調べてみた。
kernel.org のドキュメントによると。
Module versioning is enabled by the CONFIG_MODVERSIONS tag, and is used
as a simple ABI consistency check. A CRC value of the full prototype
for an exported symbol is created. When a module is loaded/used, the
CRC values contained in the kernel are compared with similar values in
the module; if they are not equal, the kernel refuses to load the
module.
contained in the kernel と書いてあるので、kernel 本体に収まっているよう。
これって、新しいモジュールを追加した場合は、kernel 本体から作り直さないと
いけないってことなのかな。kernel の version さえ合っていれば、なんとか
なるような時代じゃないと。少し考えて、CONFIG_MODVERSIONS を無効にして、
kernel を作ることにした。USB とか、ごっそり落として、make 中。
これからやりたいこと。
・nmcli コマンドで出てくる「有線接続 1」を何とかできないか
・tmpfs が動いてないっぽいので、動かす
・環境変数 LANG が ja_JP.UTF-8 なのを変更
・ramdisk の作成
環境変数 LANG はすぐに変更できそうなので、調べてみた。/etc/locale.conf が
元にしているものみたい。
[toyota@mygeeto ~]$ cat /etc/locale.conf
LANG="ja_JP.UTF-8"
これを C に変更しておいた。これで、変な日本語表示がなくなった。
■ 6/28
昨日作った kernel が完成したので、起動してみた。少し心配だったが、問題なく
起動できた。kernel の大きさは。
[toyota@mygeeto ~]$ ls -l /boot/vmlinuz*
-rwxr-xr-x. 1 root root 5029136 Jun 4 22:08 /boot/vmlinuz-0-rescue-731e9da27b0
04a8286ca127141282749
-rwxr-xr-x. 1 root root 5029136 Mar 6 20:45 /boot/vmlinuz-3.10.0-229.el7.x86_6
4
-rw-r--r--. 1 root root 4051952 Jun 27 21:05 /boot/vmlinuz-3.10.0-el7.mygeeto.2
0150627
1M ぐらい小さくなった。それでも大きいな。USB デバイスも無効にしたので、
キーボードが一切使えなくなった。もっと絞れそうな感じもあったけど、これ以上
絞ると起動しなくなるかもしれないので、この辺りで妥協する。
今日は、「有線接続 1」を変更する。環境変数 LANG を変更したので、その文字
さえ出てこなくなった。
[toyota@mygeeto ~]$ nmcli connection show
NAME UUID TYPE DEVICE
???? 1 dcc16564-da05-45d2-b0eb-65c5d7ff1c42 802-3-ethernet enp3s0
[toyota@mygeeto ~]$ export LANG=ja_JP.UTF-8
[toyota@mygeeto ~]$ nmcli connection show
名前 UUID タイプ デバイス
有線接続 1 dcc16564-da05-45d2-b0eb-65c5d7ff1c42 802-3-ethernet enp3s0
GENERAL.CONNECTION という名前みたいなので、root になって変更してみた。
何て名前にしようか、と悩んだが eth0 にしておいた。
[root@mygeeto /]# nmcli connection modify dcc16564-da05-45d2-b0eb-65c5d7ff1c42
connection.id eth0
[root@mygeeto toyota]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 dcc16564-da05-45d2-b0eb-65c5d7ff1c42 802-3-ethernet enp3s0
ついでに、MAC アドレスを確認して、調べてみた。Elitegroup Computer Systems の
略で ECS なんだ。
B8-AE-ED (hex) Elitegroup Computer Systems Co., Ltd.
B8AEED (base 16) Elitegroup Computer Systems Co., Ltd.
No. 239, Sec. 2, Ti Ding Blvd.,
Taipei 11493
TAIWAN, PROVINCE OF CHINA
次は、/tmp を tmpfs にしたい。手動で mount してみたら、1G 近くの領域を
確保してくれた。よく見ると、tmpfs だらけで、全部使ったら軽くメモリ容量を
超えてしまうな。
[root@mygeeto etc]# mount -t tmpfs tmpfs /tmp
[root@mygeeto etc]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mmcblk0p4 55526788 1519368 51186764 3% /
devtmpfs 962104 0 962104 0% /dev
tmpfs 969728 0 969728 0% /dev/shm
tmpfs 969728 8520 961208 1% /run
tmpfs 969728 0 969728 0% /sys/fs/cgroup
/dev/mmcblk0p2 495844 93319 376925 20% /boot
/dev/mmcblk0p1 204580 9992 194588 5% /boot/efi
tmpfs 969728 0 969728 0% /tmp
起動したら、自動で mount して欲しいので、fstab とかに書こうかと思ったが、
UUID なんか付いているし、/dev/shm や /run など、tmpfs が書かれてないので
別な仕組みがあるみたい。調べてみると、systemctl で有効にするとのことで、
実行して再起動した。CentOS 7 からなのか、前のバージョンからなのか、わから
ないことが多い。
[root@mygeeto etc]# systemctl enable tmp.mount
ln -s '/usr/lib/systemd/system/tmp.mount' '/etc/systemd/system/local-fs.target.
wants/tmp.mount'
[root@mygeeto etc]# sync
[root@mygeeto etc]# sync
[root@mygeeto etc]# sync
[root@mygeeto etc]# reboot
再起動して確認したら、無事に /tmp がマウントされた状態で起動してきた。
これだけ容量があれば、ramdisk を別途作る必要はないかな。
[toyota@mygeeto ~]$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mmcblk0p4 55526788 1519552 51186580 3% /
devtmpfs 962104 0 962104 0% /dev
tmpfs 969728 0 969728 0% /dev/shm
tmpfs 969728 8520 961208 1% /run
tmpfs 969728 0 969728 0% /sys/fs/cgroup
tmpfs 969728 0 969728 0% /tmp
/dev/mmcblk0p2 495844 93319 376925 20% /boot
/dev/mmcblk0p1 204580 9992 194588 5% /boot/efi
時期を見て /var/log を /tmp 以下に作ることにしようかな。シンボリックリンクで
誤魔化す予定。
■ 6/29
相変わらず CentOS 7 と格闘中。今日は sshd のポート番号の変更を手始めに。
sshd_config の PORT の値を変更。
[root@mygeeto etc]# vi /etc/ssh/sshd_config
次は、httpd のインストール。バージョンにこだわりはないけど、バイナリを
できるだけ小さくしたいので、src.rpm から作ってみることに。
[toyota@mygeeto ~]$ cd rpm
[toyota@mygeeto rpm]$ wget -q http://vault.centos.org/7.1.1503/os/Source/SPacka
ges/httpd-2.4.6-31.el7.centos.src.rpm
[toyota@mygeeto rpm]$ mkdir /tmp/rpmbuild
[toyota@mygeeto rpm]$ ln -s /tmp/rpmbuild ~/rpmbuild
[toyota@mygeeto rpm]$ mkdir /tmp/rpmbuild/BUILD
[toyota@mygeeto rpm]$ mkdir /tmp/rpmbuild/RPMS
[toyota@mygeeto rpm]$ mkdir /tmp/rpmbuild/SOURCES
[toyota@mygeeto rpm]$ mkdir /tmp/rpmbuild/SPECS
[toyota@mygeeto rpm]$ mkdir /tmp/rpmbuild/SRPMS
[toyota@mygeeto rpm]$ rpm -i httpd-2.4.6-31.el7.centos.src.rpm
[toyota@mygeeto rpm]$ cd /tmp/rpmbuild/SPECS
[toyota@mygeeto SPECS]$ rpmbuild -bp httpd.spec
error: Failed build dependencies:
autoconf is needed by httpd-2.4.6-31.el7.centos.x86_64
libselinux-devel is needed by httpd-2.4.6-31.el7.centos.x86_64
lua-devel is needed by httpd-2.4.6-31.el7.centos.x86_64
apr-devel >= 1.4.0 is needed by httpd-2.4.6-31.el7.centos.x86_64
apr-util-devel >= 1.2.0 is needed by httpd-2.4.6-31.el7.centos.x86_64
pcre-devel >= 5.0 is needed by httpd-2.4.6-31.el7.centos.x86_64
systemd-devel is needed by httpd-2.4.6-31.el7.centos.x86_64
openssl-devel is needed by httpd-2.4.6-31.el7.centos.x86_64
libxml2-devel is needed by httpd-2.4.6-31.el7.centos.x86_64
先が長そうだ。必要なものを入れていく。依存関係とか、ダウンロードとか長く
なったので、rpm のインストール部分のみ。
[root@mygeeto tmp]# rpm -i perl-Data-Dumper-2.145-3.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i autoconf-2.69-11.el7.noarch.rpm
[root@mygeeto tmp]# rpm -i libsepol-devel-2.1.9-3.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i pcre-devel-8.32-14.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i libselinux-devel-2.2.2-6.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i lua-devel-5.1.4-14.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i apr-1.4.8-3.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i apr-devel-1.4.8-3.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i apr-util-1.5.2-6.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i expat-devel-2.1.0-8.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i cyrus-sasl-2.1.26-17.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i cyrus-sasl-devel-2.1.26-17.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i openldap-devel-2.4.39-6.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i apr-util-devel-1.5.2-6.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i systemd-devel-208-20.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i libcom_err-devel-1.42.9-7.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i libverto-devel-0.2.5-4.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i krb5-devel-1.12.2-14.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i openssl-devel-1.0.1e-42.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i xz-devel-5.1.2-9alpha.el7.x86_64.rpm
[root@mygeeto tmp]# rpm -i libxml2-devel-2.9.1-5.el7_0.1.x86_64.rpm
続きは明日に。
■ 6/30
ようやく httpd の src.rpm から make できる環境になった。rpmbuild を実行
して、configure --help の内容を眺める。
[toyota@mygeeto ~]$ cd /tmp/rpmbuild/SPECS
[toyota@mygeeto SPECS]$ rpmbuild -bp httpd.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.GNEAqD
+ umask 022
+ cd /home/toyota/rpmbuild/BUILD
+ cd /home/toyota/rpmbuild/BUILD
+ rm -rf httpd-2.4.6
~snip~
[toyota@mygeeto SPECS]$ /tmp/rpmbuild/BUILD/httpd-2.4.6
[toyota@mygeeto httpd-2.4.6]$ ./configure --help
~snip~
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local/apache2]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/apache2/bin', `/usr/local/apache2/lib' etc. You can specify
an installation prefix other than `/usr/local/apache2' using `--prefix',
for instance `--prefix=$HOME'.
~snip~
PREFIX って書き換えてくれないのか。rpm の中身を確認してみると、/usr/sbin
なんかにバイナリが入ったりしている。
[toyota@mygeeto httpd-2.4.6]$ cd /tmp
[toyota@mygeeto tmp]$ cd /tmp
[toyota@mygeeto tmp]$ wget -q http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/os/x86_
64/Packages/httpd-2.4.6-31.el7.centos.x86_64.rpm
[toyota@mygeeto tmp]$ rpm2cpio httpd-2.4.6-31.el7.centos.x86_64.rpm | cpio -t
./etc/httpd
./etc/httpd/conf
~snip~
./etc/httpd/conf/httpd.conf
~snip~
./usr/lib64/httpd
./usr/lib64/httpd/modules
~snip~
./usr/sbin/apachectl
./usr/sbin/fcgistarter
./usr/sbin/htcacheclean
./usr/sbin/httpd
./usr/sbin/rotatelogs
./usr/sbin/suexec
~snip~
src.rpm を使う理由って、バイナリを小さくする以外に自動起動させるための
スクリプトというか systemd の設定が面倒そうだから、うまく httpd.service
を作ってくれると思っていたのだけど、src.rpm のファイルにはなさそうな雰囲気。
まずは make だけやってみることにした。
[toyota@mygeeto httpd-2.4.6]$ ./configure
~snip~
[toyota@mygeeto httpd-2.4.6]$ make
~snip~
本当は configure にオプションかなり付けた。無事にバイナリが出来上がった。
rpm に入っている httpd のバイナリとサイズを比較してみると、大きくなって
いる。
[toyota@mygeeto httpd-2.4.6]$ strip httpd
[toyota@mygeeto httpd-2.4.6]$ ls -l httpd
-rwxrwxr-x 1 toyota toyota 592944 Jul 1 00:23 httpd
[toyota@mygeeto httpd-2.4.6]$ ls -l /tmp/httpd/usr/sbin/httpd
-rwxr-xr-x 1 toyota toyota 507008 Jul 1 00:21 httpd
configure でだいぶ disable 付けたけど、バイナリのサイズが増えているのは
なんでだろう。これじゃ、make して入れるメリットがないな。ちょっと保留。
|