logo

Archive for Linux

Google Compute Engine (GCE)のインスタンスへローカルファイルを転送する方法

初めてクラウドプラットフォームとやらの、GCEを利用してみようとしているのですが、インスタンスへのファイルの転送方法がよくわからず、1時間ほど解決にかかったのでココに記しておこうと思います。

次のような方法で転送できました。

例————————————-

プロジェクト名:project1

インスタンス名: instance1

ゾーン: asia-east1-c

転送ファイル名:hoge.tar.gz

————————————-

上記の場合次のコマンドでインスタンスへローカルのファイルが転送できました。

gcloud compute --project "project1" copy-files --zone asia-east1-c hoge.tar.gz instance1:~/hoge.tar.gz

最後のところのinstance1のあとに:~/として送り先のファイル名を指定しないとエラーになって転送できませんでした。

 

ubuntuに話題のブラウザーのfifthをインストールしてみる

巷で話題の

新ブラウザーfifthですが、さっそくubuntu14.04にインストールしてみました。

といいたいところですが、現在のところ、途中で止まっています。

 

11/20

バージョンv0.11が発表されました。

うまく行かなかったパッケージのwebkitfltkも同時に配布されてるようです。

というわけで、いってみましょう。v0.1用に途中までライブラリをインストールしているので

もしかすると手順が変わってしまってるかもしれません。

2014-11-20-113636_1024x742_scrot

これが現在の状態です。まだ、100人以下しかダウンロードしてないようで、かなりこのブログは速報的かもしれません。

というわけで、今後大幅にインストール方法は変わるかもしれませんので、お気をつけ下さい。

ダウンロードサイト

http://sourceforge.net/projects/fifth-browser/files/v0.1.1/

今回実行した環境はi386です。

 

まずはソースをとってきます。

$wget 'http://downloads.sourceforge.net/project/fifth-browser/v0.1/fifth-0.1.tar.xz'

さてそれでは展開です。

どうも.tar.xzという見慣れない形式で圧縮されています。

しらべましたら、tar にJオプションをつければ解凍できるようです。

というわけで解凍します。

$tar Jxvf fifth-0.1.tar.xz

さあ./configureしましょうと、いければいいのですが

怒涛のライブラリインストールの幕上げ

です。

今回の環境にはビルドするのに必要なものがないため、ここでひと通り入れました。

$sudo apt-get update
$sudo apt-get install build-essential

 

さて、libfltk-devというのがいるようなのですが、これはubuntuのパッケージにあるものだとバージョン古いようです。というわけでこちらもソースからビルドします。

$wget 'http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz'
$tar zxvf fltk-1.3.3-source.tar.gz
$cd fltk-1.3.3/
$./configure
$make
$sudo make install

これでおkです。

つぎに、liburlmatchとやらをインストールしないといけないようなので、こちらも

こちらはgitで取得できます。

またそれをビルドするには、zlib.hよやらが必要なためそれをapt-get で先にインストールします。

$sudo apt-get install zlib1g-dev 
$git clone https://github.com/clbr/urlmatch.git
$cd urlmatch/
$make
$sudo make install

これでliburlmatchはおkです。

 

それでは残りの依存パッケージをインストールしておきます。

$sudo apt-get install libphysfs-dev
$sudo apt-get install libjpeg-dev
$sudo apt-get install pkg-config
$sudo apt-get install libxslt-dev libsqlite3-dev libpng++-dev libxml2-dev libfontconfig1-dev
$sudo apt-get install libglib2.0-dev libcurl4-openssl-dev libcairo2-dev
$sudo apt-get install libharfbuzz-dev libicu-dev

凄まじい勢いでapt-get installしてますが、これでおkのはずです。

足りないものは./configureした時に出てきます。

 

こちらはインストールしましたが必要なかったかもしれません。

$sudo apt-get install libwebkit-dev libwebkitgtk-dev

もし、なしでうまく行かない場合はこれを入れてみてください。

 

11/20追記部分:

v0.11でfifth謹製のwebkitfltkが公開されたようなので、続きを進めたいと思います。

それでは、webkitfltkなるものを入れます。

