torstaina, lokakuuta 16, 2014

Directadmin säätöä ja uusi PHP

Tuli vastaan seuraava ongelma, eli kun yritin päivitää php 5.4.27 -> 5.4.33:n, niin sain seuraavan errorin kesken buildin: There was an error while trying to configure php. Check the configure/suphp/ configure.php5 file.
Mene ensin kansioon cd /usr/local/directadmin/custombuild. Tämän jälkeen aja komento: nano options.conf.
Editoi seuraavat rivit eli alakohdasta new version of zlib and libxml2 (experts only).
Eli tämän jälkeen kirjoita yes sanan tilalle no.
Tämän jälkeen sulje tiedosto ja aja komento: ./build zlib
Kun se on valmis aja komento: ./build libxml2.
Tämän jälkeen ./build libxslt.
Viimeisenä suphp komennolla ./build suphp.
Tämän jälkeen pitäisi PHP:n asentua moitteettomasti komennolla: ./build php n.

lauantaina, lokakuuta 11, 2014

VirtualBox ja mount vboxsf

Eli lyhyehkö opas siitä miten tehdään windows koneesta levy jako virtualboxiin. Aluksi luo kansio jonnekkin windowsissa jonka haluat jakaa. Tässä esimerkissä temp2. Lisää VirtualBoxissa Shared Folder kohdasa kansio mountattavaksi, kuten alla olevassa kuvassa.
Voit myös säätää oikeudet, esim. onko kirjoitus oikeutta windows jakoon.






Seuraavaksi tee Linux koneeseen temp2 kansio.
Tämän jälkeen pitää ajaa kuvan mukainen komento: sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) temp2 ~/temp2

Tämän jälkeen kaiken pitäisi olla valmista.


sunnuntaina, lokakuuta 05, 2014

Bonding säätäminen CentOS 6.5:ssä

Aluksi editoi tiedostoa bonding.conf komennolla: nano /etc/modprobe.d/bonding.conf.
Muokkaa tiedostoa seuraavanlaiseksi:
alias bond0 bonding
options bond0 mode=active-backup miimon=100 downdelay=200 updelay=200
Muista rivin vaihto...

Sitten luo tiedosto ifcfg-bond0 kansioon komennolla: nano /etc/sysconfig/network-scripts/ifcfg-bond0
Lisää sinne sisältö:
DEVICE=bond0
IPADDR=192.168.1.13
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS2=193.229.0.42
DNS1=193.229.0.40
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no

Tallenna muutokset.

Seuraavaksi ruetaan säätämään verkkokortteja.
Eli aluksi vaikka eth0 komennolla: nano /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=00:09:6B:71:64:72  
BOOTPROTO=none
MASTER=bond0
USERCTL=no
ONBOOT=yes
SLAVE=yes
DEVICE=eth0
IPV6INIT=no
NM_CONTROLLED=no

Tallenna muutokset

Seuraavaksi komento: nano /etc/sysconfig/network-scripts/ifcfg-eth1
Ja tämän sisältö:
HWADDR=00:09:6B:71:64:73 
BOOTPROTO=none
MASTER=bond0
USERCTL=no
ONBOOT=yes
SLAVE=yes
DEVICE=eth1
NM_CONTROLLED=no

Tallenna muutokset
Aja komento modprobe bonding, niin tällä pitäisi bond lähteä toimimaan. Ja käynnistä verkko uudestaan komennolla: service network restart
Testaa yhteys: cat /proc/net/bonding/bond0
Esimerkki tiedostot löydät täältä.

QtCreator ja Android paketin allekirjoitus

Eli avaa ensin projekti lehti.













Sitten klikkaat Create nappia.












Tulisi avautua seuraavanlainen ikkuna:
Kirjoita kaikkiin kenttiin tarvittavat tiedot.
Huom. Elä unohda salasanaa. Tulee joka kerta kun käännät paketin laittaa ruksi ruutuun Sign package.






Huom. Ruksaa aina kun aloitat kääntämisen kohta Sign package. Kysyy antamaasi salasanaa.




Kun on valmista sertifikaatti tulee näkyviin... Tai sen alias thb minun tapauksessani

maanantaina, syyskuuta 29, 2014

Gitin käyttäminen konsolissa

Aluksi pitää olla kansiossa jossa on .git kansio.
Kun ollaan siinä kansiossa voidaan katsoa ensiksi vaikka projekti haaran tilanne komennolla git status.
Jos on jotain joka on muuttunut tai uutta, se näkyy eri värillä.











Nämä tiedot voi lisätä haaraan komennolla git add
Tämän jälkeen pitää committaa tiedot komennolla git commit -a
Tämän jälkeen aukeaa nanossa dokumentti jossa on paljon tekstiä, kirjota jotain ensimmäiselle riville, eli vaikka mitä muutos koskee. Poistu nano:sta näppäinyhdistelmällä CTRL+X ja vastaa Y tai K.
Tämän jälkeen onkin vuorossa lataus varsinaiseen repository palvelimeen. Eli aja komento git push.
Komennolla git pull lataat repostory palvelimesta viimeisimmät "sorsat" eli lähdekoodit.

maanantaina, syyskuuta 22, 2014

NFS serveri ja asiakaskone

Aluksi perehdytään serverin pystyttämiseen...
Luultavimmin tarvittavat paketit on asennettuna jo, jos käytät CentOS:a. Voit kokeilla asentaa esim. paketteja yum install nfs-utils nfs-utils-lib.
Luultavasti saat seuraavan ilmoituksen:
Package 1:nfs-utils-1.2.3-39.el6_5.3.i686 already installed and latest version
Package nfs-utils-lib-1.1.5-6.el6_5.i686 already installed and latest version
Aja tämän jälkeen komento: chkconfig nfs on
Komento: service rpcbind start
ja komento: service nfs start
Aja tämän jälkeen komento: nano /etc/exports
Lisää sinne seuraava rivi (tietenkin oma jonka haluat jakaa NFS:n kautta).




Tallenna lopuksi.
Seuraavaksi siirrymme asiakaskoneeseen.
Asenna paketit (käytössä Kubuntu), komennolla sudo apt-get install nfs-common nfs-kernel-server.
Mene ensimmäiseksi editoimaan tiedostoa exports, komento: sudo nano /etc/exports.
Lisää kuvan mukainen (oma tietenkin) sisältö:





Seuraavaksi halutaan tietenkin että joka kerta kun käynnistämme koneen, tämä verkkolevy toimisi.
Eli fstabin kimppuun seuraavaksi.
Tee kuvan mukainen (tietenkin oma) muutos tiedoston loppuun esim.



Voit testata tätä ilman boottia komennolla: sudo mount -v -t nfs -o 'vers=4' 192.168.1.13:/home/share /mnt/share.
Ei muuta kuin testaamaan... ;)

keskiviikkona, syyskuuta 17, 2014

Mindi Mondo järjestelmä levyn teko

Tässäpä lyhykäinen ohje Mindi, Mondo asennuksesta Ubuntuun. Oheinen PDF minkö tulen linkkaamaan on Centos:sta peräisin, joten pieniä eroja distrojen välillä (PDF).
Aluksi asenna paketit: sudo apt-get install mondo.
Jos pakettia ei löydy lataa repository:
wget ftp://ftp.mondorescue.org/ubuntu/`lsb_release -r|awk '{print $2}'`/mondorescue.sources.list
Lisää komennolla: sudo sh -c "cat mondorescue.sources.list >> /etc/apt/sources.list"
Aja päivitys komento: sudo apt-get update
Asenna mondo: sudo apt-get install mondo. Vanhemmissa Ubuntu versioissa varmaan joutuu asentamaan repositoryn.
(Tämä vain jos haluat tehdä bootti imagen)
Asennuksen jälkeen luo bootti levy ensin. Komento: sudo mindi







Vastaa kysymyksiin, mitä ruudulle tulee.
Seuraavaksi halutaan kernelin polku/kernel (Huom. Centosissa tätä ei tarvinnut tehdä).
Tässä tapauksessa /boot/vmlinuz-3.11.0-15-generic.














Seuraavassa vaiheessa pakataan sisältöä.













Vastaa seuraavaan kysymykseen myöntävästi. Koska halutaan tehdä boottaava levy.







Boottaava "levy" on valmis.




Seuraavaksi aja komento sudo mondoarchive.












Seuraavassa kysytään jälleen kernelin polkua.














Seuraavassa vaiheessa luodaan data ja bootti levyä. Huom. kaikkia vaiheita ei ole kuvattuna tässä, vaan PDF joka on ylempänä on tarkoitettu tähän. Tosin se poikkeaa hieman koska tehty CentOS:lle.














Sitten vain odotellaan että palautuslevy valmistuu.



tiistaina, syyskuuta 16, 2014

Qt:n kieli tiedostojen teko

Eli kun tehdään monikielinen ohjelma, aja komento lähdekoodi kansiossa:
lupdate *.ui *.cpp *.h -ts theocbase_ru.ts
lupdate theocbase.pro -ts theocbase_ru.ts

Kun kääntäminen on valmis aja komento: lrelease theocbase_ru.ts theocbase_ru.qm

Windowssissa jotta nämä komennot toimivat tulee käyttää Qt:n omaa komentokehoitetta.

Raspberry Qt ohjelmointia jälleen

Törmäsin erikoiseen ongelmaan kuvien/kuvakkeiden kanssa. Eli korjaus tähän löytyy projektin pro tiedostosta. Eli lisää "./" nämä tiedoston alkuun eli ./images.qrc. Nyt kun käännät lähdekoodin, niin kuvakkeiden pitäisi toimi moitteetta. Sama voi koskea myös sqlite qrc tiedostoa.
Tässä toimiva qt kehitys ympäristö (saattaa sisältää jotain minun omia projektejani, niistä selviät delaamalla ne :))

VNC serverin pystytys Ubuntussa

Asenna ensin Ubuntuun vnc server komennolla: sudo apt-get install vnc4server -y --force-yes.
Tämän jälkeen aja komento: vncserver. (Luo kotikansio alle tarvittavat tiedot)
Lisäksi on hyvä ajaa vncpasswd, jolla luot oman salasanan vnc:lle.
Tämän jälkeen aja komento: sudo nano /etc/init.d/vncserver
Lisää sinne sisältö:
#!/bin/bash
### BEGIN INIT INFO
# Provides:          tightvncserver
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: vnc server
# Description: http://www.namhuy.net
#
### END INIT INFO

unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Starting $prog: "
 ulimit -S -c 0 >/dev/null 2>&1
 RETVAL=0
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 DISP="${display%%:*}"
 export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
 su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
 fi
 done
}
stop() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Shutting down VNCServer: "
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 export USER="${display##*:}"
 su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
 fi
 done
 echo -e "\n"
 echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
Sulje ja tallenna tiedosto.
Aja komento: sudo chmod +x /etc/init.d/vncserver
Seuraavaksi luo kansio /etc kansion alle komennolla: sudo mkdir -p /etc/vncserver.
Luo tiedosto nimeltä/komennolla: sudo /etc/vncserver/vncserver.conf
Luo sinne seuraavanlainen sisältö: (HUOM. kirjaston tilalle oma tilisi nimi).




Sitten vielä käynnistykseen liittyvä komento: sudo update-rc.d vncserver defaults 99
Tämän jälkeen voit bootata koneen ja varmistaa että prosessi lähtee päälle.
Tässä vielä esimerkki tiedostot.
Yhteys luodaan seuraavanlailla. Eli koneen ip:1 eli sama kuin config tiedostossa. Tai voit käyttää myös pidempää muotoa eli ip:5901.

sunnuntaina, syyskuuta 14, 2014

exFAT

Tässä törmäsin ongelmaan joka koskee uusia isoja USB tikkuja. Eli tulee kuvan mukainen errori.










Ongelman ratkaisu on tässä.
Lisää ensin repository sudo apt-add-repository ppa:relan/exfat
Aja update komento: sudo apt-get update
Asenna paketit: sudo apt-get install fuse-exfat exfat-utils
Tämä ohje koskee ubuntu 12.04

perjantaina, syyskuuta 12, 2014

Cannot open shared object file Raspberyssä!

Saatko tällaisen errorin Raspberry Pi:ssä.
"error while loading shared libraries: libGLESv2.so: cannot open shared object file: No such file or directory"
Asenna seuraavat paketit: libgles2-mesa-dev libegl1-mesa-dev libgl1-mesa-dev libglu1-mesa-dev.
Voi olla että samalla asentuu muitakin paketteja.

torstaina, syyskuuta 11, 2014

Raspberry Pi säätöä

Jos SD korttisi on 8gt, yleensä järjestelmä näkee vain 2gt. Ensimmäisen kerran kuin käynnistät koneen yleensä tulee valikko josta saa muutettua että käyttää koko sd korttia. Mutta jos jostain syystä painat vain exit, niin kyseisen valikon saa näkyviin komennolla: sudo raspi-config

SSH:n serverin asennus Ubuntussa

Jos saat oheisen virheilmoituksen:

The following information may help to resolve the situation: The following packages have unmet dependencies: openssh-server : Depends: openssh-client (= 1:5.9p1-5ubuntu1) but 1:5.9p1-5ubuntu1.1 is to be installed Recommends: ssh-import-id but it is not going to be installed E: Unable to correct problems, you have held broken packages.

Aja ensin komento: sudo apt-get install openssh-client=1:5.9p1-5ubuntu1
Sitten: sudo apt-get install openssh-server

tiistaina, syyskuuta 09, 2014

Logitech K400 näppis ja Raspberry Pi


Avaa konsolissa seuraava tiedosto sudona: sudo nano /etc/modules.
Lisää tähän tiedostoon rivit:
hid_logitech
hid_logitech_dj

Tallenna ja boottaa kone niin näppiksen pitäisi toimia :).

lauantaina, syyskuuta 06, 2014

Vanhojen blogi tiedostojen sijainti

Tällainen pieni päivitys, että vanhojen blogieni tiedostot on ladattavissa osoitteesta: http://blogi.hallikainen.cc/

keskiviikkona, elokuuta 27, 2014

Watchtower Libraryn 2013 asennus Kubuntuun 14.04

Eli aluksi asenna wine komennolla: sudo apt-get install wine. Tämän pitäisi asentaa uusin wine versio. Ks. asennus videolta.















Watchtower Libraryn 2013 asennus:















Miten toimii Kubuntussa:



Kuvakkeen asetus ks.kuvaa (Saat ladattua kuvakkeen täältä.)

keskiviikkona, elokuuta 13, 2014

Unityn poistaminen

Kun Ubuntussa tulee raskas ja ärsyttävä Unity, niin päätin päästä siitä eroon kerralla. Eli lyhykäinen ohje siihen. Asenna ensin jokin työpöytä ympäristö jota haluat käyttää (esim. sudo apt-get install gnome-session-flashback). Tämän jälkeen on turvallista poistaa Unity.
Komento päätteellä: sudo apt-get remove --purge unity.
Vielä voit varmuuden vuoksi ajaa komennon: sudo apt-get autoremove, niin saat vähän siivottua konetta tarpeettomilta paketeilta.
Taitaa olla ennätys blogien kirjoittelujen suhteen yhden päivän ajalle :). No huomenna on luvassa ainakin yksi vielä lisää jos en tänään kehtaa sitä julkaista ;).

Qt 5.3.1:n kääntäminen androidille ja sorsan puukottaminen

Kaikki alkoi siitä että fontit renderöityi väärin HTC Desiere HD:ssä (Android luuri). Eli oheisen kuvan tavalla.
Lue ohje kokonaisuudessaan läpi kerran ennen kuin alat tekemään mitään, että hahmoitat mitä tulee tehdä.
On hyvä asentaa kyseiset paketit Ubuntussa komennoilla:
sudo apt-get install build-essential perl python git

sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev

sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby

sudo apt-get install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
Tämän jälkeen pitää ladata lähdekoodit gitistä komennolla:
git clone git://gitorious.org/qt/qt5.git qt5
Tämän jälkeen mene kyseiseen kansioon: cd qt5.
Aja kansiossa kyseinen komento: git checkout 5.3.1.
Tämän jälkeen aja samaisessa kansiossa komento: perl init-repository (Huom. Tarvitset perilin asennettuna koneella).
Tarvitset myös Ant:in jonka voit asentaa komennolla: sudo apt-get install ant (Tarvitaan Android kehitysympäristössä).
Nyt olisi valmista tarvittavien pakettien suhteen.
Sitten tarvitaan myös kääntämiseen NDK, SDK.
Pura paketit.
Seuraavaksi aja export komennot (PATH): 
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/bin/
export ANDROID_SDK_ROOT=/home/nikohal/qt5/qt5/adt-bundle-linux-x86-20140702/sdk
export ANDROID_API_VERSION=android-10 
KS. Javan asennus erillisestä blogistani.
Seuraavaksi aja komento päätteessä: cd /kansio johon purit sdk:n/adt-bundle-linux-x86-20140702/sdk/tools. (Huom. tarkista että on sinulla oikea adt-bundle-linux-x86-****)
Sitten komento:  ./android.
Tulisi avautua seuraavan näköinen ikkuna. Asenna API levelit 10, 11, 16, 19 (jonkin ohjeen mukaan..., vaikka kääntämisessä käytetään API leveliä 19).
Ollaan jo päästy sellaiseen vaiheeseen että voidaan aloittaa lähdekoodien kääntämien.
Aja komento ./configure -xplatform android-g++ -nomake tests -nomake examples -android-ndk /home/nikohal/qt5/qt5/android-ndk-r10/ -android-sdk /home/nikohal/qt5/qt5/adb-bundle-linux-x68-20140702/sdk/ -android-ndk-platform android-19 -android-ndk-host linux-x86 -android-toolchain-version 4.8 -skip qttranslations -skip qtwebkit -skip qtserialport -skip qtwebkit-examples -no-warnings-are-errors -no-dbus. Huomioi että oheisen kansio polut vastaavat sinun polkujasi ja että -android-host on oikea. Sitten vain annat ruksuttaa jonkin aikaa. (Näin sivu huomautuksena, itse käytän Virtual boxissa ubuntua). Jos konfikurointi menee läpi aja seuraavaksi make ja jos kääntäminen menee läpi, niin seuraavaksi: sudo make install. Sitten onkin kaikki valmista tältäosin. Avaa Qt Creator (täytyy asentaa koneelle). Löydät sen täältä. Sitten avaa valikko Tools -> Options -> välilehti Android. Lisää polut oikein oheisen kuvan mukaan.Sitten avaa välilehti Build & Run -> välilehti Kits-> Add (Lisää qmake/kirjastot). Hae polku /usr/local/Qt-5.3.1. Tämän jälkeen tulisi näkyä seuraava (Kuva yläpuolella).
Lisää puhelin usb kaapelilla koneeseen. Sitten tarvitaan asetus Virtualboxissa eli lisää puhelin usb:n kautta virtuaalikoneeseen.






Tätä ennen on hyvä laittaa puhelimessa asetus päälle: Asetukset-> Sovellukset->Kehitys. Valitse Usb-korjaaminen ja Näyttö päällä (Tämä siis HTC Desiere HD:ssä).
Tämän jälkeen korjaa projektia hieman.
Avaa Projects sivu (Pikanäppäin ctrl+5). Avaa Build Environments. Add eli lisää seuraava rivi, ks. kuva.

Kun ajat Android projektin Qt Creatorissa tuli ponnahtaa oheisen kuvan näköinen ikkuna ->
Sitten vain ok. Qt Creator kääntää ja ajaa sovelluksen puhelimessa (Olet nörtti tässä vaiheessa :D).

Eli fontti renderöintiä ei ole vielä korjattu.
Avaa kansio qt5/qtbase/src/plugins/platforms/android. Etsi tiedosto: qandroidplatformopenglcontext.cpp. Avaa jossain teksti editorissa ja lisää oheinen rivi kyseiseen kohtaan eli qDebug() << rendererString;.

Käännä qt5 uudestaan, konfigurointia ei tarvita vaan aja make päätteessä. Tämän voit toki tehdä kaikkea ennen eli kohdassa jossa aletaan kääntämään qt 5:sta ensimmäistä kertaa.


Välilehdellä Compile Output näet viestit mitä kääntämisen aikana tapahtuu ja näet myös mitä tapahtuu kun ajat sovellusta. Oheisen ongelman kohdalla pitäisi tulla rivi jossa lukee seuraavaa: (10857): qandroidplatformopenglcontext.cpp:80 (static bool QAndroidPlatformOpenGLContext::needsFBOReadBackWorkaroud()): Adreno 205
D/Qt.
Korjaa kyseiseen tiedostoon jonka aiemmin avasit oheinen rivi:
Eli suunnileen riville 78: || qstrcmp(rendererString, "Adrero 205") == 0. Käännä tämä lisäyksen jälkeen lähdekoodit uudestaan komennolla make.
Sitten vain ajat Qt Creatorissa sovelluksesi ja näet että kyseinen fontti ongelma on ratkaistu.
Ohessa vielä video.
Ohessa valmis paketti.

Javan asennus repositorystä Ubuntuun

Aluksi aja komento joka lisää kyseisen lähteen repository listaan (päättessä):
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
Tämän jälkeen voit tarkistaa java version komennolla: java -version
Jos se näyttää jotain muuta kuin oheinen kuva näyttää, niin aja komento:
sudo update-java-alternatives -s java-7-oracle