Linux: Raspbian

From mmmv_kos
Revision as of 05:39, 9 July 2019 by Martinvahi (talk | contribs) (Jõudluse testimine)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Installeerimine ja esmaseadistus

Mälukaardi jäljendi kasutuselevõtt

Töökindlaim lahendus on kasutada mälujäljendit ning see siis otse mälukaardile kirjutada. Need FAT-failisüsteemi-põhised buutimis-lahendused minul (2013_10) ei toiminud. Seoses mingi <a href="http://maemo.org/community/maemo-users/n900_microsd_card_i-o_errors_and_corruption/">Linux'i draiveri vigasusega</a> tuleb otse emaplaadile ühenduva mälukaardilugeja asemel kasutada odavamat ja aeglasemat välist USB-väratisse ühendatavat mälukaardilugejat. vastupidisel juhul tekib dmesg väljundisse stiililt:


[4464513.055948] quiet_error: 20 callbacks suppressed
[4464513.055955] Buffer I/O error on device sdd, logical block 952460
[4464513.055961] lost page write due to I/O error on sdd


Linuxi korral:

dd if=mälukaardijäljendifailrada of=/dev/mälukaardiseadmefail bs=524288


Mälujäljendi suurus on umbes 3GiB ning klass 10 mälukaardile kirjutamine võtab aega ligikaudu 0,5h.

Raspberry_Pi alglaadimine, voolu sisselülitamisest GUI kuvamiseni, võtab aega ligikaudu 30s (s kui sekund). Mälukaardita alglaadimine ei toimi, sest BIOS'i asemel kasutab Raspberry_Pi mälukaardil asuvat tekstifaili, mis on juurkasutajale tavalise tekstiredaktoriga (Vim, emacs, jne.) redigeeritav:

vim /boot/config.txt

Operatsioonisüsteemi paigaldamisel ei ole vaja BIOS'i asendavat tekstifaili manuaalselt redigeerida, sest operatsioonisüsteemi installatsioonitarkvara omab vastavat dialoogi. Seadistus-muudatused rakenduvad taaskäivitusel.


Esmaseadistus ja raspi-config

Vaikimisi kasutajanimi on pi

Kasutaja pi vaikimisi parool on raspberry

Juurkasutajaks saab kasutaja pi õigustest liikuda ilma paroolita/tühja parooliga:

sudo su


GUI/X11 väljalülitamine /etc/init.d kataloogis deklareeritu väljalülitamise kaudu praktikas ei toimi, vaid kasutada tuleb

sudo su  
raspi-config
# ning siis sealt terminalip8hisest GUI-st vastavast menyyst
# vastav ymberlylitus teha.


swap-partitsiooni väljalülitamine


Lisatarkvara, mille paigaldamiseks on vaja suuremat mälukaarti kui Raspberry_Pi tootjate poolt pakutav 4GiB suurune mälukaart (8GiB on piisav):