インストールする前にbisonなるものをインストールする必要があるようです。

といくことで、インストールします。

sudo apt-get install bison

完了したら、webkitfltkを入れます。

ソースをダウンロードしてコンパイルです。

これはかなり時間がかかります。CF-R5ですべてコンパイルに1時間程度かかりました。

$wget 'http://downloads.sourceforge.net/project/fifth-browser/v0.1.1/webkitfltk-0.1.1.tar.xz'
$tar Jzxf webkitfltk-0.1.1.tar.xz
$cd webkitfltk-0.1.1/
$make -C Source/WTF/wtf
$make -C Source/JavaScriptCore gen
$make -C Source/JavaScriptCore

$make -C Source/WebCore
$make -C Source/WebKit/fltk

 

しかし、またもやWebCoreで停止です。(11/21)

進めるようになったら再開したいと思います。

 

 

 

以下はv0.11になる前ににあった文章です。

といけるとおもったのですが、ここで、WebCoreで引っかかりました。

フォーラムに行くと同じバグが報告されていまして、

It’s a known issue and will hopefully be resolved soon.

と書いてあるので、多分そのうち治るのでしょう。

ということで今回はここまでです。

進めるようになったら記事を更新したいと思います。

太陽光発電で自立運転するrasberrypiサーバーの構築

というわけで,太陽光発電でなにかできないかということで

思いついたのが,RaspberryPiを使った完全電源独立のサーバーです.

つまり太陽光で動くサーバーをつくろうというわけです.

電源のない畑でサーバーを動かそうというある意味,壮大な計画です.

といっても,どこかの山荘では実際にこのタイプでサーバーが動いてるようです.

今回はとりあえず,プロトタイプができたので,概要です.

 

ネットで見てると同じようなことをされてる素晴らしい先人がいました.

 

というわけで,考えてみました.

 

everlightv0.8

 

こんな構成で行こうと思います.

ちなみに,陽光悠久発電電子演算器という立派な正式名称はチキュー工房の中の人がつけてくれました.

 

太陽光パネルの台はこれを作るためにあるのです.

 

というわけで,部品が揃ったので早速,製作開始です.

 

回路の説明は単純に

太陽光で発電します.

充電コントローラーでバッテリーと負荷をコントロールします.

充電コントローラーの負荷に自作の電源電圧監視機能付き5V電源をつけます.

5V電源でUSBの電圧を作ってこれでRaspberryPiを駆動させます.

RaspberryPiは日中は太陽光で動き,夜はバッテリーからの電源で動きます.

 

こんなかんじです.

ここで,今回突如として,世界が暗黒に包まれたあとでも,自動で復帰するように

5V電源に電源電圧を監視してリレーを動かす機能をつけました.

しかし,これがなかなかうまいこと行かず・・・・苦労することになりました.

 

そんなこんなで写真はないですが電源回路は出来ました.

テスト中に電源監視用のIC M51957Bを何度も壊してしまい,いまのところ最後の一個でなんとか,電源の主電源監視のみできています.

 

RaspberryPiで,ソーラーパネルの発電量や消費電力を知りたいということで

StrawberryLinuxのINA226の電力計モジュールをつけることにします.

それは下のようなものです.

 

IMG_1740

RaspberryPIとはI2Cで接続できます.

ということで,データー送信用のSDA,SCLと3V電源とGNDの4本で接続できます.

I2C接続なので,同じラインにIDがかぶらない限り何個でもつけることができます.

このキットではジャンパのところをはんだづけすることでIDがセレクトできるようになっていました.

 

ということで,これをバッテリーとRaspberryPiの負荷側に,取り付けます.

 

IMG_1741

 

試行錯誤の末できたもの,外に置くため箱のなかに入れます.

このケース,台所用品として売ってるものでおおきい字でUnixと書いてます,ちょうどいい名前です.

いれるのはLinuxですが・・・・・

I2Cの接続は後でいらえるように,上の汎用基板を両面テープでくっつけてます.

 

いろいろな問題が発生しましたが,電源の多重化するためにモバイルバッテリーを挟むつもりでしたが,充電が500mA放電が1.5Aなので

