2018年

5月

23日

vimのcolorschemeの設定

ubuntu-17.10 の vim でcolorschmeを設定する方法です。

 

デフォルトでインストールされているVimでcolorschemeを設定すると、

下記のエラーが発生します。

-----------------------------------------------------------------------------

Error detected while processing /home/****/.vimrc:

line    1:

E319: Sorry, the command is not available in this version: syntax on

Press ENTER or type command to continue

-----------------------------------------------------------------------------

 

下記コマンドで、デフォルトで入っているvimを削除し、

完全版をインストールすると、colorschemeを変更できるようになります。

 

$ sudo apt-get --purge remove vim-common vim-tiny

$ sudo apt-get install vim

 

以下molokai を設定する場合の例です。

$ mkdir -p ~/.vim/colors

$ cd ~/.vim/colors

$ wget https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim

$ ~/.vimrc

-----------------------------------------------------------------------------

colorscheme molokai

syntax on

-----------------------------------------------------------------------------

 

2018年

2月

01日

NIC冗長化(Linux bonding設定)

1.はじめに

Linuxで、NIC冗長化(bondig)の設定方法です。

環境は、"CentOS release 6.9 (Final)"です。

eth1, eth3を使い、冗長化します。

 

2.設定

2.1.カーネルモジュールの追加

# vi /etc/modprobe.d/bonding.conf

--------------------------------------------------------------------

alias bond0 bonding

options bond0 mode=1 primary=eth1 miimon=500

--------------------------------------------------------------------

※modeは、"参考"のリンクを参照。

 

・カーネルモジュールをロード

# modprobe bonding

 

・ロードされたことを確認する

# lsmod | grep bonding

--------------------------------------------------------------------

bonding               132885  0 

--------------------------------------------------------------------

 

2.2.ifcfgの設定

(1)/etc/sysconfig/network-scripts/ifcfg-bond0

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

--------------------------------------------------------------------

DEVICE=bond0

BOOTPROTO=none

ONBOOT=yes

NETWORK=192.168.0.0

NETMASK=255.255.255.0

IPADDR=192.168.0.11

--------------------------------------------------------------------

 

(2)/etc/sysconfig/network-scripts/ifcfg-eth1, ifcfg-eth3

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

--------------------------------------------------------------------

DEVICE=eth3

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

--------------------------------------------------------------------

 

2.3.networkを再起動

# service network restart

 

ifconfigで確認すると下記の通りになります。

 

# ifconfig

bond0     Link encap:Ethernet  HWaddr 08:00:27:CD:E0:6C  

          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fecd:e06c/64 Scope:Link

          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

          RX packets:111646 errors:0 dropped:0 overruns:0 frame:0

          TX packets:454440 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:12262305 (11.6 MiB)  TX bytes:594355923 (566.8 MiB)

 

…省略…

 

eth1      Link encap:Ethernet  HWaddr 08:00:27:CD:E0:6C  

          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:111556 errors:0 dropped:0 overruns:0 frame:0

          TX packets:454439 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:12256375 (11.6 MiB)  TX bytes:594355833 (566.8 MiB)

 

…省略…

 

eth3      Link encap:Ethernet  HWaddr 08:00:27:CD:E0:6C  

          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:90 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:5930 (5.7 KiB)  TX bytes:90 (90.0 b)

 

3.参考

・LinuxでのNIC冗長化(bonding)を少し深く考えてみる

 http://nosa.cocolog-nifty.com/sanonosa/2013/12/linuxnicbonding.html

 

2018年

1月

27日

DockerをCentOS7にインストール

1.前提

Windows10にVirtualBoxを入れ、その上で動くCentOSのVM環境にDockerをインストールします。

各バージョンは下記の通りです。

  

Windows 10 Pro

VritualBox 5.2.6

CentOS Linux release 7.4.1708 (Core) 

docker-ce-17.12.0.ce-1.el7.centos

 

2.Dockerインストール

2.1.準備(sudo設定)

インストールに使うユーザを"wheel"グループに追加する。

 

# gpasswd -a {USER} wheel

 

2.2.dockerインストール

(1)旧バージョンをアンインストール

$ sudo yum remove docker docker-common docker-selinux docker-engine

 

(2)必要なパッケージをインストール

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 

(3)リポジトリを追加

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

(4)インデックス更新

$ sudo yum makecache fast

 

(5)インストール可能なバージョンのリストを取得

$ yum list docker-ce --showduplicates | sort -r

----------------------------------------------------------------------

利用可能なパッケージ

読み込んだプラグイン:fastestmirror, langpacks

インストール済みパッケージ

docker-ce.x86_64            17.12.0.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.12.0.ce-1.el7.centos            @docker-ce-stable

docker-ce.x86_64            17.09.1.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.09.0.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.06.2.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.06.1.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.06.0.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.03.2.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable 

docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable 

Loading mirror speeds from cached hostfile

 * updates: ftp.iij.ad.jp

 * extras: mirror.fairway.ne.jp

 * base: mirror.fairway.ne.jp

----------------------------------------------------------------------

 

(6)バージョンを指定してインストール

$ sudo yum install docker-ce-17.12.0.ce-1.el7.centos

 

(7)docker起動

$ sudo systemctl start docker

 

(8)動作確認

$ sudo docker run hello-world

----------------------------------------------------------------------

Hello from Docker!

This message shows that your installation appears to be working correctly.

…省略…

----------------------------------------------------------------------

 

(9)sudoの設定

$ sudo gpasswd -a {USER} docker

 

(10)確認

  • 仮想マシンを再起動

$ sudo reboot

 

  • "hello-world"イメージを利用してdockerが正しくインストールされたことを確認

$ sudo systemctl start docker

$ docker run hello-world

 

3.参考

・「Get Docker CE for CentOS」

・「さわって理解するDocker入門」

・「Dockerイメージの理解とコンテナのライフサイクル」

2018年

1月

22日

pacemakerの操作メモ

pacemakerのよく使いそうな操作のメモです。

<起動と停止>

・起動

# service corosync start

# service pacemaker start

 

・停止

# service pacemaker stop

# service corosync stop

 

<クラスタの状態確認>

# crm_mon -DArf

 -D ヘッダを隠す

 

 -A ノードの属性を表示 

 -r 停止中のリソースを表示

 -f 障害回数

 

 

<リソース一覧の表示>

# crm_resource -L

 

<リソースの定義の確認>

・RAのパラメータを調べる

 

# crm ra info ocf:heartbeat:VIPcheck

 

<フェイルオーバー>

# crm node standby {node}

# crm node online {node}

 

<故障履歴関係の操作>

・故障履歴の削除

# crm resource cleanup {resource} {node}

 

・故障カウントのクリア

# crm resource failcount {resource} delete {node}

 

<設定削除>

①全ノードをオフラインに変更

# crm node standby ***

※全てのノードを上記コマンドでオフラインにする。

 

②故障履歴[Faied actions]をクリア

# crm resource cleanup {resource} {node}

 

③設定の削除

# crm configure erase

 

<設定変更>

# crm configure edit

 

<メンテナンスモード>

メンテナンスモードを有効にすると、pacemakerを動作させたまま、リソースの

起動・停止・監視が行われないようになります。

 

・メンテナンスモードを有効にする

  # crm configure property maintenance-mode=true

 

・メンテナンスモードを解除する。

 # crm configure property maintenance-mode=false

 

メンテナンスモードを有効にすると、crm_monの画面で各リソースに"(unmanaged)"と

表示されます。

 

<各種情報>

・エージェントの保存場所

 /usr/lib/ocf/resource.d/heartbeat/

 

・動作ログ

 /var/log/cluster/corosync.log

 

・リソースエージェントの説明

 http://linux-ha.org/doc/man-pages/ap-ra-man-pages.html

 

・Pacemakerの概要

 http://linux-ha.osdn.jp/wp/manual/pacemaker_outline

 

<drbd:Split-Brainからの復旧>

・前提

下記の状態となり、Split-Brainが発生した状態となっている。

 

・Primary

 # cat /proc/drbd

 version: 8.4.9-1 (api:1/proto:86-101)

 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by mockbuild@Build64R6, 2016-12-13 18:38:1

 0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown  r-----

    ns:0 nr:0 dw:4 dr:712 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:269764

 

・Secondary

 # cat /proc/drbd

 version: 8.4.9-1 (api:1/proto:86-101)

 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by mockbuild@Build64R6, 2016-12-13 18:38:1

 0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown  r-----

    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:245212

 

・復旧操作

・Sedondary

