Grafinis įrankis disko naudojimo analizavimui

Ir jis vadinasi baobab. Archlinux’e instaliuojam

sudo pacman -Sy baobab

Programa labai naudinga kaip reikia susigaudyti kur dingo disko vieta. Aišku tokį lygį kaip dingsta Windows OS’e čia pasiekti vargu ar galima, bet ir čia prisireikia kartais pasi žiūrinėti po root particiją. Maniškė root particija yra SSD diske kuris yra vos 60Gb dydžio ir 6Gb jo jau užima android-sdk. Taip nejučia diskas ir užsipildo 🙂

Ekranvaizdis_2015-02-12_20-12-12

Linux (windows) + DLNA + TV + android

Turimas Samsung UE40EH6030 (ne “smart”) televizorius turi LAN jungtį ir puikiai sugebantis atvaizduoti media iš DLNA serverio.

Linux’iniam kompiuteryje yra media kurią norima peržiūrėti su minėtu TV. Tam reikia DLNA serverio. Aš naudoju Serviio. Tam skirtų serverių yra ir daugiau, bet pabandžiau šį, veikia taip kai noriu, tai kam ieškoti kažko daugiau. Beje ši programa veikia ir windows’uose.

Archlinux’e instaliuojam:

yaourt -S serviio

Patį serviio aš visada paleidžiu root teisėmis (taip tinginystė krapštytis). Paleidus serverį reikia pasileisti serviio-console ir jame reiktu susidelioti medijos katalogus. Visas interfeisas paprastas ir aiškus, pasiklysti tikrai nesigaus. Kortelėj (tab) Library spaudžiam Add local.. ir pridedame katalogus. Pats įrankis atpažins kokio tipo media pasirinkta, visa tai galima pačiam susipaukščiuoti (video, autio, foto).

Kortelėje Online sources galima prisidėti ir internetinį šaltinį, pvz M1+ internetinės transliacijos adresą.

Taigi išsaugojus nustatymus serveris pradeda skenuoti pasirinktus katalogus ir televizoriuje (mano atveju) pasirinkus AllShare pultelio pagalba galima pradėti naršyti po katalogus.

Turint namuose Android planšetę/telefoną visą šį turinį galima peržiūrėti ir mobiliam įrenginyje. Savaime suprantama reikia būti prisijungus prie namų tinklo. Po DLNA serverį naršyti aš naudoju AnDLNA (nuoroda į Google Play) programėlė tikrai mažutė ir turi tik viena aiškia funkcija, nėra visiškai jokių nustatymų ir reklamų.

Video turiniui peržiūrėti galima naudoti ir “gimtus” video grotuvus, bet išlenda įvairios problemos, tai garso nėra, tai garso takelio negalima pasirinkti (jei tai kelių takelių video). Tam aš naudoju MX Player (nuoroda Google Play).

Su kai kuriais DTS/AC3 takelius turinčiais video būdavo bėdų, nebūdavo (nemokėdavo iškoduoti) garso takelio. Šiai problemai spręsti reikia apsilankyti adresu Custom Codec with DTS & AC3 Support Visos instrukcijos ką daryti yra pateiktoje nuorodoje. Tik reiktu neužmiršti, atsinaujinus pačiam mx grotuvui, reikia išnaujo nueiti šiuo adresu ir pasitikrinti ar nėra naujos kodeko versijos, nes naujas grotuvas ne visada veikia su senesniu dekoderiu.

Samsung Galaxy S5 wifi atsijunginėjimai

Žmona turi Samsung Galaxy S5 telefoną. Telefonu ji patenkinta (man tai jis nelabai, todėl aš naudoju Sony Xperia Z1), bet pastarąja savaitę išlindo toks įdomus dalykas. Telefonas prisijungęs prie belaidžio (wifi) tinklo, po 3-4min. atsijungia. Praėjus dar minutei vėl pasijungia… ir taip be sustojimo. Problemos sprendimas, atjungimas wifi persijunginėjimo tarp 2.4GHz ir 5GHz dažnio. Nežinau kodėl jis tai daro, nes namuose naudojamas Mikrotik 5GHz dažniu nedirba.

