sstea備忘録

日々のPCライフのメモ、備忘録、及びそれに類推する何か。
記載内容に間違い等を発見された場合はコッソリ教えてください... → sstea<a>aol.jp (<a> を @ に変えてください)


Raspbian

Raspbian(2015-11-21)のLITE版と通常版の違い

◆2015-11-21リリース Raspbian

気が付いたら新しいRaspbian(2015-11-21-raspbian-jessie)がリリースされてました。
通常版に加えて、LITE版もありました。

LITE版は最小構成のようで、デスクトップ関連のパッケージは入っていません。
LITE版と通常版で、具体的にどのパッケージが違うのか(需要があるかは分かりませんが)知りたかったので調べてみました。

◆"df" 結果
使用サイズはLITE版は1GB程、通常版は3.5GB程です。
通常版でも4GBのmicroSDに何とか入ります。

  2015-11-21-raspbian-jessie-lite
$ df
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/root        1304692 952540    267828  79% /
devtmpfs          469748      0    469748   0% /dev
tmpfs             474052      0    474052   0% /dev/shm
tmpfs             474052   6276    467776   2% /run
tmpfs               5120      4      5116   1% /run/lock
tmpfs             474052      0    474052   0% /sys/fs/cgroup
/dev/mmcblk0p1     61384  20296     41088  34% /boot

  2015-11-21-raspbian-jessie
$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3651636 3346332    100096  98% /
devtmpfs          469748       0    469748   0% /dev
tmpfs             474052       0    474052   0% /dev/shm
tmpfs             474052    6384    467668   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474052       0    474052   0% /sys/fs/cgroup
/dev/mmcblk0p1     61384   20296     41088  34% /boot
tmpfs              94812       0     94812   0% /run/user/1000

◆"dpkg -l" 結果

それぞれのパッケージ一覧("dpkg -l" した結果)は、下記です。(別ファイルにしてあります)

  2015-11-21-raspbian-jessie-lite

  2015-11-21-raspbian-jessie


◆パッケージ差分
下記が 2015-11-21 Raspbian のLITE版と通常版のパッケージ差分になります。
下記ピンク色のパッケージがLITE版にはなく、通常版にのみ含まれているパッケージになります。
(黒色のパッケージはLITE版、通常版に共通で含まれているパッケージです。)

acl
adduser
adwaita-icon-theme
alacarte
alsa-base
alsa-utils
apt
apt-utils
aptitude
aptitude-common
aspell
aspell-en
avahi-daemon
base-files
base-passwd
bash
bash-completion
bind9-host
binutils
blt
bluej
bsdmainutils
bsdutils
build-essential
bzip2
ca-certificates
cifs-utils
claws-mail
claws-mail-i18n
coinor-libcbc3
coinor-libcgl1
coinor-libclp1
coinor-libcoinmp1:armhf
coinor-libcoinutils3
coinor-libosi1
console-setup
console-setup-linux
coreutils
cpio
cpp
cpp-4.9
crda
cron
cryptsetup-bin
cups-bsd
cups-client
cups-common
curl
dash
dbus
dbus-x11
dc
dconf-gsettings-backend:armhf
dconf-service
debconf
debconf-i18n
debconf-utils
debian-reference-common
debian-reference-en
debianutils
desktop-base
desktop-file-utils
dh-python
dhcpcd5
dictionaries-common
diffutils
dillo
dmidecode
dmsetup
dosfstools
dphys-swapfile
dpkg
dpkg-dev
e2fslibs:armhf
e2fsprogs
ed
eject
emacsen-common
epiphany-browser
epiphany-browser-data
esound-common
fake-hwclock
fakeroot
fbset
file
findutils
firmware-atheros
firmware-brcm80211
firmware-libertas
firmware-ralink
firmware-realtek
fontconfig
fontconfig-config
fonts-dejavu
fonts-dejavu-core
fonts-dejavu-extra
fonts-freefont-ttf
fonts-opensymbol
fonts-roboto
fonts-sil-gentium-basic
freepats
fuse
g++
g++-4.9
galculator
gcc
gcc-4.6-base:armhf
gcc-4.7-base:armhf
gcc-4.8-base:armhf
gcc-4.9
gcc-4.9-base:armhf
gconf-service
gconf2
gconf2-common

gdb
gdbserver
gdebi-core
geoip-database
gettext-base
giblib1:armhf
gir1.2-atk-1.0
gir1.2-freedesktop:armhf
gir1.2-gdkpixbuf-2.0
gir1.2-glib-2.0:armhf
gir1.2-gmenu-3.0
gir1.2-gtk-3.0:armhf
gir1.2-pango-1.0:armhf
git
git-core
git-man
gksu
glib-networking:armhf
glib-networking-common
glib-networking-services
gnome-desktop3-data
gnome-icon-theme
gnome-icon-theme-symbolic
gnome-menus
gnome-themes-standard:armhf
gnome-themes-standard-data

gnupg
gnupg-agent
gnupg2
gpgv
gpicview
greenfoot

grep
groff-base
gsettings-desktop-schemas
gsfonts
gsfonts-x11
gstreamer0.10-alsa:armhf
gstreamer0.10-plugins-base:armhf
gstreamer1.0-alsa:armhf
gstreamer1.0-libav:armhf
gstreamer1.0-omx
gstreamer1.0-plugins-bad:armhf
gstreamer1.0-plugins-base:armhf
gstreamer1.0-plugins-good:armhf
gstreamer1.0-x:armhf
gtk2-engines:armhf
gtk2-engines-clearlookspix:armhf
gtk2-engines-pixbuf:armhf
gvfs:armhf
gvfs-backends
gvfs-common
gvfs-daemons
gvfs-fuse
gvfs-libs:armhf

gzip
hardlink
hdparm
hicolor-icon-theme

hostname
idle
idle-python2.7
idle-python3.4
idle3

ifupdown
info
init
init-system-helpers
initramfs-tools
initscripts
insserv
install-info
iproute2
iptables
iputils-ping
isc-dhcp-client
isc-dhcp-common
iso-codes
iw
jackd
jackd2
java-common
javascript-common
kbd
keyboard-configuration
klibc-utils
kmod
krb5-locales
leafpad
less
libaa1:armhf
libabw-0.1-1

libacl1:armhf
libalgorithm-c3-perl
libalgorithm-diff-perl
libalgorithm-diff-xs-perl
libalgorithm-merge-perl
libapt-inst1.5:armhf
libapt-pkg4.12:armhf
libarchive-extract-perl
libarchive13:armhf
libasan1:armhf
libasn1-8-heimdal:armhf
libasound2:armhf
libasound2-data
libaspell15:armhf
libasprintf0c2:armhf
libass5:armhf
libassuan0:armhf
libasyncns0:armhf
libatasmart4:armhf
libatk-bridge2.0-0:armhf
libatk1.0-0:armhf
libatk1.0-data
libatlas3-base

libatomic1:armhf
libatspi2.0-0:armhf
libattr1:armhf
libaudio2:armhf
libaudiofile1:armhf