apt-get update
apt-get install vim ant maven2 ntpdate cmake gawk lftp 
apt-get install php5-imagick php5-cli php5-cgi php5-dev
apt-get install php5 php5-memcached php5-mysqlnd php5-odbc php5-pgsql php5-ps php5-recode php5-rrd
apt-get install php5-exactimage php5-ffmpeg php5-geoip php5-gmp php5-json php5-mcrypt php5-memcache 
apt-get install automake imagemagick rake ruby rubygems
apt-get install firefox-sage libgmp-dev libmpfr-dev vlc
apt-get install npm nmap octave sshfs gcc-4.7 members 
apt-get install ctags cscope
apt-get install php5-mysql mysql-client mysql-common mysql-server ruby-mysql
apt-get install postgresql-client postgresql odbc-postgresql
apt-get install sqlite sqlite3 ruby-sqlite3 php5-sqlite
apt-get install tntdb-sqlite3 sqlite3-doc libsqlite3-dev lua-dbi-sqlite3-dev libsqlite3-tcl libsqlite3-ocaml-dev libsqlite3-mod-impexp
apt-get install subversion subversion-tools db5.1-util
apt-get install libevent-dev libnatpmp-dev libminiupnpc-dev
apt-get install ecryptfs-utils libecryptfs-dev libhogweed2 libopenjpeg-dev libopencv-dev
apt-get install libfaac0 libgnutls-dev libgnutls28
apt-get install ffmpeg libav-tools
apt-get install lxc lxctl uuid hddtemp
apt-get install clzip lzip plzip lziprecover
apt-get install deluge deluge-console deluge-web deluged deluge-webui
apt-get install mktorrent
apt-get install libbotan1.10-dev
apt-get install php5-idn idn libidn11-dev libidn2-0-dev libnet-libidn-perl
apt-get install luadoc luakit luarocks dh-lua lua50 lua50-doc luasseq lua-wsapi lua-zlib-dev lua-sql-mysql lua-rings-dev lua-sec-dev lua-xmlrpc lua-sql-postgres-dev lua-sql-sqlite3-dev lua-socket-dev lua-rex-tre-dev lua-curl-dev lua-cgi tre-agrep
apt-get install gsl-bin gsl-doc-info gsl-ref-html libgsl-ruby libgsl0-dev octave-gsl ruby-gsl
apt-get install locate iotop python-ctypeslib
apt-get install  gcc make python-dev libffi-dev libsqlite3-dev pkg-config  libz-dev libbz2-dev libncurses-dev libexpat1-dev  libssl-dev libgc-dev  python-sphinx python-greenlet
apt-get build-dep firefox # failed 2014_06_22, but here for the future
apt-get install claws-mail-pgpinline claws-mail claws-mail-doc claws-mail-extra-plugins claws-mail-pgpmime claws-mail-i18n claws-mail-tools imagemagick-doc ruby-mecab ruby-kakasi ruby-bdb ruby-qdbm gedit kwrite nedit 
apt-get install torsocks signify 
#-Ruby-kompileerimiseks-kasuliku-algus---------
apt-get install ncurses-dev ncurses-base ncurses-bin zlib1g-dev 
apt-get install zlibc zlib1g libyaml-dev libyaml-0-2 libffi-dev  libgdbm-dev 
apt-get install libgdbm3 openssl openssl-blacklist libgnutls-openssl27 
apt-get install libbison-dev bison libreadline-dev libtool gperf flex 
#-Ruby-kompileerimiseks-kasuliku-l8pp-----------
apt-get install libmlt++-dev libmlt-dev gcj-jdk gcl gcl-doc
apt-get install smlnj coq yum
apt-get install proofgeneral libcoq-ocaml-dev why coq-doc glade liblablgtk2-gl-ocaml-dev liblablgtk2-gnome-ocaml-dev proofgeneral-doc libgtk2.0-doc libgail-doc libgnome2-doc libgnomecanvas2-doc libgnomeui-doc librsvg2-doc libxt-doc tcl8.5-doc tk8.5-doc
apt-get install libounit-ocaml-dev ocaml-ulex ocaml-mode ocaml-libs ocaml-core ocaml-book-en libzip-ocaml-dev libzarith-ocaml libxstr-ocaml-dev libvoaacenc-ocaml-dev libvirt-ocaml-dev libtyxml-ocaml-dev libtext-ocaml-dev libtheora-ocaml-dev libssl-ocaml-dev libusb-ocaml-dev libschroedinger-ocaml-dev libsqlexpr-ocaml-dev libsha-ocaml-dev
apt-get install gcc-avr gdb-avr simulavr c-compiler-avr avrp avrdude-doc avrdude avra avr-libc avr-evtd gdb-doc
apt-get install yelp-tools libyelp-dev yelp 
apt-get install gtk-doc-tools jadetex docbook-dsssl-doc docbook-defguide psgml sp debiandoc-sgml linuxdoc-sgml w3c-dtd-xhtml w3-dtd-mathml sgmls-doc linuxdoc-tools-text linuxdoc-tools-latex linuxdoc-tools-info  docbook-mathml debiandoc-sgml-doc latex-cjk-all
apt-get install python-matplotlib python-matplotlib-doc python-matplotlib-data python-excelerator python-scipy python-traits python-wxgtk2.8  python-traitsui wx2.8-doc wx2.8-examples editra libwxgtk2.8-dev
apt-get install libavahi-gobject-dev libglrr-gobject-dev libguestfs-gobject-dev  libitl-gobject-dev liblightdm-gobject-dev libntrack-gobject-dev libpolkit-gobject-1-dev  python-gobject-2-dev python-gobject-cairo python-gobject-dev  python2.7-gobject python3-gobject augeas-doc augeas-tools samba xfsdump attr quota  ldb-tools ctdb
apt-get install ruby-gstreamer qtgstreamer-doc qtgstreamer-plugins qtgstreamer-declarative phonon-backend-gstreamer monodoc-gstreamer-manual liquidsoap-plugin-gstreamer  libqtgstreamer-dev  libgstreamer-perl libgstreamer-ocaml-dev libghc-gstreamer-dev libghc-gstreamer-doc libcanberra-gstreamer  gstreamer-tools deejayd-gstreamer bluez-gstreamer  libghc-mtl-doc liquidsoap-plugin-xmlplaylist liguidsoap liquidsoap-plugin-samplerate camlidl-doc libcamomile-ocaml-dev
apt-get install python3-numpy-dev python-numpy-doc python-numpy-dev python3-nose python-nose-doc
apt-get install xfonts-bolkhov-koi8r-75dpi xfonts-bolkhov-koi8r-misc xfonts-bolkhov-koi8u-75dpi xfonts-bolkhov-koi8u-misc xfonts-cronyx-koi8r-100dpi xfonts-cronyx-koi8r-75dpi xfonts-cronyx-koi8r-misc xfonts-cronyx-koi8u-100dpi xfonts-cronyx-koi8u-75dpi xfonts-cronyx-koi8u-misc
apt-get install g++ curl libssl-dev apache2-utils git-core
apt-get install libtk-img-dev libtk-img-doc libtk-img libtk-ruby libtk-perl
apt-get install cpanminus
apt-get cleanup
cd ~
wget http://longterm.softf1.com/2013/raspberry_pi/_vimrc.txt 
mv ./_vimrc.txt ./\.vimrc


