変奏現実

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

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

2014 / 11月

WindowsPCの共有フォルダをLinuxで借りる方法

Androidのソースが大きすぎるのでWindowsPCのHDDを間借りすることにした。
# yum -y install cifs-utils
インストール:
cifs-utils.x86_64 0:6.2-6.el7
依存性関連をインストールしました:
libldb.x86_64 0:1.1.16-4.el7             libtalloc.x86_64 0:2.0.8-4.el7
libtdb.x86_64 0:1.2.12-3.el7             libtevent.x86_64 0:0.9.18-6.el7
libwbclient.x86_64 0:4.1.1-37.el7_0      pytalloc.x86_64 0:2.0.8-4.el7
samba-libs.x86_64 0:4.1.1-37.el7_0
完了しました!
# mkdir   /フォルダ
WindowsPC側で
共有するためのアカウントと共有フォルダを作る

アカウントは何でもいいが、パスワードを付けないとWindowsUpdateを全くやっていない一部のXP以外はネットワーク接続ができない。

共有するフォルダのプロパティで【共有】タグで【共有】ボタンを押し、先のアカウントで読み書きできるようにする。

# mount -t cifs -o user=ユーザ,password=パスワード //WindowsPCのIPアドレス/共有フォルダ   /フォルダ
#
何も出ないけど使える。
自動接続する場合は
echo //WindowsPCのIPアドレス/共有フォルダ /フォルダ cifs user=ユーザ,password=パスワード,defaults 0 0 >> /etc/fstab
でいいらしい。
しかしandroidのソースをコピーしてみると
cp: シンボリックリンク `/フォルダ/android-x86/ndk/sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgtEQ’ を作成できません: サ ポートされていない操作です
と出てきた。シンボリックリンク は使えないらしい。
もちろん repo init すら通らない。
Get http://git.android-x86.org/manifest
Traceback (most recent call last):
File “/フォルダ/android-x86/.repo/repo/main.py”, line 500, in <module>
_Main(sys.argv[1:])
File “/フォルダ/android-x86/.repo/repo/main.py”, line 476, in _Main
result = repo._Run(argv) or 0
File “/フォルダ/android-x86/.repo/repo/main.py”, line 155, in _Run
result = cmd.Execute(copts, cargs)
File “/フォルダ/android-x86/.repo/repo/subcmds/init.py”, line 390, in Execute
self._SyncManifest(opt)
File “/フォルダ/android-x86/.repo/repo/subcmds/init.py”, line 163, in _SyncManifest
m._InitGitDir(mirror_git=mirrored_manifest_git)
File “/フォルダ/android-x86/.repo/repo/project.py”, line 2076, in _InitGitDir
self._UpdateHooks()
File “/フォルダ/android-x86/.repo/repo/project.py”, line 2098, in _UpdateHooks
self._InitHooks()
File “/フォルダ/android-x86/.repo/repo/project.py”, line 2126, in _InitHooks
os.symlink(os.path.relpath(stock_hook, os.path.dirname(dst)), dst)
OSError: [Errno 95] Operation not supported
とは云え
# df -H
ファイルシス              サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root      41G   22G   19G   55% /
devtmpfs                    1.7G     0  1.7G    0% /dev
tmpfs                       1.8G     0  1.8G    0% /dev/shm
tmpfs                       1.8G  9.0M  1.7G    1% /run
tmpfs                       1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/sda2                   521M  168M  354M   33% /boot
/dev/sda1                   210M   10M  200M    5% /boot/efi
/dev/mapper/centos-home      20G   34M   20G    1% /home
/dev/sdb1                    63G   21G   39G   35% /usbSSD
//WindowsPCのIPアドレス/共有フォルダ  3.1T  537G  2.5T   18% /フォルダ
3.1Tは魅力的なサイズだ。(大笑
http://thinkit.co.jp/free/tech/26/4/1.html などを見てダミーファイルを作ろうとしたが
# dd if=/dev/zero of=/フォルダ/ext3.img bs=1G count=1 seek=128
何時まで経っても終わらないので・・・
dd のseek オプションで一瞬で大きなファイルを作るを参考に
128GB=128 × 1024 (MB) × 1024 (KB) × 1024 (B)=137438953472 だから
# dd   if=/dev/zero   of=/フォルダ/ext3.img  seek=137438953472   bs=1   count=1
1+0 レコード入力
1+0 レコード出力
1 バイト (1 B) コピーされました、 0.00187216 秒、 0.5 kB/秒
で、サクっとエリアを借り、フォーマット
# mkefs -t ext4  /フォルダ/ext3.img
ke2fs 1.42.9 (28-Dec-2013)
/フォルダ/ext3.img is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
8388608 inodes, 33554432 blocks
1677721 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2181038080
1024 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): [ENTER]done
Writing superblocks and filesystem accounting information:
長い。タスクマネージャで調子を見ていたらHDDの起動音が・・・ディスクが止まっていたらしい。すぐに
done
メモリが24GBなのでキャシュしていたのかな?
ま、他にも何かあるのかもしれない。
適当にマウントしてみると
# df -h
ファイルシス              サイズ  使用  残り 使用% マウント位置
・・・
//WindowsPCのIPアドレス/共有フォルダ   2.8T  756G  2.0T   28% /フォルダ
/dev/loop0                  126G   61M  120G    1% /ext3.imgをマウントしたフォルダ
とりあえずコレでシンボリックリンクも貼り放題。
巨大なファイル(qemuのイメージファイルとか)のコピーをWindowsのタクスマネージャで見てみると、瞬間最大で100MB/秒強(LANが1Gbpsなので上限値)とか、USB2でSSDにつなぐより速いのでrepoのダウンロードも短くて済みそうだが、nucのCPUファンが唸りっぱなしになった。
 
いつも使う訳ではないのでスクリプトで切り替える様にする
ssdmount.sh

 # WindowsPCのIPアドレス
WINPC_IP_ADDRESS=192.168.*.*
# WindowsPCの共有フォルダ
WIN_SHARE_FOLDER=共有フォルダ名
# WindowsPCのアカウント
WIN_ACC=user=ユーザ名,password=パスワード
# 共有フォルダのマウント先
WINPC_SHARE_MOUNT_POINT=マウントするフォルダ名
# WindowsPCの共有フォルダにあるext4イメージファイル
EXT_IMG=${WINPC_SHARE_MOUNT_POINT}/イメージファイル名
# ext4イメージファイルのマウント先
EXT4_MOUNT_POINT=イメージファイルをマウントするフォルダ名
#
if [ “$1” == “-u” ]; then
    echo  umount  mode
    mount  |  grep  “on ${EXT4_MOUNT_POINT}”
    mount  |  grep  “on ${WINPC_SHARE_MOUNT_POINT}”
    #EXT4イメージをアンマウント
    umount  ${EXT4_MOUNT_POINT}
    #共有フォルダをアンマウント
    umount  ${WINPC_SHARE_MOUNT_POINT}
elif [ “$1” == “-m” ]; then
    echo  mount  mode
    #共有フォルダをマウントするフォルダを作る
    if [ ! -e ${WINPC_SHARE_MOUNT_POINT} ]; then
        echo  make ${WINPC_SHARE_MOUNT_POINT}
        mkdir  ${WINPC_SHARE_MOUNT_POINT}
        chmod  0777  ${WINPC_SHARE_MOUNT_POINT}
    fi
    #EXT4イメージファイルをマウントするフォルダを作る
    if [ ! -e ${EXT4_MOUNT_POINT} ]; then
        echo  make ${EXT4_MOUNT_POINT}
        mkdir  ${EXT4_MOUNT_POINT}
        chmod  0777  ${EXT4_MOUNT_POINT}
    fi
    #共有フォルダをマウント
    mount -t cifs -o ${WIN_ACC}    //${WINPC_IP_ADDRESS}/${WIN_SHARE_FOLDER}    ${WINPC_SHARE_MOUNT_POINT}
    #EXT4イメージをマウント
    if [ -e ${EXT_IMG} ]; then
        mount   ${EXT_IMG}    ${EXT4_MOUNT_POINT}
    fi
    mount  |  grep  “on ${EXT4_MOUNT_POINT}”
    mount  |  grep  “on ${WINPC_SHARE_MOUNT_POINT}”
else
    echo unknown mode [$1].
    echo option -m or -u.
fi

いつも思うけど、手打ちしたものをシェルスクリプトにしてしまうと長くなるなぁ~
しかし、WindowsPC側にEXT4イメージファイルを配置してnucから使うのはトリッキーではあるけれど・・・
チョット使ってみたいのでKVMゲストをWindowsPCに作るには便利だ。
バックアップも取りやすい。
Windows10のプレビュー版もモサモサと動く(サクサクではない
 
参考 : http://ry.tl/mount.html



マウスコンピュータ  スティック型PC 「m-Stickシリーズ MS-NH1」

安くて気軽に買える。
小さくて置き場所に困らない。
サイズはChromecastぐらい。
eMMC(32GB)なのでCentOS7はインストできないがUbuntuなら大丈夫だろう。
WifiとBluetoothは付いている。
LIVAとの違いは、LIVAにはUSB3ポートと有線LANポートがあるけど、micro SDメモリースロットはない。
ブログ鯖にするなら、やはりLIVAのUSB3にSSDを繋いだ方が良さそう。
どっちも心配なのは24時間稼働(繋ぎっぱなし)で過熱しないかどうか?
ま、スペックをみるかぎり Windows 8.1 with Bing 付きらしいので、最安値。
中古のパソコンでいいんだけど?と云う人に進めてみるかな?
でも、HDMI出力しかなので、格安のアナログRGB入力のモニタに金物の変換アダプタを繋いでも映らない。
HDMI to VGA adapter ブラック / HDMI信号をVGA出力信号に変換するアダプターのようにRaspberry-Piでも使えると評価されたものを探すといいだろう。安い(今、880円)
注意点としてはUSBが1口なのでBluetoothのキーボードやマウスを使いたいが、最初にデバイスを認証させるために有線のキーボードとマウスを接続しておかないといけない。
無線アダプタ1個でキーボードとマウスを繋ぐ Logicool のMK270 (2~3千円前後)も買っておいた方がいいだろう。アダプタ自体にキーボードとマウスの認証情報が書き込まれるので、他のPCにアダプタを挿すとすぐ使えるので据え置きしてるノートPCにも使え重宝する一品。
 



Android-x86 を ビルド  ・・・ing

参考: http://www.android-x86.org/getsourcecode
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
$ branch=lollipop-x86
$ mkdir android-x86
$ cd android-x86
$ repo init -u http://git.android-x86.org/manifest -b $branch
$ repo sync
error: prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9/: platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 checkout 5dbc43c533f23bc0a566eb5b91a0f1ba5dbc9189
# df -H
ファイルシス            サイズ  使用  残り 使用% マウント位置
・・・
/dev/sdb1                  63G   60G     0  100% /usbSSD
仕方がないので移動。
# make iso_img TARGET_PRODUCT=android_x86
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.0
TARGET_PRODUCT=android_x86
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=x86
TARGET_ARCH_VARIANT=x86
TARGET_CPU_VARIANT=
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.10.0-123.9.3.el7.x86_64-x86_64-with-centos-7.0.1406-Core
HOST_BUILD_TYPE=release
BUILD_ID=LRX21V
OUT_DIR=out
============================================
Checking build tools versions...
including ./abi/cpp/Android.mk ...
including ./art/Android.mk ...
・・・
オリジナルのソースはこっち、ブランチ名はこっち
repo init -u https://android.googlesource.com/platform/manifest


Hyper-VにAndroidX86を入れてみる

公式のAndroid-X86は純粋に32ビットバージョンなので、
64ビットのWin8のHyper-Vでは起動してもディスクを認識できない。
64ビットで試しに作ったらしいモノも見かけたがLANは繋がらなかった。
※https://code.google.com/p/android-x86/downloads/listのandroid-x86-4.3-20130725.iso
更に、Hyper-Vなのでホスト側のUSBなどを接続する方法も存在しない。
 



【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 ハイフンの文字化け(自動変換)を防ぐ方法




top