libaudit-common
libaudit1:armhf
libavahi-client3:armhf
libavahi-common-data:armhf
libavahi-common3:armhf
libavahi-core7:armhf
libavahi-glib1:armhf
libavahi-gobject0:armhf
libavc1394-0:armhf
libavcodec56:armhf
libavformat56:armhf
libavresample2:armhf
libavutil54:armhf

libbind9-90
libblas-common
libblas3

libblkid1:armhf
libbluetooth3:armhf
libbluray1:armhf
libboost-atomic1.55.0:armhf
libboost-date-time1.55.0:armhf
libboost-filesystem1.55.0:armhf

libboost-iostreams1.49.0
libboost-iostreams1.50.0
libboost-iostreams1.53.0
libboost-iostreams1.54.0:armhf
libboost-iostreams1.55.0:armhf
libboost-program-options1.55.0:armhf
libboost-regex1.55.0:armhf
libboost-system1.55.0:armhf
libboost-thread1.55.0:armhf

libbsd0:armhf
libbz2-1.0:armhf
libc-ares2:armhf
libc-bin
libc-dev-bin
libc6:armhf
libc6-dbg:armhf
libc6-dev:armhf
libcaca0:armhf
libcairo-gobject2:armhf
libcairo2:armhf
libcanberra-gtk3-0:armhf
libcanberra0:armhf

libcap-ng0:armhf
libcap2:armhf
libcap2-bin
libcdio-cdda1
libcdio-paranoia1
libcdio13
libcdparanoia0:armhf
libcdr-0.1-1

libcgi-fast-perl
libcgi-pm-perl
libchromaprint0:armhf
libclass-c3-perl
libclass-c3-xs-perl
libcloog-isl4:armhf
libclucene-contribs1:armhf
libclucene-core1:armhf
libcmis-0.4-4
libcolamd2.8.0:armhf
libcolord2:armhf

libcomerr2:armhf
libcompfaceg1
libcpan-meta-perl
libcroco3:armhf
libcryptsetup4:armhf
libcups2:armhf
libcupsfilters1:armhf
libcupsimage2:armhf

libcurl3:armhf
libcurl3-gnutls:armhf
libcwidget3:armhf
libcwiid1
libdaemon0:armhf
libdata-optlist-perl
libdata-section-perl
libdatrie1:armhf
libdb5.3:armhf
libdbus-1-3:armhf
libdbus-glib-1-2:armhf
libdc1394-22:armhf
libdca0:armhf
libdconf1:armhf

libdebconfclient0:armhf
libdevmapper-event1.02.1:armhf
libdevmapper1.02.1:armhf
libdirectfb-1.2-9:armhf
libdns-export100
libdns100
libdpkg-perl
libdrm-freedreno1:armhf
libdrm-nouveau2:armhf
libdrm-radeon1:armhf

libdrm2:armhf
libdv4:armhf
libdvdnav4:armhf
libdvdread4:armhf
libe-book-0.1-1

libedit2:armhf
libegl1-mesa:armhf
libelf1:armhf
libelfg0:armhf
libenca0:armhf
libenchant1c2a:armhf
libeot0
libepoxy0
liberror-perl
libesd0:armhf

libestr0
libetonyek-0.1-1
libetpan17:armhf
libevdev2

libevent-2.0-5:armhf
libexif12:armhf
libexpat1:armhf
libexpat1-dev:armhf
libexttextcat-2.0-0
libexttextcat-data
libfaad2:armhf

libfakeroot:armhf
libfcgi-perl
libffi5:armhf
libffi6:armhf
libfftw3-double3:armhf
libfftw3-single3:armhf

libfile-fcntllock-perl
libflac8:armhf
libflite1:armhf
libfltk1.3:armhf
libfluidsynth1:armhf
libfm-data
libfm-extra4:armhf
libfm-gtk-data
libfm-gtk4:armhf
libfm-modules:armhf
libfm4:armhf
libfontconfig1:armhf
libfontenc1:armhf
libfreehand-0.1-1

libfreetype6:armhf
libfreetype6-dev
libfribidi0:armhf
libfuse2:armhf
libgbm1:armhf

libgcc-4.9-dev:armhf
libgcc1:armhf
libgconf-2-4:armhf
libgcrypt20:armhf
libgd3:armhf
libgdbm3:armhf
libgdk-pixbuf2.0-0:armhf
libgdk-pixbuf2.0-common
libgeoclue0:armhf

libgeoip1:armhf
libgfortran3:armhf
libgif4:armhf
libgirepository-1.0-1:armhf
libgksu2-0
libgl1-mesa-glx:armhf
libglapi-mesa:armhf
libglew1.10:armhf

libglib2.0-0:armhf
libglib2.0-bin
libglib2.0-data
libgltf-0.0-0
libglu1-mesa:armhf
libgme0

libgmp10:armhf
libgnome-desktop-3-10
libgnome-keyring-common
libgnome-keyring0:armhf
libgnome-menu-3-0

libgnutls-deb0-28:armhf
libgnutls-openssl27:armhf
libgoa-1.0-0b:armhf
libgoa-1.0-common

libgomp1:armhf
libgpg-error0:armhf
libgpgme11:armhf
libgphoto2-6:armhf
libgphoto2-port10:armhf
libgpm2:armhf
libgraphite2-3:armhf
libgsm1:armhf

libgssapi-krb5-2:armhf
libgssapi3-heimdal:armhf
libgstreamer-plugins-bad1.0-0:armhf
libgstreamer-plugins-base0.10-0:armhf
libgstreamer-plugins-base1.0-0:armhf
libgstreamer0.10-0:armhf
libgstreamer1.0-0:armhf
libgtk-3-0:armhf
libgtk-3-bin
libgtk-3-common
libgtk2.0-0:armhf
libgtk2.0-bin
libgtk2.0-common
libgtkglext1
libgtop2-7
libgtop2-common
libgudev-1.0-0:armhf

libharfbuzz-icu0:armhf
libharfbuzz0b:armhf
libhcrypto4-heimdal:armhf
libheimbase1-heimdal:armhf
libheimntlm0-heimdal:armhf

libhogweed2:armhf
libhsqldb1.8.0-java
libhunspell-1.3-0:armhf
libhx509-5-heimdal:armhf
libhyphen0
libice6:armhf

libicu52:armhf
libid3tag0
libident
libidn11:armhf
libiec61883-0:armhf
libilmbase6:armhf
libimlib2
libimobiledevice4:armhf

libirs-export91
libisc-export95
libisc95
libisccc90
libisccfg-export90
libisccfg90
libisl10:armhfts
libiw30:armhf
libjack-jackd2-0:armhf
libjasper1:armhf
libjavascriptcoregtk-3.0-0:armhf
libjbig0:armhf

libjpeg62-turbo:armhf
libjpeg8:armhf
libjs-jquery
libjs-prettify

libjson-c2:armhf
libjson-glib-1.0-0:armhf
libjson-glib-1.0-common

libk5crypto3:armhf
libkate1
libkeyutils1:armhf
libklibc
libkmod2:armhf
libkrb5-26-heimdal:armhf
libkrb5-3:armhf
libkrb5support0:armhf
libksba8:armhf
liblangtag-common
liblangtag1
liblapack3
liblcms2-2:armhf

