64bit kernelいじり

何を今さら感がありますが^^;

私がLinuxの64bit版をいじり始めたのはかなり昔で,某所に入ったAMDの64bit dual CPUのマシンにSLAMD64をインストールしていじっていました.もう10年も前になると思われます.

いろいろテストして分かったことは,

32bit版と比べて,ほとんどパフォーマンスの向上はなしで,まれに,1.5〜2倍速くなるソフトがある

という,ものでした.まだまだ出来損ないのディストリビューションの不便さに耐えて,たかだか2倍です^^; 特に当時は,CPUのジェネレーションが変われば,2倍以上のパフォーマンスの向上は普通にありましたから,64bit化は封印ということにしました.

ところがどっこい,最近は,CPUのジェネレーションが変わってもパフォーマンスが,格段に向上ということがなくなりました.そこで,その”2倍”が非常に魅力的になりました.

ということで,Slackware 14.1の64bit版をいじり始めました.インストールからX.orgの起動までは,微妙におかしなことがありましたが,大きな問題はなく進みました.

しかし,自分でKernelをbuildするところで,引っかかっています.もう少し苦闘して,体で覚えたいと思います^^;

当時は,64bitでbuildされたソフトがそんなにはなかったから.
64bitに最適化されたソフト.
かつてのSLAMD64がSlackware 64bitになりました.

Raspberry Piをエミュレートする

まえがき

案外簡単にできると言うことなので,チャレンジしてみました.

結論的には,ほぼ下記リンクのとおりやればうまくいきます.

まずは,armのエミュレーターをbuildします.QEMUのconfigureオプションを,

CFLAGS="-O2 -march=i486 -mtune=i686" \
./configure --prefix=/usr   \
   --target-list="x86_64-softmmu x86_64-linux-user i386-softmmu i386-linux-user \
     arm-softmmu arm-linux-user"  \
   --enable-sdl  \
   --enable-usb-redir --enable-spice --enable-system

としてみました.

それから,kernel-qemuが必要です.

NOOBSから設定したRaspbianのSDから作ったイメージファイルraspbian.imgの起動コマンドは次のとおりでうまくいきました.

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio \
-append "root=/dev/sda6 panic=100 rootfstype=ext4 rw init=/bin/bash" -hda raspbian.img

参考ページ

raspberrypi

CPUINFO

cpuinfo

To Do

しかし,コンソールからラインコマンド打ち込むのは便利ではないので,virt-managerから起動できないか,調べてみます.

GHOSTに対応

GLIBCを2.20にしました.

古いGLIBCはざっくり削除しました^^; 一部のソフトが特定のGLIBCに依存しているんじゃないかとちょっと心配なのですが,今のところ問題なく動いているようです.

高解像 (KVM 16)

その後も,KVMはいじっていまして,ほぼ実用的に使える領域に達した感じがします.

最後の問題が,Xorgの起動でした.サーバーとして使うには必要ありませんが,既存のWSを,いつでも動かせるような形で保存しておくためには必要です.

その既存の実マシンから移行した仮想マシン(VM)では,Xが起動してくれない,起動してもシステムがクラッシュしてしまう,解像度が1280×720より上げられない,等の問題がありました.

Slackwareのxとxapを全部削除して,全部最新版をインストールし直すという手荒なupgradeを実行して,あとは,xorg.conf, xorg.conf.dの中身を見直すことで,どのVMも起動するようになりました

起動したVMのxorgでは,最大の解像度が1280×768ですが,実際には,1280×720の中で仮想的に縦の解像度が768となるという,使いにくい状況で,実質的に1280×720が最高の解像度でした.

解像度をもっと上げる方法をネット検索してみましたが,QXLを使用せよというのが一番多い情報でした.しかし,どれも2010から2011年くらいの情報です.virt-managerでは,デフォルトでQXLが選択されていて,その結果最大1280×720なので,話になりません.

あとは,自分で試すしかないので,ビデオをVMVGAにしたところ,最大2368×1770までの多彩な解像度が選べるようになりました.

ネット検索は万能な様な気がしますが,こういう旬な技術には,賞味期限切れ情報のほうが多くヒットしてしまって困ります^^;

ホストの解像度との兼ね合いもあるので,1440×900にしてみました.20150114-hirez

この解像度については,新規作成のVMでも同じ限界がありました.
結果的には,/etc/X11/xorg.conf.d/90-keyboard-layout.confで,keyboard layoutをjp106にoverrideするのみです.
1台だけ,glibcも古すぎて,新しいxorgが起動しなかったので,gccとglibcをSlackBuildしてupgradeしました.