# drbdadm -- --discard-my-data connect r0

 

・Primary

# drbdadm connect r0

 

復旧すると、下記の表示となる。

 

# cat /proc/drbd 

version: 8.4.9-1 (api:1/proto:86-101)

GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by mockbuild@Build64R6, 2016-12-13 18:38:15

 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----

    ns:65388 nr:3644 dw:204424 dr:181481 al:63 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

 

<参考になりそうな資料>

HAクラスタでできること!Pacemakerの構築運用に役立つノウハウを紹介!

http://linux-ha.osdn.jp/wp/wp-content/uploads/OSC2016Kyoto.pdf

 

2018年

1月

21日

Pacemaker + Oracle で実現するHA構成

qiitaの記事へのリンクです。

下記環境で試したところ、記事に記載された通りに構築できました。

 

 OS:CentOS release 6.9 (Final)

   Linux version 2.6.32-696.18.7.el6.x86_64

 

 HA関係:pacemaker-1.1.12-1.el6.x86_64

      corosync-2.3.4-1.el6.x86_64

      kmod-drbd84-8.4.9-1.el6.elrepo.x86_64

      drbd84-utils-8.9.8-1.el6.elrepo.x86_64

  

 Database:Oracle 12c Standard Edition One

 

①「CentOS6.6のLinux-HAでDRBDを構築する手順めも」

②「CentOS6.6のLinux-HAでDRBD上にOracleデータベースを構築する」

③「CentOS6.6のLinux-HAでPacemakerによるOracleの起動・停止を制御する」

・追記

手順の通りに構築では、インターコネクトLANが切断された場合に、

それぞれが相手ノードを故障と判断し、両系でサービスを起動してしまいます。

最悪、Oracleのデータ領域の破損という事態が発生する可能性があります。

 

回避するために、VIPをチェックし、2重起動を防ぐ方法があります。

手順通りに構築した場合、下記のリソース追加とグループ設定をすると、

防止できます。

 

●リソース追加

--------------------------------------------------------------------

primitive vipcheck ocf:heartbeat:VIPcheck \

    params target_ip="{VIP}" count=3 wait=5 \

    op start   interval=0  timeout=60 on-fail="restart" \

    op stop    interval=0  timeout=60 on-fail="ignore" \

    op monitor interval=10 timeout=60 on-fail="restart" start-delay=0

--------------------------------------------------------------------

※5秒間の間に3回のECHO_REPLYを受け取った時に成功となる。

 

●グループの編集

--------------------------------------------------------------------

group grpora fs_ora vipcheck VIP1

ms ms-drbd_ora drbd_ora \

       meta notify=true

--------------------------------------------------------------------

※VIP1よりも先にvipcheckが実行されるようにする。

 

2018年

1月

15日

MacOS + Kaspersky は重い!!

MacOS + Kaspersky の組み合わせは相性が悪いみたいですね。

 

2016年製のMac Book air で、Kasperskyを使っていましたが、

重くて、ストレスでした。

「kav」というプロセスが、CPUのかなりの部分を占有するようです。

プロテクションの範囲の変更により、症状は軽減できるようですが、

試した感じでは限定的なように思います。

eclipse とか、andoroid studio とかとは特に相性が悪いように思います。

 

そんなわけで、ライセンス期間が残っていてもったいないのですが、

Kaspersky以外のセキュリティ対策ソフトを探そうと思います。

 

2018年

1月

15日

仮想マシンのNW設定(ホスト・ゲスト間で通信をしたい場合)

1.環境

OS:Windows 10 Pro

仮想化ソフト:VirtualBox 5.2.4

 

2.設定

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

割り当て:「ブリッジ アダプター」とする。

ゲストマシンへは、ホストマシンと同一セグメントの異なるIPを割り当てる。

 

「ブリッジ アダプター」とは、ゲストOSがホストOSと同じネットワークを

利用することになります。

ネットワーク上に異なるマシンが存在するように見えます。

 

 

3.参考

2017年

11月

29日

xv6をインストール

1.環境

Linuxマシンを用意できないので、Windows 10 Pro にVirtualBoxをインストールし、

ゲストOSにUbuntuをインストールします。

xv6は、このUbuntuの上で動作させます。

 

ホスト:Windows 10 Pro 64bit

仮想化ソフト:VirtualBox5.1.30

ゲスト:Ubuntu 17.10 64bit

 

2.xv6をインストール

(1)インストールに必要なパッケージの導入

$ sudo apt-get update

$ sudo apt-get install build-essential

$ sudo apt-get install gcc-multilib

$ sudo apt-get install qemu

$ sudo apt-get install git

 

(2)xv6のソースをダウンロード

$ mkdir xv6

$ cd xv6

$ git clone git://github.com/mit-pdos/xv6-public.git

 

(3)xv6をビルド

$ cd xv6/xv6-public

$ vi Makefile

54行目付近のQEMUのコメントアウトを外し、下記の通りに変更する。

------------------------------------------------------------

QEMU = qemu-system-x86_64

------------------------------------------------------------

$ make

 

(4)起動

下記のコマンドで、起動する。

$ make qemu

 

右の画面のように起動する。

 

(5)停止

Ctl -a x でエミュレータを停止できるみたいです。

私の環境では、終了できなかったため、Alt tab でアクティブウィンドウを切り替え、終了しました。

 

 

 

 

 

3.参考資料

・MITのOperating System Engineering

 ・コースウェアトップページ

  https://pdos.csail.mit.edu/6.828/2017/index.html (2017年度)

  https://pdos.csail.mit.edu/6.828/2016/index.html (2016年度)

 

 ・教科書とソース

  https://pdos.csail.mit.edu/6.828/2017/xv6/book-rev10.pdf

  https://pdos.csail.mit.edu/6.828/2017/xv6/xv6-rev10.pdf

 

2017年

11月

24日

VirtualBoxでホストOSとゲストOS間の共有フォルダ作成方法

1.前提

ホストOS:Windows 10 Pro

ゲストOS:CentOS release 6.9 (Final)

 

2.共有フォルダの作成

ホストOSで、下記の操作をする。

 

(1)共有フォルダを作成する。(フォルダ名は、英数字とする。)

 例)D:\develop\vmshared\centos69_64_2_shared

 

(2)VirtualBoxマネージャで設定対象の仮想マシンの設定を開く。

 

(3)共有フォルダを選択する。

 

(4)右にある"+"ボタンをクリックする。

 

(5)「フォルダーのパス」の右端の下向き三角ボタンをクリックし、(1)で作成したフォルダを

  選択する。

  「自動マウント(A)」、「永続化する(M)」にチェックを付け、「OK」ボタンを押す。

(6)「OK」ボタンをクリックして設定画面を閉じる。

 

以上の操作で、ゲストOSの"/media/sf_centos69_64_2_shared/"が、ホストOSとの

共有フォルダになります。

もし、見えない場合は、ゲストOSの再起動で、参照可能となります。

 

3.ゲストOSで共有フォルダのアクセス設定

root以外のユーザでアクセスできるようにする場合は、対象のユーザをvboxsfグループに

所属させる。

コマンドは下記の通り。

 

# gpasswd --add taka vboxsf

 

2017年

10月

29日

Raspberry Pi でsshを有効化

Raspberry Pi でsshを有効化する方法です。

 

OS:Linux raspberrypi 4.9.56-v7+

 

 

ターミナルで設定ツールを起動する。

 

$ sudo raspi-config

 

"5 Interfaceing Options"を選択する。

"P2 SSH”を選択する。

"<はい>"を選択して有効化する。

"<了解>"を選択する。

 

次の画面で"<Finish>"を選択して、

設定ツールを終了する。

 

以上で、完了です。

 

デフォルトユーザ、初期パスワードの

ままだと、簡単にログインされてしまうので、

注意が必要です。

 

 

2017年

10月

29日

Raspberry Pi 2 の性能測定(UnixBench)

1.環境

測定対象の環境は下記の通りです。

 

 対象:Raspberry Pi 2 Model B

 OS:Linux raspberrypi 4.9.56-v7+

 UnixBench:Version 5.1.3

 

2.測定結果

=====================================================================

 

   BYTE UNIX Benchmarks (Version 5.1.3)

 

   System: raspberrypi: GNU/Linux

   OS: GNU/Linux -- 4.9.56-v7+ -- #1044 SMP Fri Oct 13 15:23:13 BST 2017

   Machine: armv7l (unknown)

   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")

   CPU 0: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

 

   CPU 1: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

 

   CPU 2: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

 

   CPU 3: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

 

   00:45:40 up 10 min,  3 users,  load average: 0.63, 0.36, 0.22; runlevel Oct

 

