*Debian Jessie on Raspberry Pi 2 [#g0ab33f6]
**お試し [#ve7201ee]

-イメージ(以下を使用)
--http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/
---https://images.collabora.co.uk/rpi2/jessie-rpi2-20150705.img.gz
--イメージをMicroSDへ焼く(手順省略)

-sshログイン
--有線で接続
---dhcpでIPアドレスが自動で割り振られる。
---Login as root with password debian

-locale,timezone等の設定
#pre{{
# dpkg-reconfigure locales  # ja_JP.UTF-8 UTF-8 を選択
# dpkg-reconfigure tzdata     # アジア→Tokyo を選択
}}

-レポジトリ設定
--/etc/apt/sources.list
#pre{{
deb http://ftp.jp.debian.org/debian/ jessie main contrib non-free
#deb-src http://ftp.jp.debian.org/debian/ jessie main contrib non-free
#deb http://security.debian.org/ jessie/updates main contrib non-free
#deb-src http://security.debian.org/ jessie/updates main contrib non-free

deb https://repositories.collabora.co.uk/debian/ jessie rpi2
}}
-パッケージ導入
#pre{{
# apt-get update
# apt-get upgrade
# apt-get install emacs-nox screen
# apt-get install wicd-curses firmware-ralink  # WiFi設定
# apt-get install curl build-essential         # rpi-update
}}
-WiFi設定
--BUFFALO WLI-UC-GNW を使用
--wicd-curses を使って設定

-USER と sudo 設定
#pre{{
# adduser USER
# gpasswd -a USER sudo
}}

**その他 [#k0ea6709]
-firmware(kernel等)の更新
--rpi-updateの準備
#pre{{
# wget -O /usr/local/bin/rpi-update https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update
# chmod +x /usr/local/bin/rpi-update
}}
--firmware更新
#pre{{
# BOOT_PATH=/boot/firmware ROOT_PATH=/ rpi-update
# reboot
}}
-USB出力電流を増やす設定(1.2Aまで流せるようになる)
-- /boot/firmware/config.txt の最後に以下を追記
#pre{{
safe_mode_gpio=4
max_usb_current=1
}}
-パーティション拡張
--http://eco.senritu.net/raspberrypi_resizefs/ を参照
--/dev/mmcblk0p2パーティションを削除し、再作成(開始セクタはそのままで,終了セクタを最大値にする)
#pre{{
# &color(red){fdisk /dev/mmcblk0};
Command (m for help): &color(red){p};
Disk /dev/mmcblk0: 29.5 GiB, 31657558016 bytes, 61831168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x50446648

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        2048  249855  247808  121M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      249856 6146047 5896192  2.8G 83 Linux

Command (m for help): &color(red){d};
Partition number (1,2, default 2): &color(red){2};

Partition 2 has been deleted.

Command (m for help): &color(red){n};
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): &color(red){p};
Partition number (2-4, default 2): &color(red){2};
First sector (249856-61831167, default 249856):
Last sector, +sectors or +size{K,M,G,T,P} (249856-61831167, default 61831167):

Created a new partition 2 of type 'Linux' and of size 29.4 GiB.

Command (m for help): &color(red){p};
Disk /dev/mmcblk0: 29.5 GiB, 31657558016 bytes, 61831168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x50446648

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        2048   249855   247808  121M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      249856 61831167 61581312 29.4G 83 Linux


Command (m for help): &color(red){w};
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
}}
--リーブート
--パーティション拡張
#pre{{
# resize2fs /dev/mmcblk0p2
}}
**基本情報 [#c391f88b]
-uname -a
#pre{{
Linux jessie-rpi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux
}}

-free
#pre{{
             total       used       free     shared    buffers     cached
Mem:        949328     132992     816336      12248       8396      77424
-/+ buffers/cache:      47172     902156
Swap:            0          0          0
}}

