życie zabija powoli :)

 

24

września

2007

prywatny wtf czyli co mozna znalezc w cudzym kodzie :)

Od paru dni nie dziala we wdrozonej firmie inwentaryzacja. Dzisiaj namierzylem problem w kodzie protokolu BHT do inwentaryzatora na porcie COM. Niezaleznie od tego co sie robilo, zawsze poddawal sie po pierwszym pakiecie danych z komunikatem „Bledna liczba znakow naglowka SOH”....

Kto widzi co tu jest zle? Szukalem problemu od piatku dlubiac w cudzym kodzie. Wlasnie znalazlem :)
//allReaded musi wynosic MAX_SOH_BLOCK_SIZE lub readed + trzy bajty SOH,ETX,BCC if ( ( allReaded != MAX_SOH_BLOCK_SIZE ) || ( allReaded != ( readed + 3 ) ) )
{
qDebug("BLAD: Bledna liczba znakow naglowka SOH");
qDebug(" allReaded : %d ; readed : %d ", allReaded, readed);
}


p.s. Komentarz jest poprawny, ale kod juz nie. Fakt pisania „readed” jako forma przeszla od „read” ... przemilczmy :]

 
 

23

września

2007

linux i wedrujacy dysk twardy

Dzisiaj nadzialem sie na problem – wsadzilem do kompa drugi dysk. Jeden jest na SATA, drugi na zwyklym ATA. no i okazalo sie ze co kernel to widzi je jako zupelnie inne urzadzenia. Najgorsze bylo to ze instalowalem na nim linuksa dla dziewczyny – dysk bedzie uzywany w zupelnie innym kompie i cholera wie jakie urzadzenie bedzie tam do niego przypisane.


Na szczescie linux ma i na to rozwiazanie.



Rozwiazanie 1: etykiety


ls -l /dev/disk/by-label

lrwxrwxrwx 1 root root 10 Oct 16 10:27 data -> ../../sdb2

lrwxrwxrwx 1 root root 10 Oct 16 10:27 data2 -> ../../sda2

lrwxrwxrwx 1 root root 10 Oct 16 10:27 fat -> ../../sda6

lrwxrwxrwx 1 root root 10 Oct 16 10:27 home -> ../../sda7

lrwxrwxrwx 1 root root 10 Oct 16 10:27 root -> ../../sda1

lrwxrwxrwx 1 root root 10 Oct 16 10:27 swap -> ../../sda5

lrwxrwxrwx 1 root root 10 Oct 16 10:27 windows -> ../../sdb1



Katalog ten nie bedzie dostepny gdy zadna partycja nie ma etykiety. Trzeba jakies ponadawac.

* swap: mkswap -L /dev/XXX

* ext2/ext3: e2label /dev/XXX

* reiserfs: reiserfstune -l /dev/XXX

* jfs: jfs_tune -L /dev/XXX

* xfs: xfs_admin -L /dev/XXX

* reiser4: metoda nieznana (da sie?) * fat/vfat: mlabel /dev/XXX: – albo z windows * ntfs: ntfslabel /dev/XXX albo z windows



Konfiguracja fstab:


piersza kolumna w pliku zamiast nazwy urzadzenia ma postac


LABEL=etykieta



parametry jadra
zamiast root=/dev/XXX podajemy root=LABEL=etykieta

Wady : pare partycji moze miec te same etykiety na kilku dyskach. Osobiscie odradzam gdy instalujemy system na dysku ktory trafi do nieznanego komputera.


Rozwiązanie 2: po modelu dysku


watanabe ~ # ls -l /dev/disk/by-id/
lrwxrwxrwx 1 root root 9 wrz 24 2007 ata-ST3250823AS_4ND0AB7Z -> ../../sda

lrwxrwxrwx 1 root root 10 wrz 24 2007 ata-ST3250823AS_4ND0AB7Z-part1 -> ../../sda1

lrwxrwxrwx 1 root root 10 wrz 24 2007 ata-ST3250823AS_4ND0AB7Z-part2 -> ../../sda2

(....)

lrwxrwxrwx 1 root root 9 wrz 24 2007 ata-ST380021A_3HV0L8LD -> ../../sdb

lrwxrwxrwx 1 root root 10 wrz 24 2007 ata-ST380021A_3HV0L8LD-part1 -> ../../sdb1

