idkqh7の研究日誌

基本は翻訳。{セキュリティ|プログラミング|バイオインフォマティクス|数学}について。

Ubuntu 14.04に仮想マシン管理ソフトをインストールしてPython3でSphinx

インストール(ホストPC)

本当はqemu-system virt-managerだけで良いはずだが、推奨パッケージ(suggests)も一応入れている。

sudo apt-get install qemu-system virt-manager qemu-kvm qemu radvd virt-viewer python-guestfs python-spice-client-gtk

一般ユーザでvirt-managerを立ち上げOSをインストール(ホストPC)

# vim /etc/libvirt/libvirtd.conf
unix_sock_group = "libvirtd"
unix_sock_rw_perms = "0770"
...
auth_unix_ro = "none"
auth_unix_rw = "none"

上記ように修正。

sudo service libvirt-bin restart
virt-manager

一般ユーザで起動。インストールするOSはDebian(jessie)に決定。 インストール時に'Web server'の項目をONにした。

※sudo起動してしまった場合

一度sudoで起動したあと、一般ユーザ権限で起動すると'No write access to 〜'という表示が出る。

sudo rm -rf ~/.virt-manager

で設定ファイルを消せばエラーは消えるはず。

そもそもlibvirtdグループに入ってない人は

sudo adduser USER_NAME libvirtd

という感じで。

Debian(jessie)の設定(仮想PC)

仮想マシン上にあるdebianの設定をしていく。

sudoを使えるように

sudoグループに一般ユーザを追加する。 ただし、一度ログアウトする必要がある?

su
apt-get install sudo
adduser USER_NAME sudo
logout
Python-3.4.2インストール

本当はapt-get installしたいが、ensurepipがまだ使えないのでソースからビルド。ついでにwget短縮URL使う方法も紹介。

sudo apt-get build-dep python3.4
wget --trust-server-names http://goo.gl/fHJ7Bo
tar -xvf Python-3.4.2.tar.xz
cd Python-3.4.2
./configure
make
make test
sudo make install
python3 -m ensurepip --upgrade
Sphinxのセットアップ

このときソースとビルドを分けるオプションを有効にする。

sudo pip3 install sphinx
mkdir ~/Labdoc
cd ~/Labdoc
sphinx-quickstart
apacheのセットアップ
sudo mv /var/www/html /var/www/html.bak
sudo ln -s ~/Labdoc/build/html /var/www/html
sudo service apache2 reload

物理ネットワークに接続させる(ホストPC)

仮想マシンの設定画面(iボタンをクリック)からNICを選択。

ソースデバイス: ホストデバイス eth0:macvtap
ソースモード: Bridge

※Bridge接続した後にホストマシンのネットワークが繋がらない問題が発生した場合

おそらくカーネルのアップデートで再起動が必要なときなので、素直に再起動してからBridge接続の設定をやり直す。

※それでもうまく行かない場合

Wifiアダプタをぶっさして、代わりにソースデバイスに指定する。

仮想マシンを静的IPに変更(仮想PC)

このとき、192.168..の中身は、物理ネットワークのゾーンを指定する。

sudo cp /etc/network/interfaces /etc/network/interfaces
sudo vi /etc/network/interfaces 
# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
  address   192.168.*.*
  network   192.168.*.0
  netmask   255.255.255.0
  broadcast 192.168.*.255
  gateway   192.168.*.1

eth0を再起動。

sudo service ifup@eth0 stop
sudo service ifup@eth0 start

参考文献

OS X Mavericks (Mac) で Go + Eclipse (GoClpse) な環境を整える。

プログラミング言語Goのインストール

brewを用いてプログラミング言語Goの環境をインストール。

brew update
brew install go

次に.zshrcを編集して{$GOROOT, $GOPATH}を設定しパスを通す

※($GOARCHなどをセットすると、go getしてもbinが作成されなくなる。クロスコンパイラ関係の問題?)

vim ~/.zshrc
if [ -x "`which go`" ]; then
    export GOROOT=`go env GOROOT`
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
fi

GOPATH用のフォルダを作成して、Gocode(自動補完)をインストール

source ~/.zshrc
mkdir ~/go
go get -u github.com/nsf/gocode

