趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
牛丼が贅沢品になってからというもの、松屋に行く回数もほとんどなくなり、コンビニの軽食やごはん納豆のみという粗食ばかり続いていたが、たまには贅沢を、ということで、天丼を食べることにした。
が、駅前にある天丼屋に行ってみると、なにやら行列ができている。なんでも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/
が、駅前にある天丼屋に行ってみると、なにやら行列ができている。なんでも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
この記事にコメントする