2013/07/13

RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (続報)

ownCloudのAndroidアプリがやっぱり動かない件

インスタントアップロードが、、、
スマホで動作しない

タブレットで動作した

クライアントアプリがアップデート

スマホで動作した!

スマホのOSアップデート

インスタントアップロードしなくなった ← イマココ

−−−
ownCloudのAndroidアプリがOSのバージョンによって
正常に動いたり動かなかったり。
#インスタントアップロードが動いてくれない。
#手動アップロードは正常。

最新版のAndroidアプリのバージョンは1.4.1

Android4.0.3にインストールするとサクサクと画像をアップロードしてくれるのに、
Android4.1.2だとウンともスンとも。

ググってみると同様の不具合報告がGitHubにあがってるので
そのうち解消される、、、のかな?

2013/06/27

RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (終了)

ownCloud クライアントアプリ アップデート

Androidアプリがアップデートされたのでインストールしてみる。
見事、インスタントアップロードが成功!

なんかスッキリしないけど、
これでようやく俺様専用クラウドの環境が整った。

Google+の自動アップロードをオフにしたほうがいいかもしれない。
巷で噂の予告なし垢BANに備えて。。。
予告なしはイカンよ、予告なしは。

しばらく連続運転して様子をみてみよう。

2013/06/18

Coffee Break

AndroidのownCloudクライアントからInstantUploadが出来ない件、
端末とアプリとの相性問題であることがほぼ確定。
別の端末で試したところ、あっさりと自動アップロードしてくれた。


どうしましょ。。。

2013/06/16

RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (5)

早くなるおまじないをかけてみる

$ sudo apt-get install php-apc

PHPで中間ファイルのキャッシュがどうたらこうたら・・・
うん、たしかに早くなってる気がする。

2013/06/13

Coffee Break

前回同様、AndroidのownCloudクライアントからInstantUploadが出来ない。
アップロードシークエンスに入った途端、アプリケーションが落ちてしまう。

なぜ動かないのか?謎でしょ!

たかが99円でも立派な有料アプリ。なんとしても使えるようにしないと。
サーバーが悪いのか、クライアントが悪いのか。。。



記事、結局自分メモな文体になってる。。。

2013/06/11

RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (4)

ownCloud インストール編

先にsuのパスワード設定と、普段アカウントにwww-dataグループを追加
$ sudo passwd
新しいUNIXパスワードを入力してください: [ パスワード ]
新しいUNIX パスワードを再入力してください: [ パスワード ]
passwd: パスワードは正しく更新されました

$ sudo usermod -G www-data hogehoge
リブートして確認
$ id

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Apache2の設定
$ sudo vi /etc/apache2/sites-enabled/000-default

       
<!--               Options Indexes FollowSymLinks MultiViews  -->
                Options -Indexes ExecCGI FollowSymlinks
<!--               AllowOverride None  -->
                AllowOverride All
                Order allow,deny
                allow from all
     


ownCloud本体のダウンロード
http://owncloud.org/install/
"Tar or Zip File"をクリックしてダウンロードダイアログを表示させ、
"Unix/Mac OS"のリンクアドレスをホストマシンのクリップボードにコピーする。

$ su -
# cd /var/www
# wget http://download.owncloud.org/community/owncloud-x.x.x.tar.bz2

あとは ownCloud Admin Manuals' に従ってインストール続行

# apt-get install apache2 php5 php5-gd php-xml-parser php5-intl
# apt-get install php5-sqlite smbclient curl libcurl3 php5-curl
  (sqliteを使うのでmysqlに関するパッケージは不要)

# tar -xjf owncloud-x.x.x.tar.bz2
# chown -R www-data:www-data owncloud

.htaccessの設定
owncloud の.htaccessをapacheの設定値として流用する
# cp /var/www/owncloud/.htaccess /etc/apache2/conf.d/owncloud.conf

# vi /etc/apache2/conf.d/owncloud.conf
(ファイル先頭に追加)
Alias /owncloud /var/www/owncloud
<Directory /var/www/owncloud>