lrwxrwxrwx 1 root root 10 wrz 24 2007 ata-ST380021A_3HV0L8LD-part2 -> ../../sdb2

(...)

lrwxrwxrwx 1 root root 10 wrz 24 2007 scsi-SATA_ST380021A_3HV0L8LD-part3 -> ../../sdb3

lrwxrwxrwx 1 root root 10 wrz 24 2007 scsi-SATA_ST380021A_3HV0L8LD-part5 -> ../../sdb5


jak widac podany jest tutaj model dysku, jego numer seryjny i numer partycji.

W fstab podajemy w pierwszej kolumnie id= zamiast nazwy urzadzenia.


w jadrze podajemy parametr przykladowo root=/dev/disk/by-id/ata-ST3250823AS_4ND0AB7Z-part1

Wady : Dobre, ale dlugie skomplikowane nazwy. Poza tym nie wiem, chyba tylko po flashowaniu jednego dysku biosem z drugiego moze sie zdarzyc ze oba dyski beda miec taki sam numer seryjny i beda nie odroznialne. Nazwy moga sie zmienic przy modyfikacji kernela (chodzi o przedrostek ata/scsi)


Trzecia metoda – UUID.

UUID to unikatowy identyfikator partycji. Jest na tyle dlugi ze trafienie na druga taka partycje z takim UUID jest praktycznie niemozliwe.

lrwxrwxrwx 1 root root 10 wrz 24 2007 0b747fd7-f505-4b7b-a915-f939a74bddcd -> ../../sda6

lrwxrwxrwx 1 root root 10 wrz 24 2007 11a7702f-a82f-4469-9e56-81862b1a8528 -> ../../sdb2

lrwxrwxrwx 1 root root 10 wrz 24 2007 489f1cb6-4226-479e-9915-faca3ba324ef -> ../../sdb1

lrwxrwxrwx 1 root root 10 wrz 24 2007 4e142825-0f07-4b3b-b8ec-4b90e8e7317e -> ../../sda5

lrwxrwxrwx 1 root root 10 wrz 24 2007 7eb786bf-8ab6-461c-91b9-28164a6a2e5b -> ../../sdb5

lrwxrwxrwx 1 root root 10 wrz 24 2007 928b41c1-48ce-402b-8aa1-a592099dcd58 -> ../../sda7

lrwxrwxrwx 1 root root 10 wrz 24 2007 b1db8bc7-be40-44f1-ab6b-fce51ae3d395 -> ../../sda1

lrwxrwxrwx 1 root root 10 wrz 24 2007 d153cbbd-bfbe-48e7-a69b-d8dd05b85741 -> ../../sda2


w fstab podajemy

UUID=11a7702f-a82f-4469-9e56-81862b1a8528 w pierwszej kolumnie zamiast urzadzenia.


W parametrach jadra podajemy root=/dev/dysk/by-uuid/11a7702f-a82f-4469-9e56-81862b1a8528 dla danej partycji.


Wady : Chyba jedynie skomplikowane UUID :D


Metoda 4: sciezka do urzadzenia – bardzo indywidualne ustawienie dla systemu. Nie polecam


Analogicznie jak wczesniej, zajrzyjcie do /dev/disk/by-path :


lrwxrwxrwx 1 root root 9 wrz 24 2007 pci-0000:00:06.0-scsi-0:0:0:0 -> ../../sdb

lrwxrwxrwx 1 root root 10 wrz 24 2007 pci-0000:00:06.0-scsi-0:0:0:0-part1 -> ../../sdb1

lrwxrwxrwx 1 root root 10 wrz 24 2007 pci-0000:00:06.0-scsi-0:0:0:0-part2 -> ../../sdb2

lrwxrwxrwx 1 root root 10 wrz 24 2007 pci-0000:00:06.0-scsi-0:0:0:0-part3 -> ../../sdb3

lrwxrwxrwx 1 root root 10 wrz 24 2007 pci-0000:00:06.0-scsi-0:0:0:0-part5 -> ../../sdb5

lrwxrwxrwx 1 root root 9 wrz 24 2007 pci-0000:00:06.0-scsi-0:0:1:0 -> ../../sr0