充電電流が足りず,さらに,USB電源を逆につないでしまい,焼損しました.・・・・

というわけで今のところなしです.

 

 

IMG_1753

出来上がった図

上に張り付いてるのが電源監視ボードと5V電源です.

黒い機械はソーラーパネルの充電コントローラーです.

 

 

 

IMG_1754

これがサーバーが入った本体です.

 

 

 

IMG_1755

ここでで問題発生です.

スイッチを入れなくてもこのコンピューターついてしまいます.!!

最初は謎のエネルギー源で動いてるのかと焦りましたが,

INA226のキットが回路図をちゃんと見ていなかったため,どうも,なぞの閉回路ができてしまい,

スイッチを入れなくても,どっかから電流がバックして起動してるようです.

 

これをあれこれやってるうちに,INA226は両方共,壊れてしまいました.

というわけで,現在は取り付けず稼働させています.

電力量がわからないのが残念ですが,これはそのうち対策を考えます.

 

 

IMG_1756

 

これが,あれこれ考えた末に,2つの設定した電源電圧でリレーが入ったり入らなかったりするUSB5V電源回路

電源電圧が落ちる前に,ラズベリーパイの電源を安全に落とすために作りました.

これは設定した電圧でリレーをオン・オフしRaspberryPIのGPIOかリセット端子を自動で押すためにあります.

 

現在,リセットICが焼けてしまい,主電源のみリレーのみ動いています.

ということはいまのところ9V以下になるとUSB5V電源が落ちるだけの,全く無意味な回路です.

 

現在は太陽光で稼働させることはできています.

とりあえずプロトタイプとしては成功でしょうか.

 

電源容量は足りるのかということですが,実際にどうなるかを現在テスト中です.

 

ちなみに,ラズベリーパイは稼働時で実測3.6W程度でした.参考までに

 

 

bashの脆弱性 CVE-2014-6271のパッチをソースに当ててbashをupdateする

patchの当て方を書き直しました.

 

先日公開されたbashの脆弱性

 

参考になった情報源はこちら

BASHの脆弱性でCGIスクリプトにアレさせてみました

http://www.walbrix.com/jp/blog/2014-09-bash-code-injection.html

先程から騒ぎになっているbashの脆弱性について

http://blog.ueda.asia/?p=3967

はかなり深刻なようなので,パッチを当ててみます.

パッチの当て方がはじめよくわからなかったので,記しておきます.

 

 

今回yumが使えない環境ですので,ソースからビルドします.

参考にしたサイト

Bash 4.0 のインストール CoLinux日記

 

$ bash --version

で現在のbashのバージョンを確認しておきます.

今回はせっかくなので4.0から4.3にします.

 

まず最初にダウンロードしたファイルの検証をするために公開鍵をインポートします.(これはなくてもいいです.)

$gpg --keyserver pgp.mit.edu --recv-key  64EA74AB

 

次にソースをダウンロードします.

 

$wget "http://core.ring.gr.jp/pub/GNU/bash/bash-4.3.tar.gz"
$wget "http://core.ring.gr.jp/pub/GNU/bash/bash-4.3.tar.gz.sig"

 

検証します.

$gpg --verify bash-4.3.tar.gz.sig

gpg: 2014年02月25日 23時36分04秒 JSTにDSA鍵ID 64EA74ABで施された署名
gpg: “Chet Ramey <chet@cwru.edu>”からの正しい署名
gpg: 警告: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。

OKなら次に進みます.

 

展開します.

$tar xvzf bash-4.3.tar.gz
$cd bash-4.3

 

ここでパッチをダウンロードします.

CVE-2014-6271

http://seclists.org/oss-sec/2014/q3/651

 

ここは書き直しました.

現在

該当パッチ

CVE-2014-6271 Patch (第一弾)->
http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-02

CVE-2014-7169 Patch (第二弾)->

 

現在は
http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-029

まで出ているようです.

どこまで出ているからはここにアクセスして見てください.

 

どうもパッチは001から順番に当てないといけないようなので,まずパッチを001から順番にダウンロードします.

$wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-0{01..29}

(追記:上の連番ファイルの指定方法が間違っていました.[]ではなく{}です.)

 

