(仮)釣りと電子工作 ラズパイのjessie化 忍者ブログ
趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
[389] [388] [387] [386] [385] [384] [383] [382] [381] [380] [379]
牛丼が贅沢品になってからというもの、松屋に行く回数もほとんどなくなり、コンビニの軽食やごはん納豆のみという粗食ばかり続いていたが、たまには贅沢を、ということで、天丼を食べることにした。

が、駅前にある天丼屋に行ってみると、なにやら行列ができている。なんでも18日は感謝デーみたいなもので、天丼がサンキューの390円で食べられるということらしい。なんだかなぁ。。。これだから貧乏人は困る。100円安いくらいで行列に並んでんじゃねぇYo!!!俺にしてみれば、こんなときこそサンキューで3900円にするべきと。真の天丼好きのための日で、にわか天丼ファンや貧乏人はすっこんでろ!

で仕方なく並んで座ったのが4人がけの相席。前の席のやつ、いかにも390円だから来ました、て感じ。お、俺は違うからな。単に運悪く18日に来てしまっただけだからな。とはいえこんな日にサンキュー天丼以外を頼むとオペレーション的に迷惑がかかるので、やむをえず390円のにしたが、前のやつ、サンキュー天丼お代わり!とかほざく。もうやってらんない。でもレジで100円割引券がもらえたので、とりあえずよしとした。

それはさておき、車載raspberry pi のブート時間を早くするため、raspbianをjessieにあげてみた。以下は、その備忘録。

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

8GBのSDカードを使う。4GBでもなんとかなるが、いまさら4GBなんて。。。
すべて sudo su でrootに切り替えて実行

●SDカード作成
2015-05-05-raspbian-wheezy.img を SDカードに書き込む( DD for Windows を使用 )

●文字を大きくする。
#vi /boot/config.txt
hdmi_group=2
hdmi_mode=23
#reboot

●パスワード変更
デフォルトのraspberryは長すぎるので短くする。
#passwd pi

●wifi設定
https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
を参考に設定

#vi /etc/wpa_supplicant/wpa_supplicant.conf

下記4行追記
network={
    ssid="自分のSSID"
    psk="接続用の鍵"
}

で、そのあと
#ifdown wlan0
#ifup wlan0

ところで
Operation not permitted
Invalid argument
というエラーが表示されるが、これは既知のノイズなので問題なし。

●wifiの省電力設定を無効にする
# lsmod
Module                  Size  Used by
cfg80211              462846  0
rfkill                 22347  2 cfg80211
snd_bcm2835            21149  0
snd_pcm                90778  1 snd_bcm2835
snd_seq                61097  0
snd_seq_device          7209  1 snd_seq
snd_timer              23007  2 snd_pcm,snd_seq
snd                    66325  5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
evdev                  11000  2
8192cu                569561  0
cdc_acm                18406  0
uio_pdrv_genirq         3666  0
uio                     9897  1 uio_pdrv_genirq

8192cuがいる場合(格安Wifiアダプタ)は、そのままだとブチブチ切れまくるので
次のファイルを作る

# vi /etc/modprobe.d/8192cu.conf
# cat /etc/modprobe.d/8192cu.conf
options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1

ここで一旦リブート。
ダイナミックDNSの一種であるavahiデーモンが動いているので、再起動すれば、
ホスト名: raspberrypi.local
ユーザID: pi
パスワード: 最初に変えたやつ

でログインできるはず。(できないときは5分ほど待つ)
以下、sshでログインして設定。

●パーティション拡張
デフォルトのままだと下記のようにすぐ100%になってしまう。
root@raspberrypi:/home/pi# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3023728 2884080         0 100% /
devtmpfs           88688       0     88688   0% /dev
tmpfs              18592     264     18328   2% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs              37180       0     37180   0% /run/shm
/dev/mmcblk0p1     57288   20144     37144  36% /boot
ここでは/を3GBから6GBに変更する。SDカード容量全体まで拡張しないのは、
これをバックアップしたものが他の8GBのSDカードに書けなくなるから
8GBのSDカードのバックアップを16GB以上のSDカードにしか戻せなくなる
でも運がよければ8GBでも戻せる場合もある。