------------------------------------------------------------------------

Benchmark Run: 日 10月 29 2017 00:45:40 - 01:14:22

4 CPUs in system; running 1 parallel copy of tests

 

Dhrystone 2 using register variables        3068630.6 lps   (10.0 s, 7 samples)

Double-Precision Whetstone                      593.9 MWIPS (10.0 s, 7 samples)

Execl Throughput                                321.1 lps   (29.5 s, 2 samples)

File Copy 1024 bufsize 2000 maxblocks         69933.3 KBps  (30.0 s, 2 samples)

File Copy 256 bufsize 500 maxblocks           20416.8 KBps  (30.0 s, 2 samples)

File Copy 4096 bufsize 8000 maxblocks        187251.0 KBps  (30.0 s, 2 samples)

Pipe Throughput                              161610.0 lps   (10.0 s, 7 samples)

Pipe-based Context Switching                  31776.8 lps   (10.0 s, 7 samples)

Process Creation                               1066.4 lps   (30.0 s, 2 samples)

Shell Scripts (1 concurrent)                   1133.9 lpm   (60.0 s, 2 samples)

Shell Scripts (8 concurrent)                    318.6 lpm   (60.1 s, 2 samples)

System Call Overhead                         390687.5 lps   (10.0 s, 7 samples)

 

System Benchmarks Index Values               BASELINE       RESULT    INDEX

Dhrystone 2 using register variables         116700.0    3068630.6    263.0

Double-Precision Whetstone                       55.0        593.9    108.0

Execl Throughput                                 43.0        321.1     74.7

File Copy 1024 bufsize 2000 maxblocks          3960.0      69933.3    176.6

File Copy 256 bufsize 500 maxblocks            1655.0      20416.8    123.4

File Copy 4096 bufsize 8000 maxblocks          5800.0     187251.0    322.8

Pipe Throughput                               12440.0     161610.0    129.9

Pipe-based Context Switching                   4000.0      31776.8     79.4

Process Creation                                126.0       1066.4     84.6

Shell Scripts (1 concurrent)                     42.4       1133.9    267.4

Shell Scripts (8 concurrent)                      6.0        318.6    531.0

System Call Overhead                          15000.0     390687.5    260.5

                                                                   ========

System Benchmarks Index Score                                         167.3

 

------------------------------------------------------------------------

Benchmark Run: 日 10月 29 2017 01:14:22 - 01:43:07

4 CPUs in system; running 4 parallel copies of tests

 

Dhrystone 2 using register variables       12247252.3 lps   (10.0 s, 7 samples)

Double-Precision Whetstone                     2368.1 MWIPS (10.0 s, 7 samples)

Execl Throughput                               1142.4 lps   (29.9 s, 2 samples)

File Copy 1024 bufsize 2000 maxblocks        106308.3 KBps  (30.0 s, 2 samples)

File Copy 256 bufsize 500 maxblocks           29414.6 KBps  (30.0 s, 2 samples)

File Copy 4096 bufsize 8000 maxblocks        282864.5 KBps  (30.0 s, 2 samples)

Pipe Throughput                              639825.7 lps   (10.0 s, 7 samples)

Pipe-based Context Switching                 113670.9 lps   (10.0 s, 7 samples)

Process Creation                               2575.1 lps   (30.0 s, 2 samples)

Shell Scripts (1 concurrent)                   2593.1 lpm   (60.1 s, 2 samples)

Shell Scripts (8 concurrent)                    342.3 lpm   (60.4 s, 2 samples)

System Call Overhead                        1505857.6 lps   (10.0 s, 7 samples)

 

System Benchmarks Index Values               BASELINE       RESULT    INDEX

Dhrystone 2 using register variables         116700.0   12247252.3   1049.5

Double-Precision Whetstone                       55.0       2368.1    430.6

Execl Throughput                                 43.0       1142.4    265.7

File Copy 1024 bufsize 2000 maxblocks          3960.0     106308.3    268.5

File Copy 256 bufsize 500 maxblocks            1655.0      29414.6    177.7

File Copy 4096 bufsize 8000 maxblocks          5800.0     282864.5    487.7

Pipe Throughput                               12440.0     639825.7    514.3

Pipe-based Context Switching                   4000.0     113670.9    284.2

Process Creation                                126.0       2575.1    204.4

Shell Scripts (1 concurrent)                     42.4       2593.1    611.6

Shell Scripts (8 concurrent)                      6.0        342.3    570.5

System Call Overhead                          15000.0    1505857.6   1003.9

                                                                   ========

System Benchmarks Index Score                                         418.9

 

2017年

10月

26日

CentOS7にリモートデスクトップサーバをインストール

1.インストールする環境

インストールするサーバの情報は下記の通りです。

 

OS:CentOS Linux release 7.4.1708 (Core)

 

2.インストール

(1)EPELリポジトリの有効化

EPELリポジトリを有効化する。

 

# yum -y install epel-release.noarch

 

補足)EPELリポジトリとは

 CentOS標準のリポジトリでは提供されていないパッケージを

 yumコマンドでインストールを可能にするリポジトリらしいです。

 

 

(2)xrdpのインストール

xrdpとtigervnc-serverをインストールする。

 

# yum -y install --enablerepo=epel xrdp tigervnc-server

 

 

(3)日本語キーボードの設定

以下の操作により日本語キーボードを導入する。

 

# cd /etc/xrdp

# wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini

 

# cp km-e0010411.ini km-0411.ini

# cp km-e0010411.ini km-e0200411.ini

# cp km-e0010411.ini km-e0210411.ini

 

 

(4)xrdpサービスの起動と自動起動の設定

以下の操作でサービスを起動し、自動起動を有効化する。

 

# systemctl start xrdp.service

# systemctl enable xrdp.service

 

 

(5)FireWallの設定

以下の操作でRDPで使うポートへの接続を許可する。

 

# firewall-cmd --zone=public --add-port=3389/tcp

# firewall-cmd --permanent --zone=public --add-port=3389/tcp

 

 

(6)「カラープロファイルを作成するには認証が必要です」への対策

「カラープロファイルを作成するには認証が必要です」と

表示された場合の対策です。

下記の設定をすると、管理者パスワードの入力を求められなくなります。

 

# vi /etc/polkit-1/rules.d/02-colord.rules

---------------------------------------------------------------------------------

polkit.addRule(function(action, subject) {

  if (action.id == "org.freedesktop.color-manager.create-device" ||

       action.id == "org.freedesktop.color-manager.create-profile" ||

       action.id == "org.freedesktop.color-manager.delete-device" ||

       action.id == "org.freedesktop.color-manager.delete-profile" ||

       action.id == "org.freedesktop.color-manager.modify-device" ||

       action.id == "org.freedesktop.color-manager.modify-profile") {

     return polkit.Result.YES;

  }

});

---------------------------------------------------------------------------------

 

(7)接続確認

クライアントからリモートデスクトップサーバへ接続する。

問題がなければ、CentOSのデスクトップ画面が表示されます。

 

 

(8)CentOS6.9で設定する場合

  • サービスの起動設定

# chkconfig --level 3 xrdp on

 

  • FireWall設定

# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -s 192.168.128.0/24 -j ACCEPT

 

# iptables -L

# service iptables save

# service iptables restart

# iptables -L

 

※FireWallの設定方法参考

 https://help.sakura.ad.jp/hc/ja/articles/206208121

 

2017年

10月

25日

UnixBenchを使う(CentOS 6.9)

1.環境

OS:CentOS release 6.9 (Final)

CPU:Intel Celeron_4x0 (Conroe/Merom Class Core 2)

   ※kvm上で動くVMです。

 

2.インストールと実行

(1) インストール

下記コマンドで、ディレクトリ作成とソースを取得する。

$ mkdir unixbench

$ cd unixbench

$ git clone https://github.com/kdlucas/byte-unixbench.git .

 

(2) 実行

Runをすると、ビルドとベンチマークの実行が進みます。

$ cd UnixBench

$ ./Run

 

3.結果

実行が終了すると下記のような結果が表示される。

=============================================================

   BYTE UNIX Benchmarks (Version 5.1.3)

 

   System: localhost.localdomain: GNU/Linux

   OS: GNU/Linux -- 2.6.32-696.13.2.el6.x86_64 -- #1 SMP Thu Oct 5 21:22:16 UTC 2017

   Machine: x86_64 (x86_64)

   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")

   CPU 0: Intel Celeron_4x0 (Conroe/Merom Class Core 2) (3724.0 bogomips)

          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET

   21:24:30 up 4 min,  1 user,  load average: 0.19, 0.35, 0.17; runlevel 2017-10-25

 

