変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

【KVMゲスト】Android-x86でWifiしたい・・・ing

https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Virtualization_Host_Configuration_and_Guest_Installation_Guide/chap-Virtualization_Host_Configuration_and_Guest_Installation_Guide-PCI_Device_Config.html#sect-Virtualization_Host_Configuration_and_Guest_Installation_Guide-PCI_Assignment-AI_device_to_a_host
を見ると
 
# vi /var/log/dmesg
[    4.871293] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
[    4.871299] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUGFS enabled
[    4.871304] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[    4.871307] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[    4.871311] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_P2P disabled
[    4.871315] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Advanced-N 6235 AGN, REV=0xB0
[    4.871353] iwlwifi 0000:02:00.0: L1 Disabled; Enabling L0S
# lspci | grep Centrino
02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24)
# virsh nodedev-list –cap pci
pci_0000_00_00_0
pci_0000_00_02_0
pci_0000_00_16_0
pci_0000_00_19_0
pci_0000_00_1a_0
pci_0000_00_1b_0
pci_0000_00_1c_0
pci_0000_00_1c_2
pci_0000_00_1d_0
pci_0000_00_1f_0
pci_0000_00_1f_2
pci_0000_00_1f_3
pci_0000_02_00_0
# virsh nodedev-dumpxml pci_0000_02_00_0
<device>
<name>pci_0000_02_00_0</name>
<path>/sys/devices/pci0000:00/0000:00:1c.2/0000:02:00.0</path>
<parent>pci_0000_00_1c_2</parent>
<driver>
<name>iwlwifi</name>
</driver>
<capability type=’pci’>
<domain>0</domain>
<bus>2</bus>
<slot>0</slot>
<function>0</function>
<product id=’0x088e’>Centrino Advanced-N 6235</product>
<vendor id=’0x8086′>Intel Corporation</vendor>
</capability>
</device>
# virsh edit Android4.4
<controller type=’virtio-serial’ index=’0′>
<address type=’pci‘ domain=’0x0000‘ bus=’0x02 slot=’0x00‘ function=’0x0‘/>
</controller>
がダメ。

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
    </hostdev>
が
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
に書き換わったけど変更はできた。

# virsh start Android すると
エラー: ドメイン Android4.4 の起動に失敗しました
エラー: サポートされない設定: host doesn’t support passthrough of host PCI devices
それどころかホストがらの切り離しにも失敗。
# virsh nodedev-dettach pci_0000_02_00_0
エラー: デバイス pci_0000_02_00_0 の切断に失敗しました
エラー: この操作はサポートされていません: neither VFIO nor KVM device assignment is currently supported on this system
 



KVMゲストがSPICEでつながらなくなった?

原因は不明。
yum update したら
いっぱいアップデートがあがったせい?
よく判らないから、/etc/libvirt/qemu.conf を一旦戻し、
spice_tls = 0 を付けてみた。
libvirt で qemuの disable-ticketing
の設定方法は不明のまま。
http://www.spice-space.org/page/SSLConnection の記事が更新されていたのも気になっている。
X-Windowを入れてデスクトップでも確認できるようにした方がよさそう。
参考1:http://manual.geeko.cpon.org/ja/cha.libvirt.connect.html#sec.libvirt.connect.auth.libvirt.sasl
参考2:http://www.atmarkit.co.jp/ait/articles/1006/29/news083.html
ブリッジ接続(br0)をDHCPからstaticにIPを割り振ったのも影響しているかもしれない。
 