USB automaat-monteerimine

apt-get install usbmount



Heli

Kui käsuga

vlc rada-OGG-failile

muusika mängima panna, siis on eraldi sessioonist võimalik helivaljudust reguleerida käskudega:

amixer -c 0 set PCM 5dB+  # 5% võrra valjemaks
amixer -c 0 set PCM 5dB-  # 5% võrra vaiksemaks


Raspberry Pi 3 korral on töölaua helivaljudus-ikoonil kontekstimenüü, kust saab valida, kas heli suunatakse HDMI kanalisse või kõrvaklappide analoog-kanalisse.

Reseti-taimer (Watcdog)

modprobe bcm2708_wdog # ning 
# jutum2rkideta "bcm2708_wdog" lisada eraldi reana 
# faili /etc/modules
apt-get install watchdog


Failis /etc/watchdog.conf peab watchdog väljasaalimise ohu vältimiseks olema reaalaja-protsess.

realtime=yes


Deemonite automaatkäivitus

Kataloogis

/etc/init.d

olevad skriptid peavad vastama täpselt Debiani spetsiifilisele formaadile ning kirjeldavad automaatkäivitusvõimelisi deemoneid.

cd /etc/init.d
update-rc.d mysql defaults # muudab MySQL-i deemoni automaat-käivituvaks.
                           # Deemon käivitub pärast järgmist buutimist.

