Wrzesień 7th, 2016

Posted In: I-Nex, Nowe wersje, Uncategorized

Tagi: , ,

Wczoraj pracowałem nad przepisaniem z C na gambas funkcji odpowiedzialnej za obliczanie zużycia procesora, dziś dałem więc commit z finalnymi zmianami. Poprzednio I-Nex wraz ze startem uruchamiał także osobny program w tle. Od dziś już tego nie robi, wszystko zostało wprowadzone bezpośrednio do kodu programu przez co pozbyłem się niepotrzebnych zależności a zarazem zmniejszył się rozmiar pakietu instalacyjnego.

Od dłuższego czasu także poszukiwałem rozwiązania problemu z gbx3: warning: 4 allocation(s) non freed. Po przeprowadzeniu testów w obecnej wersji, błąd w niewytłumaczony sposób zniknął. Idąc drogą dedukcji, to właśnie i-nex-cpusage powodował ten błąd.

Prócz zmian wyżej opisanych, dodałem także brakujące informacje na karcie Memory.

09072016074858692 09072016074910811

Styczeń 30th, 2014

Posted In: I-Nex, Nowe wersje, Uncategorized

Tagi: , , , , , , , , , ,

Dokładnie wczoraj, I-Nex jak i strona domowa zmieniła logo programu, poprzednie logo istniało w programie od prawie dwóch lat. Przyszedł czas w którym jest moda na proste kolory.

Logo programu powinno być w tworzone z  zachowaniem zasady trzech kolorów, i tak też się stało.

Nowe logo jest w stylu ikon Feanza, jeden z najpopularniejszych zestawów ikon dla KDE/GNOME itp.

i-nex

W tej chwili zadaję sobie pytanie co dalej z rozwojem I-Nex. Co można wprowadzić, w miarę możliwości.

I-Nex w pewnym okresie został powiązany z modułami pisanymi w C, moduły te zwracają informacje w formacie JSON, następnie dekodowane są przez program i umieszczane w odpowiednie pola i karty.

Tak stało się z CPUID (i-nex-cpuid), GPU (i-nex-glinfo), Memory (i-nex-usage), Kernel (i-nex-uname).

Wiele pomysłów na rozwój programu zostało porzuconych ze względu na moją niekompetencję w PHP. I-Nex miał wprowadzić namiastkę CPU-Z Validate, lecz jak już wspomniałem, przez moją niekompetencję w PHP, nie jestem w stanie tego zrobić. Nie jestem także odpowiednio młody by zacząć się uczyć tego języka, mam możliwość tworzenia w zakresie mojej obecnej wiedzy.

Wracając do modułów w C, nie są one perfekcyjnym kodem, miałem zaledwie dwa dni by przekalkulować bibliotekę CPUID i na podstawie dokumentacji stworzyć program który zwraca dane w formacie JSON. W zaledwie dwa dni musiałem zapoznać się z C i napisać prawie sześć modułów w tym języku. Musiałem, nie musiałem, to hobby, które nie koniecznie musi nim pozostać.

Listopad 21st, 2013

Posted In: I-Nex, Nowe wersje, Uncategorized

Tagi: , , , , , , ,

11212013203727864No właśnie dobre pytanie. Już dawno powinienem wydać I-Nex 0.5.6, kod już dawno był w fazie stable, zaraz po tym jak wprowadziłem bazę tych historycznych 1080 procesorów o których to wspominałem w poprzednim wpisie.
Na wikipedii możecie przeczytać o tym w jaki sposób nadaje się wersje programom na linuksie.

Po wprowadzeniu bazy danych procesorów rozpocząłem pracę nad zakładką System oraz Memory.

Memory:

Od dawien dawna szukałem sposobu na to w jaki sposób wyciągnąć informacje o pamięci ram, producencie, taktowaniu, dacie produkcji, rozmiarze oraz o ilości banków pamięci w płycie głównej.

Natrafiłem na i2c (Ubuntu pakiet: i2c-tools) i przeczytałem poradnik na stronie Ubuntu See Live RAM Timings Decode DIMMS

decode-dimms działa i pokazuje informacje o ramie bez użycia praw użytkownika root, wykorzystując dane z pliku eeprom, znajdującego się w:

/sys/bus/i2c/drivers/eeprom/*/*

Jedynym minusem jest to że i2c trzeba poddać modprobe osobno dla każdego chipsetu płyty głównej.
Ja mam płytę Intel Desktop Board D425KT, czyli w moim przypadku bedzie to

modprobe i2c-i801

Aby automatycznie sprawdzić jakiego modułu nam potrzeba wystarczy:

sudo sensors-detect

I moduł zostanie dodany automatycznie do /etc/modules. by przy starcie ładował się automatycznie.
Teraz tylko pozostaje mi napisać wszystko by działało i nie wymagało pakietu i2c-tools.

System:

Zakładka system przybrała standardowy wygląd, czyli Labelki obok siebie z pogrubionym obramowaniem i kilkoma nowymi przydatnymi informacjami.
Pewne skrypty wyciągnąłem z kernela linuksa.

cat /usr/src/linux-3.12/scripts/ver_linux

uname -a
gcc -dumpversion 2>&1| awk
‚NR==1{print „Gnu C „, $1}’
make –version 2>&1 | awk -F, ‚{print $1}’ | awk
‚/GNU Make/{print „Gnu make „,$NF}’
echo „binutils $(ld -v | egrep -o ‚[0-9]+.[0-9.]+’)”
echo -n „util-linux ”
fdformat –version | awk ‚{print $NF}’ | sed -e s/^util-linux-// -e s/)$//
echo -n „mount ”
mount –version | awk ‚{print $NF}’ | sed -e s/^mount-// -e s/)$//
depmod -V 2>&1 | awk ‚NR==1 {print „module-init-tools „,$NF}’
tune2fs 2>&1 | grep „^tune2fs” | sed ‚s/,//’ | awk
‚NR==1 {print „e2fsprogs „, $2}’
fsck.jfs -V 2>&1 | grep version | sed ‚s/,//’ | awk
‚NR==1 {print „jfsutils „, $3}’
reiserfsck -V 2>&1 | grep ^reiserfsck | awk
‚NR==1{print „reiserfsprogs „, $2}’
fsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk
‚NR==1{print „reiser4progs „, $2}’
xfs_db -V 2>&1 | grep version | awk
‚NR==1{print „xfsprogs „, $3}’
pccardctl -V 2>&1| grep pcmciautils | awk ‚{print „pcmciautils „, $2}’
cardmgr -V 2>&1| grep version | awk
‚NR==1{print „pcmcia-cs „, $3}’
quota -V 2>&1 | grep version | awk
‚NR==1{print „quota-tools „, $NF}’
pppd –version 2>&1| grep version | awk
‚NR==1{print „PPP „, $3}’
isdnctrl 2>&1 | grep version | awk
‚NR==1{print „isdn4k-utils „, $NF}’
showmount –version 2>&1 | grep nfs-utils | awk
‚NR==1{print „nfs-utils „, $NF}’
echo -n „Linux C Library ”
sed -n -e ‚/^.*/libc-([^/]*).so$/{s//1/;p;q}’ < /proc/self/maps ldd -v > /dev/null 2>&1 && ldd -v || ldd –version |head -n 1 | awk
‚NR==1{print „Dynamic linker (ldd) „, $NF}’
ls -l /usr/lib/libg++.so /usr/lib/libstdc++.so 2>/dev/null | awk -F.
‚{print „Linux C++ Library ” $4″.”$5″.”$6}’
ps –version 2>&1 | grep version | awk
‚NR==1{print „Procps „, $NF}’
ifconfig –version 2>&1 | grep tools | awk
‚NR==1{print „Net-tools „, $NF}’
# Kbd needs ‚loadkeys -h’,
loadkeys -h 2>&1 | awk
‚(NR==1 && ($3 !~ /option/)) {print „Kbd „, $3}’
# while console-tools needs ‚loadkeys -V’.
loadkeys -V 2>&1 | awk
‚(NR==1 && ($2 ~ /console-tools/)) {print „Console-tools „, $3}’
oprofiled –version 2>&1 | awk
‚(NR==1 && ($2 == „oprofile”)) {print „oprofile „, $3}’
expr –v 2>&1 | awk ‚NR==1{print „Sh-utils „, $NF}’
udevinfo -V 2>&1 | grep version | awk ‚{print „udev „, $3}’
iwconfig –version 2>&1 | awk
‚(NR==1 && ($3 == „version”)) {print „wireless-tools „,$4}’
if [ -e /proc/modules ]; then
X=`cat /proc/modules | sed -e „s/ .*$//”`
echo „Modules Loaded „$X
fi

Większości z tych przydatnych poleceń jeszcze nie wprowadziłem do I-Nex.

 

Najnowsze komentarze

Reklama

OSSPlanet

Close