root@raspberrypi:/home/pi# fdisk /dev/mmcblk0

Command (m for help): p

Disk /dev/mmcblk0: 7951 MB, 7951351808 bytes
4 heads, 16 sectors/track, 242656 cylinders, total 15529984 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
Disk identifier: 0xa6202af7

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880     6399999     3138560   83  Linux

Command (m for help): d
Partition number (1-4): 2

Command (m for help): p

Disk /dev/mmcblk0: 7951 MB, 7951351808 bytes
4 heads, 16 sectors/track, 242656 cylinders, total 15529984 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
Disk identifier: 0xa6202af7

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (2048-15529983, default 2048): 122880
Last sector, +sectors or +size{K,M,G} (122880-15529983, default 15529983): +6G

Command (m for help): p

Disk /dev/mmcblk0: 7951 MB, 7951351808 bytes
4 heads, 16 sectors/track, 242656 cylinders, total 15529984 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
Disk identifier: 0xa6202af7

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880    12705791     6291456   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 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)
Syncing disks.
root@raspberrypi:/home/pi#
root@raspberrypi:/home/pi# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3023728 2884080         0 100% /
devtmpfs           88688       0     88688   0% /dev
tmpfs              18592     264     18328   2% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs              37180       0     37180   0% /run/shm
/dev/mmcblk0p1     57288   20144     37144  36% /boot
root@raspberrypi:/home/pi# reboot

・・・・

root@raspberrypi:/home/pi# resize2fs /dev/mmcblk0p2
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 1572864 (4k) blocks long.

root@raspberrypi:/home/pi# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        6127360 2874344   2953880  50% /
devtmpfs           88432       0     88432   0% /dev
tmpfs              18544     256     18288   2% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs              37080       0     37080   0% /run/shm
/dev/mmcblk0p1     57288   20144     37144  36% /boot
tmpfs              37080       0     37080   0% /tmp
root@raspberrypi:/home/pi#


●screenを入れる
ブチブチ切れても復活できるよう、screenを入れる。
root@raspberrypi:/home/pi# apt-get update
root@raspberrypi:/home/pi# apt-get install screen

