logo
 2003年   2004年   2005年   2006年   2007年   2008年   2009年   2010年   2011年   2012年   2013年   2014年   2015年 
 9月 
 10月 
 11月 
 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月
 2月
 3月
 4月
 5月
アイコンの説明
code:Haemophilus influenzae
ここに書かれていることは無保証です。同じことを行って問題が発生しても、龍義は責任をとりません。


6/1 LIVA-C0-2G-64G-W Linux 先月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 LIVA-C0-2G-64G-W Linux 昨日の続き。コマンドが色々と使えるので、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 LIVA-C0-2G-64G-W Linux 昨日の続き。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.63GiBLVM xfs
/boot 500MiB Standard Partitionext4
/boot/efi200MiB Standard PartitionEFI System Partition
/ 36.11GiBLVM xfs
swap 3840MiB Standard Partitionswap
xfs とか ext4 とか、新しい fs が当たり前のように使われていて、メリットと デメリットを考えて使わないといけない。サーバで使うし、ログは一旦 ram に保存 するので、書き込みは1時間に1回とかそんな感じの予定。なので、xfs とかを使う メリットが無いのかなと思うし、メモリを消費するから使いたくない。LVM も いらないかな。/home を分ける必要も感じないので、変更して。
mount 容量 Device Type File System
/boot 500MiB Standard Partitionext4
/boot/efi200MiB Standard PartitionEFI System Partition
/ 53.8GiB Standard Partitionext2
swap 3840MiB Standard Partitionswap
swap も削る予定だったけど、このぐらいの容量なら何かのために残しておこう かと。いつもは swapoff すれば良いことだし。インストールするパッケージの 種類は Infrastructure Server にして、インストール実行。しかし、エラーが 起きた。ざっと見たけど、/dev 周りでエラーが起きていたり、色々と。ちょっと 長くなりそうなので、続きは明日に。
6/4 LIVA-C0-2G-64G-W Linux 昨日の続き。エラーが起きたタイミング的には /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 C0 Linux 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 Windows EeePC X101CH ちょっとノート PC でメモを取りたいことがあって、久々に Windows7 の旅行用 ノート PC を起動して、メモ帳でメモ。すると、見慣れないウィンドウが出て来た。 対話型サービスの検出 対話型サービスの検出 このコンピューター上で実行されているプログラムが、メッセージの表示を思考して います プログラムがタスクを完了するには、ユーザーの情報またはユーザーのアクセス許可が 必要になることがあります。 ちょっと作業中だったので、そのまま×を押してウィンドウを閉じてしまったけど、 今考えれば、詳細だけでも見ておけば良かったなと。よくわからないだけに、不安。
6/7 Other 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 が二重の環になっている。黄色い小さな豆電球のような 光も LED で模倣している。装着して点けてみたら、十分に明るい、というか少し 明るすぎるので、明るさを落としたぐらい。これで蛍光灯の交換の手間は省ける ようになったな。
6/8 Liva C0 Linux 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 Liva C0 Linux 昨日の続き。昨日ダウンロードした 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 WWW Google で「ビーフストロガノフ」を検索すると、「他の人はこちらも検索」と いう表示が出てきた。その中の「ボルシチ」をクリックしてみると、これまで 見たことがない画面が出てくる。 ビーフストロガノフ > 他の人はこちらも検索 > ボルシチ ビーフストロガノフ これは面白いと、もう1回やってみた。今度は、タルトからでも検索してみると、 おいしそうなお菓子がいっぱい出て来た。 タルト > 他の人はこちらも検索 > キッシュ タルト さらに逆もやってみる。すると、鶏卵、リーキ、ホウレンソウとかが出て来た。 どんな広がり方なんだろう。 キッシュ > 他の人はこちらも検索 > タルト キッシュ こんな機能いつ出て来たのだろう。
6/11 WWW 昨日の続き。面白いので、色々やってみた。まずは、食べ物をとジャガイモを 入れてみたら、サツマイモ、トマト、ニンジン、タマネギと続いた。 ジャガイモ > 他の人はこちらも検索 ジャガイモ 食べ物以外ではどうなるのか、姫路城でやってみると、姫路セントラルパーク、 大阪城、竹田城、圓教寺、彦根城、名古屋城と続く。 姫路城 > 他の人はこちらも検索 姫路城 人でも試せるかと、ハリソン・フォードを入れてみた。奥さん、スターウォーズで 共演のマーク・ハミル、同じくキャリー・フィッシャー、インディージョーンズで 共演したショーン・コネリーと続いた。マーク・ハミルは歳とったな。 ハリソン・フォード > 他の人はこちらも検索 ハリソン・フォード さらに、映画をクリックすると、映画の結果も写真で出てきた。エビソード7に 出るのだっけ。 ハリソン・フォード > 映画 ハリソン・フォードの映画 右上の「人気順」を「古い順」にしてみた。知らない映画がいくつも出てきて、 さらにアメリカン・グラフィティに出ていたんだと知ったり。 ハリソン・フォード > 映画 ハリソン・フォードの映画 日本人も入れてみようということで、「ビートたけし」を入れてみた。奥さん、 娘、タモリ、明石家さんま、藤達也、お兄ちゃんが出て来た。藤達也は北野武の 最新映画で主演しているせいかな。同じように映画検索もできた。 ビートたけし > 他の人はこちらも検索 ビートたけし 新垣隆で検索してみる。まずは、佐内河内守、神山典士、小保方晴子なんて順で 出て来た。時代的な繋がりなんだろうか。 新垣隆 > 他の人はこちらも検索 新垣隆 これは何が楽しいのか考えてみると、Google が検索結果などの人の手を介さない 情報を集めて、それを写真で出すことが楽しく感じてしまうのかな。この人と この人はどんな繋がりがあるのかな、と考えたりできるし。
6/12 WWW ここのところはまっている、Google の検索結果遊び。今日も少しやってみる。 まずは、横浜市で検索してみた。ここからクリックできるのは、面積、現在の天気、 人口、現在の時間、名所、大学の6つ。名所をクリックしてみた。 横浜中華街、三渓園、新横浜ラーメン博物館、横浜赤レンガ倉庫と続いた。 横浜市 > 名所 横浜市 名所 同じく、隣の市である鎌倉市を見てみると、長谷寺、高徳院、鶴岡八幡宮と、 それっぽいのが続く。ただし、季節の補正はしないようで、今の季節人が多い 明月院や成就院が先に出てくることはなく。 鎌倉市 > 名所 鎌倉市 名所 別の隣、藤沢市になると、今までのような黒背景の部品は出ずに、シンプルな 表示になった。 藤沢市 > 名所 藤沢市 名所 葉山町では、また表示形式が変わって、名所と言うサブカテゴリのようなものが なくなった感じになる。 葉山町 > 名所 葉山町 名所 三浦市では、そのまま検索結果が出るようになってしまった。このあたりの表示の 差は一体どうやって決めているのだろうか。 三浦市 > 名所 三浦市 名所 ちょっと範囲を広げて、東京都で見てみた。明治神宮、浅草寺、新宿御苑と続く。 一部、都内じゃないものが見えるけど、気にしないことに。 東京都 > 名所 東京都 名所 じゃ、日本はどうなんだとやってみる。最初に東京ディズニーランドが出てきた のには納得できないけど、金閣寺を鹿苑寺とちゃんと書いてあるのは評価できる。 USJ もあったりして、アジアの人の観光向けな感じもする。 日本 > 名所 日本 名所 別な国はどうなのだろうと、オーストラリアを見てみる。オペラハウスなんかが 出て来た。最初の3つは、同じような場所なのでちょっと微妙かな。 オーストラリア > 名所 オーストラリア 名所 Google ならやってくれると思い、地球でもやってみる。しかし、期待したような 結果は出なかった。残念。 地球 > 名所 地球 名所 せっかくなので、もう少し遊んで見る。「ビートルズ」を検索すると、いくつか クリックできる項目がある。その中で、メインボーカルをクリックしてみた。 カテゴリでちゃんと出てくるが、ギター、やドラムなどではこの形式の表示に ならなかった。 ビートルズ > メインボーカル ビートルズ メインボーカル メンバーをクリックしてみたら、ちゃんとピートやスチュアートまで出てきて、 きちんとした結果っぽい。ひょっとして、wikipedia の情報をそのまま使って いるのかな。 ビートルズ > メンバー ビートルズ メンバー UK でメンバーが激しく入れ替わるバントを考えて、キング・クリムゾンを入れて みた。正式メンバーはちゃんと入っていそうな感じ。 キング・クリムゾン > メンバー キング・クリムゾン メンバー しかし、よく見るとシンフィールドがキーボードになっていたり、ウェットンが ギターになっていたりする。シンフィールドは、「作詞」か「照明」のはず。 キング・クリムゾン > メンバー キング・クリムゾン メンバー2 キング・クリムゾンの場合、メインボーカルをクリックすると、黒背景の部品を 使った画面で出て来た。エイドリアンやめちゃったんだね。 キング・クリムゾン > メインボーカル キング・クリムゾン メインボーカル 日本人でメンバーが多そうなアーチストを考えてみた。単純に考えると AKB48 とか なんだろうけど、本当にメンバーが何人なのかわからなそうな米米CLUBでやって みた。27人出て来たけど、合っているのかどうか、合っている概念はあるのかどうか さえわからない。 米米CLUB > メンバー 米米CLUB メンバー 古いアーティストはどうなのか、やってみる。現存しているかどうか怪しい、 ザ・ドリフターズを見てみた。志村けん、加藤茶、高木ブーの3人だけ。いかりや さんは亡くなったからいないとして、仲本さんは?生きてたよね、と思わず調べて しまったけど、やっぱりご存命。何で3人しか出てこないのだろう。 ザ・ドリフターズ > メンバー ザ・ドリフターズ メンバーおニャン子クラブ」は出てきた。ゴダイゴとかザ・タイガースは出て来た。 (初代)ジャニーズは出たけど、ダークダックスは出ない。アーチスト以外で 試してみると、東京03、ダチョウ倶楽部、七福神、赤穂浪士、新撰組は出てこな かった。海援隊はどっちも出てこなかった。 おニャン子クラブ > メンバー おニャン子クラブ メンバー 歌を出した実績がないと駄目なのかな。wikipedia と比較したけど、関係ない 感じもするし、基準が良くわからない。
6/13 WWW なんだか面白くなってきたので、もう少し続けてみる。まず、家族を出させて みることにした。親を出す。 北野井子 > 親 北野井子 親 子供も出してみた。ここのところはチャーリー・シーンよりマーティン・シーンの 方が見る機会が多い気がするな。 マーティン・シーン > 子 マーティン・シーン 子 兄弟でもやってみた。青木三兄弟が出てこなかったので、林家正蔵で出してみた。 峰竜太は出てこないので、義理の兄弟は出ないみたい。アンディ・ウォシャウスキー の兄弟で出してみたら、ラリーじゃなくラナが姉として出て来た。この辺は情報が 新しいみたい。 林家正蔵 > 兄弟 林家正蔵 兄弟 犬種で出してみたら、クリックできるのは、寿命、上位分類、原産地、性格、 体重、体高、他の人はこちらも検索、の7種類。性格をクリックしてみた。 ラブラドール・レトリバー > 性格 ラブラドール・レトリバー 性格 続けて体重。オスとメスじゃなくて、男性、女性と出るのがちょっと違和感がある。 でも、最近はペットショップで「エサ」と呼ばずに「食べ物」と言うようになって いると聞いたので、そんな時代なのかもしれない。 ラブラドール・レトリバー > 体重 ラブラドール・レトリバー 体重 寿命をクリックしてみた。ゴールデン・レトリバーとかジャーマンシェパードの 寿命も出てくる。 ラブラドール・レトリバー > 寿命 ラブラドール・レトリバー 寿命 他にも色々やってみた。化学式が出るみたいだけど、数字は大きいままでわかり 辛いし、構成図も出てこない。ちょっと残念。 アスパルテーム > 化学式 アスパルテーム 化学式日本 国民総生産」とか、「横浜市 現在の天気」とか見ていたけど、そろそろ 飽きてきた。
6/14 Other 探し物をしていたら、新品のビデオカードが出て来た。IBM / Number9 製で、 チップは S3 の Savage4 16MB が載っている。対応は APG スロットで、切り欠きを 確認すると、3.3V の電圧。DVI の出力が付いていて、袋の中には DVI-RGB の 変換コネクタも入っていた。AGP なので、今さら使うことも無さそうだし、でも 新品なので捨てるのもちょっともったいないし、どうしたものかな。少し考えて 見つけた場所にそっと戻しておいた。
6/15 Other LCC の Scoot から eメールがやってきた。販促メールなのは良いとして、その 内容がちょっと。 今年の海外旅行は新機材のLCCスクートで スクート 新機材というか「機材」って言葉は、航空業界の業界用語だと思うんだよね。 辞書で調べても、材料という言葉が付いて出るし。だから、新機材と言われると、 新しいジュラルミンとかで作ったようなイメージをしてしまうと言うか。意味は わかるけど、こんな当たり前に使うのにはどうかと思う。
6/16 Liva C0 Linux すっかり Google 検索で遊んでしまって、放置していた LIVA の続き。起動すると sshd が起動するので、置いている場所を変更する。いつまでも、机の片隅を占領 していても邪魔なので。キーボードと HDMI のコネクタを抜いて、PC の上に移動 して電源ボタンを押した。起動しない。電源を一度切って、キーボードを挿して みるがやっぱり起動しない。HDMI のケーブルを繋いでやっと起動した。どうも、 キーボードは繋がなくても大丈夫だけど、モニタは繋げないと駄目みたい。少し 面倒だな。ダミーの RGB というか D-sub 15 ピンのコネクタか、HDMI コネクタが 必要みたい。少し web で検索してみると、Mac mini で必要としているシーンが あるらしく、海外製のダミー HDMI が売られている。しかし、3000円とかして 高くて手が出ない。D-sub 15 ピンの方なら自作して200円ぐらいで収まりそう。 安全性を考えなければ、抵抗器1本で済むので数円というところ。家に抵抗器が ないか調べてみたけど無いので、今度実家に行ったときに探してみよう。
6/17 Liva C0 Linux 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 Liva C0 Linux 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 Liva C0 Linux 昨日の続き。昨日分も含めて、以下の感じになった。人々が 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 Liva C0 Linux 昨日、一昨日とだいぶ 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 Liva C0 Linux 朝にはコンパイルが終わっていた。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 Liva C0 Linux /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 Liva C0 Linux 新しく作った 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 Liva C0 Linux 昨日インストールした 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 Liva C0 Linux 昨日の続き。kernel が起動せず、しばらく放置していたら、emergency mode に 切り替わった。ここで情報収集をしようとしたが、kernel で USB さえ使わない ようにしてしまったので、入力ができない。一旦、USB キーボードだけでも使える ようにして kernel を作り、起動させてみたら、IPv6 が問題とかじゃなくて、 モジュールのロードに問題があるみたい。 no symbol version for module_layout というエラーがいくつか出ている。ひとまず、ダウンロードしてきた kernel の .config をいじらずに、そのまま kernel を作ってみて、様子を見てみることに。 make に時間がかかるので、続きは明日。
6/26 Liva C0 Linux 昨日の続き。.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 Liva C0 Linux 昨日の続き。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 Liva C0 Linux 昨日作った 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 Liva C0 Linux 相変わらず 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 Liva C0 Linux ようやく 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 して入れるメリットがないな。ちょっと保留。
21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi since 2003