そして適用します.

$cat bash43-* | patch -p0

ワイルドカードで指定していますが,001 002・・・と展開されるようで今回はこれでうまくいきました.

全部適用できたらmakeしてインストールです.

 

終わったら,ソースをビルドしてインストールです.

$ ./configure
$ make
$ su 
$ make install 2>&1 |tee Install.log
$ exit
$ which bash
/usr/local/bin/bash
$ ldconfig
$ bash --version

最後にbashのバージョンが更新されているか確認できればOKです.

これで無事bashの更新が出来ました.

 

さてそれでは肝心なパッチが効いてるか確認します.

$ x='() { :;}; echo vulnerable' bash -c 'echo this is a test'
bash: 警告: x: ignoring function definition attempt
bash: `x' の関数定義をインポート中にエラーが発生しました
this is a test

となって

vulnerable
this is a test

と表示されず.

エラーがでればOKです.

 

 

 

改造なしでRaspberry pi の無線LANを安定化する方法

wikiより

Raspberry Piの無線LANを使った時に安定化できるかもしれない方法です.

無線LANのドングルをRaspberry Piに取り付けると電力不足で不安定になります.

今回の場合はBuffalo製のWLI-UC-GNMです.

USBの電源を強化すればいいのですが,USBハブなどをいろいろ取り付けたりするのが結構面倒です.

そこで,送信出力を下げてみるとどうだろうかということで,やってみたところ結果的に安定になりました.

使用するコマンドは次のとおりです.


sudo iwconfig wlan0 txpower 1

そうすると,


<strong></strong>pi@raspberrypi ~ $ sudo iwconfig
wlan0     IEEE 802.11bgn  ESSID:"70037E48A54A1DF971"
Mode:Managed  Frequency:2.417 GHz  Access Point: 00:24:A5:10:E3:41
Bit Rate=6.5 Mb/s   Tx-Power=1 dBm
Retry  long limit:7   RTS thr:off   Fragment thr:off
Encryption key:off
Power Management:on
Link Quality=57/70  Signal level=-53 dBm
Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
Tx excessive retries:0  Invalid misc:0   Missed beacon:0

となって送信出力を絞ることができます.

無線LANが安定になったことで,SSHが安定になりました.

出力を絞ると接続できないような場所だと無理ですが,ルーターが近くの場合有効だと思います.

 

追記:それなりに安定はするものの,この方法ではまだ電力不足で接続が一瞬切れることがあるようです.最終的な改善はやはり電源強化でしょうか.

VMware player ubuntu 13.04 kernel 3.8.0-22 modconfig成功

VMware Playerはいつのまにかバージョン5にあがっています.

 

そこでubuntu 13.04の3.8.0-22のカーネルが使えるかという事ですが

問題なくコンパイルできました.

ただ,手動でversion.hファイルの位置を知らせなければならなかったです.


ln -s /usr/src/linux-headers-3.8.0-22-generic/include/generated/uapi/linux/version.h /usr/src/linux-headers-3.8.0-22-generic/include/linux/version.h

としなければならなかったです.

シンボリックリンクを作って


sudo vmware-modconfig --console --install-all

でコンパイル完了です.

 

参考にしたサイトは

Ubuntu 13.04にアップグレードしたらVMware Playerが起動しなくなった

http://b0ner.go-th.net/ubuntu/vmware-error-when-kernel-upgrade

です

VMware toolsからwindows.isoを抜く方法

upgradeしたらVMware toolsがまともに入らなくなりました.

調べたら

http://www.arch.info.mie-u.ac.jp/~sasaki/hobby/VMware/

にとても,有益な情報が

そして,このcomponentなるファイルは

http://softwareupdate.vmware.com/cds/vmw-desktop/player/

からダウンロードできます.

ダウンロードしたtarから.componentファイルを取り出して

上のURLに書いてあるように

vmware-installer --install-component=vmware-tools-linux-8.8.2-591240.i386.component -x temp

などとやればtempフォルダに.componentが解凍されるので

なかからwindows.isoを取り出せば良いようです.

あとは,このisoイメージをマウントすれば中にインストーラーが入っています.