使い方は、
root@raspberrypi:/home/pi# screen
でscreen起動
Ctrl+A を押して、話して D
でscreenから一旦抜ける。普通にscreenを抜けたかったら exit を打ち込む。
一旦抜けたあとの再接続は
root@raspberrypi:/home/pi# screen -r
だが、複数screenが立ち上がっていると、下記のように -r の後ろにプロセス番号が必要になる。
root@raspberrypi:/home/pi# screen -r
There are several suitable screens on:
        2791.pts-0.raspberrypi  (20/09/15 23:03:28)     (Detached)
        2788.pts-0.raspberrypi  (20/09/15 23:03:24)     (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
root@raspberrypi:/home/pi# screen -r 2791

●最新のWheezyにする
ライブラリ&パッケージをすべて非対話的に連続して最新版にする。
(&&で繋いでいるのでエラーが出たときは連続実行は止まる)

# apt-get -y update && echo "UPGRADE" && apt-get -y upgrade && echo "DIST-UPGRADE" && apt-get -y dist-upgrade

●Jessieにする
ソースリストを下記のように切り替える
# vi  /etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

最新版に更新
# apt-get -y update && echo "UPGRADE" && apt-get -y upgrade && echo "DIST-UPGRADE" && apt-get -y dist-upgrade
・・・・
Configuring libc6:armhf
Restart services during package upgrades without asking?       
 <Yes>         <No>

と表示されたらもちろんYes

非対話なのに結構聞いてくる。すべてデフォルト(Enter押す)
*** .bashrc (Y/I/N/O/D/Z) [default=N] ?

Configuring openssh-server
Disable SSH password authentication for root?
 <Yes> <No>
セキュリティはどうでもいいので、No

●お掃除
# apt-get autoremove
# apt-get autoclean

●初期設定
いまさらながら初期設定
root@raspberrypi:/home/pi# raspi-config
3 Enable Boot to Desktop/Scratch
  Console Text console, requiring login (default)
4 Internationalisation Options
  I2 Change Timezone
    Asia - Tokyo にセット
  I3 Change Keyboard Layout
    Generic 105-key (Intl) PC
      Keyboard layout: Other
        English (US) --- English (US) --- The default for the keyboard layout --- No compose key
        Xserver - No

root@raspberrypi:/home/pi# systemctl get-default
graphical.target
root@raspberrypi:/home/pi# systemctl set-default multi-user.target
Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/multi-user.target.
root@raspberrypi:/home/pi# systemctl get-default
multi-user.target
root@raspberrypi:/home/pi#

スクリーンセーバー無効化
root@raspberrypi:/home/pi# vi /etc/kbd/config
BLANK_TIME=30 → 0にする
POWERDOWN_TIME=30 → 0にする
→jessieだと効かない。カーネルパラメータで直接consoleblankをセットするしかないが、raspbianでは出来ないんじゃないかな。ここはあきらめるのが吉。

●RTC設定(Seeed Studio 800116001/101990005 小型RTCモジュール)

root@raspberrypi:/home/pi# apt-get install i2c-tools
root@raspberrypi:/home/pi# vi /boot/config.txt
dtparam=i2c=on
dtparam=i2c_arm=on
の2行を追記
再起動

root@raspberrypi:/home/pi# i2cdetect -y 1
Error: Could not open file `/dev/i2c-1' or `/dev/i2c/1': No such file or directory
root@raspberrypi:/home/pi# lsmod
Module                  Size  Used by
cfg80211              501663  0
rfkill                 22491  2 cfg80211
8192cu                569532  0
evdev                  11370  2
cdc_acm                18198  0
i2c_bcm2708             6252  0
uio_pdrv_genirq         3690  0
uio                    10009  1 uio_pdrv_genirq
sg                     21979  0
snd_bcm2835            22339  0
snd_pcm                92573  1 snd_bcm2835
snd_timer              23456  1 snd_pcm
snd                    68161  3 snd_bcm2835,snd_timer,snd_pcm
fuse                   91842  1
ipv6                  358511  28
root@raspberrypi:/home/pi# modprobe i2c-dev
root@raspberrypi:/home/pi# modprobe rtc-ds1307
root@raspberrypi:/home/pi# lsmod
Module                  Size  Used by
rtc_ds1307             10383  0
i2c_dev                 6737  0
cfg80211              501663  0
rfkill                 22491  2 cfg80211
8192cu                569532  0
evdev                  11370  2
cdc_acm                18198  0
i2c_bcm2708             6252  0
uio_pdrv_genirq         3690  0
uio                    10009  1 uio_pdrv_genirq
sg                     21979  0
snd_bcm2835            22339  0
snd_pcm                92573  1 snd_bcm2835
snd_timer              23456  1 snd_pcm
snd                    68161  3 snd_bcm2835,snd_timer,snd_pcm
fuse                   91842  1
ipv6                  358511  28
root@raspberrypi:/home/pi# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@raspberrypi:/home/pi#
root@raspberrypi:/home/pi# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
root@raspberrypi:/home/pi# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@raspberrypi:/home/pi#
root@raspberrypi:/home/pi# hwclock -r
Mon 21 Sep 2015 14:12:53 JST  -0.738666 seconds

シャットダウン時にNTPがRTCにゴミを書き込むのでNTPを止める。
root@raspberrypi:/home/pi# systemctl disable ntp.service

代わりにntpdateを入れて動作確認
root@raspberrypi:/home/pi# apt-get install ntpdate
root@raspberrypi:/home/pi# systemctl stop ntp.service
root@raspberrypi:/home/pi# ntpdate ntp.jst.mfeed.ad.jp
21 Sep 14:23:12 ntpdate[2289]: adjust time server 210.173.160.27 offset -0.006203 sec
root@raspberrypi:/home/pi#

NTPで時刻が取れたらhwclockを更新するように/etc/rc.localのexit 0の上に下記追記
modprobe i2c-dev
modprobe rtc-ds1307
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
hwclock -s
( sleep 30 ; ntpdate ntp.jst.mfeed.ad.jp && hwclock -w ) &

●車載向けにシャットダウンフリーにする
root@raspberrypi:/home/pi# dphys-swapfile swapoff
root@raspberrypi:/home/pi# dphys-swapfile uninstall
root@raspberrypi:/home/pi# vi /etc/dphys-swapfile
CONF_SWAPSIZE=100 -> 0にする

root@raspberrypi:/etc# vi /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    ro,defaults          0       2
/dev/mmcblk0p2  /               ext4    ro,defaults,noatime  0       1
mount_unionfs   /etc            fuse    defaults          0       0
mount_unionfs   /var            fuse    defaults          0       0
none            /tmp            tmpfs   defaults          0       0
root@raspberrypi:/home/pi# cp -a /etc /etc_org
root@raspberrypi:/home/pi# cp -a /var /var_org
root@raspberrypi:/home/pi# mkdir /etc_rw
root@raspberrypi:/home/pi# mkdir /var_rw

一時的にシャットダウンフリーを解除するためのコマンドを作っておく。
root@raspberrypi:/home/pi# vi /usr/local/bin/rwmount
mount -o remount,rw /
mount -o remount,rw /boot
fusermount -u -z /var
fusermount -u -z /etc

unionfsで、もっとも重要なファイルを作る
root@raspberrypi:/home/pi# vi /usr/local/bin/mount_unionfs

#!/bin/sh
DIR=$1
ROOT_MOUNT=$(awk '$2=="/" {print substr($4,1,2)}' < /etc/fstab)
if [ $ROOT_MOUNT = "rw" ]
then
  /bin/mount --bind ${DIR}_org ${DIR}
else
  /bin/mount -t tmpfs ramdisk ${DIR}_rw
  /usr/bin/unionfs-fuse -o cow,allow_other,suid,dev,nonempty ${DIR}_rw=RW:${DIR}_org=RO ${DIR}
fi

再起動

pi@raspberrypi ~ $ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        6127360 3780700   2047524  65% /
devtmpfs           88432       0     88432   0% /dev
tmpfs              92704       0     92704   0% /dev/shm
tmpfs              92704    4864     87840   6% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs              92704       0     92704   0% /sys/fs/cgroup
none               92704       0     92704   0% /tmp
ramdisk            92704   92704         0 100% /var_rw
ramdisk            92704      20     92684   1% /etc_rw
unionfs-fuse     6220064 6220064         0 100% /var
unionfs-fuse     6220064 6127380     92684  99% /etc
/dev/mmcblk0p1     57288   20144     37144  36% /boot
tmpfs              18544       0     18544   0% /run/user/1000

pi@raspberrypi ~ $ sudo su
root@raspberrypi:/home/pi# mount
/dev/mmcblk0p2 on / type ext4 (ro,noatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=469756k,nr_inodes=117439,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
none on /tmp type tmpfs (rw,relatime)
ramdisk on /etc_rw type tmpfs (rw,relatime)
ramdisk on /var_rw type tmpfs (rw,relatime)
unionfs-fuse on /etc type fuse.unionfs-fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
unionfs-fuse on /var type fuse.unionfs-fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
/dev/mmcblk0p1 on /boot type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/sda1 on /mnt type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=94816k,mode=700,uid=1000,gid=1000)


☆パッケージを追加したり、設定を変更したいときは。。。
まずunion-fs解除
# rwmount
# pkill unionfs-fuse

お掃除系
apt-get clean
rm -rf /var_org/*
rm -rf /var/log/*
cp -a /var/* /var_org/
rm /var_org/swap
cp -a /etc/* /etc_org/
PR
この記事にコメントする
お名前
タイトル
文字色
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
10 2017/11 12
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
リンク
最新CM
[07/09 こいち]
[07/07 こいち]
[07/05 NONAME]
[07/04 NONAME]
[06/02 あんちゃん]
最新TB
バーコード
ブログ内検索
カウンター
Powered by ニンジャブログ  Designed by 穂高
Copyright © (仮)釣りと電子工作 All Rights Reserved
忍者ブログ / [PR]