------------------------------------------------------------------------

Benchmark Run: 水 10月 25 2017 21:24:30 - 21:52:30

1 CPU in system; running 1 parallel copy of tests

 

Dhrystone 2 using register variables       18557261.0 lps   (10.0 s, 7 samples)

Double-Precision Whetstone                     2010.1 MWIPS (9.9 s, 7 samples)

Execl Throughput                                438.2 lps   (29.9 s, 2 samples)

File Copy 1024 bufsize 2000 maxblocks        379385.2 KBps  (30.0 s, 2 samples)

File Copy 256 bufsize 500 maxblocks          111610.5 KBps  (30.0 s, 2 samples)

File Copy 4096 bufsize 8000 maxblocks        800073.8 KBps  (30.0 s, 2 samples)

Pipe Throughput                              774938.5 lps   (10.0 s, 7 samples)

Pipe-based Context Switching                  62575.2 lps   (10.0 s, 7 samples)

Process Creation                               1099.1 lps   (30.0 s, 2 samples)

Shell Scripts (1 concurrent)                    783.3 lpm   (60.1 s, 2 samples)

Shell Scripts (8 concurrent)                     99.9 lpm   (60.4 s, 2 samples)

System Call Overhead                         913825.1 lps   (10.0 s, 7 samples)

 

System Benchmarks Index Values               BASELINE       RESULT    INDEX

Dhrystone 2 using register variables         116700.0   18557261.0   1590.2

Double-Precision Whetstone                       55.0       2010.1    365.5

Execl Throughput                                 43.0        438.2    101.9

File Copy 1024 bufsize 2000 maxblocks          3960.0     379385.2    958.0

File Copy 256 bufsize 500 maxblocks            1655.0     111610.5    674.4

File Copy 4096 bufsize 8000 maxblocks          5800.0     800073.8   1379.4

Pipe Throughput                               12440.0     774938.5    622.9

Pipe-based Context Switching                   4000.0      62575.2    156.4

Process Creation                                126.0       1099.1     87.2

Shell Scripts (1 concurrent)                     42.4        783.3    184.7

Shell Scripts (8 concurrent)                      6.0         99.9    166.4

System Call Overhead                          15000.0     913825.1    609.2

                                                                   ========

System Benchmarks Index Score                                         377.6

-----------------------------------------------------------------------------------------

 

2017年

10月

12日

自動車のタイヤ交換

TIREHOODが気になります。

 

https://tire-hood.com/

 

ネットで近くの店舗を選んで、タイヤを購入する。

予約した日に店舗に行き、タイヤを取り付ける。

タイヤ館とかよりも安いように見えます。

Amazonや楽天でタイヤを買って、

取り付けてくれるお店を探すよりも手軽です。

 

2017年

10月

04日

Nexus5X 再起動ループが発生(続報)

Nexus5X 再起動ループのその後です。

 

・結論

 結論としては、基板の交換で、費用は無償でした。

 戻ってきた端末は、本体丸ごとの交換ではなく、

 説明通りに基板だけが交換されたようです。

 

・その後の経緯

 2017/09/30(土)LG社の窓口宛に送付しました。

 2017/10/01(日)には、配達を試みたみたいですが、

 休日のため、運送屋さん預かりとなりました。

 

 2017/10/02(月)AMに、再配達で、LG社が受領しました。

 その後、何も連絡がなく、月曜が過ぎました。

 

 2017/10/03(火)お昼頃

 LG社から修理済みのNexus5Xが宅配便で戻ってきました。

 

・感想

 送り出してから、返却までが迅速な対応でした。

 壊れてしまったこと自体には不満はあります。

 しかし、保証期間を超えてからの破損だったにもかかわらず、

 無償修理で直せてもらえたことは、良かったです。

 

 故障は特定のロットで起きるものなのか、

 経年劣化で発生しやすくなるものなのかが気になります。

 修理後の物が、改善されたものなのか、

 はたまた、単に正常に動くものに直されただけで、

 今後、再び、発生する可能性があるのか。

 

 いつ壊れてもいいように、データのバックアップだけは、

 ちゃんと残すようにしようと思います。

 あと、故障中、妻のお古の iPhone5S を代替機として

 使っていたのですが、iPhone も素敵な端末ですね。

 iPhone の良さを体験できたと思います。

 

2017年

10月

01日

Nexus5X 再起動ループが発生

2016/04/01くらいから使っているNexus5Xで、

再起動ループが発生し、使用不能になりました。

 

 

購入経路は日本のGoogle Playで購入し、

1年半くらいが経過していました。

購入後1年以上経過している場合は、LGが

対応してくれるみたいです。

 

 

修理に出すまでの流れです。

 

・LGへの問合せ

 Google Playで購入し、1年を経過した場合、

 どこに修理に出していいのかわからなかったので、

 LGの下記サイトに問合せを投げました。

 

 http://www.lg.com/jp/support/contact/chat-email

 

 問合せに対して、1日以内に返信が来るとのことでした。

 実際には、金曜の夜に送信して、土曜の午前には回答が

 あったので、早い返信でした。

 

・返信の内容

 再起動を繰り返す場合、操作で改善が難しく、

 点検修理が必要となる。

 

 キャリアで購入した場合はキャリアへ。

 Google Playで購入し1年が経過してない場合はGoogle Playへ。

 Google Playで購入し1年が経過した場合は、LGが故障対応をする。

 

 点検後、有償修理の場合は見積もりを送付する。

 修理キャンセルの場合は、無償で終了となる。

 

 端末の送付は、着払いで送付する。

 

・点検・修理に出す

 使い勝手に不満がなく、定期的にソフトのアップデートが

 出され、お気に入りの端末だったので、ひとまず点検に

 出すことにしました。

 

・所感

 ネットで検索すると、再起動ループは発生事例が多いように思います。

 (正常に動いている人は何もコメントせず、故障が発生した人が

  コメントをすることが多いだけかもしれませんが。。。)

 

 気に入っていただけに、1年半で使えなくなったことは残念です。

 直すのにどのくらいかかるかも気になります。

 

 スマホがない生活は不便ですが、点検に出してしまったので、

 次の端末を買うかどうかは、点検の結果を踏まえて決めようと思います。

 

2017年

9月

24日

OpenJDKとOracleJDKの比較の記事

OpenJDKとOracleJDKの比較の記事です。

 

・OpenJDKは使い物になるか?

 https://www.slideshare.net/hadoopxnttdata/openjdk-nttdata-oss-day-2015-autumn

 

・「アプリケーション実行基盤としてのOpenJDKの評価」

 http://ossipedia.ipa.go.jp/doc/208/

 

2017年

9月

14日

PostgreSQLをインストール

1.前提

CentOS release 6.9 (Final)  64bit

 

2.インストール操作

(1)PostgreSQLのyumリポジトリを追加

# yum -y localinstall https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

 

※PostgreSQLが提供するyumリポジトリは、下記で確認できる。

 https://yum.postgresql.org/repopackages.php

 

(2)利用できるPostgreSQLの確認

下記コマンドを実行して、利用できるソフトウェアを確認する。

 

# yum list postgres*

 

(3)PostgreSQLのインストール

 

# yum -y install postgresql96-server.x86_64

 

(4)初期化

# su - postgres

 

$ /usr/pgsql-9.6/bin/initdb -E UTF-8 --no-locale -D /var/lib/pgsql/9.6/data

$ exit

 

(5)起動(と停止)

# service postgresql-9.6 start

 

# service postgresql-9.6 stop

※停止は、必要な場合に実施すること。

 

(6)起動設定

 

下記コマンドで、デフォルトで起動するようにする。

 

# chkconfig postgresql-9.6 on

 

(7)DBのpostgresユーザにパスワードの設定

 

# su - postgres

 

$ psql

postgres=# ALTER USER postgres PASSWORD 'new_password';

postgres=# \q

$ exit

 

(8)設定変更

(a)他ホストからの接続を許容する

 

# vi /var/lib/pgsql/9.6/data/postgresql.conf

 

--------------------------------

listen_addresses = '*'

--------------------------------

59行目を 'localhost' -> '*' に変更し、他ホストからの接続を許可する。

 

(b)DB名とユーザ名が一致しなくても認証できるようにする

 

# vi /var/lib/pgsql/9.6/data/pg_hba.conf

 