しばらくして、SPICEの繋ぐIPアドレスはKVMのゲストではなく、KVMのホストの方だったと思い出した。(大笑
アップデートのおかげなのか?qemu.confを元に戻してもつながるようになった。(感謝感謝
これで電子証明書は無駄になったけどいいや(笑
 
前に買った中華タブレットが不調なのでまた大きな画面でAndroid4.4で遊べるようになるのは助かる。
 



行番号付きエディタっぽい奴ができた

ソースコードを綺麗に行番号付きで添付しているページをよく見かけます。
SyntaxHighlighter」を使っているらしいのですが、ソースを範囲指定しようとすると行番号も一緒になり、
行番号付きでコピペしてしまうのでとても不便です。
調べてみると、ここのやり方でソースコートを表示させると、ソースだけコピペできるので非常に便利です。
で、どうせなら、編集できる様になると嬉しい。
と云う訳で・・・
HTML5で contenteditable 属性というのが追加され、ブラウザの画面で、その部分だけテキストを編集できるそうです。
 
じゃぁ~組み合わせれば・・・・
と思って
<pre class=”brush: ruby;” contenteditable=”true”>
としてみたら、「SyntaxHighlighter」が
<pre>・・・</pre>
<div>・・・</div><div>・・・</div><div>・・・</div><div>・・・</div>・・・と変換していたので失敗。
なので

<div contenteditable=”true”>
 <pre class=”brush: ruby;”>

 ・・・

 </pre>

</div>

と<pre>部分を<div>で包んだらどうなるんだろう?
ソースの代りに、WordPressの投稿の編集「テキスト」モードから記事をコピペしてHtmlなEscapeテキストを表示してみた結果は、
まぁまぁ良い感じになりました。
でも、ちょっと遊んでみると・・・

  • 欠点1: 編集して文字を入力しても、テキスト文字の色は周囲と同じ。
  • 欠点2: 行を増やしても行番号が増えない!
  • 欠点3: 一部文字の色が真っ黒の部分(25行目付近)は悲惨!
  • 欠点4: 画面右上隅にが出る。
  • 欠点5: 最後にはグッチャグチャ(笑

って、感じです。
そうそう簡単にはいきませんよね?(爆
contenteditable との組み合わせなんて、気が付けば誰でもやるだろうし・・・
これからが楽しみだなぁ~(笑
 
参考1: ソースコードを行番号付きで、きれいに表示する「SyntaxHighlighter」の導入と使い方
参考2: [HTML5API] contentEditable 属性を使用したリッチテキストエディタの実現
 



AndroidのOSアップデートは無理っぽ

Android 5が出たけど、対応できるのはごく一部の機種だけ。
Xperia Zは Android 5へのアップデートを出すらしいけど、手持ちのS-04Eは Xperia Aなのでアウト オブ 眼中。
なぜアップデートできないのかと云えばCPUも周辺チップもみんなバラバラだからだ。
という感じでAndroidは買い替え前提になっている。
気に入ってたスマフォが安い中古が出ていたとしても
それに手を出すと古いOSなのでセキュリティ上問題が放置されているし、アプリ側も、今更2.2とか古いOSの対応なぞほどんどない。
※主にADKは2.2で、ちゃんとコンパイルできないせい。
という訳で Googleは 5以降は、スムーズなアップデートを考えているらしい。
DSP版AndroidOSでも出すんだろうか?
それなら、次は5を買えばいいのかな?



【WordPressの余計な機能】 – – が-(&hx8211 ;)や – に置き換わる

記事編集中は – のままなんだけど、
プレビューとか普通にブラウザで観ると–(全角)になっている。
良かれと思って --(半角2つ)を-(全角)に変えてると思うんだけど・・・
そのままTeraTermに貼ると
— RAMのハズが
?RAMになってしまうので、気が付く。 もしかしてブラウザが勝手にやってるかとも思ったけど 記事のHTMLを観ると
yum enablerepo=epel update が
yum &#x8211;enablerepo=epel update に置き換わっていた。
勿論、 –のある行の書式を pre に変えればちゃんと–と出るけど
<pre> <em> –name ${IMAGE_NAME} \</em></pre>
とか組み合わせが変わると
-name ${IMAGE_NAME} \
になってしまうので不便すぎ。
なぜ、こうなっているのか?
日本語パッチのせいかと思ってみたけど
それらしきコードは無く
wikipedia に答えがあった。

欧文組版

ASCIIにはどちらも存在しないので、enダッシュはハイフンマイナス「-」で、emダッシュはハイフンマイナス2つ「–」で代用される。

慣用らしい。
とここまで判ってしまえば WordPress emダッシュでググってみれば
テーマ内のfunction.php に

// ハイフンの自動変換防止
remove_filter(‘the_title’, ‘wptexturize’);
remove_filter(‘the_content’, ‘wptexturize’);

と付け加えればいいらしい。
ハイフン以外の変換も行われなくなります。
ということで、いろいろ弊害が出ているかもしれない。
参照: http://webkaru.net/wordpress/wptexturize-hyphen-en-dash/  WordPress ハイフンの文字化け(自動変換)を防ぐ方法



Android X86 4.4 RC2 を入れてみた

# wget http://sourceforge.net/projects/android-x86/files/Release%204.4/android-x86-4.4-RC2.iso/download
100%[======================================>] 348,127,232 3.49MB/s 時間 2m 31s
2014-11-18 18:21:18 (2.20 MB/s) – `download’ へ保存完了 [348127232/348127232]
# mv download android-x86-4.4-RC2.iso
# mv android-x86-4.4-RC2.iso /tmp
パーテーション設定でディスクが認識せず失敗。
リセットすると
Booting from Hard Disk
Boot failed: not a bootable disk
No bootable device.
何が悪いんだろう・・・
1.CentOS7は64ビット(x86_64)。これでデバイスをうまくいかないのは、AndroidX86が32ビット版だからだろう。

※x86 だけど _64が付くとは書かれてない。

2.だからrhel7もダメ。でもrhel6でもダメで、rhel5で落ち付いた。
【動いたスクリプト】

#ネットワークインストールするリポジトリURL指定
IMAGE=/tmp/android-x86-4.4-RC2.iso

#KVM上での名前を指定
IMAGE_NAME=Android4.4
IMG_PATH=/var/lib/libvirt/images

#virt-installでインストールする
  virt-install \
  --name ${IMAGE_NAME} \
  --ram 1024 \
  --disk path=${IMG_PATH}/${IMAGE_NAME}.qcow2,size=16,format=qcow2 \
  --vcpus=1 \
  --os-type linux \
  --os-variant=rhel5 \
  --arch=i686 \
  --accelerate \
  --graphics spice,listen=0.0.0.0 --channel spicevmc \
  --cdrom=${IMAGE}

 ※修正個所 

CFDISKコマンドがfdiskとちょっと違うので、このページの通りにやった方がよさそう。
ネットワークはWifiがうまくいっていないが youtobeも観れるし、中で端末ターミナルを実行すると ip addr で IPアドレスが取れてたからキニシナイ方針。
Googleアカウントを登録しておけばPlayStoreも使えるみたいだ。
他のAndroidエミュレータなどよりは速く動いている感じがする。
spiceでマウスを画面の外に出すにはShift+F12
AndroidX86を正しくシャットダウンするには、Spiceの画面上部分の時刻表示のある黒いバーをマウスでダラダラとドラッグすると、POWER OFFってボタンが出てくるので、それを押す。
デバッグするアプリを放り込む方法が思いつかない。 ←重要!
 



update phpmyadmin

いつまでもアップデートしないと思ったらリポジトリィがepelだった。

yum --enablerepo=epel update phpMyAdmin
================================================================================
  Package            アーキテクチャー
                                    バージョン                リポジトリー  容量
 ================================================================================
 更新します:
  phpMyAdmin         noarch         4.2.10.1-1.el7            epel         4.0 M
トランザクションの要約
 ================================================================================
 更新  1 パッケージ

完了。
ps. 2014/12/23

yum --enablerepo=epel update phpMyAdmin

================================================================================
Package             アーキテクチャー
バージョン             リポジトリー   容量
================================================================================
更新します:
phpMyAdmin          noarch          4.3.2-1.el7            epel          4.2 M
トランザクションの要約
================================================================================
更新  1 パッケージ
ps. 2014/12/24
しかし、phpmyadminのページにはこう書かれていた。
phpMyAdmin の新しいバージョンが提供されています。アップグレードの検討をお奨めします。最新バージョンは 4.3.3 で、2014-12-21 にリリースされています。

# yum --enablerepo=epel info phpMyAdmin
インストール済みパッケージ
名前                : phpMyAdmin
アーキテクチャー    : noarch
バージョン          : 4.3.2
リリース            : 1.el7
容量                : 20 M
リポジトリー        : installed
提供元リポジトリー  : epel
要約                : Handle the administration of MySQL over the World Wide Web
URL                 : http://www.phpmyadmin.net/

さて、yumのepelリポジトリィにアップされるのはいつ頃かな?



Javaとは・・・帯に短し襷に長きものなり

JavaでWEBアプリを組むにはまずServletを用い、アクセスの度にクラスからオブジェクトを生成しないようにする。
なぜ、そうなったのかと云えば、

Servletを採用した当時はハードウェアもソフトウェアも圧倒的に貧相だったからだ。

だから、もうServletなんぞ捨てて、ポートを直接listeningしか方が数段良いという本音を「サーバーもJavaScriptで作ろう」というキャッチコピーでやっているのがNode.js派だ。
直接listeningしているのだから、apacheやTomcatが適当にはぐらかしているブロッキングI/O(他の処理に比べ1桁も2桁も遅い処理が混入していることによるスループット低下)問題にまともにぶち当たるのはTCP/IP通信の碇石だ。
いずれは、ポートListenerChainクラスをインスタンス化するとか、ブロッキングI/O依存クラスをブローカークラスのインナークラスにするリファクタリング機能とかで妥協するだろうから、それまでNode.jsは待ち状態。
そんなこんなで、J2EEちゃん。
エンタープライズな準廃SE用パッケージとして今でもServletやEJBを大事にしてる。
とは云ってもJavaなWEBアプリ・コンテナ(Tomcatなど)がWARファイルの中のServlet派生クラスにアクセスする時点でマルチスレッドで解決しているのであってJ2EEはただのゲスト・ライブラリィ。だからデプロイも簡単。
一気にスタックを食いつぶす勢いでアクセスされればあっさりクラッシュするけど、それはJavaなWEBアプリ・コンテナの問題であってJ2EEの問題ではない(つまりサーバー運用の問題)と云い訳ができてしまうから始末が悪い。
勿論、ServletやEJBを直接アクセスするのは誰でも嫌(理由:サラっとドキュメントを見ればスパゲッティーなコードしか出来ないのがすぐ判る)なので、色々とワークフレームが作られた。
その代表例がStrutsだ。労働集約型でweb.xmlから参照されるstruct.xmlなど多数のXMLファイルにマークアップを入れ、その通りにたくさんのコードを埋めていくのでスケジュールを立てやすく見通しも原則的には良いハズだが、その場凌ぎのたくさんのコードを埋めていくというのがクセもので、粗製乱造された仕様書がピンボケ(意味:意味不)なのは避けられず、その類の仕事は前世期から上手くいった試しが無い。
その後、Spring、Seasar,wicket あるいは Struts 2 と Java WEBアプリのワークフレームは変遷を続け 軽量ワークフレームまで 出てくるが、
【帯に短し襷に長し】
の状況はそのまんまだったとさ。
 
メデタシメデタシ?
 
 



LIVA preinstall win.8 with being version

News! Windows 8.1 with Bing in LIVA Mini PC の後、
全く音沙汰なし。
全く在庫が履けてないんだろうなぁ~
で、結局・・・
Win.8 with Bing バンドル待ちから
店頭売り待ちに変わっただけ。(笑
多分、クリスマスシーズン(12月ぐらい)にはボチボチ出てくるんじゃないかな?
LIVAにインストできるOSはCPU(Bay Trail-M)とeMMC(HDDやSSDではない)の組み合わせてブートしファイルシステムをマウントしなければいけないので、カーネルイメージのブートストラップやドライバーの対応が必要。
今はWindows8 か Ubuntuのみとなっている。
Linuxの場合、カーネルのバージョンが3.13以降ならちゃんと対応できるらしいが、今のCentOS7は、
# uname -a
Linux ********.******.*** 3.10.0-123.9.2.el7.x86_64 #1 SMP Tue Oct 28 18:05:26 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# yum update
http://ftp.riken.jp/Linux/centos/7.0.1406/updates/x86_64/repodata/repomd.xml: [Errno 14] curl#6 – “Could not resolve host: ftp.riken.jp; 不明なエラー
他のミラーを試します。

あ、DHCPやめてSTATICに変えたんだった。

# vi  /etc/sysconfig/network-scripts/ifcfg-br0

GATEWAY=192.168.*.*
DNS1=192.168.*.*

を追記。

Loading mirror speeds from cached hostfile
 * base: centos.mirror.secureax.com
 * extras: centos.mirror.secureax.com
 * rpmforge: apt.sw.be
 * updates: centos.mirror.secureax.com
13 packages excluded due to repository priority protections
================================================================================
Package                 アーキテクチャー
バージョン              リポジトリー  容量
================================================================================
インストール中:
kernel                  x86_64      3.10.0-123.9.3.el7      updates       29 M
kernel-debug-devel      x86_64      3.10.0-123.9.3.el7      updates      9.0 M
更新します:
kernel-headers          x86_64      3.10.0-123.9.3.el7      updates      1.4 M
kernel-tools            x86_64      3.10.0-123.9.3.el7      updates      679 k
kernel-tools-libs       x86_64      3.10.0-123.9.3.el7      updates      618 k
sssd-client             x86_64      1.11.2-68.el7_0.6       updates      121 k
トランザクションの要約
================================================================================
インストール  2 パッケージ
更新          4 パッケージ
合計容量: 41 M
Is this ok [y/d/N]:
なので、もう暫く待たなくてはいけない。
但し、カーネルをリビルドして3.13以降にする方法があるらしい。
KVMで素のCentOS7を作り
どこからか
mmc_core
mmc-block
sdhci
sdhci-acpi
acpi_lpss
pinctrl
pinctrl-baytrai
を取り込んで
イメージファイルをLIVAのeMMCに展開すればいいらしい。
# virt-clone -o CentOS7.0 -n liva -f /var/lib/libvirt/images/liva.qcow2
# uuidgen
# virt-edit -d liva /etc/sysconfig/network-scripts/ifcfg-eth0  でUUIDをuuidgenの結果で上書き
# virsh start liva
ルータを観ると、違うMACアドレスが割当たっている。その結果にifcfg-eth0のHWADDRを上書き
なお、同じeMMCの DE3815TYKHEの情報もみつけた。
で、mmc_core が見当たらないので先の日記にあがっていたRPMをダウンロードしてゲストのliva にインストしてみる
# wget https://dl.dropboxusercontent.com/s/e3ezngudvbc9h74/kernel-3.16.2-5.x86_64.rpm
–2014-11-17 05:44:16–  https://dl.dropboxusercontent.com/s/e3ezngudvbc9h74/kernel-3.16.2-5.x86_64.rpm
dl.dropboxusercontent.com (dl.dropboxusercontent.com) をDNSに問いあわせています… 54.225.137.118, 23.23.132.156, 54.221.201.50, …
dl.dropboxusercontent.com (dl.dropboxusercontent.com)|54.225.137.118|:443 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 322905268 (308M) [application/x-redhat-package-manager]
`kernel-3.16.2-5.x86_64.rpm’ に保存中
100%[======================================>] 322,905,268 3.35MB/s 時間 85s
2014-11-17 05:45:43 (3.60 MB/s) – `kernel-3.16.2-5.x86_64.rpm’ へ保存完了 [322905268/322905268]
# ls
kernel-3.16.2-5.x86_64.rpm
# rpm -ivh kernel-3.16.2-5.x86_64.rpm
準備しています…              ################################# [100%]
更新中 / インストール中…
1:kernel-3.16.2-5                  ################################# [100%]
# uname -a
Linux liva.localdomain 3.10.0-123.9.2.el7.x86_64 #1 SMP Tue Oct 28 18:05:26 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# reboot
# uname -a
Linux liva.localdomain 3.10.0-123.9.2.el7.x86_64 #1 SMP Tue Oct 28 18:05:26 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# ls -l /boot
-rwxr-xr-x   1 root root 59396227  9月 20 21:50 vmlinux-3.16.2.bz2
lrwxrwxrwx   1 root root       20 11月 17 05:50 vmlinuz -> /boot/vmlinuz-3.16.2
・・・
-rw-r–r–   1 root root  5241232 11月 17 05:50 vmlinuz-3.16.2
なのでブートローダ次第かな
コンソール接続できるようにgrub2の構成ファイルを作り直す

# grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file …

# vi /etc/default/grub

GRUB_CMDLINE_LINUX=”vconsole.keymap=jp106 crashkernel=auto vconsole.font=latarchrheb-sun16 console=tty0 console=ttyS0,115200n8r

設定内容を反映

# grub2-mkconfig -o /boot/grub2/grub.cfg

コンソールで繋いで様子を見る

# virsh console liva

ブート画面で 3.16.2 を選択
CentOS Linux 7 (Core)
Kernel 3.16.2 on an x86_64
liva login:
# uname -a
Linux liva.localdomain 3.16.2 #1 SMP Sat Sep 20 21:50:15 JST 2014 x86_64 x86_64 x86_64 GNU/Linux
デフォルトが書き換わっていないかったようだ。
# 仮想ゲストのlivaを再起動してみたら
# uname -a
Linux liva.localdomain 3.16.2 #1 SMP Sat Sep 20 21:50:15 JST 2014 x86_64 x86_64 x86_64 GNU/Linux
なので、
カーネルを入れ直したら
grub2-mkconfig -o /boot/grub2/grub.cfg
を2度実行するといいらしい。
KVMにしておいてよかったよかった。
あとはLIVAを買ってddでイメージを展開してみるだけ(USBメモリで転送?)
あ、イメージ容量はeMMCより少ないしないとダメだよね?
もし、win.8 with being 入ってたら、KVM化できるかな?




top