Näytetään tekstit, joissa on tunniste minitietokoneet. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste minitietokoneet. Näytä kaikki tekstit

tiistai 18. maaliskuuta 2014

VadelmaPi jatkuu - OOM

Darn! Tuli sitten Out of memory -error! Tosiaan itselläkin se tulee usein, kun huono muisti vaan ei aina toimi. Mutta silloin kun tietokone on ruksuttanut virtuaalikonetta 1:n loadilla pitkään (siis jotain 9 tuntia) niin kehtaakin sitten gcc:n kääntäminen päättyä out of memory -virheeseen. Hippasen ottaa nyt kaaliin! Oikeassa vatukassa on 512MB, mutta kuulemma qemun arm versio on hardcoded 256MB muistiin, joten vain puolet oikeasta on käytössä.
Pitäisköhän testata saako tota qemun memoryä kasvatettua, kun noihin nettijorinoihin ei aina kannata luottaa... paitsi mun. ;)

Virheilmoitus

Virhe tuntui nykypäivän koneilla aika turhauttavalta: "cc1plus: out of memory allocating 30111600 bytes after a total of 39043072 bytes...".
Nykykoneissa on vähintään 4GB muistia ja tässä puhutaan paristakymmenestä megasta... sen takia 9 tunnin sähköt hukkaan.
Onneks nyt pääsee kokeileen emergen resume -toimintoa, josko vaikka suostuis... ja sit voi vielä vaikka kokeilla kääntää sen loppuun siellä workki hakemistossa, jahka on keksinyt lisää muistia.


Virtualisointi Qemulla
Mutta miksi sitten päädyin tähän qemun virtualisoituun versioon...
Yritin sunnuntaina kääntää GCC:tä hardware pohjaiseen floatpointtiin, mutta eihän se onnistunut. Vatukka teki töitä aika tasan 24 tuntia (jotain 4 minuuttia vaille) ja sitten kaatui fortranin osuuteen (no enpä tarvi fortrania tossa, joten täytyy yrittää usettaa -fortran siihen). Tässä kohtaa ajattelin kuitenkin kaventaa kääntämisen aikataulua ja hoitaa homman nopean koneen virtuaaliympäristössä. Tosin kuulemma distcc olis vielä huomattavasti nopeampi tapa tehdä näitä kääntämisiä arm-ympäristöön.

Kieltämättä tällaisessa rajoitetussa ympäristössä suoraan oikeiden binäärien käyttö voisi olla perusteltua... verrattuna siihen että Gentoolla käännät kaiken mitä asennat. Toki kääntämällä saa paremmin optimoitua ja juuri sitä ulos mitä haluaa, jolla on toisaalta myös oma arvonsa tällaisissa rajoitetuissa ympäristöissä. Ja kaikkea ei välttämättä löydy binäärinä, jolloin se sorsien kääntäminen tulee joka tapauksessa eteen.



No mut eiköhän tää tästä...


sunnuntai 16. maaliskuuta 2014

VadelmaPi jatkuu - käyttistä useampaan kertaa

Jepuleissan, toi alkuperäinen käyttis oli tavallaan tosi jees ja tietyssä mielessä sitä suosittelis varmaan kaikille.

Toisaalta, kun on löytänyt hyvän/itselleen sopivan Linux-flavorin, niin kyl se on sit "Feiva, Feiva"... elikkä ei pystynyt/halunnut lähteä tuohon Debian kelkkaan.

Taivuin siis ottamaan sen vanhan imagen muutoksineen talteen ja laittamaan Gentoon tilalle.

Ah, nuo upeat Gentoon folksit oli tehneet gentoo wikiin oman Gentoo raspberry installation guiden - joka toimii juuri Gentoolle tyypillisesti. Ihq! ;)

Nyt mulla on sit toimiva image tohon Vatukkaan sekä optimoituna Debian asennuksena, että vähemmän optimoituna Gentoo asennuksena.

Toki Gentoon kanssa optimointi on lähinnä itsestä (omista haluista, viitsimisestä ja taidoista) kiinni, joten siihen pitää vielä ajan kanssa myöhemmin tähdätä tälläkin alustalla.

Mutta tässä Gentoon asennuksen alkuvaiheista:

1. Prepare the SD card for Raspberry Pi hdd usage (see doc about partition table modification doc).

Note! You can take backup of your old installation's boot of SD card with command: "tar -jcvf /somewhere/raspberry_pi/work/vatukka_raspbian-wheezy-dark/vatukka_raspbian-wheezy-dark_boot_backup_201403091653.tar.bz2 boot/ 1>/somewhere/raspberry_pi/work/vatukka_raspbian-wheezy-dark/vatukka_raspbian-wheezy-dark_boot_backup_201403091653.tar.bz2.output_log 2>/somewhere/raspberry_pi/work/vatukka_raspbian-wheezy-dark/vatukka_raspbian-wheezy-dark_boot_backup_201403091653.tar.bz2.errors_log"

1.1 partition table should look like:
Disk /dev/sdb: 31.5 GB, 31499223040 bytes, 61521920 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: 0x07029aa1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      104447       51200    b  W95 FAT32
/dev/sdb2          104448    61271910    30583731+  83  Linux
/dev/sdb3        61272064    61521919      124928   82  Linux swap / Solaris

Note! This is for 32GB SD card.
Note! You should have 1st partition as W95 FAT32 (b), second partition for Linux root (type 83) and third partition as Linux swap (82).

2. Download raspberry pi gentoo (for armv6 hardfp platform) tar.bz2 file

3. Download latest portage tar.bz2 package file

4.1 "pwd": /mnt/linuxhddb2

4.2 cd mnt
[Note! You need to have sdb2 directory or preferably one that suits your microsdcard's device]

4.3 ln -s ./sdb2 ./gentoo

4.4 mount /mnt/gentoo -t ext4

4.5 mount /dev/sdb1 /mnt/gentoo/boot -t vfat

4.5 tar xfpj /somewhere/raspberry_pi/gentoo/stage3-armv6j-20140114.tar.bz2 -C /mnt/gentoo/

4.6 tar xjf /somewhere/raspberry_pi/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

5.1 cd /tmp/

Note! If you don't have git already installed:
- cd /etc/portage
- emerge -av dev-vcs/git >>emerge_hostname_av-dev-vcs-git_201403091347.txt
- tail -f emerge_hostname_av-dev-vcs-git_201403091347.txt

5.2 git clone --depth 1 git://github.com/raspberrypi/firmware/

5.3 cd firmware/boot

5.4 cp * /mnt/gentoo/boot/

5.5 cp -r ../modules /mnt/gentoo/lib/

6.1 cd /mnt/gentoo/etc

6.2 mkdir bak

6.3 cp -p fstab bak/fstab.orig

6.4 cp -p fstab bak/fstab.bak_201403091658

6.5 vim /mnt/gentoo/etc/fstab

6.6 cp -p fstab bak/fstab.bak_201403091701

7.1 cd /mnt/gentoo/boot

7.2 nano /mnt/gentoo/boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Note! Use nano (or whatever is your EDITOR of choice) instead of vim, because vim could break your line according to your settings for .txt files.

7.3 cp -p cmdline.txt cmdline.txt.bak_201403091703

Note! You may edit /etc/portage/make.conf, if you feel so (see URL: "https://wiki.gentoo.org/wiki/Raspberry_Pi").

8.1 ls /mnt/gentoo/usr/share/zoneinfo

8.2 cp /mnt/gentoo/usr/share/zoneinfo/Europe/Helsinki /mnt/gentoo/etc/localtime

8.3 echo "Europe/Helsinki" > /mnt/gentoo/etc/timezone

9.1 cd /mnt/gentoo/etc

9.2 cp -pr shadow bak/shadow.bak_201403091707

9.3 cp -pr group bak/group.bak_201403091707

9.4 cp -pr passwd bak/passwd.bak_201403091707

9.5  vim /mnt/gentoo/etc/shadow
Note! Clear root password from shadow file, by removing star from second column, like: "root::19730:0:::::"

9.6  cp -pr shadow bak/shadow.bak_201403091710

10.1 umount /mnt/gentoo/boot

10.2 umount /mnt/gentoo

11. After boot in Raspberry Pi, continued by logging in as root (no password is required now)

12. Set password: "passwd"

13. cd /etc/init.d/

14. cp -pr net.lo net.eth0

15. mkdir bak

16. cp -pr net.eth0 bak/net.eth0.bak_201403091720

17. rc-config start net.eth0

18.1 rc-update add net.eth0 default

18.2 rc-update add sshd default

Ja näillä pääsee mukavasti alkuun. Sit Vatukka pitää konffata... Gentoolla löytyy siihen paljon dokuja ja Wiki is your friend.

sunnuntai 2. maaliskuuta 2014

VadelmaPi jatkuu - käyttiksen asennus

Step 5: Käyttiksen asentaminen SD-kortille

Käyttis vaihtoehtoja Vatukkaan on monta.

Raspbian based, sekä NOOB (jonka toimittaa "itse" Raspberry Pi säätiö.

Itse taidan nyt aloittaa varsin pieneltä kuulostavalta Darkbasic imagella.
Sisältää Debianin armhf-version varsin minimalistisena ja voi sitten apt-getata loput haluamansa. Siitä onkin aikaa kun on käyttänyt Debiania, joten voi mennä vähän ylimääräistä aikaa siihen, mutta no hätä, kyllähän tää tästä taittuu. Kun kaikki tietokoneet tekee floating-point oppeja aikast riittävästi, on hyvä että se floatingpoint hardware on supportattu. Itse ARM:n teknologia ei ole mitenkään räjähtävän tehokasta, joten onhan se tärkeää ottaa ainakin nämä isoimmat hyödyt ulos.

Katotaan sitten mitä saan ton softan suhteen tehtyä... nyt kuitenkin asentamaan itse käyttistä microSD-kortille.

  1. MicroSD kortti on lykätty läppäriin, jossa pyörii Linux
  2. Kone tunnistaa kortin ja KDE pöläyttää ilmoituksen, että kortti olisi sisällä ja sille kantsis tehä jottai
  3. Siirsin haetun tiedoston työstöhakemistoon, jonka oon tehny tätä Vatukka projektia varten: "mv ~/Downloads/raspbian_wheezy_20130923.img.7z ."
  4. Sit purkamaan pakettia... tai sit ei, eihän tässä ollutkaan valmiiksi asennettuna 7zippiä: "emerge -av app-arch/p7zip >>emerge_hostname_av-app-arch-p7zip_201403021911.txt"
  5. p7zip tarttee KDE:n kanssa wxwidgets use flagin, joten package.use lisäys: "app-arch/p7zip kde (multilib) (selinux) -doc (-pch) -rar (-static) wxwidgets"
  6. Kopioidaan image-paketti work hakemistoon: "cd ../work; cp ../raspbian/raspbian_wheezy_20130923.img.7z ."
  7. Puretaan asennuspaketti: "p7zip -d raspbian_wheezy_20130923.img.7z"7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
    p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

    Processing archive: raspbian_wheezy_20130923.img.7z
    Extracting  raspbian_wheezy_20130923.img

    Everything is Ok

    Size:       996147200
    Compressed: 123449237
  8. Sitten selvitetään mikä device on tuo microSD-kortti: "ls -la /dev/sd*"
    brw-rw----. 1 root disk 8,  0 Dec 15 13:21 /dev/sda
    brw-rw----. 1 root disk 8,  1 Dec 15 13:21 /dev/sda1
    brw-rw----. 1 root disk 8,  2 Dec 15 13:21 /dev/sda2
    brw-rw----. 1 root disk 8,  3 Dec 15 11:21 /dev/sda3
    brw-rw----. 1 root disk 8, 16 Mar  2 18:37 /dev/sdb
    brw-rw----. 1 root disk 8, 17 Mar  2 18:37 /dev/sdb1
    # fdisk -l /dev/sdb

    Disk /dev/sdb: 31.5 GB, 31499223040 bytes, 61521920 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: 0x00000000

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            8192    61521919    30756864    c  W95 FAT32 (LBA)
  9. Ja ei kun pistetään image tylysti dd:llä: "dd bs=1M if=raspbian_wheezy_20130923.img of=/dev/sdb1"
  10. Kyseessä on yhden gigan image, joten ottaa aikansa lykätä tonne, mutta kyl nyt ainakin on kestänyt... ei malta odottaa enää hetkeäkään - 236.551 s, 4.2 MB/s
  11. jiihaa! Nyt alettais olemaan valmiita kuumottavaan käynnistykseen... katotaan mitä tästä seuraa...

Seuraavassa artikkelissa Vatukan asennuksesta lisää...


VadelmaPi minitietokoneen kyhäys

No niin, nysse tuli!


VadelmaPi on täällä!

Elikkä kyseessä on "luottokortin" kokoinen minitietokone. Toimii ARM-prosessorilla ja sisältää näyttöliitännä, 2xUSB-portin, microUSB-virtaliitännän, verkko- ja HDMI-liitännän (koska kyseessä malli B), sekä paljon toiveita siitä mitä kaikkea tällä keksiikään tehdä. Joka tapauksessa DIY-nörtti tulee olemaan innoissaan, syntyy tästä jotain tai ei.

Tässä ostamani komponentit:

Kotelo, itse vehje, sekä muistikortti


Ostin mukana myös kotelon (olisin halunnut valkoisen, mutta ei ollut, joten oli tyytyminen mustaan), sekä erikseen ostin Kingstonin 32GB microSD(HC) kortin. Kortille pitää asentaa Linux ja sitten vaan liittämään liitäntöjä kiinni. Vehe boottaa heti kun se saa virtaa, joten silloin on parempi olla jo näytöt ja verkot kiinni vehkeessä.

Annoin tämän ekan kappaleen nimeksi "Vatukka".

Step 1: Vatukan tarkastus
Kaikki liitännät löytyvät kuten pitääkin.
Soldaus vaikuttaa hyvältä (etten sanoisi jopa yllättyneeni kuinka laadukkaalta vaikuttaa)




Step 2: Käyttiksen laittaminen muistikortille
Nyt painun tonne työhuoneeseen katsomaan minkä valmiin käyttiksen lykkään microSD-kortille, jotta homma lähtee pelittään.

Step 3: Kotelon kuntoon laittaminen

Tämä ei ole mikään iso steppi... avataan kotelo, hiukan taivuttamall reunoja, sillä pohjassa näkyy täbät jotka pitävät ylä- ja alaosan yhdessä.

Sisällä oli pikku muovitapit, jotka laitetaan pohjan neljään rinkulaan.

Niillä suojataan pikkuvehettä kolhuilta ja tärinältä. Ei silti, että tämän kokoinen kone ilman kovalevyjä olisi kyllä mitenkään erityisen altis näille haitoille. Kun kaikki tieto tallennetaan microSD-kortille (ja mahdolliselle USB-muistille), niin ei ole liikkuvaa tallennusta. Täten laite sopii hyvin esim. autoon tai wearable-käyttöön (arvaa vaan - aionko ;).

Step 4: Virtalähde
Virtalähteenä toimii HTC-puhelimen vanha laturijohto (microUSB liitäntä) ja toiseen päähän (normi USB-liitäntä) laitoin aikoinaan hankkimani Belkinin USB-verkkovirta-adapterin.

Tuon verkkovirta-adapterin kanssa saa olla aika tarkkana. VadelmaPi:n virtalähteen pitäisi antaa 700 - 1200 mA ja sitä ei ihan joka USB-laturi anna (esim. vanha HTC-puhelimen mukana tullut adapteri antoi vain 200 mA, joten sillä ei kauheasti Vadelmaa pyöritetä.

Mut on se kyllä kivan kokoinen... tässä toisen puoliskoni käsi vierellä.



Jätetään tällä erää tähän kohtaan ja jatketaan myöhemmässä artikkelissa, kun homma etenee.