Go + Eclipse = GoClipse

  1. Eclipseのダウンロードページから最新版をダウンロード
  2. Help->Install New Softwareを選択
  3. Eclipse->環境設定->Goを選択
    • GOROOT : /usr/local/opt/go/libexec
    • GOPATH : /Users/YOUR_NAME/go
  4. Eclipse->環境設定->Go->Gocodeを選択
    • Gocode path : /Users/YOUR_NAME/go/bin/gocode
  5. Applyを押してOKで完了(※Go Toolsに関するパスはGOROOTを設定すれば自動的に設定される)

GoClipseを試す

  1. Go Projectを新規で作成し、PerspectiveをGoに切り替える
  2. プロジェクトを右クリックし、New->Go FIle
    • Source File : Hello.go
    • Command Source FileのリストボックスからEmpty Main Functionを選択してFinish
  3. 自動補完(Content Assist)の動作確認もかねて下のコードを入力してRun
package main 

import (
    "fmt"
)

func main() {
    fmt.Println("Hello, 世界")
}

動作結果

Hello, 世界

参考文献

Jetson TK1のセットアップ&Ubuntu 14.04 (zsh) でのクロスコンパイル環境を整える

Jetson TK1側での設定

とりあえずX Windowを起動できるように。

giste7584b84952ec3ad8102

CUDAの開発環境を整える。

gistf85713ac8d06dd1c3b5f (この手順をとばすと、/usr/lib/arm-linux-gnueabihf/tegraのフォルダが配置されない)

ホストPCの設定

基本的にはNVIDIA Nsight Eclipse Edition for Jetson TK1 | Parallel Forallを参考に。 zshでない人は、各自のターミナル環境に合わせて臨機応変にお願いします。

※かなりバッドノウハウ感があるので、dpkg --add-architecture armhfしたあとにapt-get updateしても404 Not Foundを出さない方法を募集!

gist48366550721a45593810

boxfilterを動作させてみる

プロジェクト作成
  1. Nsight起動
  2. File->New->CUDA C/C++ Projectを押す
    • Project Name は「boxfilter-arm」
    • Import CUDA Sample を選択
    • Toolchainsが“CUDA Toolkit 6.0”になっていることを確認
  3. Select the CUDA sample で「boxfilter」を選択
  4. そのままNext
  5. CPU architecture を「ARM」に変更
  6. Finishを押す

※Toolchainsが“CUDA Toolkit 6.0”になっていない人は、ls -la /usr/local/などで cuda -> cuda-6.0というシンボリックリンクになっているか確認。cuda-6.5になってる人は削除orリネームして

sudo ln -s /usr/local/cuda-6.0 /usr/local/cuda

シンボリックリンクを貼り直す。

プロジェクト設定
  1. (boxfilter-armのプロパティから)Properties->Build->Settings->Tool Settings->NVCC Linker->Librariesを選択
    • Library Search Pathを 「linux/x86_64」から「linux/armv7l」へ変更
    • GLUを削除(使わないので)
  2. NVCC Linker->Miscellaneous を選択
    • Other roption(-Xlinker[option])に「--unresolved-symbols=ignore-in-shared-libs」を追加(※参考元では−−の2本棒がつながっていたのでコピペに注意)
  3. Applyを押してOKで完了
ソースコード修正

boxFilter.cppにsetenv ("DISPLAY", ":0", 0);を追加。

int
main(int argc, char **argv)
{

    int devID = 0;
    char *ref_file = NULL;

#if defined(__linux__)
    setenv ("DISPLAY", ":0", 0);
#endif

    pArgc = &argc;
    pArgv = argv;

時間経過で終了するように変更。

void display()
{
    static int icnt = 120;
    while(!icnt--)
    {
        cudaDeviceReset();
        _exit(EXIT_SUCCESS);
    }
    sdkStartTimer(&timer);
  1. Build Projectでエラーが出てないことを確認
  2. Run As->Remote C/C++ Application
  3. Jetson TK1へのssh接続と同じ要領で、Remote Connectionにターゲットを指定
  4. Toolkit pathをDetectで自動指定(通常は/usr/local/cuda-6.0/binになる)
  5. Finishで実行

デバッグもこんな感じで頑張る。

参考文献

Ubuntu 14.04 で日本語Tex環境を整える

TeX Liveのインストールとテスト

gist4b12beccdab43eb67194

TeXworksのインストールと設定

uplatexによるpdf出力をTeXworksでも使えるようにする。

gist2d6b3b673f948e55542f

参考文献