libldap-2.4-2:armhf
libldb1:armhf
liblightdm-gobject-1-0
libllvm3.5:armhf

liblocale-gettext-perl
liblockfile-bin
liblockfile1:armhf

liblog-message-perl
liblog-message-simple-perl
liblogging-stdlog0:armhf
liblognorm1:armhf
libltdl7:armhf
libluajit-5.1-common
liblvm2app2.2:armhf
liblwres90
liblzma5:armhf
liblzo2-2:armhf
libmad0:armhf

libmagic1:armhf
libmenu-cache-bin
libmenu-cache3:armhf
libmhash2:armhf
libmikmod3:armhf
libmimic0
libmjpegutils-2.1-0
libmms0:armhf
libmng1:armhf
libmodplug1

libmodule-build-perl
libmodule-pluggable-perl
libmodule-signature-perl
libmotif-common
libmount1:armhf
libmozjs185-1.0
libmp3lame0:armhf

libmpc3:armhf
libmpdec2:armhf
libmpeg2encpp-2.1-0

libmpfr4:armhf
libmpg123-0:armhf
libmplex2-2.1-0

libmro-compat-perl
libmspub-0.1-1
libmtdev1:armhf
libmtp-common
libmtp9:armhf
libmwaw-0.3-3
libmythes-1.2-0

libncurses5:armhf
libncursesw5:armhf
libneon27-gnutls
libnettle4:armhf
libnewt0.52:armhf
libnfnetlink0:armhf
libnfsidmap2:armhf
libnih-dbus1
libnih1
libnl-3-200:armhf
libnl-genl-3-200:armhf
libnotify4:armhf
libnspr4:armhf

libnss-mdns:armhf
libnss3:armhf
libntdb1:armhf
libobrender29
libobt2
libodfgen-0.1-1
libofa0
libogg0:armhf
libopenal-data
libopenal1:armhf
libopencv-calib3d2.4:armhf
libopencv-contrib2.4:armhf
libopencv-core2.4:armhf
libopencv-features2d2.4:armhf
libopencv-flann2.4:armhf
libopencv-highgui2.4:armhf
libopencv-imgproc2.4:armhf
libopencv-legacy2.4:armhf
libopencv-ml2.4:armhf
libopencv-objdetect2.4:armhf
libopencv-video2.4:armhf
libopenexr6:armhf
libopenjpeg5:armhf

libopts25:armhf
libopus0:armhf
liborc-0.4-0:armhf
liborcus-0.8-0

libp11-kit0:armhf
libpackage-constants-perl
libpackagekit-glib2-18:armhf
libpam-modules:armhf
libpam-modules-bin
libpam-runtime
libpam-systemd:armhf
libpam0g:armhf
libpango-1.0-0:armhf
libpango1.0-0:armhf
libpangocairo-1.0-0:armhf
libpangoft2-1.0-0:armhf
libpangox-1.0-0:armhf
libpangoxft-1.0-0:armhf

libparams-util-perl
libparted2:armhf
libpciaccess0:armhf
libpcre3:armhf
libpcsclite1:armhf
libpipeline1:armhf
libpisock9
libpixman-1-0:armhf
libplist2:armhf

libpng12-0:armhf
libpng12-dev:armhf
libpod-latex-perl
libpod-readme-perl
libpolkit-agent-1-0:armhf
libpolkit-backend-1-0:armhf
libpolkit-gobject-1-0:armhf
libpoppler46:armhf

libpopt0:armhf
libportaudio2:armhf
libportmidi0

libprocps3:armhf
libproxy1:armhf
libpsl0:armhf
libpth20:armhf
libpulse0:armhf

libpython-stdlib:armhf
libpython2.7:armhf
libpython2.7-minimal:armhf
libpython2.7-stdlib:armhf7)
libpython3-dev:armhf
libpython3-stdlib:armhf
libpython3.4:armhf
libpython3.4-dev:armhf
libpython3.4-minimal:armhf
libpython3.4-stdlib:armhf4)
libqscintilla2-11
libqscintilla2-l10n
libqt4-dbus:armhf
libqt4-network:armhf
libqt4-xml:armhf
libqt4-xmlpatterns:armhf
libqtcore4:armhf
libqtdbus4:armhf
libqtgui4:armhf
libqtwebkit4:armhf
libraptor2-0:armhf

libraspberrypi-bin
libraspberrypi-dev
libraspberrypi-doc
libraspberrypi0
librasqal3:armhf
libraw1394-11:armhf
librdf0:armhf

libreadline6:armhf
libregexp-common-perl
libreoffice
libreoffice-avmedia-backend-gstreamer
libreoffice-base
libreoffice-base-core
libreoffice-base-drivers
libreoffice-calc
libreoffice-common
libreoffice-core
libreoffice-draw
libreoffice-gtk
libreoffice-impress
libreoffice-java-common
libreoffice-math
libreoffice-report-builder-bin
libreoffice-sdbc-hsqldb
libreoffice-style-galaxy
libreoffice-writer

librest-0.7-0:armhf
librevenge-0.0-0
libroken18-heimdal:armhf
librsvg2-2:armhf
librsvg2-common:armhf
librtimulib-dev
librtimulib-utils
librtimulib7)

librtmp1:armhf
libruby1.9.1
libruby1.9.1-dbg
libruby2.1:armhf

libsamplerate0:armhf
libsasl2-2:armhf
libsasl2-modules:armhf
libsasl2-modules-db:armhf
libsbc1:armhf
libschroedinger-1.0-0:armhf
libscsynth1
libsdl-image1.2:armhf
libsdl-mixer1.2:armhf
libsdl-ttf2.0-0:armhf
libsdl1.2debian:armhf
libsecret-1-0:armhf
libsecret-common

libselinux1:armhf
libsemanage-common
libsemanage1:armhf
libsepol1:armhf
libservlet2.5-java
libsgutils2-2
libshout3:armhf

libsigc++-1.2-5c2
libsigc++-2.0-0c2a:armhf
libslang2:armhf
libsm6:armhf
libsmartcols1:armhf
libsmbclient:armhf
libsndfile1:armhf

libsoftware-license-perl
libsoundtouch0:armhf
libsoup-gnome2.4-1:armhf
libsoup2.4-1:armhf
libspandsp2:armhf
libspeex1:armhf

libsqlite3-0:armhf
libsrtp0
libss2:armhf
libssh-4:armhf
libssh2-1:armhf
libssl1.0.0:armhf
libstartup-notification0:armhf
libstdc++-4.9-dev:armhf
libstdc++6:armhf
libsub-exporter-perl
libsub-install-perl
libswscale3:armhf
libsysfs2:armhf
libsystemd0:armhf
libtag1-vanilla:armhf
libtag1c2a:armhf

libtalloc2:armhf
libtasn1-6:armhf
libtcl8.5:armhf
libtcl8.6:armhf
libtcltk-ruby1.9.1
libtdb1:armhf

libterm-ui-perl
libtevent0:armhf
libtext-charwidth-perl
libtext-iconv-perl
libtext-soundex-perl
libtext-template-perl
libtext-wrapi18n-perl
libthai-data
libthai0:armhf
libtheora0:armhf
libtiff5:armhf

libtimedate-perl
libtinfo5:armhf
libtirpc1:armhf
libtk8.5:armhf
libtk8.6:armhf

libubsan0:armhf
libudev0:armhf
libudev1:armhf
libudisks2-0:armhf
libusb-0.1-4:armhf
libusb-1.0-0:armhf
libusbmuxd2:armhf
libustr-1.0-1:armhf
libuuid1:armhf
libv4l-0:armhf
libv4l2rds0:armhf
libv4lconvert0:armhf
libv8-3.14.5
libva1:armhf
libvdpau1:armhf
libvisio-0.1-1
libvisual-0.4-0:armhf
libvisual-0.4-plugins:armhf
libvo-aacenc0:armhf
libvo-amrwbenc0:armhf
libvorbis0a:armhf

libvorbisenc2:armhf
libvorbisfile3:armhf
libvpx1:armhf
libvte-common
libvte9
libwavpack1:armhf
libwayland-client0:armhf
libwayland-cursor0:armhf
libwayland-server0:armhf

libwbclient0:armhf
libwebkitgtk-3.0-0:armhf
libwebkitgtk-3.0-common
libwebp5:armhf
libwebpdemux1:armhf
libwebpmux1:armhf
libwildmidi-config
libwildmidi1:armhf
libwind0-heimdal:armhf
libwnck-3-0:armhf
libwnck-3-common
libwnck-common
libwnck22
libwpd-0.10-10
libwpg-0.3-3
libwps-0.3-3

libwrap0:armhf
libx11-6:armhf
libx11-data
libx11-xcb1:armhf
libx264-142:armhf

libxapian22
libxau6:armhf
libxaw7:armhf
libxcb-dri2-0:armhf
libxcb-dri3-0:armhf
libxcb-glx0:armhf
libxcb-present0:armhf
libxcb-render0:armhf
libxcb-shape0:armhf
libxcb-shm0:armhf
libxcb-sync1:armhf
libxcb-util0:armhf
libxcb-xfixes0:armhf

libxcb1:armhf
libxcomposite1:armhf
libxcursor1:armhf
libxdamage1:armhf

libxdmcp6:armhf
libxext6:armhf
libxfce4ui-1-0
libxfce4util-bin
libxfce4util-common
libxfce4util6
libxfconf-0-2
libxfixes3:armhf
libxfont1:armhf
libxft2:armhf
libxi6:armhf
libxinerama1:armhf
libxkbcommon0:armhf
libxkbfile1:armhf
libxklavier16
libxm4:armhf

libxml2:armhf
libxmu6:armhf
libxmuu1:armhf
libxpm4:armhf
libxrandr2:armhf
libxrender1:armhf
libxres1:armhf
libxshmfence1:armhf
libxslt1.1:armhf
libxss1:armhf
libxt6:armhf
libxtables10
libxtst6:armhf
libxv1:armhf
libxvidcore4:armhf
libxxf86dga1:armhf
libxxf86vm1:armhf
libyajl2:armhf
libyaml-0-2:armhf
libzbar0
lightdm
lightdm-gtk-greeter

linux-libc-dev:armhf
locales
login
logrotate
lp-solve
lsb-base
lsb-release
lua5.1
luajit
lxappearance
lxappearance-obconf
lxde
lxde-common
lxde-core
lxde-icon-theme
lxinput
lxkeymap
lxmenu-data
lxpanel
lxpanel-data
lxrandr
lxsession
lxtask
lxterminal

make
makedev
man-db
manpages
manpages-dev
mawk
menu-xdg
mime-support
minecraft-pi
module-init-tools
mount
mountall
multiarch-support
nano
ncdu
ncurses-base
ncurses-bin
ncurses-term
net-tools
netbase
netcat-openbsd
netcat-traditional
netsurf-common
netsurf-gtk

nfs-common
nodejs
nodejs-legacy
nodered
ntfs-3g

ntp
nuscratch
omxplayer
openbox

openresolv
openssh-client
openssh-server
openssh-sftp-server
openssl
oracle-java8-jdk
packagekit

parted
passwd
patch
pcmanfm
penguinspuzzle

perl
perl-base
perl-modules
pi-package
pi-package-data
pi-package-session
pimixer
pinentry-gtk2
pipanel

pkg-config
plymouth
policykit-1
poppler-data
poppler-utils
powermgmt-base

procps
psmisc
pypy-setuptools
pypy-upstream
pypy-upstream-dev
pypy-upstream-doc

python
python-apt-common
python-cairo
python-chardet
python-colorama
python-dbus
python-dbus-dev
python-distlib
python-gi
python-gobject
python-gobject-2
python-gpiozero
python-gtk2
python-html5lib
python-minecraftpi

python-minimal
python-ndg-httpsclient
python-numpy
python-openssl
python-picamera
python-pifacecommon
python-pifacedigitalio
python-pil:armhf
python-pip
python-pkg-resources
python-pyasn1
python-pygame
python-requests

python-rpi.gpio
python-rtimulib
python-sense-hat
python-serial
python-setuptools
python-six
python-spidev
python-support
python-talloc
python-tk
python-urllib3
python-wheel
python-xklavier

python2.7
python2.7-minimal
python3
python3-apt
python3-chardet
python3-colorama
python3-debian
python3-dev
python3-distlib
python3-gpiozero

python3-html5lib
python3-minecraftpi
python3-minimal
python3-numpy
python3-pgzero
python3-picamera
python3-pifacecommon
python3-pifacedigital-scratch-handler
python3-pifacedigitalio
python3-pil:armhf
python3-pip
python3-pkg-resources
python3-pygame
python3-requests
python3-rpi.gpio

python3-rtimulib
python3-sense-hat
python3-serial
python3-setuptools
python3-six
python3-spidev
python3-tk
python3-uno
python3-urllib3
python3-wheel
python3.4
python3.4-dev
python3.4-minimal

qdbus
qjackctl
qtchooser
qtcore4-l10n
raspberrypi-artwork

raspberrypi-bootloader
raspberrypi-net-mods
raspberrypi-sys-mods
raspberrypi-ui-mods

raspbian-archive-keyring
raspi-config
raspi-copies-and-fills
rc-gui
readline-common
rename
ri1.9.1
rpcbind
rpi-update
rsync

rsyslog
ruby
ruby1.9.1
ruby1.9.1-dev
ruby1.9.1-examples
ruby1.9.1-full
ruby1.9.3
ruby2.1
rubygems-integration

samba-common
samba-libs:armhf
scratch
scrot

sed
sense-hat
sensible-utils
sgml-base
shared-mime-info
smartsim
sonic-pi
squeak-plugins-scratch
squeak-vm

ssh
startpar
strace
sudo
supercollider
supercollider-common
supercollider-ide
supercollider-language
supercollider-server
supercollider-supernova

systemd
systemd-sysv
sysv-rc
sysvinit-utils
tar
tasksel
tasksel-data
tcl8.5
tcpd
timidity
tk8.5
tk8.6-blt2.5

traceroute
tree
triggerhappy
tzdata
ucf
udev
udisks
udisks2
uno-libs3

unzip
ure
usbutils
util-linux
v4l-utils
va-driver-all:armhf
vdpau-va-driver:armhf

vim-common
vim-tiny
wget
whiptail
wireless-regdb
wireless-tools
wiringpi
wolfram-engine

wpasupplicant
x11-common
x11-utils
x11-xkb-utils
x11-xserver-utils
x2x
xarchiver

xauth
xdg-user-dirs
xdg-utils
xfce-keyboard-shortcuts
xfconf
xfonts-100dpi
xfonts-encodings
xfonts-utils
xinit

xkb-data
xml-core
xpdf
xserver-common
xserver-xorg
xserver-xorg-core
xserver-xorg-input-all
xserver-xorg-input-evdev
xserver-xorg-input-synaptics
xserver-xorg-video-fbdev
xserver-xorg-video-fbturbo

xz-utils
zenity
zenity-common

zlib1g:armhf
zlib1g-dev:armhf


Raspbian(2015-02)のLinuxカーネルを差し替える

前記事で新バージョン(2015-02-16-raspbian-wheezy)の Raspbian をインストールしたので、Linuxカーネルも差し替えたいと思います。
以下、以前に書いた、この辺を見ながらクロスビルドしました。

微妙に手順変わってます。。。

◆カーネル/ローダブルモジュールのビルド

カーネルのクロスビルドには以前作った環境を使います。
以下、ホスト環境での操作になります。

git からLinuxカーネルのソースを取得します。
$ cd /home/mint/raspi/
$ git clone https://github.com/raspberrypi/linux.git
$ cd linux/
$ git checkout -b rpi-3.19.y remotes/origin/rpi-3.19.y
現時点の最新カーネルバージョンは 3.19.1 でした。(もうすぐ 4.0 になりますね。)

Raspberry Pi 実機上から取得したカーネルコンフィグをベースに、デバッグ関連、プロファイル関連のコンフィグを無効化したカーネルコンフィグ(これ)を使用します。(機能的にはデフォルトを維持してます。圧縮形式は lz4 に変更してますが。)

$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ cd /home/mint/raspi/linux/

上記のカスタマイズしたコンフィグを.config として linux ディレクトリ直下に置きます。
$ curl http://sstea.blog.jp/raspi/kbuild/kconfig-rpi-3.19.1 > .config
デフォルトのコンフィグを使用する場合は↓のようにしてもいいです。
$ make bcmrpi_defconfig

カーネルをビルドします。(コア数に応じて -j2 とかお好みで付けてあげてください)
$ make dtbs zImage modules
$ make modules_install INSTALL_MOD_PATH=../out/  INSTALL_MOD_STRIP=--strip-unneeded

前までは zImage を kernel.img にリネームするだけで問題ありませんでしたが、
dtb 使うようになってから、もう一工程、下記作業が必要になったようです。
(ここめっちゃ悩みました。詳細は↓おまけ1参照。
  mkknlimg は "git clone https://github.com/raspberrypi/tools.git" で取ってきた中にあります。)
$ cd /home/mint/raspi/
$ tools/mkimage/mkknlimg --dtok linux/arch/arm/boot/zImage out/kernel.img
dtb ファイル(bcm2708-rpi-b-plus.dtb)もコピーしておきます。
$ cp -p linux/arch/arm/boot/dts/bcm2708-rpi-b-plus.dtb out/

dtbファイルとkernel.img とローダブルモジュール郡を圧縮し、Raspberry Pi に持っていきます。
(まあ、このあたりは好きな方法で持っていってもらえればいいんですが。)
$ tar cvjf new.tar.bz2 out/

$ scp -p new.tar.bz2 pi@192.168.0.100:~
# IPアドレス部分は Raspberry Pi のIPアドレスを指定

◆クロスビルドしたLinuxカーネルへの差し替え
以下、Raspberry Pi 側での操作になります。

dtbファイルとカーネルイメージを差し替えます。
$ tar xvjf new.tar.bz2