Žemiau pateikiu ekrano nuotrauką kurią varnelę reikėjo nuimti. Pastebėjimas tik toks, kad ekrano nuotrauka daryta jau su Android 5.0. Ta proga, kad telefonas pateko į mano rankas, buvo suinstaliuotas ir atnaujinimas. Pasirodo UK jis jau gera savaitė kaip yra. Gal ir Lietuvoj ne pirma diena, bet tik dabar buvo pastebėta.

Screenshot_2015-02-02-20-34-33

ATmega fuse nustatymai

Pirmą kartą bandant nustatyti fuse pagal šį puslapį http://www.engbedded.com/fusecalc kažką sumaišiau ir kontroleris patapo neveiksnus. Nusipirkus antrą kontrolerį ir po kiek laiko vis dėlto vėl prisireikė didesnio dažnio ir čia visai netyčia atradau AVR8 Burn-O-Mat: a GUI for avrdude. Archlinux’e galima įdiegti:

yaourt -S avr8-burn-o-mat

Programa paprasta ir aiški. Antras bandymas pasisekė ir dabar mano kontroleris dirba su išoriniu kvarcu.

Ekranvaizdis_2015-01-27_23-38-27

ATmega16 jungimas su kompiuteriu (USB)

Pirmiausia pramokus šiek tiek kaip elgtis su LED’ais, mygtukais prijungtais prie ATmegos, greitai atsiranda noras surinkta informaciją atiduoti kompiuteriui arba iš kompiuterio pasiųsti tam tikras komandas, kad kontroleris galėtu jas vykdyti.

Taigi pirmasis bandymas buvo pasinaudojus MAX232 ir COM <-> USB perėjimu perduoti/priimti informaciją su kontroleriu. Nežinau tai buvo litavimo klaida, o gal sugebėjau kažkaip sugadinti MAX232, bet niekaip nepavyko priimti duomenų iš ATmegos. Išsiųsti sekėsi puikiai, kontroleris junginėjo LED’us pagal kompiuterio siunčiamas komandas.

Pasibaigus kantrybei buvo nuspręsta atsisiųsti jau pagaminta UART’ą. DealExtreme e parduotuvė čia puikiai pasitarnavo. Pajungus viskas iškarto veikė. Duomenys vaikščiojo į abi puses.

Linux’as įrenginį atpažysta taip:

[ 7884.863380] usbserial: USB Serial support registered for generic
[ 7884.864737] usbcore: registered new interface driver cp210x
[ 7884.864756] usbserial: USB Serial support registered for cp210x
[ 7884.864798] cp210x 2-5:1.0: cp210x converter detected
[ 7884.864951] usb 2-5: cp210x converter now attached to ttyUSB0

Pirma klaida dėl kurios galima ilgam strigti tai RX sujungimas su RX, o TX su TX. Teisingas jungimas būtų ATmegos16A RXD (14’ta koja) reikia jungti su UART’o TX’u, o ATmega16A TXD (15’ta koja) reikia jungti su UART’o RX’u. Reiktu neužmiršti sujungti ir trečiojo laido tai GND.

Kad būtų patogiau, panaudojau laidus iš kompiuterinio korpuso.

IMGP9853.PEF_MLSZSX

Testavimui susikompiliuoju tokį kodą:

// Kvarco taktinis dažnis
#define F_CPU 4000000UL
#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>

// Susijungimo greitis
#define USART_BAUDRATE 9600UL
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)


void USARTInit(uint16_t ubrr_value)
{
   //Set Baud rate

   UBRRL = ubrr_value;
   UBRRH = (ubrr_value>>8);

   /*
   >> Asynchronous mode
   >> No Parity
   >> 1 StopBit
   >> char size 8
   */

   UCSRC=(1<<URSEL)|(3<<UCSZ0);

   //Įjungiam gavima ir siuntimą
   UCSRB=(1<<RXEN)|(1<<TXEN);


}