<変更前>

--------------------------------

local   all             all                                     trust

--------------------------------

 

<変更後>

--------------------------------

local   all             all                                     md5

--------------------------------

 

(c)設定反映と確認

 

# service postgresql-9.6 restart

 

# su - postgres

 

$ psql

パスワード:

psql (9.6.5)

 

→ログインできることを確認する。

 

(9)テストユーザとDBの作成

(a)DBユーザの追加

 

$ createuser -P testuser

 

(b)testdbの作成とDB所有者の変更

・DBの追加

 $ psql

 postgres=# create database testdb;

 CREATE DATABASE

 

・DB所有者の変更

 postgres=# ALTER DATABASE testdb OWNER TO testuser;

 postgres=# \q

(c)テストテーブルの作成

 

$ psql -d testdb -U testuser

 

testdb=> create table test (id int, name text);

CREATE TABLE

testdb=> \d

          リレーションの一覧

 スキーマ | 名前 |    型    |  所有者

----------+------+----------+----------

 public   | test | テーブル | testuser

(1 行)

 

testdb=> insert into test(id, name) values(1, 'テスト');

 

testdb=> select * from test;

 

→ testテーブルにデータの挿入と検索ができる。

 

2017年

9月

13日

sudoの設定方法

1.前提

CentOS release 6.9 (Final)

 

2.設定

(1)サーバにログイン

 rootでサーバにログインする。

 

 

(2)sudoの設定

 

 # visudo

 ---------------------------------------------------

   ## Allows people in group wheel to run all commands

   %wheel        ALL=(ALL)       ALL

 ---------------------------------------------------

 

 上記の通り、98行目付近のコメントを外す。

 wheelグループに所属するユーザは全てのコマンドを実行できるようになる。

 

 

(3)sudo設定したいユーザをwheelグループに所属させる

 

 # usermod -G wheel *****

 

 ※*****は、設定対象のユーザ名

 

以上です。

 

2017年

9月

13日

CentOS6でホスト名を変更する方法

rootでログインする。

 

# vi /etc/sysconfig/network

----------------------------------------------------

HOSTNAME=host.example.com

NETWORKING=yes

----------------------------------------------------

 

# /etc/rc.d/init.d/network restart

 

以上です。

2017年

2月

10日

vimの設定

今、お気に入りのVimの設定です。

 

・ベースにする設定

 https://github.com/w0ng/vim-hybrid

 

・以下の内容を.vimrcに追記

---

set background=dark

colorscheme hybrid

set autoindent

set smartindent

set tabstop=4

set t_Co=256

---

 

2017年

2月

05日

パッケージのGPG公開鍵のインストール手順(CentOS7)

パッケージの署名確認のためのGPG公開鍵のインポート方法です。

CentOS7の前提です。

 

<鍵をインポート>

  # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

<GPG鍵の確認方法>

  # rpm -qai gpg-pubkey*

 

 ・RPMコマンドオプション

  -q:RPMパッケージ情報の表示

  -a:インストールされている全パッケージ

  -i:パッケージ情報を表示

 

2016年

7月

07日

CakePHPの入門記事

CakePHPを使ったシステムを扱うことになったので、

軽く勉強しようと思います。

参考になりそうな記事のリンクです。

 

「忙しい人のためのCakePHP入門(by どっとインストール)

 http://qiita.com/nekoneko-wanwan/items/9d792f46d570a45e4782

 

2016年

6月

08日

x86系CPUのネイティブコード解析

x86のネイティブコードの解析に関する記事です。

 

http://codezine.jp/article/detail/420

 

"Hello World"のプログラムをもとに、

GDBを使い、解析し、OSやライブラリの

仕組みを追及していく、下記書籍が興味深いです。

作者サイトから、必要となる資材が

ダウンロードできます。

環境の差異が発生せず、ほぼ、書籍の内容を

再現できます。

 

読み応えがあるので、時間にゆとりがある

学生時代に読みたかったと思う書籍です。

 

 

 

2016年

5月

31日

子供向け英語学習サイトの紹介サイト

手頃なサイトが紹介されていて、参考になりそうだったので、

リンクを残しておきます。

 

・nynuts にゅーよーく・なっつ。:子供向けオススメ英語ニュースサイト

 http://nynuts.hatenablog.com/entry/2015/01/04/141513

 

2016年

4月

22日

Microsoftの最新の開発環境の評価版

Microsoftの最新の開発環境の評価版です。

下記サイトからダウンロード可能です。

 

https://developer.microsoft.com/en-us/windows/downloads/virtual-machines

 

2016年7月9日まで、試せるみたいです。

VMWare, Hyper-V, VirtualBox, Parallelsの仮想マシン

イメージが公開されています。

サイズは約20GBです。

 

含まれるソフトは、下記の通りです。

・Windows 10 Enterprise Evaluation, Version 1511 (Build 10586)

・Visual Studio 2015 Community Update 2

・Windows developer SDK and tools (Build 10586)

・Windows IoT Core SDK and Raspberry Pi 2 (Build 10586.0.151029-1700)

・Windows IoT Core project templates (Version 1.0)

・Microsoft Azure SDK for .NET (Build 2.9)

・Windows Bridge for iOS (Build 0.1.160324)

・Windows UWP samples (Build 3.0.0)

・Windows Bridge for iOS samples

 

Windows7環境だと、試せないものもあるので、

とてもありがたいように思います。

Windows10も含めて、良かったら、Windows7から

アップデートしてしまうのもありかと思います。

 

以下、Windows Dev Centerの記事へのリンクです。

https://developer.microsoft.com/en-us/windows/downloads/virtual-machines

 

2016年

4月

20日

PythonでWebアプリを作る方法

Pythonを使って、Webアプリケーションを作る方法のリンクです。

SimpleHTTPServer、CGIHTTPServerを使う方法が開設されています。

気軽に試せて、便利そうです。

 

・yifeの日記:PythonでWebアプリをつくる(ApacheもWebフレームワークもなしで)

 http://yife.hateblo.jp/entry/2012/01/25/054210

 

2016年

3月

22日

シェルスクリプト:ファイル名、ディレクトリを抽出する方法

test_path="/tmp/test/file.txt"

 

・ファイル名

 echo ${test_path##*/}

 ⇒ file.txt

 

 解説)

  "*/"で表される文字列から最長一致の接頭部を除去する。

 