update-rc.d mysql disable  # Muudab MySQL-i deemoni seadistust nii, et see
                           # pärast järgmist buutimist ei automaat-käivitu.
                           # Hetkel töös olevat deemonit see ei peata.


Võrk

Esimene koht, kust võrku seadistada, on raspi-config. Kui see ei aita, siis järgmine idee on

/etc/network/interfaces


Raspberry Pi spetsiifilisi käske

Temperatuuri kuvamine konsoolil:

/opt/vc/bin/vcgencmd measure_temp


Printeri seadistus

Printeri seadistus kasutab vaikimisi autentimiseks kõikjal juurkasutaja kasutajanime ja parooli ning käib kahest kohast korraga: CUPS serveri veebiliidesest(localhost:631) ning Pythonipõhisest, automaatselt seadistuste menüüsse pandavast, CUPS-seadistusprogrammist.

    apt-get install cups system-config-printer
    usermod -a -G lpadmin pi

Too Python'i programm variseb aeg-ajalt kokku, aga kui printeri isend veebiliidese kaudu on seadistusse markeeritud, siis saab edasi Python'i programmiga tegutseda. Veebiliidesest on hea vaadata ja hallata printimistöid.


Operatsioonisüsteemivabaks jooksutamiseks kompileerimine

    apt-get install arm-none-eabi-gcc
    # edasi konsoolil pidavatki olemas olema programm
    arm-none-eabi-gcc


Probleeme

Voolukatkestuse tõttu jäävad mälukaardil olevad failid poolikuks ja Pi ei algkäivitu

Lisainfo ja selle arhiivkoopia. Probleem esineb ka olukordades, kus Pi-d kasutatakse mõne muu seadme sisse integreeritud arvutina, näiteks reklaam-ekraanides videosignaali genereeraatorina.


Kaalutavaid vastumeetmeid

  • Kasutada juurpartitsiooni failisüsteemina spetsiaalselt Flash-mäludele mõeldud failisüsteemi, näiteks Yaffs, mis pidavat olema kasutusel ka Androidis, või F2FS.
  • Veidra lisameetmena võib proovida ka Raspberry Pi korral cron'iga TRIM-käsku käivitada. Sellest ei tohiks SD-kaardi korral mingit kasu olla, aga tont seda teab, mis veidrusega keegi kuskil hakkama on saanud. Mida rohkem andmekorruptsiooni vastumeetmeid, seda uhkem.
  • /var/log panna RAM'i ja mujal kasutada /etc/fstab'is seadistust "noatime".
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0


F2FS failisüsteemi kasutuselevõtt Raspberry Pi 3 peal

On kirjeldatud siin (arhiivkoopia). Üldskeem on selline:

# 1. Alla laadida standard-distro mälujäljend.

# 2. Too Pi-s käivitada ja ära installida F2FS töövahendid ja kerneli tugi.
#    Võibolla järgnevast piisab:
apt-get install f2fs-tools

# 3. Mälukaart suurel arvutil haakida ja 
#    kogu juurkataloogi sisust varukoopia teha.
#    Partitsioon lahti haakida.

# 4. Mälukaardi juurkataloog reformaatida programmiga
mkfs.f2fs blabla

# 5. Värskelt formaaditud partitsioonile 
#    juurkataloogi sisu tagasi kopeerida.

# 6. /etc/fstab'is muuta ära juurkataloogi kirje.
#
#     /dev/mmcblk0p2   /    f2fs defaults,noatime,discard 0 0 
#
sync
# ja m2lukaardi juurpartitsiooni lahtihaakimine.

# 7. Mälukaardi alglaadimispartitsioonil (boot) 
#    muuta faili cmdline.txt sisu selliselt, et 
#    endise rea
#
#        rootfstype=ext4
#
#    asemel oleks rida
#
#        rootfstype=f2fs
#
sync
# ja lahti haakida. Tõsta ümber Raspberry Pi-sse 
# ja käivitada Raspberry Pi.


Jõudluse testimine

Linke

Linaro