//Funkcija naudojama duomenims nuskaityti
//Ši funkcija lauks tol kol atsiras kažkokie duomenys
char USARTReadChar()
{
   while(!(UCSRA & (1<<RXC)))
   {
      //Nieko nedarom
   }
   return UDR;
}

//Rašom duomenys į UART'ą
void USARTWriteChar(char data)
{
   while(!(UCSRA & (1<<UDRE)))
   {
      //Nieko nedarom
   }
   UDR=data;
}


void main()
{
   // Kintamasis
   char data;

   // Susijungiam
   USARTInit(BAUD_PRESCALE);

   // Amžinas ciklas
   while(1)
   {
      // Nuskaitom simbolį
      data=USARTReadChar();

      // Nuskaitytą simbolį gražinam atgal tik
      // jį apskliaudžiam laužtiniais skliaustais    

      USARTWriteChar('[');
      USARTWriteChar(data);
      USARTWriteChar(']');

   }
}

Rezultatas:
Ekranvaizdis - 2015.01.26 - 20:49:41

Mikrotik. Iš vidaus į vidų

Bet kokiam namų routeryje apsirašius prievado (port) nukreipimą iš išorės į vidų (NAT) taisyklę ta taisyklė veikia ir iš vidinio LAN. Papaišiau tokį brėžinį:
vidus_is_vidaus

Išorinis adresas 88.88.88.88
Vidinis routerio adresas 192.168.0.1
Turime tinkle serverį 192.168.0.100
Turime tinkle tris kompiuterius 192.168.0.10, 192.168.0.20, 192.168.0.30

Taigi turint tipinį Dlink’ą ir iš kažkurio kompiuterio kreiptumėmės į išorinį adresą (šiuo atveju 88.88.88.88) sėkmingai prisijungtumėm prie 192.168.0.100. Tas pats įvyktų jei kreiptumėmės iš išorės. Bet jeigu mūsų routeris yra Mikrotik ir jame aprašyta NAT’inimo taisyklė, prisijungti iš išorės pavyks, bet iš vidaus suvedus išorinį adresą susijungimas nepavyks. Problema tame, kad atsakimą jis atiduoda ne į vidinį, o į išorinį interfeisą. Problemai spręsti reikia apsirašyti dar vieną taisyklę.

Taigi abi taisyklės turėtu atrodyti taip:

/ip firewall nat add chain=dstnat action=dst-nat dst-address=88.88.88.88 protocol=tcp dst-port=80 to-port=80 to-address=192.168.0.100
/ip firewall nat add chain=srcnat action=masquerade src-address=192.168.0.0/24 dst-address=192.168.0.100

Dabar iš vidaus kreipiantis 88.88.88.88 sėkmingai pasiekiam 192.168.0.100

Pirmi žinksniai su ATmega16

Apie šitą gėrį skaičiau jau senokai, bet niekaip neprisiruošdavau. Bet išaušo ta diena.

Pirmiausia užsisakiau programatorių. Kainavo pilnai su siuntimu ~28LTL. Pirktas iš ebay, USBasp klonas (http://www.fischl.de/usbasp/). Atkeliavus programatoriui jau gumos netempiau, nes labai norėjosi išbandyti kaip viskas veikia. Susipirkau ko reikia ir susilitavau schemą pateikta elektronika.lt puslapyje.

Pora pakeitimų, tai šviesos diodai jungti ne per 1…2K kaip parodyta schemoje, o per 330Ω Dar vienas mažas nukrypimas, kad aš nedėjau jokio mygtuko. Pirmoji mintis ir užduotis buvo išmokti junginėti diodus.

Nepaslaptis, kad naudoju Archlinux, to pasekoje programos kodas pateiktas ankščiau minėtam elektronika.lt puslapyje netiko – nesikompiliavo. Su programa Gnome-avrdude įrašius HEX’ą diodai mirksėjo. Taigi mano supratimu problema buvo tame, kad gcc-avr kompiliatorius veikia truputi kitaip nei winavr ir/ar kiti windows’iniai.

Padraugavus su Google pavyko parašyti ir sukompiliuoti štai tokį kodą:

#define F_CPU 1000000UL
#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>

void sleep()
{
   _delay_ms(50);

}

int main(){

DDRD = 0b11111111;

while (1) {
 PORTD = 0b10000001;
 sleep();
 PORTD = 0b01000010;
 sleep();
 PORTD = 0b00100100;
 sleep(); 
 PORTD = 0b00011000;
 sleep(); 
 PORTD = 0b00011000;
 sleep(); 
 PORTD = 0b00100100;
 sleep(); 
 PORTD = 0b01000010;
 sleep(); 
 }
}

Programą kompiliavau štai tokiomis komandomis (programos kodas parašytas test.c byloje):

avr-gcc -mmcu=atmega16 -Os test.c -o test.o
avr-objcopy -j .text -j .data -O ihex  test.o  test.hex

C kodą rašau su Geany (http://www.geany.org/)
Gnome-avrdude konfiguracija USBasp programatoriui yra tokia:

Programmer laukelyje USBasp pasirinkimo nebuvo, todėl jį įvedžiau ranka.
Spustelnam Open, pasirenkame paruošta HEX bylą ir ją atveriame. Atvėrus spustelnam mygtuką kur parodyta mikroschma su rodykle nukreipta į ja. Jei viskas gerai sujungta turite pamatyti štai tokį (ar panašų) rezultatą:

Programa iškarto pradeda veikti. Aukščiau pateiktas kodo rezultatas youtubo filmuke (atsiprašau už kokybe, neturiu jokio geriau filmuojančio aparato):

Archlinux atnaujinimas po ~1metų pertraukos

Taip gavosi, kad nešiojamą kompiuterį naudoju retokai. Įsigijus Samsung Galaxy Mini, kompiuterį vežiotis pradėjau dar rečiau, nes paprastiems pašto bei interneto pasiskaitymams užtenka ir telefono. Vakar buvo ta diena kai prireikė ir nešiojamo kompiuterio. Operacinės sistema pas jį žinoma Archlinux.

Keliuose forumuose teko skaityti nuomonę, kad jei Archlinux’o neatnaujinsi ilgiau tai turėsi tikrą bėdą. Štai ir puiki proga išbandyti. Pastarasis kompiuteris neatnaujintas jau geri metai. Branduolys 2.6.* serijos (dabartinė versija 3.2.8). Ofiso paketas vis dar OpenOffice ir panašios kitos senienos 😉 Panašų, kad OS buvo neatnaujinta apie metus laiko.

Taigi po sudo pacman -Syu matau, kad teks atnaujinti nei daug nei mažai – 1022 paketus. Pirmasis ir vienintelis kabliukas, tai, kad buvo 3-4 klaidos apie sistemoje jau egzistuojančias bylas, dėl kurių negali įvykti atnaujinimas. Jas pašalinus prasidėjo ilgas ir varginantis atsinaujinimo procesas (kompiuterio procesorius P4 1.8 GHz Mobile).

Perkraunu kompiuterį ir… viskas veikia kaip ką tik suinstaliuotas. Jokių problemų, jokių klaidų pranešimų. Viskas veikia.

Vienintelis man nepatikęs reikalas tas, kad sistemoje atsirado Pulseaudio. Nepatinka man tokie dalykai todėl šalinam Pulseaudio:

pacman -Rdd pulseaudio pulseaudio-alsa

Bandau Cinnamon WM

Kažkuriam forume žmogus ieškojo lengvo WM.. kažkas jam pasiūlė Cinnamon http://cinnamon.linuxmint.com/. Pažiūrėjau į ekrano vaizdus, ir nusprendžiau išbandyti.

Oficialaus paketo Archlinux neturi, todėl teko susikompiliuoti naudojant yaourt (AUR).

Pirmiausia gal pradėsiu nuo to, kad pas mane prie kompiuterio prijungti du monitoriai. Naudojant Xfce turiu maždaug tokį vaizdelį:

Reikalo esmė yra tokia, kad aš turiu dvi užduočių juostas (task list). Ir programos esančios kairiam monitoriuje susimažina (minimize) į kairiojo monitoriaus užduočių juostą, o dešiniojo į dešinio monitoriaus užduočių juostą. To pasekoje nereikia lakstyti iš vieno monitoriaus į kitą norint perjungti programą/langą. Pirmas žvilgsnis į Cinnamon’ą ir jau matau, kad “turiu bėdą”. Užduočių juosta tik viena. Ir kaip paskui paaiškėjo, kad antros juostos man prisidėti niekaip nesigavo. Nors žiūrint internete ekrano nuotraukas, matosi kad žmonės naudoja kelias paneles.

Kas nepatiko. Nepatiko tai, kad darbo aplinka visiškai neišbaigta t.y. kad naudodamasis pele niekaip nesugebėjau pridėti naujų leistukų (launcher), o per nustatymų langą pridėti įskiepiai (plugins/applets) atsirasdavo ten kur jie norį. Kaip juos perstumti į kitą vietą aš niekaip nesupratau. Kaip tai padaryti neradau ir interneto svetainėje. Ką radau tai pradžiamokslis kaip sukurti savo įskiepį ir temą. Kaip pakeisti darbastalio foną (wallpaper) irgi niekaip nedašuto.

Kas patiko. Tai gražus, paprastas ir tvarkingas meniu (start meniu). Patiko bendras vaizdas. Viskas paprasta ir aišku. Keistai atrodo iššokantys dialogai (informaciniai iššokantys langai su TAIP/NE pasirinkimu, bylos atvėrimo ir išsaugojimo dialogai ir panašiai). Jie neturėjo viršutinės įprastos lango juostos ir keistasi “nusileisdavo” iš viršaus.

Patiko nustatymų langas, aiškus ir paprastas (tiesa labai riboti nustatymai). Kalendorius. Spustelėjus viršutiniam kairiam kampe esantį begalybės ženkliuką, visi atidaryti langai labai gražiai išsidėlioja ekrane. Visai patogus būdas persijunginėti tarp programų. Panašu, kad pati WM yra lengva ir neapkrauna procesoriaus. Kaip bylų tvarkyklę (file manager) naudoja Nautilus. Aš asmeniškai naudoju Thunar, tad Nautilus pasirodė gan sunki programa.

Po trumpo pasižaidimo grįžau pas Xfce. Kol kas tai vienintelė darbo aplinka kuri man tinka ir patinka. Naudoju ją jau turbūt aštuonis metus ir panašu, kad greitu metu nesiskirsim. Xfce autoriai naują 4.10 versiją žadėjo išleisti kovo antroj pusėj, bet panašu, kad teks dar gerokai palaukti.

Nvidia ir aparatinis video spartinimas

Namuose naudoju kompiuterį, kurio parametrus daugelis pavadins “muziejiniais”. Tai AMD64 3000+ 1.8GHz procesorius kurio taktinis dažnis pakeltas iki 2.43GHz. Dažnio kėlimo metu buvo įdėta NVidia Geforce 6600GT vaizdo plokštė. Viena iš pagrindinių priežasčių, dėl kurių buvo keliamas dažnis tai nesugebėjimas užtikrintai atvaizduoti 720p video (jau nekalbant apie 1080p). Išsiaiškinau, kad aparatinis spartinimas naudojant linux OS pradeda veikti naudojant Geforce 8 ar naujesnės serijos vaizdo plokštes. Nors perkant Geforce 6600 GT ant dėžutės buvo priklijuota visokiu fullHD video ir panašių lipdukų, pasirodo spartinimas veikė tik Windows OS.

Pasiskaitęs NVidia tvarkyklių README, ten gi sąrašas yra GPU palaikančiu VDPAU. VDPAU tai atviro kodo biblioteka, kurios autorius NVidia. Ši biblioteka leidžia video dekodavimą bei apdorojimą (procesing) perlaisti GPU (GPU tai vaizdo plokštės procesorius).Tad su kiekvieną dieną audžiau mintį kaip čia man dabar iš kur nors naujesnį Geforc’ą iškrapščius. Aišku kaip visada su finansais ne prūdai, bet šiaip ne taip išsirinkau NVidia GT220 vaizdo plokštę. Pagal kokius parametrus aš ją išsirinkau dabar jau tiksliai nepamenu, bet svarbiausia buvo, kad ji palaikytu VDPAU, būtinai turėtu CUDA procesorius (kurio iki šios dienos taip ir neišbandžiau) ir kuo aukštesnius GPU bei RAM dažnius.

Koks didžiulis buvo nusivylimas, kaip įdėjus šią plokštę stebuklo nepamačiau. Tiesa 720p jau buvo galima lyg ir žiūrėti, bet apie 1080p kalbos nebuvo. Kažkaip jau net buvau susitaikęs su mintimi, kad geriau nebus. Čia ir buvo mano didžiausia klaida. Pasirodo, kad neužtenka suinstaliuoti NVidia tvarkyklių, kad sėkmingai veiktu video spartinimas. Visai atsitiktinai atnaujinant ar tai VLC ar MPLAYER paketą pamačiau, kad kaip papildoma priklausomybė yra VDPAU paketas. Pasidomėjus daugiau, nepraėjus nė dešimčiai minučių 720p bei 1080p jau buvo atvaizduojamas su minimaliais CPU apkrovimais!

Taigi, kad veiktu aparatinis spartinimas reikia suinstaliuoti paketus (su sąlygą, kad NVidia tvarkyklės jau įrašytos):

sudo pacman -Sy libvdpau vdpau-video

Jei naudojate VLC grotuvą tai jums reikia keliauti į menių punktą Įrankai -> Parinktys. Atsidariusiam dialoge kairėję pusėje pasirinkti Įvestis ir kodavimas ir uždėti varnelę Use GPU acceleration (experimental), pas mane dabar 1.1.13 versija. Jei neklystu aparatinis spartinimas atsirado tik VLC 1.1.* versijoje.

Jei naudojate MPLAYER (kaip aš) tai video galima žiūrėti su dar mažesniais CPU resursais. Tik prieš tai, kad nereikėtu kiekvieną kartą suvedinėti komandinės eilutės reikia paredaguoti konfigūracinę bylą kuri randasi adresu .mplayer/config (mano atvėju pilnas kelias yra /home/dinux/.mplayer/config). Mano konfigūracinė byla atrodo taip:

# Write your default config options here!
vo=vdpau
vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau,
cache=8192

Pirmos dvi eilutės daugiau mažiau aiškios. Trečioji skirta cache’o padidinimui. Be šios eilutės kol MPLAYER kreipiasi į diską vaizdas akimirkai užstringa. Nuskaitęs informacijos kiekį, grotuvas ją atvaizduoja. Tai trunka ~5-10sek. vėliau vėl seka truktelėjimas, kol nuskaitoma antra porcija informacijos. Taigi, trečioji eilutė nustato 8Mb cache’o dydi. To užtenka, kad grotuvas skaitytu informaciją “į priekį” ir visada turėtu duomenų porciją, kurią reikia iškoduoti ir atvaizduoti.

Dabar žiūrint 1080p video naudojant MPLAYER jis CPU apkrauna iki ~4%:

[dinux@dinux ~]$ ps aux | grep mplayer
dinux     4451  8.3  <strong>3.7</strong> 122876 77760 ?        S    22:41   0:01 mplayer Eurosport-HD.Demo.Loop.1080p.H.264.MP2.2.0.mkv

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close