・ファイルパス

 echo ${test_path%/*}

 ⇒/tmp/test

 

 解説)

  "/*"で表される最短一致接尾部を除去する。

 

2016年

3月

20日

xv6:UNIX V6 をx86ベースに作りなおした教材用OS

xv6は、Unix v6をx86ベースに作りなおした教材用のOSらしいです。

Unixの重要な概念と構造を含みつつ、シンプルな構成となっている為、

学習には向いているらしいです。

PDP-11用マシンは簡単には手に入らないうえ、オリジナルのv6コードは、

ANSI C以前のC言語で書かれている為、ハードルは高めです。

 

以下、参考になりそうなサイトです。

 

日曜研究室、「xv6ソースコードリーディング」

 

・xv6のデバッグ環境をつくる:http://qiita.com/ksky/items/974ad1249cfb2dcf5437

 

・MIT:Operationg System Engineering:https://pdos.csail.mit.edu/6.828/2014/

 

 

以下、オリジナルのv6の解説本です。

 

 

 

2016年

3月

07日

NFSでマウントするとnobodyになる

NFSでマウントした先で、ファイルのownerがnobodyに

書き換えられる問題に対処する方法です。

 

・前提

 CentOS6.6

 NFSv4

 

・NFSサーバのexportsの設定を下記の通りとする。

 

  # vi /etc/exports

 --------------------------------------------------------

 /exports/share 192.168.xxx.0/24(rw,no_subtree_check,no_root_squash,fsid=0,crossmnt)

 --------------------------------------------------------

 ※fsid=0, cossmnt とすること。

 

 サーバを再起動する。

 # /etc/rc.d/init.d/nfs restart

 # /etc/rc.d/init.d/rpcbind restart

 # /etc/rc.d/init.d/rpcidmapd restart

 

・クライアント側

 # mount -t nfs 192.168.xxx.xxx:/export/share /mnt/share

 

 下記のエラーがメッセージが表示されたら、「rpcbind」を再起動する。

 

 --------------------------------------------------------

 mount.nfs: rpc.statd is not running but is required for remote locking.

 mount.nfs: Either use '-o nolock' to keep locks local, or start statd.

 mount.nfs: an incorrect mount option was specified

 --------------------------------------------------------

 

 # /etc/rc.d/init/rpcbind restart

 

以上の操作で完了です。

 

 

2016年

2月

20日

シェルスクリプトの書き方備忘録

1.書き方

 

先頭に以下の記述をする。

 

・通常

 #! /bin/bash

 

・デバック

 #! /bin/bash -x

 ※実行時に下記指定でも同じ結果になる。

  sh -x スクリプト名

 

 # を付けると、その行がコメントになる。

 

 ; を付けると、1行に複数文を記述できる。

 

2.変数

・変数は、大文字、小文字が区別される。

 

・代入

 val=1

 ※=の前後でスペースを入れない。

 

・参照

 $val

 ${val}

 

・文字列連携

 $val1$val

 

・変数を展開しない

 '$val'

 

・変数を使った演算

 echo `expr $x + 1`

 ※要素間にスペースが必要。()*/を使う場合は\を入れる。

 

・readonlyを付けると読み取り専用変数になる。

 readonly val

 

3.配列

・宣言の仕方

 array=(1 2 3 aaa)

 

・要素を取り出す方法

 $array 先頭の要素が出力される。

 

 ${array[0]} インデックスで指定した要素を取得する。

 

 ${array[@]} 全ての要素を取得する。

 

 ${#array[@]} 要素数を取得する。

 

・要素を変更する方法

 array[1]=10

 

・要素を追加する方法

 array+=(10, 20)

 

4.条件式を評価

・テストコマンド

 条件式を評価する。true:0, false:1 を返す。

 

・条件の書き方

 ・文字

  等しい $str1 = $str2

  異なる $str1 != $str2

 

 ・数値

  等しい -eq

  異なる -ne

  数値1 < 数値2 $num1 -lt $num2

  数値1 > 数値2 $num1 -gt $num2

  数値1 <= 数値2 $num1 -le $num2

  数値1 >= 数値2 $num1 -ge $num2

 

 ・ファイル・ディレクトリ

  file1が新しい file1 -nt file2

  file1が古い file1 -ot file2

  fileが存在 -e file

  ディレクトリが存在 -d dir

 

 ・論理演算し

  and -a

  or -o

  not !

 

5.if文の書き方

if [ 条件式 ]; then

  処理1

elif [ 条件式 ]; then

  処理2

else

  処理3

fi

 

6.case文の書き方

case 変数 in

 値1)

   処理1

   ;;

 値2)

   処理2

   ;;

 *)

   前述の条件に該当しない場合に実行される処理

   ;;

esac

 

7.ループ文

7.1.for文

for i in ${a[@]}

do

  処理

done

 

・continue 次の繰り返し処理に移る。

・break 繰り返し処理から抜ける。

・seq 1 10 1から10までインクリメントする。

 

7.2.while文

while [ 繰り返し条件 ]

do

  処理

done

 

無限ループ

while :

do

  処理

done

 

8.コマンド引数

$0 実行しているスクリプト名

$1 第1引数

$@ 全ての引数

$# 引数の個数

 

9.ユーザからの入力

read $val

 

select $val in 値1 値1

do

  処理

  break;

done

 

10.ファイルからの入力

while read line

do

  処理

done < $1

※第一引数で与えたファイルを読み込む場合

 

11.関数

・宣言

function func() {

  処理

}

※functionは省略可

 

・呼び出し

func

 

・関数の引数

func 変数1 変数2

 

・変数のスコープ

 何もしないとグローバルになる。

 変数宣言時にlocalを付けると、ローカル変数になる。

 

2016年

2月

16日

Raspberry Piのバックアップを作る方法

Raspberry Piで使うSDカードをバックアップする方法です。

バックアップがあれば、心置きなく試すことができるようになります。

 

(1)Win32DiskImagerをダウンロードし、インストール(解凍)する。

 

(2)SDカードをPCにセットする。

 

(3)Win32DiskImager.exeを起動する。

 

 

(4)バックアップするimgファイルをエクスプローラ上で作成する。

    ※テキストファイルとして作成し、拡張子をimgに変える。

       ファイルサイズは0バイトになります。

 

(5)Image FileとDeviceを下記の通りに変更する。

    Image File:(4)で作成したimgファイル

 

    Device:SDカードのドライブ

 

 

 

 

 

 

 

 

 

 

 

 

 

(6)Readボタンをクリックする。

 

(7)Confirm Overwriteと聞かれるので、"Yes"ボタンをクリックする。

 

(8)Complete:Read Successful.と表示されたら完了です。

 

2016年

1月

12日

倒立振子の製作

 

半日で作る倒立振子」のサイトを参考にして、

倒立振子を作ってみました。

 

ほぼ、同じ部品を使って作った結果、

1日で、立つ状態になりました。

 

Raspberry Pi を使って作ろうとしましたが、

まずは、参考にさせて頂いたサイトの通りに、

arduino(japanino 学研の付録)を使って

作成しました。

 

単純に、サイトに掲載の通りにやっただけですが、

無事に立った時には、嬉しかったです。

2015年

11月

04日

Python入門

使い道が多そうなのでPythonを覚えようと思います。

参考にしたサイトのリンクです。

言語の特徴を知ったうえで、具体的なプログラミングをしてみるのが

いいかと思い、下記2サイトを選びました。


・ドットインストール:Python入門

 http://dotinstall.com/lessons/basic_python_v2


・Pythonでネットワークプログラミング

 http://memo.saitodev.com/home/python_network_programing/


2015年

9月

29日

興味深い記事:Raspberry Pi クラスタ製作記

Raspberry Piを使い、クラスタを作るという下記の記事が興味深いです。

 

・計算工学ナビ:RaspberryPiクラスタ製作記

 http://www.cenav.org/raspi1/

 

 スパコンについて学ぶことを目的とし、高性能を目指すのではなく

 クラスタ構築による性能向上と、その過程で発生する問題を体験する

 というところが興味深いです。

 可能であれば、実際に、Raspberry Piを複数個購入して、

 実際にやってみたくなる内容でした。


 記事の中では、Raspberry Pi model B + を使っているようでした。

 

 

2015年

9月

23日

Raspberry Piでカメラモジュールを使う方法(軽くタイムラプスも)

1.前提

本体:Raspberry Pi 2 model B

カメラモジュール:Raspberry Pi Camera Module 775-7731 


2.本体とカメラモジュールの接続

Raspberry Piの本体とカメラモジュールを接続します。


HDMIのポートの横の白いポートにカメラのケーブルを接続します。


白いポートを軽く上に持ち上げると、ケーブルを差し込む空間ができるので、そこにケーブルを差し込み、白いポートを元に戻します。

これで、接続完了です。

カメラモジュールは、プラ板で補助台を作り、補助台をRaspberry Piのケースに固定しました。


3.ソフトウェアの設定

Rasbianを起動します。


起動したら、下記コマンドを実行し、設定ツールを起動する。

$ raspi-config


表示される設定画面で、「5 Enable Camera」を選択して、「Disable」→「Enable」にする。


撮影するには、下記コマンドを実行する。

$ raspistill -w 480 -h 360 -n -o test_photo.jpg


正常に撮影できれば、完了です。

特に迷うこともなく、設定することができました。


4.タイムラプスを試す

4.1.三脚への固定

左写真のように、Raspberry Pi本体にスマホを三脚に固定するためのキットを付け、三脚に設置しました。


4.2.動画を作るソフトの導入

下記コマンドを実行して、動画を作るソフトを導入する。

sudo apt-get install mencoder


4.3.撮影

画像を保存するディレクトリを作る。

$ mkdir /home/pi/photo

 

写真を撮影する。

$ raspistill -w 1920 -h 1080 -o /home/pi/photo/photo-%04d.jpg -tl 6000 -t 1200000

 

コマンドの意味は、以下の通りです。

 

 -w 1920:横が1920pixel

 -h 1080:縦が1080pixel

 

 -o /home/pi/photo/photo-%04d.jpg:連番のファイルを生成

 

 -tl 6000:6000ミリ秒(6sec)のタイムラプス

 -t 1200000:1200000ミリ秒の間 (12分間分)

 

下記コマンドで撮影した静止画のファイルリストを作成する。

$ ls *.jpg > photo_list.txt


静止画のファイルリストを使い、撮影した静止画を動画へ変換する。

$ mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o test_movie.avi -mf type=jpeg:fps=24 mf://@photo_list.txt

 

以上で、操作は完了です。

出来上がったtest_movie.aviをWindowsパソコン等へダウンロードすれば、

再生できます。


5.その他