**systemd-nspawn による軽量コンテナ試行 [#u642e4be]
-systemd-nspawn とは
--拡張版chroot環境。cgroup機能を用いてホストとは独立した名前空間を持つLinux環境(軽量コンテナ)を構築できる。
-コンテナ&color(red){app};の作成~
--/var/lib/container/下に作成するのがミソ~
#pre{{
# apt-get install debootstrap

# debootstrap --arch=armhf jessie /var/lib/container/&color(red){app};

以下のコマンドでコンテナに入る。
# systemd-nspawn -D app

#コンテナの中
# apt-get install dbus sudo
# adduser debian

…省略…

# gpasswd -a debian sudo
# exit
}}
-コンテナ起動
#pre{{
# systemctl start systemd-nspawn@app.service

ちなみに、ホスト起動時、コンテナを自動起動させる場合は、
# systemctl enable systemd-nspawn@app.service
}}
-起動中コンテナの確認
#pre{{
# machiectl
MACHINE                          CONTAINER SERVICE
app                              container nspawn
}}
-コンテナ jessie のステータス確認
#pre{{
# machinectl status app
jessie
           Since: 火 2015-09-29 23:54:43 JST; 5min ago
          Leader: &color(red){14828}; (systemd)
         Service: nspawn; class container
            Root: /var/lib/container/app
         Address: fe80::cee1:d5ff:fe17:b641
                  2408:10:c300:bb00:cee1:d5ff:fe17:b641
                  192.168.1.31
              OS: Debian GNU/Linux 8 (jessie)
            Unit: systemd-nspawn@app.service
                  tq14827 /usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --directory=/var/lib/container/a...
                  tq14828 /lib/systemd/systemd
                  mqsystem.slice
                    tqcron.service
                    x mq14892 /usr/sbin/cron -f
                    tqsystemd-journald.service
                    x mq14842 /lib/systemd/systemd-journald
                    tqconsole-getty.service
                    x mq14899 /sbin/agetty --noclear --keep-baud console 115200 38400 9600 vt102
                    mqrsyslog.service
                      mq14894 /usr/sbin/rsyslogd -n
}}
-コンテナへのログイン ( 抜けるにはCTRL+]]] )
#pre{{
# machinectl login app
}}
**アプリ [#ie167d7c]
-install
#pre{{
# apt-get install monit redis-server libredis-perl
# apt-get install sqlite3 libdbd-sqlite3-perl libjson-xs-perl libdatetime-perl
# apt-get install libwww-perl libdatetime-format-http^perl 
# apt-get install libmojolicious-perl libapp-daemon-perl liblog-dispatch-filerotate
# apt-get install libwww-perl libdatetime-format-http-perl 
# apt-get install libmojolicious-perl libapp-daemon-perl liblog-dispatch-filerotate-perl
}}

-monit
--/etc/monit/monitrc に以下を追加
#pre{{
set httpd port 2812 and
   use address localhost
   allow admin:monit
}}
--/etc/nginx/conf.d/monit.conf
#pre{{
server {
  listen 80;
  location /monit/ {
    rewrite ^/monit/(.*) /$1 break;
    proxy_pass http://localhost:2812;
    proxy_redirect  http://localhost:2812/monit  /monit/;
    proxy_set_header Host $host;
  }
}
}}
--datafetch.plというスクリプトを作成しmonit監視対象にする場合の設定
---/etc/monit/conf.d/datafetch.conf
#pre{{
check process datafetch matching "detafetch"
  start program = "/home/pi/detafetch/bin/datafetch.pl -log" as uid pi and gid pi
  stop  program = "/usr/bin/pkill datafetch.pl" as uid pi and gid pi
  if 5 restarts within 5 cycles then unmonitor
}}
-freetds
--/etc/freetds/freetds.conf
--[global]に以下を追加
#pre{{
[global]
        port = 1433
        tds version = 8.0
        client charset = UTF-8
}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS