Raspberry Pi Minibian przewodnik po instalacji, konfiguracji, optymalizacji

htop

[AKTUALIZACJA:2015-03-12]
Jeśli nasza malina służy nam głównie do poznawania świata elektroniki i pisania skryptów w języku python oraz kontrolowania przez interfejs www to możemy skorzystać z minimalistycznej dystrubucji Minibian. Oparta jest ona na dystrybucji Raspbian i jest z nią w 100% zgodna (dotyczy to pakietów dostępnych do instalacji oraz funkcjonalności systemu). Największą zaletą Minibian jest to, że po starcie zajmuje tylko 36MB pamięci RAM i pozwala zainstalować dokładnie to oprogramowanie, którego potrzebujemy. Z moich obserwacji wynika, że minimalny rozmiar karty SD to do instalacji Minibiana to 512 MB (bez swapa, system zajmuje 377 MB).Optymalny rozmiar wg.mnie dla środowiska python/www to 4 GB (ze swapem 512 MB).

free

I. Instalacja

1. Ściągnięcie obrazu systemu Minibian
https://minibianpi.wordpress.com/2015/02/18/minibian-2015-02-18-is-out/

2. Przygotowanie karty :SD Card Formatter
https://www.sdcard.org/downloads/formatter_4/eula_windows/

sdformatter

* należy zaznaczyć w options -> Format Size Adjustment:On

3. Nagranie obrazu na kartę : Win32 Disk Imager
http://sourceforge.net/projects/win32diskimager/
więcej informacji na http://elinux.org/RPi_Easy_SD_Card_Setup

win32diskimager

II. Uruchomienie

System automatycznie uruchamia się do okna logowania więc można od razu rozpocząć pracę. Jeśli mamy serwer DHCP w naszej sieci a nie mamy podłączonego monitora i klawiatury do RPi to należy jedynie dowiedzieć się jaki adres dostała nasza malina. Sprawdzić to możemy szybko np. programem Nmap http://nmap.org/zenmap/

zenmap

W tym przykładzie malina dostała ip 192.168.0.13 (szczęśliwy numerek :)) .
Logujemy się do niej korzystając np. z klienta Putty http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

login: root
hasło: raspberry

po zalogowaniu zmiana hasła poleceniem: passwd

warto zobaczyć: https://pihw.wordpress.com/guides/direct-network-connection/

III. Konfiguracja

1. Konfiguracja sieci
vi /etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1

* przykładowa konfiguracja ip statycznego z klasy 192.168.0.1/24

vi /etc/resolv.conf   

domain homerouter.cpe
search homerouter.cpe
nameserver 192.168.0.1
nameserver 8.8.8.8

* przykładowa konfiguracja dns.Wystarczy tylko nameserver google : 8.8.8.8

2.  Poszerzenie partycji / do maksymalnego rozmiaru karty SD

fdisk /dev/mmcblk0
d -> 2 -> n -> (kilka razy enter)
w -> (Enter)
reboot
resize2fs /dev/mmcblk0p2

IV. Instalacja oprogramowania

1. Aktualizacja systemu

apt-get update && apt-get upgrade

2. Podstawowe narzędzia (+ 114 MB)

apt-get install nano
apt-get install vim
apt-get install mc
apt-get install stress
apt-get install htop
apt-get install hdparm
apt-get install sendemail
apt-get install git
apt-get install ufw
apt-get install i2c-tools
sudo apt-get install lirc liblircclient-dev

apt-get install nano vim mc stress htop hdparm sendemail git ufw i2c-tools lirc -y

4) Środowisko Python (+551MB)

apt-get install python
apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install python-setuptools
apt-get install python-pip
apt-get install python-mysqldb
apt-get install python-rpi.gpio
apt-get install python-matplotlib
apt-get install python-mpltoolkits.basemap
apt-get install python-numpy
apt-get install python-scipy
apt-get install python-pandas
apt-get install python-smbus
apt-get install python-clint
apt-get install python-lirc