$ sudo cp out/bcm2708-rpi-b-plus.dtb /boot/
$ sudo cp out/kernel.img /boot/
新しいカーネルバージョンのローダブルモジュールを展開します。
$ sudo cp -a out/lib/firmware/* /lib/firmware/
$ sudo cp -a out/lib/modules/3.19.1+/ /lib/modules/
リブートし、新しいカーネルの起動確認を行ないます。
$ reboot

もはや不要になったファイルは削除しておこうと思います。(必須ではないです)
$ sudo rm -rf /lib/modules/3.18.9+/ /lib/modules/3.18.9-v7+/
$ sudo rm -rf /boot.bak/

使用しない dtb ファイルや カーネルイメージファイルも削除していいですよね?
(自分が使用しているのは Raspberry Pi Model B+ モデルですので、下記ファイルは使用していません。)
$ sudo rm /boot/bcm2708-rpi-b.dtb /boot/bcm2709-rpi-2-b.dtb /boot/kernel7.img
$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3671884 1723412   1749112  50% /
devtmpfs          219996       0    219996   0% /dev
tmpfs              44836     452     44384   2% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs              89660       0     89660   0% /run/shm
/dev/mmcblk0p1     57288   10200     47088  18% /boot

◆おまけ1

以前のように、クロスビルドしたlinuxカーネルの zImage ファイルを kernel.img とリネームだけして、Raspberry Pi のカーネルを差し替えてみたんですが、どうも dtb ファイルを認識していないように思います。
ブートログにちらほらエラーも見えますし。
/boot/bcm2708-rpi-b-plus.dtb ファイルは確かに存在するのですが。
(ブートログは /var/log/messages で確認できます。)
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.19.1+ (mint@Mint) (gcc version 4.8.3 20140106 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11) ) #1 PREEMPT Sat Mar 14 22:50:58 JST 2015
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: BCM2708
[    0.000000] cma: Reserved 8 MiB at 0x1b800000
[    0.000000] Memory policy: Data cache writeback
            :

試しに、/boot/config.txt の末尾に
device_tree=bcm2708-rpi-b-plus.dtb
と追加し、リブートしてみたところ、
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.19.1+ (mint@Mint) (gcc version 4.8.3 20140106 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11) ) #1 PREEMPT Sat Mar 14 22:50:58 JST 2015
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine model: Raspberry Pi Model B Plus
[    0.000000] cma: Reserved 8 MiB at 0x1b800000
[    0.000000] Memory policy: Data cache writeback
            :
dtb ファイル認識してますね。。。

どうして、デフォルトのカーネルイメージは config.txt に何も記載がなくても、ちゃんと正しい dtb ファイルを認識できてるんでしょうか?
カーネルバージョンの差か、コンフィグ変えたからか、とか考えていろいろ試してみたんですが、どうも関係なさそうです。
カーネルイメージに何か情報を付与してんじゃねーの?と思って、オリジナルのkernel.imgをバイナリエディタで開いてみると、、、
末尾に何か付いてますね。。。文字列が読めます。
圧縮イメージなのに読める文字列があるって事は、圧縮後に付与されたって事です。

zImageファイルはImageファイルを圧縮して自己展開プログラムを先頭にくっつけたファイルで、自分が知る限り末尾にこんな情報はくっつかないので、外部ツールなりでzImageにこの情報を付与する加工を加えているように思います。

カーネルイメージ生成手順、何か増えてんのか?と思って https://github.com/raspberrypi/tools の中をいろいろ見てると mkknlimg とかいうそれらしいのがありました。

で、コレ使って kernel.img 作ってみると、、、

$ mkknlimg --dtok zImage kernel.img
config.txt を弄らなくても、いけましたー。

◆おまけ2
CONFIG_KALLSYMS を無効化しようとして毎回、迷子になるのでメモ。

[1] CONFIG_LATENCYTOP と CONFIG_FTRACE を無効化

  Kernel hacking  --->
  [ ] Latency measuring infrastructure
  [ ] Tracers  ----

[2] CONFIG_KPROBES を無効化
  General setup  --->
  [ ] Kprobes

[3] KALLSYMS_ALL がようやく変更可能になるので無効化
  General setup  --->
  -*- Configure standard kernel features (expert users)  --->
  [ ]   Load all symbols for debugging/ksymoops

◆おまけ3
dtb (device tree blob)
ファイルは dts (device tree source)ファイルから生成されますが、dtb ファイルから dts ファイルに戻す事もできます。
Linux ツリーの中に dtc (device tree compiler)が入っています。

下記、コマンドで dtb ファイルから dts ファイルを取得できます。
$ cd /home/mint/raspi/
$ linux/scripts/dtc/dtc -I dtb -O dts ./bcm2708-rpi-b-plus.dtb > ./out.dts

Raspbian(2015-02)の環境を構築する

Raspbian が何やら新しいバージョンになっているようなので、環境を構築し直してみようと思います。

以下、以前に書いたここや、このあたりを参考にしつつ再構築しました。
(おおっ!? 備忘録として役立っているではないですか)

設定順序等を再構成し、いろいろ補完を行ないリメイクしました。
細かーい説明とかは端折ったりしてるかも。以前の記事も参照のこと。。。

◆新バージョン Raspbian の書き込み
http://www.raspberrypi.org/downloads/ から Raspbian のイメージファイル(2015-02-16-raspbian-wheezy.zip)をダウンロードし、Win32DiskImager (http://sourceforge.jp/projects/sfnet_win32diskimager/) により、microSD に書き込みます。
(とりあえず今回は4GBのmicroSDを使用しました。)

◆初期設定
書き込み後、最初の起動時に、コンフィグレーション画面が立ち上がりますので、

  microSDのパーティションの拡張。
1 Expand Filesystem

  タイムゾーンに日本(東京)を選択。
4 Internationalisation Options
->I2 Change Timezon
  ->Asia
    ->Tokyo

  キーボードレイアウトに日本語キーボードを選択。
4 Internationalisation Options
->I3 Change Keyboard Layout
  ->Generic 105-key (intl) PC
    ->Other
      ->Japanese
        ->Japanese - Japanese (OADG 109A)
    ->The default for the keyboard layout
      ->No compose key
        ->Yes

  オーバークロック(お好みで)
7 Overclock
->Medium

◆不要パッケージの削除

下記がインストール直後の状態です。1GB弱しか空きがありません。
$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
rootfs           3671884 2479420    993104  72% /
/dev/root        3671884 2479420    993104  72% /
devtmpfs          218604       0    218604   0% /dev
tmpfs              44576     232     44344   1% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs              89140       0     89140   0% /run/shm
/dev/mmcblk0p1     57288   14720     42568  26% /boot
基本的には以前、に削除したのと同じパッケージを削除しました。(お好みでどうぞ)
何個か追加で削除してますが。(回路シミュレータの smartsim とか。。。)
(インストールされているパッケージは "dpkg -l" で確認できます。)
$ sudo apt-get autoremove -y wolfram-engine scratch sonic-pi
$ sudo apt-get autoremove -y python-minecraftpi python-pygame
$ sudo apt-get autoremove -y idle idle3
$ sudo apt-get autoremove -y netsurf-common dillo
$ sudo apt-get autoremove -y smartsim
$ sudo apt-get autoremove -y pistore debian-reference-common
$ sudo apt-get autoremove -y libraspberrypi-doc

$ sudo apt-get autoremove -y man manpages man-db
$ sudo apt-get autoremove -y git git-man
$ sudo apt-get autoremove -y galculator
$ sudo apt-get autoremove -y weston
$ sudo apt-get autoremove -y gdb gdbserver
$ rm -rf /home/pi/python_games/
$ sudo rmdir /usr/local/games/ /usr/games/

それなりに空きが出来たと思います。

$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
rootfs           3671884 1770044   1702480  52% /
/dev/root        3671884 1770044   1702480  52% /
devtmpfs          218604       0    218604   0% /dev
tmpfs              44576     232     44344   1% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs              89140       0     89140   0% /run/shm
/dev/mmcblk0p1     57288   14720     42568  26% /boot

◆ファームウェア・カーネル/パッケージのアップデート
2015-02-16-raspbian-wheezy のカーネルバージョンは 3.18.7 のようです。
$ uname -r
3.18.7+
/boot の下を見てみると、デバイスツリーのファイル等が以前より増えています。
(あんまりデバイスツリー好きじゃないんですが、、、世の中の流れですね。。。)

ファームウェアのアップデートを行い、完了後リブートします。
$ sudo rpi-update
$ sudo reboot
リブート後、ちゃんとカーネルバージョンが変わっています。
$ uname -r
3.18.9+

古いバージョンのモジュールは不要なので、削除しておきます。
$ sudo rm -rf /lib/modules/3.18.7+/ /lib/modules/3.18.7-v7+/

サンプルプログラムも削除します。(お好みで。ビルドして一度サンプルを実行してみてもいいと思います。)
$ sudo rm -rf /opt/vc/src/hello_pi/

その他のパッケージもアップデートします。

$ sudo apt-get update
$ sudo apt-get upgrade

まだ半分くらいの空きがあります。
$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
rootfs           3671884 1766000   1706524  51% /
/dev/root        3671884 1766000   1706524  51% /
devtmpfs          218644       0    218644   0% /dev
tmpfs              44584     244     44340   1% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs              89160       0     89160   0% /run/shm
/dev/mmcblk0p1     57288   14760     42528  26% /boot

◆sambaの初期設定
ネットワーク経由で Raspberry Pi とファイルのやりとりを行なうために、sambaの設定を行ないます。
(ホストマシンでクロスビルドしたカーネルイメージを持ってくるためです。)

$ sudo apt-get install samba chkconfig

    /etc/samba/smb.conf を編集。
[global]
dos charset = CP932
unix charset = UTF-8

ファイル末尾に以下を追加。
    : (略)
[pi]

path = /home/pi
writable = yes
guest ok = yes
browsable = yes
force user = pi
create mode = 0777
direcory mode = 0777

次回は 2015-02-16-raspbian-wheezy 用のLinuxカーネルを差し替えます。

Raspberry Pi の最適化を試みる

前回、初期設定まで行ないましたので、今回は最適化を行ないます。

◆不要パッケージを削除

何をするにもディスク容量が逼迫しているので、ディスク容量をまず空けようと思います。
ただし方針としては、最小構成を目指すつもりはありません。
GUI 使わない方が、そりゃ最小になりますが、GUI 使わないかは人によるでしょうし。
なので X window 関連をバッサリ削除、というような事は(今は)しません。という意味です。

デフォルトの機能を削る事なく、機能面を維持した上での最小の構成を目指します。
(GUIが立ち上がる、音がなる、ネットワークに繋がる等)
当たり障りがあまりないであろうパッケージのみを削除します。

まずは、プリインストールの以下を削除します。(後ろ髪引かれる思いですが、ここは心を鬼にして)
もちろん、使用予定があるものは置いておいていいと思います。
- Wolfram Alpah
- Scratch
- Python Games
- Pi Store
- Sonic-pi
- Minecraft
- IDLE, IDEL 3
- Webブラウザ(NetSurf, Epiphany, Dillo)のどれか2つ
→ Webブラウザ 3つもいらんので、1つ残して、それ以外は削除しようと思います。
    NetSurf を残そうと思いましたが、日本語入力できなかったので、Epiphany の方を残すことにします。
- Debian リファレンス

$ sudo apt-get autoremove -y wolfram-engine
$ sudo apt-get autoremove -y scratch
$ sudo apt-get autoremove -y python-pygame
$ sudo apt-get autoremove -y pistore
$ sudo apt-get autoremove -y sonic-pi
$ sudo apt-get autoremove -y python-minecraftpi
$ sudo apt-get autoremove -y idle idle3
$ sudo apt-get autoremove -y netsurf-common dillo
$ sudo apt-get autoremove -y debian-reference-common
$ sudo apt-get autoremove -y libraspberrypi-doc
これで 1GB くらい空きました。

Python Games 関連のはこれだけだと残ってるのもあるので、手動削除しておきます。
$ rm -rf /home/pi/python_games/
$ sudo rmdir /usr/local/games/
$ sudo rmdir /usr/games/

後、個人的に要らんかな、と思うのを削除します。
- man
→ 使い方が分からん場合は、-h か --help で大概ヘルプが表示される。
    それでも分からん場合は、ググるので、man は自分はあまり見ない。
- git
→ Raspberry Pi 上でのコンパイルは軽いのはするかもしれないが、ガッツリはしないと思う。
     その場合はクロスコンパイルするので。
- galculator
→ そもそもWindowsでもGUIの電卓は使わない。
    そもそも電卓(電子卓上計算機)の親玉であるPC(電子計算機)で、なんで電卓のエミュレートしてんのかと悲しくなる。
$ sudo apt-get autoremove -y man manpages
$ sudo apt-get autoremove -y git git-man
$ sudo apt-get autoremove -y galculator

◆アップデート

ある程度、4GBのmicroSDカードにも容量に余裕が出来たので、パッケージとファームウェアをアップデートしときます。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo rpi-update

◆不要デーモンを無効化する
まずはデーモン管理用に chkconfig パッケージをインストールします。
(自分が慣れてるのがこのやり方なだけですが)
$ sudo apt-get install chkconfig

下記で無効化。
$ sudo chkconfig motd off
$ sudo chkconfig triggerhappy off
$ sudo chkconfig alsa-utils off
$ sudo chkconfig lightdm off
$ sudo chkconfig plymouth off

◆RAMディスクを使用する
一時ファイルとか、ログとかは、(自分は)別に蓄積しなくていいので電源落せばクリーンになるように、RAMディスクを使用するようにします。
(厳密にはRAMディスクではなく tmpfs です。)

# 最近知りましたが tmpfs は結構よく出来ているようです。
# tmpfs ではサイズ指定はしていますが、別にメモリ上にそのサイズが確保されるわけではなく、
# 上限サイズとなるだけのようです。(使用部分だけメモリを消費します)
# tmpfs として使用していない部分は、普通のメモリとして使えます。
# またメモリが足りなくなった場合には、tmpfs のファイルはスワップアウトする事ができます。

/etc/fstab に以下を追加(サイズはユースケースに応じて任意に変更してください)
tmpfs           /tmp            tmpfs   defaults,size=64m 0       0
tmpfs           /var/log        tmpfs   defaults,size=32m 0       0

# このままだと、マウントされてる現在の /tmp, /var/log 下のファイルがゴミとして残ってしまいそう。。。
# 一応 rm -rf /tmp/*, rm -rf /var/log/* しといた方がいいかも。)

この状態でリブートすると起動時に、「ディレクトリがない」とか、「ファイルがない」と怒られましたので、起動時に空ディレクトリや空ファイルを作成するようにしときます。

/etc/init.d/init-ramdisk を新たに作成しましょう。
#!/bin/sh
### BEGIN INIT INFO
# Provides:       init-ramdisk
# Required-Start: $local_fs
# Required-Stop:  $local_fs
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
### END INIT INFO

chmod 775 /var/log
mkdir -p /var/log/ConsoleKit/
mkdir -p /var/log/fsck/
mkdir -p /var/log/apt/
mkdir -p /var/log/ntpstats/
mkdir -p /var/log/samba/
chown root.ntp /var/log/ntpstats/
chown root.adm /var/log/samba/
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp

上記をコピペするなり、curl コマンドで取るなりします。
$ curl -O http://sstea.blog.jp/raspi/script/init-ramdisk
$ sudo mv init-ramdisk /etc/init.d/init-ramdisk
最後に、起動時に init-ramdisk が実行されるようにします。
$ sudo chmod 755 /etc/init.d/init-ramdisk
$ sudo chkconfig --add init-ramdisk

◆SWAPを無効にする
Raspberry Pi Model B+ はメモリ量 512MB あるんで、SWAPは要らないかな、って。
(一部をRAMディスクとして使用しますし、GPUともシェアするので、実質使えるのはもう少し少ないのですが)
$ sudo apt-get autoremove -y dphys-swapfile
# スワップファイルを使わなくても ZRAM を有効にすれば、ある程度メモリを増やしたのと同程度の効果があります。

次回はもう少し突っ込んだ最適化にトライしてみようと思います。

Raspberry Pi の初期設定をしてみる

前回、OSのインストールまで行いましたので、今回は初期設定を行います。

◆Tera Term によるリモートログイン

raspi-config にてSSHをdisableにしない限りはSSHデーモンが立ち上がっているはずですので、Tera Term にてSSH経由でリモート操作すれば、Raspberry Pi の実機に接続したマウスやキーボードで操作する必要はありません。

実機上で ifconfig が何かでIPアドレスを確認しておき、Tera Term に指定してあげてください。

一応、何回かリブートしても基本は同じIPアドレスになっていると思いますが、デフォルトは DHCP 設定になっているので、ずっと同じIPアドレスである保証はないです。
そこは固定IPにしてあげる必要があります。

◆Raspbian をインストールしてまず行うこと(独断と偏見に基づく)
が、とりあえず自分は emacs がないと何も出来ません。
設定ファイル一ついじるのにも、vi だと手間取ってしまいます。
なので、まず最初にする事は
$ sudo apt-get install emacs
です。(ここは人により不要と思います)

次にするのは、、、
.emacs.el の設定。。。(ここも人により不要と思います)

ファイルを編集する度に、スタートアップメッセージを表示されるのも、~ 付きのバックアップファイルを量産されるのも嫌なので、.emacs.el に
(setq inhibit-startup-message t)
(setq make-backup-files nil)
(setq auto-save-default nil)

としておきます。

ついでに行数の表示や括弧対応等の表示を有効にするため、
(show-paren-mode 1)
(column-number-mode 1)
(line-number-mode 1)

とします。

また、タブ幅を4(Linuxカーネルのソースコードは8だが)にして、インデントをタブで行うようにします。
(setq-default c-basic-offset 4
              tab-width 4
              indent-tabs-mode t)


全角スペースや、行末スペース、タブとスペースの混在検出のため、以下を追加。
(global-font-lock-mode t)

(defface my-face-b-1 '((t (:background "red"))) nil)
(defface my-face-b-2 '((t (:background "gray"))) nil)
(defface my-face-u-1 '((t (:background "SteelBlue" :underline t))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)

(defadvice font-lock-mode (before my-font-lock-mode ())
 (font-lock-add-keywords
  major-mode
  '((" " 0 my-face-b-1 append)
    (    "\t" 0 my-face-b-2 append)
    ("[ \t]+$" 0 my-face-u-1 append)
 )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)

emacs はそれなりに使ってきたんですが、正直、メジャーモードとかマイナーモードとか、Emacs Lispとかはイミフです。
昔、設定例をググって見つけたどこかのをコピペしてきて使い続けてます。

あと、.bashrc に
alias ll='ls -la'
 を追加するのも忘れずに。(ここも人に(以下略))

ようやく各種ファイルをまともに編集出来るようになりましたので、Raspberry Pi の設定をいろいろいじっていきたいと思います。

◆DHCP設定から固定IPに変更する

    /etc/network/interfaces
# iface eth0 inet dhcp

iface eth0 inet static
address 192.168.0.100
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

元の設定をコメントアウトし、上記のように追記します。
IP アドレスが 192.168.0.100 である必要はないです。好きに書き換えてください。

◆ホストマシンとファイルやり取り出来るようにする(sambaの設定)
samba をインストールします。
$ sudo apt-get install samba samba-common samba-common-bin

/etc/samba/smb.conf を編集。[global] 以下に追記。
[global]
dos charset = CP932
unix charset = UTF-8

ファイル末尾に以下を追加。
[pi]
path = /home/pi
writable = yes
guest ok = yes
browsable = yes
force user = pi
create mode = 0777
directory mode = 0777

ネットワーク内からなら誰からでも見れてしまうので、それがマズい場合はもう少しちゃんと設定しましょう。

◆NTPの設定
NTPサーバーを日本のサーバーに変更しておきます。

    /etc/ntp.conf

# pool: <http://www.pool.ntp.org/join.html>
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst

◆日本語化

それなりの容量消費しますので、英語でも全然違和感ないなら日本語化する必要はないです。
$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname

日本語入力

$ sudo apt-get install -y uim uim-anthy

次回はRaspberry Piの最適化にトライしてみます。

Raspberry Pi に Raspbian をインストールしてみる

前回からの続き。

こちらの記事で最新版Raspbianをインストールし、環境を再構築してみました。

◆NOOBS を使用し Raspbian をインストール
# 最終的には、NOOBS を使わずにインストールする方にしましたが。。。

まずはホストPC上の操作。
ダウンロードした NOOBS(NOOBS_v1_3_10.zip)を解凍。
解凍した全ファイルを micro SD にコピー。

次に、micro SD を Raspberry Pi に挿します。
HDMIケーブルでテレビと接続。
LANケーブル、マウス、キーボードもそれぞれ接続する。
んで、最後に電源のmicroUSBケーブルを接続。(接続と同時に電源ONになるので。)

# 自分の場合は、microUSBケーブルをPCのフロントパネルのUSBに接続して電源供給しています。
# PCの方は通電していれば良く、立ち上げておく必要は無いです。

これだけで、何やら画面にGUIが表示されました。ちょっと感動です!!
簡単!!(仕事で少し触ったPandaBoardとかはもっと面倒くさかったです。。。)

インストールするOS(正確にはディストリビューションと言うべきかも)を複数選択する事も出来るようですが、容量の関係で現状は無理なので、素直にRECOMMENDEDされている Raspbian のみをインストールする事とします。
# いずれ全OS、一通りインストールして、どんな感じか見てみますが。

左上の Install ボタンを押して、「SD 書き換えるけど、本当にええねんな?」という確認をかい潜れば、特に何をするでもなく、後は数十分も放っておけばOSのインストールは完了です。
簡単!!(仕事で少し触...(以下略))

OSのインストール完了後、リブートすると、Raspi-config のメニュー画面が出ると思います。
始めは何も変えずに終了でも特に問題ないと思います。
強いて言えば、タイムゾーンとキーボードは日本にローカライズしておいた方がいいかも。
後、自分はパスワードを少し短いものに変えました。毎回打つのが面倒くさかったので。。。
(デフォルトのloginユーザ名はpi、初期パスワードはraspberryです。)

◆Raspbian のデフォルトの状態がどういうものかを確認してみる
まずはデフォルトの状態が、どういう状態か確認してみます。

df コマンド叩いてみます。

インストール直後で既に、4GB のSDの残り容量が数百MBしかないです。
これはなかなか厳しいですね。。。

とりあえずは GUI を立ち上げてみます。
$ startx
とすると、HDMIで接続したテレビの画面にでっかいラズパイを壁紙としたGUIが立ち上がります。
アイコンもいくつかデフォルトで並んでいます。

◆Raspbian のプリインストールソフトを使用してみる
とりあえず、並んでいるアイコンを適当にクリックして使用してみました。

・ Wolfram Alpah
→ よく分かんないです。
・ Scratch
→ なるほど。プログラム学習用ですね。
     昔、小学校の時にやったLOGO(亀動かすやつ)みたいなのかな?
・ Python Games
→ 簡単なテーブルゲームやボードゲーム詰め合わせです。
・ Pi Store
→ ストアですね。いろいろ売ってます。
・ Sonic-pi
→ よく分かりません。音楽とプログラムの勉強が同時に出来る?
・ Minecraft
→ とりあえず適当にキーを押してたら、地面掘り進んで、果てしなく落ちていきました。
・ IDLE, IDEL 3
→ 何これ?エディタ...でもないな。
・ NetSurf, Epiphany, Dillo
→ Web ブラウザ。
    youtube で適当な動画を再生してみる。
    おぉ! HDMI経由でテレビから音出てますねー。
    でも、重たいです。
    3つもいらん。どれか1つでいいや。

うん。はい。満足しました。
これらのソフトのほとんどはもう触らない気がしました。

一旦、左下のメニューからログアウトして GUI は終了させます。


<Raspberry Pi の初期設定は次回
プライバシーポリシー
当サイトでは、Googleを含む第三者配信事業者や広告ネットワークが配信する広告を掲載しています。
当サイトでは、アクセス情報に基づいた適切な広告表示、及びトラフィックデータ収集のためにCookieを使用しています。
ユーザーはCookieの無効化により、これらの情報の提供を拒否する事ができます。
スポンサーリンク
記事検索
スポンサーリンク