lrwxrwxrwx 1 root root 9 wrz 24 2007 pci-0000:00:07.0-scsi-0:0:0:0 -> ../../sda

lrwxrwxrwx 1 root root 10 wrz 24 2007 pci-0000:00:07.0-scsi-0:0:0:0-part1 -> ../../sda1

lrwxrwxrwx 1 root root 10 wrz 24 2007 pci-0000:00:07.0-scsi-0:0:0:0-part2 -> ../../sda2

(...)


Jak widac sciezki do urzadzen sa indywidualne ze wzgledu na polozenie kontrolera na szynie PCI. Dlatego odradzam to rozwiazanie gdy docelowo dysk bedzie pracowac w innym komputerze.

PS. Po zamontowaniu urzadzenia sa widoczne juz „po ludzku” a nie po id/uuid itp.


Moj /etc/fstab :


UUID=4e142825-0f07-4b3b-b8ec-4b90e8e7317e / auto defaults,noatime 0 1

UUID=d153cbbd-bfbe-48e7-a69b-d8dd05b85741 none swap sw 0 0

UUID=0b747fd7-f505-4b7b-a915-f939a74bddcd /home auto defaults,noatime 0 0

UUID=928b41c1-48ce-402b-8aa1-a592099dcd58 /mnt/debian auto defaults,noatime 0 0

UUID=b1db8bc7-be40-44f1-ab6b-fce51ae3d395 /mnt/system auto defaults,users,user,noatime 0 0

#na napedy wymienne to nie dziala, niestety, bo mozna do nich wkladac rozne plytki/karty mmc/sd itp

/dev/sdb1 /mnt/usb1 auto defaults,user,users,shortname=winnt 0 0

/dev/sdb /mnt/usb2 auto defaults,user,users,shortname=winnt 0 0

/dev/sr0/mnt/cdromautodefaults,user,users0 0

shm /dev/shm tmpfs nodev,nosuid,noexec 0 0

A po zamontowaniu (wystarczy odpalic mount bez parametrów :

/dev/sda5 on / type auto (rw,noatime)

proc on /proc type proc (rw,nosuid,nodev,noexec)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)

udev on /dev type tmpfs (rw,nosuid)

devpts on /dev/pts type devpts (rw,nosuid,noexec)

/dev/sda6 on /home type reiserfs (rw,noatime)

/dev/sda7 on /mnt/debian type ext3 (rw,noatime)

/dev/sda1 on /mnt/system type ext3 (rw,noexec,nosuid,nodev,noatime)

shm on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

PS : Metoda ta dziala gdy kernel posiada initrd (ramdysk startowy) a w nim udev - wiadomo, musza utworzyc sie urzadzenia. Do tego celu swietnie nadaje sie narzedzie mkinitcpio z arch linuksa. Wlasnie przymierzam sie do przetestowania go na gentoo. Musze tez sprawdzic czy przypadkiem gentoo'owy genkernel nie potrafi tego samego.

Wiecej napisze pozniej na ten temat.

 
 

21

września

2007

łebdwazero

Musze przyznac ze mnie tez to nieco dopadlo. Nie chodzi mi tu o ajax i tego typu pierdoly. Chodzi mi o to ze w epoce tzw web2.0 jest wiele stron ktore nic nie daja od siebie, a czekaja na to az uzytkownicy cos stworza (bo taka jest filozofia), lub powielaja to co jest na innych stronach (bo digg jest modny). Wykluczam z tego strony bedace agregatorami rss, bo tam trudno o oryginalnosc :]


Przyklad? Pierwsza lepsza strona z newsami – przekalkowanie tego co jest na innej stronie + dwa, trzy zdania. Wkurza mnie to, bo „autor” takiego newsa idzie na latwizne. Najbardziej wlazi mi to w oczy na linuxnews.pl, nie bede ukrywac.


Zauwazylem ze sam coraz czesciej tak robie.

Nie podoba mi sie takie cos, bo to jest po prostu robienie na „odwal sie”. Tak wiec przysiadam sie i nastepnym razem postaram napisac sie cos naprawde od siebie, jezeli chodzi o tematy techniczne, dopoki mam szanse sie zrehabilitowac we wlasnych oczach :]

 
 

19

września

2007

komorczak

