This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
doc:raspi2 [2015/11/14 10:42] stwn +wireless |
doc:raspi2 [2015/11/14 23:30] (current) stwn [Storage] minor fix |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Raspberry Pi 2 ====== | ====== Raspberry Pi 2 ====== | ||
| - | $ lscpu<code>Architecture: armv7l | + | <code>$ lscpu |
| + | Architecture: armv7l | ||
| Byte Order: Little Endian | Byte Order: Little Endian | ||
| CPU(s): 4 | CPU(s): 4 | ||
| Line 12: | Line 13: | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | $ sudo dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdX | + | <code>$ sudo dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdX</code> |
| ===== Initial Configuration ===== | ===== Initial Configuration ===== | ||
| - Edit /boot/config.txt.<code>$ sudo nano /boot/config.txt | - Edit /boot/config.txt.<code>$ sudo nano /boot/config.txt | ||
| Line 25: | Line 27: | ||
| dtparam=spi=off | dtparam=spi=off | ||
| dtparam=i2c_arm=off | dtparam=i2c_arm=off | ||
| - | max_usb_current=1 #maximum current for usb</code> | + | max_usb_current=1 # maximum current for usb</code> |
| - | - Run raspi-config.<code>$ sudo raspi-config</code>Select Expand Filesystem, Change User Password, Boot Options-B1 Console, Internationalisation Options-Change Locale/Change Timezone, Advanced Options-Hostname/Memory Split(8),SPI/I2C/Serial(disable) | + | - Run raspi-config.<code>$ sudo raspi-config</code>Please select each option that you interested in to config. |
| + | * Expand Filesystem. | ||
| + | * Change User Password. | ||
| + | * Boot Options: B1 Console. | ||
| + | * Internationalisation Options: Change Locale and Change Timezone. | ||
| + | * Advanced Options: A2 Hostname, A3 Memory Split, A6 SPI, A7 I2C, A8 Serial. | ||
| ===== Updating and Upgrading ===== | ===== Updating and Upgrading ===== | ||
| - | # nano /etc/apt/sources.list | ||
| - | # apt-get update | ||
| - | # apt-get upgrade | ||
| - | # apt-get dist-upgrade | + | - Update packages index from official repository. <code>$ sudo apt-get update</code> |
| + | - Upgrade installed packages. <code>$ apt-get upgrade</code> | ||
| ===== Package Management ===== | ===== Package Management ===== | ||
| - | # vrms | + | - List installed packages and save it to a file. <code>$ dpkg-query --show -f '${Package}\n' > pkgs.list</code> |
| - | # apt-get remove --purge [I still use firmware-realtek for TL-WN725N] | + | - Edit the file and let the names of packages which you want to remove in it, i.e. graphical environment, applications and friends. |
| - | # apt-get remove --purge firmware-atheros firmware-brcm80211 firmware-libertas firmware-ralink oracle-java8-jdk pistore wolfram-engine | + | - Run 'apt-get autoremove' to remove unneeded packages. <code>$ sudo apt-get autoremove</code> |
| - | # apt-get remove --purge lxde* gnome* | + | - Install some packages. <code>$ sudo apt-get install screen vrms</code> |
| - | # apt-get autoremove | + | |
| - | # apt-get install screen | + | |
| - | # apt-get install mariadb-server | + | |
| - | # dpkg-query --show -f '${Package}\n' > pkgs.list | + | |
| ===== Custom Configuration ===== | ===== Custom Configuration ===== | ||
| - | # update-rc.d -f triggerhappy remove | + | - Disable triggerhappy. <code>$ sudo systemctl disable triggerhappy</code> |
| - | # update-rc.d -f thd remove | + | - Edit /etc/bash.bashrc <code>$ sudo nano $HOME/.bashrc |
| - | # update-rc.d -f triggerhappy remove | + | PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\W \[\033[01;34m\]\A \[\033[00m\]\`if [ \$? == 0 ]; then echo \:\); else echo '\[\033[0;31m\]:('; fi\`\[\033[00m\] "</code> |
| - | # nano /etc/ssh/sshd_config | + | - Disable password authentication for SSH. |
| - | <code>PasswordAuthentication no</code> | + | * Generate authentication key in the machine which you want to login from, and copy the result to the Raspberry. <code>$ ssh-keygen |
| - | # nano /etc/bash.bashrc (PS1). I got it somewhere on the Internet. I will find the exact source.<code>PS1="\u@\h:\W \A \`if [ \$? == 0 ]; then echo \:\); else echo \:\(; fi\` "</code> | + | $ ssh-copy-id user@raspberry</code> |
| - | # nano $HOME/.bashrc<code>PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\W \[\033[01;34m\]\A \[\033[00m\]\`if [ \$? == 0 ]; then echo \:\); else echo '\[\033[0;31m\]:('; fi\`\[\033[00m\] "</code> | + | * Edit sshd_config and restart sshd.<code>$ sudo nano /etc/ssh/sshd_config |
| - | # nano /etc/rc.local | + | PasswordAuthentication no</code><code>$ sudo systemctl restart ssh</code> |
| - | $ ssh-keygen | + | |
| - | $ ssh-copy-id user@host | + | |
| - | ===== Pagekite ===== | + | |
| - | + | ||
| - | $ wget -c https://pagekite.net/pk/pagekite.py | + | |
| - | $ chmod +x pagekite.py | + | |
| - | $ nano .pagekite.rc | + | |
| - | $ ./pagekite.py | + | |
| - | $ screen -S pagekite | + | |
| - | + | ||
| - | When you upgrade the Raspbian to jessie, you will get an error message:<code>Traceback (most recent call last): | + | |
| - | File "tmp/scr/pagekite.py", line 249, in <module> | + | |
| - | exec __FILES[".SELF/sockschain/__init__.py"] in sys.modules["sockschain"].__dict__ | + | |
| - | File "<string>", line 130, in <module> | + | |
| - | File "<string>", line 132, in SSL | + | |
| - | AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'</code>Install python-openssl | + | |
| - | + | ||
| - | * Error<code>debug2: ssh_connect: needpriv 0 | + | |
| - | debug1: Connecting to somesite.pagekite.me [XXX.YYY.ZZZ.22] port 22. | + | |
| - | debug1: Connection established. | + | |
| - | debug1: SELinux support disabled | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_rsa type -1 | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_rsa-cert type -1 | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_dsa type -1 | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_dsa-cert type -1 | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_ecdsa type -1 | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_ecdsa-cert type -1 | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_ed25519 type -1 | + | |
| - | debug1: key_load_public: No such file or directory | + | |
| - | debug1: identity file /home/stwn/.ssh/id_ed25519-cert type -1 | + | |
| - | debug1: Enabling compatibility mode for protocol 2.0 | + | |
| - | debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Debian-3 | + | |
| - | ssh_exchange_identification: Connection closed by remote host</code> | + | |
| - | * Debug with /usr/sbin/sshd -ddd -p 22 and try to connect to it. | + | |
| - | * Install corkscrew and add .ssh/config:<code>Host *.pagekite.me | + | |
| - | CheckHostIP no | + | |
| - | ProxyCommand /usr/bin/corkscrew %h 443 %h %p</code> | + | |
| - | * prun.sh | + | |
| - | + | ||
| - | ===== Syncthing ===== | + | |
| - | + | ||
| - | $ wget -c https://github.com/syncthing/syncthing/releases/download/v0.10.29/syncthing-linux-arm-v0.10.29.tar.gz | + | |
| - | $ wget -c https://github.com/syncthing/syncthing/releases/download/v0.10.29/sha1sum.txt.asc | + | |
| - | $ cat sha1sum.txt.asc |grep arm | + | |
| - | $ sha1sum syncthing-linux-arm-v0.10.29.tar.gz > syncthing-linux-arm-v0.10.29.tar.gz.sha1 | + | |
| - | $ tar zxvf syncthing-linux-arm-v0.10.29.tar.gz | + | |
| - | $ mv syncthing-linux-arm-v0.10.29 syncthing | + | |
| - | $ syncthing/syncthing | + | |
| - | $ cd .config/syncthing/ | + | |
| - | $ nano config.xml | + | |
| - | $ screen -S syncthing | + | |
| ===== Debmirror ===== | ===== Debmirror ===== | ||
| - | * $ sudo apt-get install debmirror | + | * Install debmirror. <code>$ sudo apt-get install debmirror</code> |
| - | * $ nano debmirror-jessie | + | * Edit debmirror scripts. <code>$ nano debmirror-debian |
| - | * You can find the Debian and Raspbian archive keyrings on their official repository respectively | + | $ nano debmirror-raspbian</code> |
| - | * $ gpg --keyring debian-archive-keyring.gpg --export|gpg --no-default-keyring --keyring trustedkeys.gpg --import | + | * Find the Debian and Raspbian archive keyrings on their official repositories respectively. |
| - | * $ gpg --keyring raspbian.public.key --export|gpg --no-default-keyring --keyring trustedkeys.gpg --import | + | * Add Debian and Raspbian archive keyrings. <code>$ gpg --keyring debian-archive-keyring.gpg --export|gpg --no-default-keyring --keyring trustedkeys.gpg --import |
| - | * gpg --list-keys --with-colons | + | $ gpg --keyring raspbian.public.key --export|gpg --no-default-keyring --keyring trustedkeys.gpg --import</code> |
| - | * $ debmirror-raspbian | + | * List the added keys. <code>$ gpg --list-keys --with-colons</code> |
| - | * $ nano /etc/cron.d/debmirror or /etc/crontab | + | * Test the scripts by running them. |
| - | * $ sudo systemctl restart cron.service | + | * Add crontab. <code>$ nano /etc/cron.d/debmirror or /etc/crontab</code> |
| - | * $ sudo systemctl disable bla.service | + | * Restart crontab service. <code>$ sudo systemctl restart cron</code> |
| ===== Storage ===== | ===== Storage ===== | ||
| - | # mkfs.ext4 /dev/sda1 | + | * # mkfs.ext4 /dev/sda1 |
| - | # mkdir /media/dir | + | * # mkdir /media/dir |
| - | # mount /dev/sda1 /media/dir/ | + | * # mount /dev/sda1 /media/dir/ |
| - | # nano /etc/fstab | + | * # nano /etc/fstab |
| ===== Cron ===== | ===== Cron ===== | ||