RASPBERRY PI CAMERA MODULEの本家の説明サイト:

 https://www.raspberrypi.org/documentation/raspbian/applications/camera.md

 

   

2015年

9月

20日

Raspberry Pi2でWifiを使う Part2

1.Wifiアクセスポイントにつながらない問題

アクセスポイントによっては、正しく接続できない現象が発生しました。

現象としては、Wifiのアクセスポイントには接続できるが、

DHCPにより、アドレスを取得できないという現象のようでした。


その時のエラーログは、以下の通りです。

---------------------------------------------------------

pi@raspberrypi ~ $ sudo /etc/init.d/networking restart

[warn] Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).

[....] Reconfiguring network interfaces...Internet Systems Consortium DHCP Client 4.2.2

Copyright 2004-2011 Internet Systems Consortium.

All rights reserved.

For info, please visit https://www.isc.org/software/dhcp/

 

Listening on LPF/wlan0/**:**:**:**:**:**

Sending on   LPF/wlan0/**:**:**:**:**:**

Sending on   Socket/fallback

DHCPRELEASE on wlan0 to 192.168.128.1 port 67

Internet Systems Consortium DHCP Client 4.2.2

Copyright 2004-2011 Internet Systems Consortium.

All rights reserved.

For info, please visit https://www.isc.org/software/dhcp/

 

Listening on LPF/wlan0/**:**:**:**:**:**

Sending on   LPF/wlan0/**:**:**:**:**:**

Sending on   Socket/fallback

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 10

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 10

DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5

No DHCPOFFERS received.

No working leases in persistent database - sleeping.

wpa_supplicant: /sbin/wpa_supplicant daemon failed to start

run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return code 1

ifup: interface eth0 already configured

done.

---------------------------------------------------------


2.解決策

Wifiの設定を、

/etc/wpa_supplicant/wpa_supplicant.conf

ではなく、

/etc/network/interfaces

に、直に設定すると、正常に動作するようです。



変更した内容は下記の通りです。


$ vi /etc/network/interfaces

---------------------------------------------------------

auto wlan0

allow-hotplug wlan0

iface wlan0 inet dhcp

wpa-deriver wext

wpa-scan-ssid 1

wpa-ssid "***************"

wpa-psk "**************************"

w#pa-conf /etc/wpa_supplicant/wpa_supplicant.conf

---------------------------------------------------------



network interfaceを下記コマンドで再起動する。


$ vi /etc/network/interfaces


以上の操作で、無事にアドレスを取得できるようになり、

Wifiによる通信ができるようになりました。


wpa_supplicant.conf への設定で正常に動作する場合もあり、

なぜ、interfacsに設定することにより、問題が解決されたかは、

良くわかりません。

でも、繋がるようになったので、良しとしましょう。


2015年

9月

06日

Raspberry Pi2でWifiを使う方法

1.環境

Raspberry Pi 2 model B

OS:Linux raspberrypi 4.1.6-v7+

無線LAN子機:Logitec Corp. LAN-W150N/U2 Wireless LAN Adapter

 

2.無線LAN子機の確認

USBの無線LAN子機を、Raspberry Pi 2のUSBに接続し、起動する。

下記コマンドを実行し、認識されていることを確認する。

--------------------------------------

$ lsusb 


Bus 001 Device 004: ID 0789:0168 Logitec Corp. LAN-W150N/U2 Wireless LAN Adapter

--------------------------------------


3.設定

3.1. /etc/network/interfaces

$ vi /etc/network/interfaces

下記の記載があることを確認する。

--------------------------------------

auto wlan0

allow-hotplug wlan0

iface wlan0 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

--------------------------------------


3.2.Wifiの設定値の確認

以下のコマンドを実行し、接続しようとしているネットワークの情報を取得する。

 

$ iwlist scan

--------------------------------------

wlan0     Scan completed :

          Cell 01 - Address: **:**:**:**:**:**

                    Channel:1

                    Frequency:2.412 GHz (Channel 1)

                    Quality=43/70  Signal level=-67 dBm  

                    Encryption key:on

                    ESSID:"******************"

                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s

                              11 Mb/s; 12 Mb/s; 18 Mb/s

                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s

                    Mode:Master

                    IE: IEEE 802.11i/WPA2 Version 1

                        Group Cipher : TKIP

                        Pairwise Ciphers (2) : CCMP TKIP

 

                        Authentication Suites (1) : PSK

--------------------------------------

一部省略しています。

3.3. /etc/wpa_supplicant/wpa_supplicant.conf

下記コマンドで、ssidとpskを与え、wpa_supplicant.confのベースを作る。

$ wpa_passphrase ssid psk



下記コマンドで、wpa_supplicant.confを開き、先ほどのベースに追記し、完成する。

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

--------------------------------------

network={

        ssid="******************"

        #psk="**************"

        psk=*****************************

        key_mgmt=WPA-PSK

        proto=RSN

        pairwise=CCMP

        group=TKIP

        scan_ssid=1

}

--------------------------------------



下記コマンドでネットワークを再起動する。

$ sudo /etc/init.d/networking restart



以上で、設定は完了です。

 

2015年

8月

31日

Raspberry Pi 2 Modle B の初期設定(Raspbianをインストール)

1.Raspberry Pi 2 Model Bを購入

Raspberry Piを始めたくなり、購入しました。

購入した構成は、以下の通りです。


・本体:Raspberry Pi 2 Model B

・ケース:Eleduino Raspberry Pi 2 Model B

     アクリルケースブラック

・SDカード:SanDiskの16GBのカード

 ※SDカードは相性があるみたいです。

  上手く動かないケースがあるので、

  注意が必要です。

2.環境設定

Raspbianをインストールしました。

手順を要約すると、以下の通りです。


1.機器の接続

 ディスプレイ、キーボード、マウスを接続する。


2.ソフトウェアを入手

 以下のサイトから、NOOBSをダウンロードする。

 https://www.raspberrypi.org/downloads/noobs/


3.SDカードにコピー

 ダウンロードしたソフトを解凍し、SDカードにコピーする。


4.インストール

 SDカードを、本体に挿入して電源を入れる。

 表示された画面で、Raspbianにチェックを入れ、「Install」ボタンを押下する。


 しばらくするとOS(es) installedと表示されるので、「OK」ボタンを押下する。


5.設定

 再起動後の設定画面で、以下の項目を設定した。

 1 Expand Filesystem:SDカード全体を利用

 2 Change User Password

 4 International lisation Options:

  l1 Change Locale:jp_JP.UTF-8

  l2 Change Timezone:Asia -> Tokyo

  l3 Change Keyboard Layout:Generic 105-key(Intel) PC -> Other

    -> Japanese -> Japanese - Japanese(OADG109A)


 設定が完了したら「Finish」を選んで、差起動する。


6.ログイン

 ログイン画面が表示されたら下記情報でログインする。

  ログインID:pi

  パスワード:設定したもの


7.ネットワーク設定

 画面右上のネットワーク設定ののアイコンから、ネットワーク設定を行う。


8.追加のソフトウェアインストール

 以下のソフトを導入。

 

 ・日本語環境の追加

  $ sudo apt-get update

  $ sudo apt-get install uim uim-anthy


 ・Raspbianの最新化

  $ sudo apt-get update

  $ sudo apt-get dist-upgrade 


 ※LXTerminalを使って、下記コマンドを実行した。


以上で、準備完了。


3.その他

SDカードの相性問題です。

今回amazonで、本体、SDカード、ケースを合わせて購入しました。

SDカードについては、本体を選択した時に表示された

amazonお勧めのカードであった、下記の製品を購入しました。

 

・Transcend micro SDHCカード 32GB Class10

 TS32GUSDHC10E

 

レビューを見ると、Raspberry Piで使っているというのもあり、

問題が発生するとは思っていませんでした。

 

いざ、自分の環境でやってみると、

 Error creating file system

 mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows

 mkfs.fat: failed whilst writing FAT mkfs.fat 3.0.26 (2014-03-07)


が発生しました。

デジカメで初期化したり、ドライブ名を大文字にしたりと、

試行錯誤をしたのですが、上手くいきませんでした。

SandiskのSDカードでは、特に困ることもなく、上手くいったので、

相性なのかと思います。

もし、これから購入される場合は、動作実績が確実にあるものを

選択した方が良いかもしれません。


<追加情報:2015/09/03>

下記マイクロSDカードもRaspberry Pi2で使えました。

 メーカ:Gigastone

 製品名:16GB microSDHCカード

 JANコード/ISBNコード:4716814071209


ドンキホーテとかで、16GBで1,000円くらいで売っているので、

お手軽に入手できるのではないでしょうか。


   


2015年

8月

02日

ゲストOSのLinuxにsshで接続する方法

1.環境

ホスト環境

 ホストOS:Windows7 Pro

 仮想環境:VirtualBox 4.3.30r  101610


ゲスト環境

 ゲストOS:CentOS Linux release 7.1.1503 (Core)  64bit


2.VirtualBoxのネットワーク設定

設定対象の仮想マシンを右クリックし、設定を開く。


ネットワークを選択し、ネットワーク設定画面を開く。

下記の設定をする。

 ・ネットワークアダプタ有効化:有効化

 ・割り当て:NAT


アダプター2のタブを開き、高度と書かれた矢印をクリックする。


ポートフォワーディングボタンを押下し、設定画面を開く。



右のプラスボタンを押下し、レコードを追加する。


追加したレコードに下記設定をする。


 名前:ssh

 プロトコル:TCP

 ホストIP:空欄

 ホストポート:55555

 ゲストIP:空欄

 ゲストポート:22


ゲストOSを起動する。


3.接続確認

別の端末からsshで接続できることを確認する。

以下MacOSの入った端末からsshコマンドを使った例。


$ ssh -p 55555 -l {user_name} {guest_os_ip} -XC


接続できれば、完了です。

ブロードバンドルータを使った環境でも、利用できます。


2015年

7月

09日

ctagsの使い方(基本)

ctagsは、ソースファイルから関数やオブジェクトの索引を作成するツールです。

索引を作成すると、使っている関数から定義を辿るような操作ができるようになります。

基本的な使い方は以下の通りです。


●タグの作り方

 ソースのルートディレクトリり以下のコマンドを実行する。

 再帰的にソースを解析し、tagsファイルが生成される。


 $ tags -R


●viでの操作

 viを起動し、以下のコマンドを実行する。


 :set tags=./tags


 ジャンプ:<Ctrl + ]>


 戻る:<Ctrl + t>


 ウィンドウを分割してジャンプ:<Ctrl + w> -> <Ctrl +]>

 閉じる場合は、:q


 複数の候補からジャンプする:g -> <Ctrl +]>


2015年

7月

07日

Linuxカーネル開発者への道のリンク

Linuxカーネルの開発を知るのに役に立ちそうなリンクです。


・カーネル開発者への道

 https://jp.linux.com/linux-community/kernel


・φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

 http://kernhack.hatenablog.com/entry/2014/12/25/001336


勉強したいと思いつつも、手つかずです。

日経Linuxとかのカーネル記事を読むレベルは抜け出したいです。


2015年

7月

03日

おぎのや峠の釜めしの釜を使いご飯を炊く


群馬県の横川の峠の釜めしは、今も益子焼の釜の

器に入って売られています。

デパートやスーパーの駅弁フェアとかでも売られているので、比較的身近な存在だと思います。

 

この益子焼で作られた釜を使い、ご飯を炊くことはできないのか?と考えたことがある人は多いのではないかと思います。

 

そこで、この釜で実際にご飯を炊いてみました。



ネットで調べてみたところ、おぎのやさんが、ご飯の炊き方を紹介していました。

 

手順を要約すると以下の通りです。


1.容器を良く洗う。


2.容器を乾燥させる。

 すぐに使いたい場合は、良く拭き、水けを取る。


3.お米1合(約150g)を研ぐ。


4.研いだお米に、お水180ccを入れ蓋をし、

 5分から30分おく。


5.4をガス代に乗せ、弱火に掛ける。

 我が家は、五徳の間隔が広く、釜が乗らない為、

 網を敷きました。温度センサー付きのグリルですが、

 問題なく、火にかけられました。

 約8分くらいで吹きこぼれました。


6.吹きこぼれたら蓋を1cmほどずらし、最弱火にする。

 「赤子泣いても蓋とるな。」と言われているのに、蓋を開けるというのが不思議でした。


7.吹きこぼれが収まったら、蓋を0.5cm程度まで閉める。


8.ご飯の表面の泡立ちがなくなり、水たまりがなくなったら蓋を完全に閉め、火を止める。

 5で火をつけてから15分位でした。


9.15分程度蒸らす。蓋を開けてはいけない。


おぎのやさんの手順は、下記サイトをご覧ください。

http://oginoya.co.jp/oginoya02/tougenokamameshi/lunch/how_to_boil.html



実際の炊きあがりは、左の写真の通りです。

思いのほか、上手に炊けました。

ほとんどおこげもなく、ふっくらとした仕上がりです。

心なしか、電子ジャーで炊いたご飯よりも美味しかった気がします。

おこげが好きな人は、少し火を強めでもいいのかもしれません。

 

 

家に居ながら、キャンプで飯盒炊飯を体験した感じで、楽しむことができました。

釜が割れることがあるようなので、試す際は、くれぐれもご注意ください。

 

2015年

5月

27日

コンピュータビジョン紹介資料

コンピュータビジョンの紹介資料です。

参考になりそうなのでリンクを残しときます。


非技術者でもわかる(?)コンピュータビジョン紹介資料

ビジョン&ITラボ 皆川卓也氏


http://www.slideshare.net/takmin/20140710-cv


2015年

5月

17日

画像処理を学ぶ資料

画像処理。勉強したい分野のひとつです。

京都大学のOCWで、教材があったので、リンクを残しておきます。


http://ocw.kyoto-u.ac.jp/ja/09-faculty-of-engineering-jp/image-processing


2015年

4月

26日

オープンソースのAndroidアプリをまとめたサイト「Fossdroid」

オープンソースのAndroidアプリをまとめたサイト「Fossdroid」です。


 http://fossdroid.com/


下記Lifehackerの記事を見て知りました。


 http://www.lifehacker.jp/2015/04/140426androidfossdroid.html


2015年

4月

13日

android.os.NetworkOnMainThreadException

メインスレッド(MainのActivity)から、HTTPでリクエストを

実行すると、

 android.os.NetworkOnMainThreadException

が発生するようです。


Android3.0以上の環境だと発生するみたいです。

一昔前の書籍を参考にしていると、この例外が発生するので、

注意が必要です。


AsyncTaskを使って別スレッドでリクエストを

投げる実装にすると解決します。


<参考にしたサイト>

 http://shirusu-ni-tarazu.hatenablog.jp/entry/2013/01/20/033030

 http://d.hatena.ne.jp/m-kawato/20120911/1347378083

 http://android.keicode.com/basics/async-asynctask.php


2015年

4月

02日

Android Studioの使い方

Androidのアプリ開発環境がeclipseからAndroid Studioへ変更され始めています。

使い方がかなり違うので、迷うことが多いです。

使い方の参考になりそうな記事へのリンクです。


・Android Studio最速入門

 http://gihyo.jp/dev/serial/01/android_studio/0001


・[Android Studio] 開発を始める前に知っておきたい基本的な使いかた

 http://dev.classmethod.jp/smartphone/android/android-studio-basic/


・Android Studioへの乗り換え備忘録(参考にしたページ一覧)

 http://qiita.com/croquette0212/items/b3f94d276737dfde7def


2015年

2月

22日

鬼瓦の小物(埼玉県小川町富岡鬼瓦工房製)

埼玉県小川町富岡鬼瓦工房製作の鬼瓦です。

小川町の伝統工芸館で購入しました。


サイズは、縦8cm × 横9cmです。

本物をそのまま小さくしたもので、細部まで

しっかり作られています。質感もよく、

重量感もあって、お土産用の小物という域を

超えた感じです。


鬼瓦を設置するほどの豪邸を建てることは

難しいですが、

このサイズなら卓上に飾って、眺めるには最適な感じです。

なかなか面白いものを入手できたと思います。


工房では年に2回程度、体験教室も開催しているので、一度は作ってみたいですね。


<リンク>

・富岡鬼瓦工房:http://www7b.biglobe.ne.jp/~tomioka/

・埼玉伝統工芸館:http://saitamacraft.com/

・エンたまch(製作風景が見られます。):

 http://movie.pref.saitama.lg.jp/detail/ch/entama/no/c24e0cf0f3d8b8e3e25b0efd53bd6a5a


技術関係のメモを書いていこうかと思います。

仕事で得た技術、趣味で勉強したことなど、主に技術的なメモを書いていこうと思います。

一途ではありません。興味を持ったことに、つまみ食いをします。

あと、日常生活で興味深いこと等を書きます。

写真素材のピクスタ