apt-get install python python-dev python-setuptools python-pip libjpeg-dev libfreetype6-dev python-mysqldb python-rpi.gpio python-matplotlib python-mpltoolkits.basemap python-numpy python-scipy python-pandas python-smbus python-clint python-lirc -y

pip install RPi.GPIO
pip install pySerial
pip install nose
pip install cmd2
pip install wiringpi2
pip install spidev

więcej informacji : https://jeffskinnerbox.wordpress.com/linux-python-packages-for-my-raspberry-pi/

5) Środowisko WWW (+115MB + 91MB)

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json php5-cgi -y

apt-get install mysql-server mysql-client -y

apt-get install lighttpd -y

więcej informacji : https://www.howtoforge.com/lighttpd_mysql_php_debian_etch

6) SAMBA (+ 37 MB)

apt-get install samba samba-common-bin -y

sudo nano -c /etc/samba/smb.conf

[global]

workgroup = WORKGROUP
server string = %h server
security = share

#======================= Share Definitions =======================

[python]

comment = Skrypty python
path = /scripts_py
browseable = yes
read only = no
guest ok = yes
create mask = 0775
force create mode = 0775
directory mask = 0775
force directory mode = 0775
force user = root
force group = root

7) Synchronizacja czasu

apt-get install ntp
ntpq -pn

http://raspberrypi.tomasgreno.cz/ntp-client-and-server.html

8) raspi-config  (2,7 MB)

apt-get install raspi-config -y

device_tree

W nowym firmware 3.18 w celu przywrócenie dawnego nazewnictwa urządzeń i2c , spi należy w raspi-config ,wyłączyć w menu Advanced -> Device Tree. Dodatkowo należy dodać do config.txt:

  • dtparam=spi=on
  • dtoverlay=w1-gpio,gpiopin=4

V. Włączenie potrzebnych modułów

1) uaktywnienie modułów SPI i I2C

nano /etc/modprobe.d/raspi-blacklist.conf

#blacklist spi-bcm2708
#blacklist i2c-bcm2708
blacklist snd-soc-pcm512x
blacklist snd-soc-wm880

nano /etc/modules

snd-bcm2835
i2c-dev
i2c-bcm2708

VI. Optymalizacja wydajności systemu

jest wiele metod optymalizacji systemu Rpi, oto najpopularniejsze:

  • zmiana OpenSSH na Dropbear
  • kompresja pamięci RAM
  • usunięcie zbędnych konsol
  • zmiana Bash na Dash
  • wyłączenie ipv6
  • overclocking
  • zmiana rsyslogd na syslogd

więcej informacji:
https://extremeshok.com/1081/raspberry-pi-raspbian-tuning-optimising-optimizing-for-reduced-memory-usage/
https://extremeshok.com/1457/raspberry-pi-raspbian-zram-compression-compressed-swap-residing-in-ram-over-allocating-memory/

VII. Optymalizacja karty SD

1) wyłączenie zapisów czasu dostępu

vi /etc/fstab

/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 errors=remount-ro,noatime,nodiratime 0 1

2) wyłączenie pliku wymiany

swapoff –all
apt-get remove dphys-swapfile

2a) lub zmniejszenie swapowania

nano /etc/sysctl.conf
dodać na końcu : vm.swappiness=10

3) wyłączenie journalingu

tune2fs -O has_journal /dev/mmcblk0p2

4) katalogi logów w pamięci ram

nano /etc/fstab

/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 errors=remount-ro,noatime,nodiratime 0 1
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=2m 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=1777,size=10m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=2m 0 0

 mount -o remount /

więcej informacji: http://www.raspberrypi.org/forums/viewtopic.php?f=9&t=850

1 myśl na temat “Raspberry Pi Minibian przewodnik po instalacji, konfiguracji, optymalizacji

Dodaj komentarz