Z sentymentu wyciagnalem starego philipsa 362. zlom do bólu, ale mozna na nim sie troche pobawic. Ustawilem na dzwiek wiadomosci sms ryk grunt’a z quake1.


wyciecie dzwieku – 5 minut.


MMS – darmowy


Miny ludzi w autobusie/pracy gdy przychodzi sms – bezcenne :D

 
 

17

września

2007

radeonHD

Wypuszczenie specyfikacji do kart radeon r500/r600 przez ati zaowocowało pierwszymi wynikami. Powstający sterownik o nazwie radeonHD na razie jest jeszcze w powijakach, ale pracują nad nim tęgie głowy z novellaa (wiem, bleh :D), oraz obecni developerzy x.org rozwiający sterowniki kart ati


sterownik będzie się zwać xf86-video-radeonhd (sugerując się logami z IRC’a developerów ;-) ) i niedługo powinien pojawić się jego kod na gitweb.freedesktop.org do pobrania/przejrzenia. Przed nim jeszcze długa droga i funkcjonalność pozostawia obecnie wiele do życzenia.

 
 

13

września

2007

jobbing

W pracy szef zaproponowal mi przerobienie sie na programiste. Bo podobno z calego pokoju bazodanowcow jestem najbardziej „techniczny”. Stwierdzilem ze sprobuje. Jak nie dam rady to najwyzej poszukam nowej pracy. Ale jak sie ma szanse na cos nowego to trzeba ta szanse wykorzystac. A co.

 
 

12

września

2007

specs

ati wypuscilo specyfikacje swoich najnowszych kart. na poczatek poszla seria R630 (najnowsze radeony 2xxx), a w przyszlym tygodniu wychodzi pierwsza wstepna wersja otwartego drivera (bardzo podstawowa), ale poniewaz pisanie sterownika z dokumentacja jest prostsze niz bez niej – szybko stanie sie z niego porzadny driver :]


dla ciekawskich : tutaj można pobrać specyfikacje dla tych kart. kolejne dokumenty sa w drodze.

 
 

12

września

2007

bo czasami bywa tak…

...ze robota zajmuje tyle czasu i sil ze nie ma sie ochoty nic na blogu pisac :/


ale moze sie zmusze dzisiaj po pracy.

 
 

05

września

2007

fglrx 8.41 - juz jest i niezle kopie

Sami zobaczcie :D


KLIK1


KLIK2


KLIK3



Ati zaskoczylo wszystkich, a fanboye nvidii moze w koncu sie zamkna :D Na pewno ucisza sie za miesiac - wtedy fglrx dostanie obsluge aiglx :]

P.s. zapowiadana rewelacja ze strony ati jeszcze czeka na odsłonę :]

edit: wszystko wskazuje na to ze driver bedzie jeszcze dzisiaj.

 
 

Miniblog

14 września 2011, 22:19:53 | klucz ssh na gitorious |

Od niedawna przyłapałem się na tym że na gitorious.org przestał działać mój klucz ssh. Próba ponownej instalacji klucza powodowała jego odrzucanie ( " ssh key invalid " ).

Problem polega na tym ze zamiast user@host na końcu klucza trzeba wpisać swój email jaki podaliśmy przy rejestracji w gitorious.org. Być może problem nie dotyczy wszystkich, ale u mnie było to jedyne działające rozwiązanie.

04 lipca 2011, 12:48:34 | Tunelowanie esx po ssh |

Szybka notatka na przyszłość; aby wbić się na serwer ESX za pomocą vSphere poprzez tunel SSH, trzeba przeforwardować porty 443, 902, 903 oraz dodać wpis do hosts postaci

127.0.0.1 esxhost

bez tego nie pójdzie. Posiadanie wpisu określającego 127.0.0.1 jako "localhost" też z jakiegoś powodu nie wystarcza i dostaje się tajemnicze informacje o nieprawidłowym hoście, braku łączności itp.

02 sierpnia 2010, 20:12:02 | [mini] nietypowy problem CUPS |

ERRDOS - ERRbadaccess 
(Invalid open mode.) opening 
remote spool Test Page

W takiej sytuacji należy w windows w wlaściwościach drukarki odznaczyć "drukuj bezpośrednio na drukarkę". Dziwne, ale zostawię to sobie tutaj na przyszłość.