(ファイル末尾に追加)
</Directory>

Apache2を再起動し、ブラウザでアクセスしてみる。
# service apache2 restart

http://192.168.xxx.yyy/owncloud
管理者アカウントを設定。
その他の詳細設定はお好みで設定(デフォルトのままでもOK)。


これでとりあえずは動く状態。

RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (3)

Raspberry Pi 初期設定編(わすれもの)

ntpを入れ替える
$ sudo apt-get remove ntp
$ sudo apt-get install ntpdate

cron設定
$ sudo crontab -e
# 1時間ごと(毎時0分)に、時刻合わせを行う
0 * * * * /etc/network/if-up.d/ntpdate > /dev/null 2>&1

ntpサーバーを近場に
$ sudo vi /etc/default/ntpdate
# NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"
NTPSERVERS="0.ntp.nict.jp 1.ntp.jst.mfeed.ad.jp 2.ntp.ring.gr.jp"

ログを確認
起動時と毎時0分にsyslogに吐かれてるはず。
$ sudo cat /var/log/syslog

RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (2)

Raspberry Pi 初期設定編

Raspberry Pi にSSHでつないで初期設定をおこなう。
> ssh pi@192.168.xxx.yyy

$ sudo raspi-config

・8 Advanced Options → A5 Update
    なにはともあれアップデート

・3 Enable Boot to Desktop
    デスクトップ環境は必要ないので<No>を選択

・4 Internationalisation Options → I1 Change Locale
    en_US.UTF-8 UTF-8
    ja_JP.UTF-8 UTF-8
    を追加
    Default localeで
    ja_JP.UTF-8
    を選択

・4 Internationalisation Options → I2 Change Timezone
    Asia → Tokyo
    を設定

・8 Advanced Options → A2 Hostname
    raspi
    に変更

・8 Advanced Options → A3 Memory Split
    16
    に変更

・8 Advanced Options → A4 SSH
    Enable
    を設定

これでconfigは終了。
Finishを選ぶとリブートするかと聞いてくるのでNoを選択し、
先に普段ユーザーを作成する。

ユーザー追加
$ sudo adduser hogehoge
  パスワードとか色々設定

追加したユーザーがsudoを使えるようにする
$ sudo visudo
hogehoge ALL=(ALL) ALL
を追加

/var/wwwマウントポイントの作成
$ sudo mkdir /var/www

リブート
$ sudo reboot

新しく作った自分アカウントでRPiにログイン
> ssh hogehoge@192.168.xxx.xxx

アカウントpiの削除
$ sudo userdel -r pi

$ sudo visudo
pi に関する記述を消しておく


Raspbianのアップデート
※国内サーバーにリポジトリをミラーリングしてくれてる奇特な方がおられるので、
    ありがたく利用させていただく。
    https://twitter.com/kfujieda/status/301119397064486912

$ sudo vi /etc/apt/sources.list
 # deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
 deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi

$ sudo apt-get update
$ sudo apt-get upgrade
を実行し、最新にアップデートする。

swapの設定
dphys-swapfileのリムーブ
$ sudo apt-get remove dphys-swapfile

swap領域に名づけ
$ sudo mkswap -L swappat /dev/sda3

swap領域の有効化
$ sudo swapon -L swappat

状態確認
$ cat /proc/swaps
Filename    Type  Size Used Priority
/dev/sda3                               partition 2191356 0 -1

fstabに登録
$ sudo vi /etc/fstab
LABEL=swappat   swap            swap    defaults        0       0

rebootしてチェック
$ cat /proc/swaps

不要になったswapファイルの削除
$ sudo rm /var/swap

2013/06/10

RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (1)

OSインストール編

不慮の事故(謎なスクリプトを動かしてしまい)により
活動停止に陥ってしまったRaspberry Pi
修復よりも、迷わず再構築をしようと考えるあたり、自分はドMなんだなぁ、と。

ついでにこのブログも人様に読んでもらえるものに書きなおす。
なお、ホストマシンはUbuntu

・前回同様、HDDでの運用(BootのみSD、システムをHDD)とする。
・OSのイメージファイルをSDに一旦展開するのではなく、
    イメージのマウント → ブート環境構築、とする。

準備するもの
1.SDカード
  ブート領域だけなので、128MB以上でOK。余ってるカードで十分。

2.USB-HDD
  必要なだけ。余ってるHDDで問題なし。


手順
1.OSイメージのダウンロード
  http://www.raspberrypi.org/downloads から
  「Raspbian "wheezy"」をダウンロード。展開しておく。

2.イメージファイルのマウント
◎オフセット値などを自動で調べる
 $ sudo kpartx -av wheezy-raspbian.img
  add map loop0p1 (252:0): 0 114688 linear /dev/loop0 8192
  add map loop0p2 (252:1): 0 3665920 linear /dev/loop0 122880

◎マウント
 $ sudo mkdir /mnt/sd1
 $ sudo mkdir /mnt/sd2
 $ sudo mount /dev/mapper/loop0p1 /mnt/sd1
 $ sudo mount /dev/mapper/loop0p2 /mnt/sd2

 これで /mnt/sd1 にブート領域、 /mnt/sd2 にシステム領域がマウントされる。

3.ブート領域のコピー
 SDカードを差し込み、dmesgなどでデバイス名を調べる。
 (自動マウントされた場合はアンマウントする)
 fdisk でパーティションを設定、mkfs.vfatでFat32フォーマットする。

 $ sudo fdisk /dev/mmcblk0
  コマンド (m でヘルプ): [ d ]  ← パーティション削除
  コマンド (m でヘルプ): [ n ]  ← パーティション作成
  Partition type: [ ]
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
  Select (default p): [ ]
  Using default response p
  パーティション番号 (1-4, 初期値 1): [ ]
  初期値 1 を使います
  最初 セクタ (2048-1987583, 初期値 2048): [ ]
  初期値 2048 を使います
  Last セクタ, +セクタ数 or +size{K,M,G} (2048-1987583, 初期値 1987583):  [ ]
  初期値 1987583 を使います
  コマンド (m でヘルプ): [ t ]
  選択したパーティション 1
  16進数コード (L コマンドでコードリスト表示): [ c ]
  パーティションのシステムタイプを 1 から c (W95 FAT32 (LBA)) に変更しました
  コマンド (m でヘルプ): [ w ]
  パーティションテーブルは変更されました!

 $ sudo mkfs.vfat -F 32 /dev/mmcblk0p1

 $ sudo mkdir /mnt/sdboot
 $ sudo mount -t vfat /dev/mmcblk0p1 /mnt/sdboot
 $ sudo cp /mnt/sd1/* /mnt/sdboot
 $ sudo umount /mnt/sdboot

4.システム領域のコピー
◎USB-HDDを挿し、fdisk等でパーティションを作成。
  1.システム領域  16GB程度(お好みで)
  2.データ領域   好きなだけ
  3.swap領域    2GB程度(お任せで)

◎mkfs.ext4でext4フォーマットする。
 $ sudo mkfs.ext4 /dev/sdb1
 $ sudo mkfs.ext4 /dev/sdb2

 $ sudo cp -a /mnt/sd2/* /media/SYSTEM/  (コピー先は環境によって異なる)

5.システムを書き換えて起動できるようにする
◎ブート手順を書き換え
 $ sudo vi /mnt/sd1/cmdline.txt
  root=/dev/mmcblk0p2 と定義してあるところを
  root=/dev/sda1 に書き換える。

◎固定IPの設定
 $ sudo vi /media/SYSTEM/etc/network/interfaces
  iface eth0 inet dhcp
  と定義してあるところを
  iface eth0 inet static
    address 192.168.xxx.yyy
    network 192.168.xxx.0
    netmask 255.255.255.0
    broadcast 192.168.xxx.255
    gateway 192.168.xxx.yyy
    dns-nameservers 192.168.xxx.yyy
  に書き換える。(xxx,yyyは環境による)

◎データ領域をマウントするように
 $ sudo vi /media/SYSTEM/etc/fstab
  #/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
  /dev/sda1       /               ext4    defaults          0       0
  /dev/sda2       /var/www        ext4    defaults          0       0

 mmcblk0p2の定義をコメントアウト
 sda1,2の定義を追加

◎tty2〜6を起動させないように
 $ sudo vi /media/SYSTEM/etc/inittab
  #
  1:2345:respawn:/sbin/getty --noclear 38400 tty1
  # 2:23:respawn:/sbin/getty 38400 tty2
  # 3:23:respawn:/sbin/getty 38400 tty3
  # 4:23:respawn:/sbin/getty 38400 tty4
  # 5:23:respawn:/sbin/getty 38400 tty5
  # 6:23:respawn:/sbin/getty 38400 tty6

 2〜6をコメントアウト

◎アクセス制限の設定
 $ sudo vi /media/SYSTEM/etc/hosts.deny
  ALL: ALL

 $ sudo vi /media/SYSTEM/etc/hosts.allow
  ALL: 127.0.0.1
  ALL: 192.168.0.0/255.255.255.0

6.後始末
◎USB-HDDのアンマウント

◎SDカードのアンマウント
 $ sudo umount /mnt/sdboot
 $ sudo rm -rf /mnt/sdboot

◎イメージファイルのアンマウント
 $ sudo umount /mnt/sd1
 $ sudo umount /mnt/sd2
 $ sudo kpartx -dv wheezy-raspbian.img 
  del devmap : loop0p2
  del devmap : loop0p1
  loop deleted : /dev/loop0
 $ sudo rm -rf /mnt/sd1
 $ sudo rm -rf /mnt/sd2


Raspberry Pi を起動して、SSHで接続できればOK

2013/06/09

ownCloudは完全動作していない

どうやら完璧な状態では動作していない。
Androidアプリからのインスタントアップロードが異常終了してしまう。
ログを見るとエラーも出てるし。

これは困った。
インスタントアップロードで写真をバックアップするのが本来の目的なのに
それが正常動作しないとすべてが無意味になってしまう。

さてどうしようか。。。

2013/06/04

swap 設定

どうやらうまくいったようなので、
swapを設定する。

まずdphys-swapfileのリムーブ
$ sudo apt-get remove dphys-swapfile

次にswap領域に名づけ
$ sudo mkswap -L swappat /dev/sda3

有効化
$ sudo swapon -L swappat

チェック
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda3                               partition 2191356 0 -1

fstabに登録
$ sudo vi /etc/fstab
LABEL=swappat   swap            swap    defaults        0       0

rebootしてチェック

ぜんぜんできてないことが発覚

rootfs の使用サイズがパーティションサイズ一杯(つまり空き容量なし)になってた。
書き込み等はできてるので使用上は問題ないのかもしれなが、
精神衛生上よろしくないので再構築することにする。

今回はswapパーティション対応にしてみる。

準備
・raspbianを展開したSD
・boot用SD/1GB程度(fatでフォーマット)
・USB-HDDを
  パーティション1/16GB程度(ext4でフォーマット)
  パーティション2/残り全部(ext4でフォーマット)
  パーティション3/2GB程度(linux-swapでフォーマット)
 でフォーマット。


boot用SDの構築
raspbianのパーティション1(bootパーティション)のファイルをboot用SDにコピーする。

cmdline.txt の編集
root=/dev/mmcblk0p2 と定義してあるところを
root=/dev/sda1 に書き換える。

rootfsの構築
raspbianのパーティション2のファイルをUSB-HDDのパーティション1にコピーする。
$ sudo -arp /media/(SDのPat2)/* /media/(USB-HDDのPat1)/


諸々ファイルを直接更新しておくと楽かもしれない。。。

2013/06/02

今更ながらアクセス制限設定

外部からの要求は全部ルーターで遮断してるので設定の必要はないが、
まあとりあえず。。

hosts.deny で全拒否
$ sudo vi /etc/hosts.deny
ALL: ALL

hosts.allow でローカル及び同一セグメントからのアクセス許可
$ sudo vi /etc/hosts.allow
ALL: 127.0.0.1
ALL: 192.168.0.0/255.255.255.0

DHCPサーバーも有効にしちゃえ

しばらくの間、dnsmasqのDHCPサーバーも有効にしてみることにする。

$ sudo vi /etc/dnsmasq.conf

no-dhcp-interface=eth0 ←消す

# ↓↓↓有効にする
# ドメインの付加されていない名前解決は上位DNSに転送しない
domain-needed

# プライベートIPの逆引きは上位DNSに転送しない
bogus-priv

# IPアドレスを払い出すインターフェイスの指定
interface=eth0

# domain= で指定されたドメインで補完する
expand-hosts

# 補完するドメイン
domain=local.example.com

# DHCPで割り当てたい範囲とリース時間 (192.168.0.100 〜 199 リース24時間)
dhcp-range=192.168.0.100,192.168.0.199,24h

# オプション番号3:デフォルトルートのアドレス設定
dhcp-option=3,192.168.0.1


サービス再起動で終わり
$ sudo service dnsmasq restart

ルーターのDHCPを切るのを忘れずに

DNSサーバーを立てる

ownCloud だけでは能力の無駄遣いなので、
いろいろサーバーを立ててみよう。
今回はDNSサーバー。

RPiを起動していない場合でもLAN内の他のマシンに影響がでないよう、
あくまでセカンダリのサーバーとして認識させることが前提。


dnsmasq
が簡単らしいのでそれで。

$ sudo apt-get install dnsmasq

hostsファイルをDNSが参照するので、
LAN内で名前解決したいアドレスを記述する。

$ sudo vi /etc/hosts
192.168.xxx.yyy   hogehoge
などなど

$ sudo vi /etc/resolv.conf
hostsファイルで解決できない場合は上位DNSに問い合わせる仕組みのため
resolv.confに上位DNSのアドレスが記述されていること。


DHCPは動かさないので
dnsmasq.conf に明示
$ sudo vi /etc/dnsmasq.conf
no-dhcp-interface=eth0


dnsmasqを再起動すればおk
$ sudo /etc/init.d/dnsmasq restart


ルーターのLAN側DNSにRPiのIPアドレスを指定する。


・・・で、動かない、と。
ルーターがDNSアドレスの通知を怠ってるようだ。


追記
グーグル先生に教えてもらったところ、
家に設置してる某メーカーのルーターは、
・DHCPはルーターの機能を使用
・しかしDNSはルーター外のDNSサーバーを参照
というのは使用できないらしい。
だったら設定できないようにしとけよ、って話。
古いルーターなので、そろそろ引退してもらってもいいのかもしれない。

2013/05/31

不要サービスの削除など

無駄なメモリ消費を抑えるため、不要サービスを削除する。

tty2〜6を起動させないように
$ sudo vi /etc/inittab
#
1:2345:respawn:/sbin/getty --noclear 38400 tty1
# 2:23:respawn:/sbin/getty 38400 tty2
# 3:23:respawn:/sbin/getty 38400 tty3
# 4:23:respawn:/sbin/getty 38400 tty4
# 5:23:respawn:/sbin/getty 38400 tty5
# 6:23:respawn:/sbin/getty 38400 tty6


不要パッケージ削除
$ sudo apt-get remove dbus triggerhappy 2013/06/03 修正
削除しなくていいかも。。。


ntp関連
sudo apt-get remove ntp
$ sudo apt-get install ntpdate

$ sudo crontab -e
# 1時間ごと(毎時0分)に、時刻合わせを行う
0 * * * * /etc/network/if-up.d/ntpdate > /dev/null 2>&1

$ sudo vi /etc/default/ntpdate
# NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"
NTPSERVERS="0.ntp.nict.jp 1.ntp.jst.mfeed.ad.jp 2.ntp.ring.gr.jp"


$ sudo apt-get autoremove

Rasbian のアップデート

Rasbian のアップデートを忘れてた!

そのままだと、
$ sudo apt-get update
$ sudo apt-get upgrade
なんだけど、
国内サーバーにリポジトリをミラーリングしてくれてる奇特な方がおられるので、
せっかくなので利用させていただく。

https://twitter.com/kfujieda/status/301119397064486912

$ sudo vi /etc/apt/sources.list

変更前
## deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi

変更後
deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi


$ sudo apt-get update
$ sudo apt-get upgrade
で更新

ミラーサイトが遅かったら戻すべし

Apacheの設定

ownCloud を動かすと、
.htaccessが云々と怒られる。

/var/www/owncloud/.htaccess を
/etc/apache2/conf.d/owncloud.conf
としてコピー&編集

Alias /owncloud /var/www/owncloud
<Directory /var/www/owncloud>
  <IfModule mod_fcgid.c>
  <IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
    RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
  </IfModule>
  </IfModule>
  </IfModule>
  ErrorDocument 403 /core/templates/403.php
  ErrorDocument 404 /core/templates/404.php
  <IfModule mod_php5.c>
    php_value upload_max_filesize 513M
    php_value post_max_size 513M
    php_value memory_limit 512M
    <IfModule env_module>
      SetEnv htaccessWorking true
    </IfModule>
  </IfModule>
  <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L]
    RewriteRule ^.well-known/host-meta.json /public.php?service=host-meta-json [QSA,L]
    RewriteRule ^.well-known/carddav /remote.php/carddav/ [R]
    RewriteRule ^.well-known/caldav /remote.php/caldav/ [R]
    RewriteRule ^apps/calendar/caldav.php remote.php/caldav/ [QSA,L]
    RewriteRule ^apps/contacts/carddav.php remote.php/carddav/ [QSA,L]
    RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L]
    RewriteRule ^remote/(.*) remote.php [QSA,L]
  </IfModule>
  <IfModule mod_mime.c>
    AddType image/svg+xml svg svgz
    AddEncoding gzip svgz
  </IfModule>
  <IfModule dir_module>
    DirectoryIndex index.php index.html
  </IfModule>
  AddDefaultCharset utf-8
  Options -Indexes
</Directory>

ownCloud をインストール

Apache2 とか PHP とか 各種ライブラリ
$ sudo apt-get install apache2 libapache2-mod-php5 php5-intl
$ sudo apt-get install php5-gd php-xml-parser php5-sqlite
$ sudo apt-get install smbclient curl libcurl3 php5-curl

$ sudo apt-get install php5 sqlite3
↑ 2013/06/05 追記 コマンドラインでも実行できるように

Apache2の設定
$ sudo vi /etc/apache2/sites-enabled/000-default

       <Directory /var/www/>
#               Options Indexes FollowSymLinks MultiViews
#               AllowOverride None
                Options -Indexes ExecCGI FollowSymlinks
                AllowOverride All
                Order allow,deny
                allow from all
       </Directory>


ownCloud のダウンロード&展開
$ cd /var/www
$ sudo wget http://download.owncloud.org/community/owncloud-x.x.x.tar.bz2
$ sudo tar -xjf owncloud-x.x.x.tar.bz2
$ sudo rm owncloud-x.x.x.tar.bz2

ディレクトリ設定
$ sudo chown -R www-data:www-data /var/www
$ sudo chown -R www-data:www-data /var/www/owncloud
↑ 2013/05/05 修正 ディレクトリミス

ホストマシンから
http://192.168.0.xxx/ownclowd

2013/05/30

USB-HDD をマウント

データ用HDD(パーティション2)をマウントして使用出来るようにする。

全域をデータ領域にするため、
パーティション2のマウントポイントを /var/www にする。
$ sudo vi /etc/fstab

#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
/dev/sda1       /               ext4    defaults          0       0
/dev/sda2       /var/www        ext4    defaults          0       0

mmcblk0p2の記述が残ってるのでコメントアウト
sda1をルートポイントにマウント
sda2を/var/wwwにマウント


再起動して
$ df

/dev/sda2        nnnnnnnn nnnnnnnn nnn /var/www

となってればおk

固定IPの設定

IPアドレスを固定IPにする。

$ sudo vi /etc/network/interfaces

変更前
iface eth0 inet dhcp

変更後(値はネットワークによる)
iface eth0 inet static
 address 192.168.0.xxx
 network 192.168.0.0
 netmask 255.255.255.0
 broadcast 192.168.0.255
 gateway 192.168.0.1
 dns-nameservers 192.168.0.1


再起動後、SSHで再接続
> ssh 192.168.0.xxx

Raspberry Pi 初期設定

RPi にSSHで接続し、初期設定をおこなう。

> ssh pi@192.168.xxx.xxx

$ sudo raspi-config

・update
 なにはともあれ、まずはアップデート

(以下、2013/05/30現在のraspi-config)

・Enable Boot to Desktop
 No
 を選択

・Internationalisation Options
 ・Change Locale
  en_US.UTF-8 UTF-8
  ja_JP.UTF-8 UTF-8
  を追加選択

 ・Change Timezone  
  Asia - Tokyo
  に設定

・Advanced Option
 ・Hostname
  raspi
  とか、短めの名前に変更

 ・Memory Split
  16
  に設定(16MB)

Finishを選ぶとrebootするか?と聞いてくるので、
No
を選ぶ。先に自分アカウントを設定するため。

初期設定が完了したら自分アカウントの作成&アカウントpiの抹消をおこなう。
$ sudo adduser hogehoge
パスワードとか色々設定

$ sudo visudo
hogehoge ALL=(ALL) ALL
を追加

リブート
$ sudo reboot


新しく作った自分アカウントでRPiにログイン
> ssh hogehoge@192.168.xxx.xxx

アカウントpiの削除
$ sudo userdel -r pi

$ sudo visudo
pi に関する記述を消しておく

2013/05/29

Raspberry Pi に ownCloud で俺様専用クラウドを構築

あたらしい記事を参照してみてください。
 → RaspberryPi に ownCloud で俺様専用クラウドを❝再❞構築 (1)


Raspberry Pi と余ったHDD を有効利用するために ownCloud をインストールしてみる。

まずは、
・新規構築
・Raspbian をHDDに載せる(SDはブートのみ)

準備
・2GB SDカード
・USB-HDD

USB-HDDを2パーティションに分割。それぞれext4でフォーマット。
パーティション1をシステム領域(2GB以上の領域を確保)
パーティション2をデータ領域(残り全部)
とする。

ダウンロードしたRaspbianをSDカードに焼く。
$ sudo dd if=wheezy-raspbian.img of=/dev/mmcblk0 bs=1M

こんがり焼きあがったSDカードから、boot以外の領域(パーティション2)を吸い出す
$ sudo dd if=/dev/mmcblk0p2 of=raspbianSD.img bs=1M

吸い出したイメージをUSB-HDD(パーティション1)に展開
$ sudo dd if=raspbianSD.img of=/dev/sda1 bs=1M

−−−−−−−−−−−−

RPiにSDとHDDを挿し、電源ON!
RPiのLEDが安定したら、IPアドレスを調べてSSHで接続。

UbuntuでIPアドレスを調べる場合は、
$ sudo nmap -sP 192.168.xxx.1-255


UID:pi
PWD:raspberry
で接続
$ ssh pi@192.168.xxx.xxx

接続後、dmesgでHDDの接続状況を確認し、ブート手順を書き換える。

たとえば/dev/sdaに接続されている場合、
$ sudo vi /boot/cmdline.txt
root=/dev/mmcblk0p2 と定義してあるところを
root=/dev/sda1 に書き換える。

rebootすると、HDDから起動するハズ。
#アクセスランプで妄想

2013/04/20

twitteroauth.phpでツイートする場合


OAuth.php  twitteroauth.php を任意のディレクトリに配置


 function TwitterPost($text)
  {

    require_once("twitteroauth.php");  // フルパスで

    $consumer_key     = "[TwitterDevサイトから]";
    $consumer_secret  = "[TwitterDevサイトから]";
    $user_token       = "[TwitterDevサイトから]";
    $user_secret      = "[TwitterDevサイトから]";

    $twitter = new TwitterOAuth(
        $consumer_key, $consumer_secret, $user_token, $user_secret
    );

    $method = "statuses/update";
    $parameters = array("status" => $text);

    $response = $twitter->post($method, $parameters);

  }

2013/02/26

Raspberry Pi に無線LAN

GW-USNano2をRaspberryPiに繋いだ時の自分メモ

準備
$ wpa_passphrase [SSID] [PASSWORD]
で暗号化したPSKを調べる

[/etc/wpa_supplicant/wpa_supplicant.conf]
以下を追加

network={
    ssid="[SSID]"
    scan_ssid=1
    key_mgmt=WPA-PSK
    proto=WPA2
    pairwise=CCMP
    group=CCMP
    psk=[wpa_passphraseで調べたpsk]
}



[/etc/network/interfaces]
以下を追加

allow-hotplug wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
metric 0
address 192.168.0.xx
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1


2013/01/02

cocot で文字化けサヨナラ

jnethackの文字コードはEUCなので、RasPiでは文字化けして操作不能。
cocotを間に噛まして文字コード変換することでUTF-8のターミナルで快適に♪

cocotをコンパイル&インストールして
$cocot -t UTF-8 -p EUC-JP -- /usr/games/jnethack
でおk

.bashrcにエイリアス設定をしておくと吉

alias jnethack='cocot -t UTF-8 -p EUC-JP -- /usr/games/jnethack'


2013/06/07 追記
コンパイル&インストール
$ sudo apt-get install git git-core
$ cd
$ git clone https://github.com/vmi/cocot.git
$ cd cocot
$ ./configure
$ make && sudo make install

JNetHack(tty) インストールメモ


RasPiにJNetHackを入れてみる

0) 準備

ソースをホームディレクトリにダウンロード
 本体:nethack-343-src.tgz / 本家から(http://www.nethack.org)
 パッチ:jnethack-3.4.3-0.10.diff.gz / JNetHack Project (http://jnethack.sourceforge.jp/)

ライブラリインストール
$ sudo apt-get install bison build-essential flex libncurses-dev


1) ソースの展開・パッチ

$ tar zxvf nethack-343-src.tgz
$ cd nethack-3.4.3
$ zcat ../jnethack-3.4.3-0.10.diff.gz | patch -p1
$ sh sys/unix/setup.sh


2) ファイルの編集
2-1) Makefile の編集

GAMEGRP = games
GAMEPERM = 02755
FILEPERM = 0644
EXEPERM = 755
DIRPERM = 775


2-2) src/Makefile の編集

# flags for Linux
CFLAGS = -O2 -fomit-frame-pointer -I../include
LFLAGS =

※元々のCFLAGS/LFLAGSをコメントアウト


2-3) util/Makefile の編集

# flags for Linux
CFLAGS = -O2 -fomit-frame-pointer -I../include
LFLAGS =

※元々のCFLAGS/LFLAGSをコメントアウト


2-4) include/unixconf.h の編集

コメントアウトされている以下の定義を有効化

#define SYSV
#define LINUX
#define TERMINFO
#define TIMED_DELAY

2-5) include/config.h の該当行を編集

コメントアウトされているDLBの定義を有効化

#define DLB /* not supported on all platforms */

gzipのパスを変更(/usr/bin/gzipから/bin/gzipに変更)

#define COMPRESS "/bin/gzip" /* FSF gzip compression */

XI18Nの定義をコメントアウト

/*# define XI18N*/


3) コンパイル

$ make all


4) インストール

# make install


5) パーミッション変更

# chmod g+w /usr/games/lib/jnethackdir/record
# chmod g+w /usr/games/lib/jnethackdir/logfile


# chmod g+w /usr/games/lib/jnethackdir

フォロワー