Архива за '/Sun Microsystems' категорију

Apache 2.2 crashing after receiving SIGUSR1 (apachectl -k graceful) on FreeBSD 5

јун 16, 2007

The other days I installed Apache 2.2.4 (compiled from source) on FreeBSD 5.3, and while everything seemingly worked fine, after apachectl -k graceful command (actually sending SIGUSR1 to httpd process), httpd crashed leaving core dump in ServerRoot, and

pid 21090 (httpd), uid 0: exited on signal 11 (core dumped)pid 43276 (httpd), uid 0: exited on signal 11 (core dumped)pid 44355 (httpd), uid 0: exited on signal 11 (core dumped)pid 44458 (httpd), uid 0: exited on signal 11 (core dumped)

in dmesg. And since I have recently been on Solaris x86 crash dump analysis training by Frank Hofmann, I decided to practice learned and take a look into core file ...

[root@isis apache2-horus]# gdb /usr/local/httpd/apache2-horus/bin/httpd \/usr/local/httpd/apache2-horus/httpd.core #0 0x283c1711 in engine_table_select () from /lib/libcrypto.so.3 (gdb) bt full #0 0x283c1711 in engine_table_select () from /lib/libcrypto.so.3 No symbol table info available. #1 0x283c11c1 in ENGINE_get_default_DH () from /lib/libcrypto.so.3 No symbol table info available. #2 0x283bbfc5 in DH_new_method () from /lib/libcrypto.so.3 No symbol table info available. #3 0x283bbf16 in DH_new () from /lib/libcrypto.so.3 No symbol table info available. #4 0x282d156a in ?? () from /usr/local/httpd/apache2-horus/modules/mod_ssl.so No symbol table info available. #5 0x282c1b6f in ?? () from /usr/local/httpd/apache2-horus/modules/mod_ssl.so No symbol table info available. #6 0x282c1c84 in ?? () from /usr/local/httpd/apache2-horus/modules/mod_ssl.so No symbol table info available. #7 0x282c3402 in ?? () from /usr/local/httpd/apache2-horus/modules/mod_ssl.so No symbol table info available. #8 0x080717f4 in ap_run_post_config (pconf=0x80ac018, plog=0x80da018, ptemp=0x80eb018, s=0x80adeb8) at config.c:91 pHook = (ap_LINK_post_config_t *) 0x9 n = 5 rv = 134849408 #9 0x08061b3a in main (argc=3, argv=0xbfbfeb18) at main.c:706 exit_status = 0 c = 0 '\0' configtestonly = 0 confname = 0x808916f "conf/httpd.conf" def_server_root = 0x8088e8c "/usr/local/httpd/apache2-horus" temp_error_log = 0x0 error = 0x9 <address 0x9 out of bounds> server_conf = (server_rec *) 0x80adeb8 pglobal = (apr_pool_t *) 0x80aa018 pconf = (apr_pool_t *) 0x80ac018 plog = (apr_pool_t *) 0x80da018 ptemp = (apr_pool_t *) 0x80eb018 pcommands = (apr_pool_t *) 0x80ae018 opt = (apr_getopt_t *) 0x80ae0b0 rv = 134930104 mod = (module **) 0x80adeb8 optarg = 0xbfbfeae0 "(뿿�\020\006\b" signal_server = (apr_OFN_ap_signal_server_t *) 0x809a380

Looks like Apache and dso module mod_ssl were compiled against /lib/libcrypto.so.3 which doesn't provide functions which mod_ssl requires such as ENGINE_get_default_DH, DH_new_method, DH_new etc. Solution was to install new libcrypto.so (libcrypto.so.4) from openssl-0.9.8e_1 package and to recompile apache again (I was using same configure options as before installing openssl-0.9.8e_1, just this time configure found this new version of libcrypto.so library and generated Makefiles with -L /usr/local/lib

Running nm on libcrypto.so.4 for safety's sake:

[bilke@isis ~]% nm /usr/local/lib/libcrypto.so.4 | \egrep 'ENGINE_get_default_DH|DH_new_method|DH_new'00089368 T DH_new00089384 T DH_new_method0008deb8 T ENGINE_get_default_DH[bilke@isis ~]%

After installation of recompiled Apache 2.2 first thing was to check what version of libcrypto.so mod_ssl was compiled against

[bilke@isis ~]% ldd /usr/local/httpd/apache2-horus/modules/mod_ssl.so/usr/local/httpd/apache2-horus/modules/mod_ssl.so: libssl.so.4 => /usr/local/lib/libssl.so.4 (0x28179000) libcrypto.so.4 => /usr/local/lib/libcrypto.so.4 (0x281b4000)[bilke@isis ~]%

Everything looks good, and Apache is not crashing anymore on SIGUSR1 (apachectl -k graceful)

RAID-0 (stripe) on solaris 10 using solaris volume manager

март 23, 2007

Motivation for this how to is partially implementation and excellent idea by Nemanja Lukic that it's several time faster to delete whole zone by issuing newfs than to delete all zone files using rm, so that each zone on our testing machine should be on separate FS. And it's not just about deleting zones; speed is significant factor too, and also usage of other FS tools like ufsdump, ufsrestore, fssnap etc, which is possible only if your zones are on separate file systems. So we have 4 zones and 3 hard drives (we actually have 4 hard drives, but we can use only 3 for this purpose, since first drive is system drive). We could of course create 2 slices on one drive, and one slice per remaining 2 drives, but that would be so uncool :). Cool stuff is to use Solaris volume manager, create RAID-0 (Stripe) metadevice/slice out of 3 hard drives, and then create 4 so called soft partitions within that metadevice. Using this approach way we can have exactly same size per soft partition, and all 3 hard drives will be used completely. Platform is brand new x4100, with 4 identical hard drives, 72 GB each; Operating System: Solaris 10 u3. Oh yes, if you are asking why I'm not using zfs, it's because software that is meant to be tested on zones is not supported (yet) on zfs :(.

First step is to prepare hard drives for raid 0. So we will create one big partition that will span across whole drive. Run format and select first drive:root@jsc-x4100-17:~# formatSearching for disks...doneAVAILABLE DISK SELECTIONS: 0. c2t0d0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2/sd@0,0 1. c2t1d0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2/sd@1,0 2. c2t2d0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2/sd@2,0 3. c2t3d0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2/sd@3,0Specify disk (enter its number): 1selecting c2t1d0[disk formatted]FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk fdisk - run the fdisk program repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name ! - execute , then return quitformat>pPARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk ! - execute , then return quitpartition> 0 Part Tag Flag Cylinders Size Blocks 0 home wm 1 - 8920 68.33GB (8920/0/0) 143299800Enter partition id tag[home]:homeEnter partition permission flags[wm]:wmEnter new starting cyl[1]: 1Enter partition size[143299800b, 8920c, 8920e, 69970.61mb, 68.33gb]: $partition> labelReady to label disk, continue? ypartition> qFORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk fdisk - run the fdisk program repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name ! - execute , then return quitformat> q

At this point we have disk 1 partitioned with slice 0 spanning from cyl 1 to the end of drive $. Instead of repeating same steps for disk 2 and disk 3, we will use Solaris prtvtoc to print disk's 1 partition table and fmthard to apply that table to disk 2 and 3 (all disks are identical).

root@jsc-x4100-17:~# prtvtoc /dev/rdsk/c2t1d0s2 > /var/tmp/prtvtoc.c2t1d0s2root@jsc-x4100-17:~# fmthard -s /var/tmp/prtvtoc.c2t1d0s2 /dev/rdsk/c2t2d0s2fmthard: New volume table of contents now in place.root@jsc-x4100-17:~# fmthard -s /var/tmp/prtvtoc.c2t1d0s2 /dev/rdsk/c2t3d0s2fmthard: New volume table of contents now in place.

Next step is to create replicas of metadevice state database. Metadevice database contains configuration and state of all metadevices and hot spare pools on the system. Since this information is important, we will be creating 3 replicas of this database, one per each drive. Metadevice state database can be created on any slice on hard drive, including slice that will later became part of metadevice. Also it's possible to create more than 1 replica of database per one slice. If one or more metadevice state databases fails, volume management compare other databases and based on majority consensus algorithm decides which replicas are valid. Command to create metadevice replicas is metadb.

root@jsc-x4100-17:~# metadb -a -f c2t1d0s0 c2t2d0s0 c2t3d0s0

-a is to add database replicas, and -f is to force adding (we have to force adding since there no metadevice state replicas exists). Use metadb -i to check state of metadevice replicas. In our case we can see that replicas are active a flag, and that they are up to date u flag

root@jsc-x4100-17:~# metadb -i flags first blk block count a u 16 8192 /dev/dsk/c2t1d0s0 a u 16 8192 /dev/dsk/c2t2d0s0 a u 16 8192 /dev/dsk/c2t3d0s0 r - replica does not have device relocation information o - replica active prior to last mddb configuration change u - replica is up to date l - locator for this replica was read successfully c - replica's location was in /etc/lvm/mddb.cf p - replica's location was patched in kernel m - replica is master, this is replica selected as input W - replica has device write errors a - replica is active, commits are occurring to this replica M - replica had problem with master blocks D - replica had problem with data blocks F - replica had format problems S - replica is too small to hold current data base R - replica had device read errors

metadb's -c switch determines how many replicas per slice we want. If we have had issued -c 3 on three slices we would end up with 9 metadevice state database replicas:

root@jsc-x4100-17:~# metadb -a -f -c 3 c2t1d0s0 c2t2d0s0 c2t3d0s0root@jsc-x4100-17:~# metadb -i flags first blk block count a u 16 8192 /dev/dsk/c2t1d0s0 a u 8208 8192 /dev/dsk/c2t1d0s0 a u 16400 8192 /dev/dsk/c2t1d0s0 a u 16 8192 /dev/dsk/c2t2d0s0 a u 8208 8192 /dev/dsk/c2t2d0s0 a u 16400 8192 /dev/dsk/c2t2d0s0 a u 16 8192 /dev/dsk/c2t3d0s0 a u 8208 8192 /dev/dsk/c2t3d0s0 a u 16400 8192 /dev/dsk/c2t3d0s0 r - replica does not have device relocation information o - replica active prior to last mddb configuration change u - replica is up to date l - locator for this replica was read successfully c - replica's location was in /etc/lvm/mddb.cf p - replica's location was patched in kernel m - replica is master, this is replica selected as input W - replica has device write errors a - replica is active, commits are occurring to this replica M - replica had problem with master blocks D - replica had problem with data blocks F - replica had format problems S - replica is too small to hold current data base R - replica had device read errors

Once we have metadevice state databases we will proceede with creating of metadevice. Command is metainit metadevice ame number of stripes width logical name for slice1 slice2 .... Number of stripes parameter determines how many stripes we want in metadevice. For example if number of stripes equals to 1, we are creating simple stripe, if it's equal to number of slices than we have concatenation. width specifies number of slices that make up a stripe. In our case number of stripes will be 1, and width 3

root@jsc-x4100-17:~# metainit d0 1 3 c2t1d0s0 c2t2d0s0 c2t3d0s0d0: Concat/Stripe is setup

To verify stripe and get some info we use metastat command

root@jsc-x4100-17:~# metastatd0: Concat/Stripe Size: 429835140 blocks (204 GB) Stripe 0: (interlace: 32 blocks) Device Start Block Dbase Reloc c2t1d0s0 16065 Yes Yes c2t2d0s0 16065 Yes Yes c2t3d0s0 16065 Yes YesDevice Relocation Information:Device Reloc Device IDc2t1d0 Yes id1,sd@SSEAGATE_ST973401LSUN72G_3710ZJ07____________3LB0ZJ07c2t2d0 Yes id1,sd@SSEAGATE_ST973401LSUN72G_3710ZGLR____________3LB0ZGLRc2t3d0 Yes id1,sd@SSEAGATE_ST973401LSUN72G_3710Z1DG____________3LB0Z1DGAnd now final steps is to create 4 soft partitons within metadevice d0. For creating soft partitions we are using metainit with -p switch and specifying size of soft partition as last parameter (in our example it's 204gb/4 = 51gb)root@jsc-x4100-17:~# metainit d1 -p d0 51gd1: Soft Partition is setuproot@jsc-x4100-17:~# metainit d2 -p d0 51gd2: Soft Partition is setuproot@jsc-x4100-17:~# metainit d3 -p d0 51gd3: Soft Partition is setuproot@jsc-x4100-17:~# metainit d4 -p d0 51gd4: Soft Partition is setup

you can verify this with metastat

root@jsc-x4100-17:home# metastatd4: Soft Partition Device: d0 State: Okay Size: 106954752 blocks (51 GB) Extent Start Block Block count 0 320864384 106954752d0: Concat/Stripe Size: 429835140 blocks (204 GB) Stripe 0: (interlace: 32 blocks) Device Start Block Dbase State Reloc Hot Spare c2t1d0s0 16065 Yes Okay Yes c2t2d0s0 16065 Yes Okay Yes c2t3d0s0 16065 Yes Okay Yesd3: Soft Partition Device: d0 State: Okay Size: 106954752 blocks (51 GB) Extent Start Block Block count 0 213909600 106954752d2: Soft Partition Device: d0 State: Okay Size: 106954752 blocks (51 GB) Extent Start Block Block count 0 106954816 106954752d1: Soft Partition Device: d0 State: Okay Size: 106954752 blocks (51 GB) Extent Start Block Block count 0 32 106954752Device Relocation Information:Device Reloc Device IDc2t1d0 Yes id1,sd@SSEAGATE_ST973401LSUN72G_3710ZJ07____________3LB0ZJ07c2t2d0 Yes id1,sd@SSEAGATE_ST973401LSUN72G_3710ZGLR____________3LB0ZGLRc2t3d0 Yes id1,sd@SSEAGATE_ST973401LSUN72G_3710Z1DG____________3LB0Z1DG

after this you can use soft partitions as you would be using any other partition, format them, mount, udsdump, ufsrestore etc ... for example:

root@jsc-x4100-17:~# echo y|newfs /dev/md/rdsk/d1/dev/md/rdsk/d1: 106954752 sectors in 17408 cylinders of 48 tracks, 128 sectors 52224.0MB in 1088 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)super-block backups (for fsck -F ufs -o b=#) at: 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,Initializing cylinder groups:.....................super-block backups for last 10 cylinder groups at: 105978656, 106077088, 106175520, 106273952, 106372384, 106470816, 106569248, 106667680, 106766112, 106864544repeat this step for /dev/md/rdsk/d2 /dev/md/rdsk/d3 and /dev/md/rdsk/d4. when you'r finished you can happily mount soft partitions into locations where zones will be installed.if you want to remove your metadevice/metadb use reversed steps:

first remove soft partitions from meta device

root@jsc-x4100-17:~# metaclear -p d0d4: Soft Partition is clearedd3: Soft Partition is clearedd2: Soft Partition is clearedd1: Soft Partition is clearedthen remove metadeviceroot@jsc-x4100-17:~# metaclear d0d0: Concat/Stripe is clearedand finaly metadbroot@jsc-x4100-17:~# metadb -f -d c2t1d0s0 c2t2d0s0 c2t3d0s0I hope that this was helpfull. Feel free to comment, and see you in my next blog which will probably be either about dtrace (basics) or x86 Crash Dump Analysis

sun is rising again

јануар 26, 2007

Danas je bio jako jako zanimljiv dan na poslu i imam potrebu da podelim ovo sa svetom :)

Sve je pocelo jutros kada sam uspeo da podesim teamware i submitujem neki code (testove koje sam pisao - tezak smor) za circa 15 minuta umesto ocekivanih 2 sata (do jaja) u centralni repozitorijum, nastavilo se sa tim da sam po prvi put u zivotu podesavao storage array (konkretno Store Edge T3) na jednom solaris serveru (o tome vishe u blogu na engleskom koji ce da usledi danas kasnije), a sve se zavrshilo sa fenomenalnim software all hands-om Richa Greena (EVP - Executive Vice President - Software - drugi ili treci chovek u Sun-u koji vodi jedno 26.000 ljudi), i zurkom koju je Sun organizovao posle toga :)

Richov all hands je bio fokusiran na 2 sveze, kljucne i neverovatno dobre vesti za Sun:

Prva vest :)

Ovaj ponedeljak (22.01.2007) smo potpisali strateshki ugovor sa Intelom! Od aprila-maja 2007 Solaris ce se certifikovano vrteti i na Intelovim white box-ovima koji chine 1/3 serverskog trzista! Ovo je bilo ne samo pozeljno nego i nepohodno posto je Intel posle udarca koji im je zadao AMD sa Opteronima, radio dosta na razvoju i kako stvari stoje Intel uskoro postaje ponovo HOT i Sun mora to da isprati da bi ostao konkurentan na trzistu servera :) S druge strane Sun ce da radi na tome da optimizuje brzinu Solarisa za Intel/Xeon. Najbolje od svega je sto ce Intel da gura Solaris kao mission critical OS za Intel/Xeon! Win Win situacija :) Pogledate Fobes-ov clanak za vishe informacija.

Druga vest je da je Sun u utorak (23.01.2007) objavio finansijske rezultate Q2FY07 (drugi quoter fiskalne godine 2007.) Rezultati su fenomenalni! Rast od 3 centa po deonici, sto je za 2 centa vishe od projektovanog! Sun je usao u crno posle 5 uzastopnih crvenih quotera. Odmah zatim verovatno kao posledica ovoga sledi to da investicioni fond KKR (Kohlberg Kravis Roberts & Co.) kupuje isti dan kada je ovo objavljeno mesto u odboru Sun-a za 0.7 milijardi dolara. Ove dve vesti povlache to da cena Sunovih akcija skache do $6.42!!! To je najvisha cena Sunovih akcija posle kraha dot com-a. I pisac ovih redova je zadovoljan kretanjem SUNW na NASDAQ-u posto je i sam vlasnik SUNW portfolia :)

Posle all-hands-a svi smo se kolektivno premestili na Sunovu zurku koja je bila organizovana u jednoj pivnici na drugom kraju grada. Na zurci je bio i Rich Green i Sun je organizovano pravo kockanje za lazne pare :) Svako je dobio po 4000 laznih dolara da potroshi na 3 stola (rulet, black jack i nesto sa kockama). Karte su delili, vrteli rulet itd pravi krupijei :) Ko nema srece u ljubavi ima u kocki se pokazalo tachim posto sam uspeo da "zaradim" preko 40000 laznih dolara za neka 3 sata i to uglavnom na ruletu i malo na black jack-u :) Glavni savetnik za kockanje mi je bio James - prevejani kockar i veteran iz Las Vegasa, amer kome sam ja nadenuo nadimak Sarge (sada ga tako zovu svi) posto je to chin do koga je dogurao kada je radio za US Air Force kao prevodilac za razgovore koje su Rusi, Slovaci, Poljaci, Cesi, mi i ostali sloveni vodili izmedju pilota i kontrolnog tornja. Vishe o njemu i njegovom spijunskom poslu u nekom od sledecih blogova. On mi je i objasnio kako se uopshte igra rulet i black jack i zahvaljujuci njemu  i tome sto sam se kladio uglavnom na crno :) sam zaradio 40k laznih dolara :) Na kraju se ispostavilo da ti dolari nisu beznachajni posto sam u zamenu za odredjenu kolichinu dobijash Sun majicu :) Tako sam i ja dobio jednu :) Inache ovo je i najkvalitetnija i najotmenija majica do sada, lichi na standardnu lacoste majicu (kragna, 2 dugmeta, isti materijal - mislim da se ovo zove polo majica), samo sto umesto aligatora ima izvezeno diskretno Sun i Sunov logo :) E da boja je navy blue :). Josh jedna dobra vest je da je majica velichine L i da sam uprokos toj cinjenici uspeo da upadnem u nju :) :) Malo zateze u predelu sisa i struka ali ne mnogo :) Josh par meseci i bice mi taman :)

Majica je ovaj model, samo skroz tamno plava (navy blue) i 2 dugmeta

Highlight veceri je bilo to sto sam snimio Richa Green-a negde u gomili, privremeno napustio rulet prishao mu i poceo sa nezgodnim pitanjima i sa par drskih sugestija :) Prvo pitanje je bilo zasto je napustio Sun 2004 godine. Tu je poceo da se izlachi sa: "Bio sam direktor Solarisa i to sam uspesno izveo, onda Java-e i to sam uspesno izveo, onda sam vodio parnicu protiv Microsoft-a i dobili smo 2 milijarde dolara, i posle toga nije bilo nista vishe da se uradi u Sun-u pa sam osnovao startup i dao otkaz". Na ovo sam ga prvo pitao koliko je bio dobar od tih 2 milijarde (morao sam :) :) ) na sta je ozbiljno rekao da nije dobio ni dolara od toga :) :) :) (ocekivano), a posle toga zasto se vratio u Sun kada je Scott McNealy napustio mesto CEO-a? Na to je usledilo nesto tipa: "Da budem iskren, Scott je brilijantan lik, napravio je Sun on nule, ali 26 godina je vodio firmu, to je dug period..." :) Diplomatski odgovor u stilu top managementa. Onda sam mu ja isprichao kako sam dosao u firmu pre 9 meseci kada je i krenulo da se rasplice (bivshi direktor software-a, njegov prethodnik, Johnny L, je dao otkaz isti dana kada sam ja primljen, onda mesec dana kasnije Scott, pa onda masovna otpustanja 2 meseca posle toga ...) na sta mi je Rich Green rekao smejuci se "It got to be you". Nisam imao srce da mu kazem koliko je zapravo u pravu i kako su sve firme za koje sam prethodno radio, kada bih ja dosao u iste venule i svenule u roku  od maksimalno godinu dana (webtomic, metos, sewa, wkt - wireless ...) :) :) :) :) Drske sugestije su nesto sto ne smem da disclosujem ali mogu samo reci da se u Sun-u postuje misljenje svakog radnika:)

To je sve za sada :) Bash lep dan :) Odoh sada da spavam posto je vec 4:06 a.m. :)

beryl + ubuntu edgy on dell latitude d600

децембар 19, 2006

I spent 5 hours trying to make beryl works on Dell Latitude D600 laptop's ATI mobility radeon series 9000. As you may imagine problem was not installing and setting up beryl but how to make Ati Radeon Mobility 9000 series to work properly with either open source radon driver using AIGLX or ATI proprietary driver fglrx using Xgl. Open source driver is more stable than ATI driver is, which means that you will be experiencing much less lockings and that behavior of applications that are using video output (e.g. mplayer) is will be more expected. However stability's trade off is speed, since fglrx driver is much faster than radeon. In this guide I will cover both radeon and fglrx installation and setup.

All credit for this goes to bunch of nicknames on ubuntu forums, especially to misha680, who actually fixed Xgl server so it's not crushing anymore on ATI Radeon Mobility 9000 series.

I decided to write this howto, because I was unable to find installation and setup guide on one place on the Net. So let's begin the begin:

open terminal and assume root privileges:

sudo su -

change to tmp dir as we are going to download some packages manually:

cd /var/tmp

add beryl and emerald ubuntu repository to sources.list and update packages list:

echo "deb http://ubuntu.beryl-project.org/ edgy main" >> /etc/apt/sources.listgpg --keyserver subkeys.pgp.net --recv 3FF0DB166A7476EAgpg --export --armor 3FF0DB166A7476EA | apt-key add -apt-get update

install beryl and emerald themes:

apt-get install beryl emerald-themes

from this point you can choose whether to proceed with flgrx/Xgl or radeon/AIGLX. Let's first see how it works with flgrx/Xgl (for radeon/AIGLX scroll down):

install fglrx driver:

apt-get install xorg-driver-fglrx

instead of installing xgl server from the ubuntu repository use misha680's patched xserver-xgl:

wget http://misha680.googlepages.com/xgl-edgy.zipunzip xgl-edgy.zipdpkg -i xserver-xgl_7.0.0.git.20060725-0ubuntu2.1.fglrx.r200_i386.deb # or whatever the name might be # in the time you are installingapt-get -f install # fix broken dependencies

switch from ati to fglrx video driver:

sed -i -e 's/"ati"/"fglrx"/' /etc/X11/xorg.conf

disable composite:

cat >> /etc/X11/xorg.conf << EOSSection "Extensions"   Option "Composite" "false"EndSectionEOS

next step is to create launcher script for starting xgl server. Create file /usr/bin/startxgl with the following contents:

#!/bin/shXgl :1 -fullscreen -ac -accel xv:pbuffer -accel glx:fbo &DISPLAY=:1exec dbus-launch --exit-with-session gnome-session

make it executable:

chmod +x /usr/bin/startxgl

create login session entry /usr/share/xsessions/xgl.desktop with the following contents:

[Desktop Entry]Encoding=UTF-8Name=XglComment=Start an Xgl SessionExec=/usr/bin/startxglIcon=Type=Application

Add beryl-manager in startup programs. Click on System -> Preferences -> Sessions, choose Startup Programs tab, click on Add and type beryl-manager, click OK and Close

That's it. I would suggest you to reboot now, since AFAIK rmmod radeon && modprobe fglrx can lead to system lock. After reboot choose Xgl session in GDM. Dandy, isn't it :) ?

Radeon/AIGLX:

First what we need to do is to make sure that we don't have fglrx drivers installed. It's mandatory to remove them before going further with installation and setup of AIGLX. To uninstall them execute in root shell:

apt-get remove xorg-driver-fglrxdpkg -P xorg-driver-fglrx

Edit your /etc/X11/xorg.conf and add following to Section Device:

Option "DRI" "true"Option "ColorTilling" "on"Option "EnablePageFlip" "true"Option "AccelMethode" "EXA"Option "XAANoOffscreenPixmaps" "true"Option "RenderAccel" "true"Option "AGPMode" "8"Option "AGPFastWrite" "on"

and this to Section Section "ServerLayout":

Option "AIGLX" "true"

Create file /etc/drirc with the following content:

<driconf>  <device screen="0" driver="r200">   <application name="all">    <option name="allow_large_textures" value="2" />   </application>  </device></driconf>

Add beryl-manager in startup programs. Click on System -> Preferences -> Sessions, choose Startup Programs tab, click on Add and type beryl-manager, click OK and Close

Restart X/GDM and give it a try. Slow, but smashing, isn't it :) ?

Sun Tech Days

новембар 14, 2006

Cao Drugari :),Danas sam prisustvovao OpenSolaris konferencijama u okviru Sun Tech Days-a ovde u Pragu, pa sam mislio da to (i ne samo to) podelim sa vama :) :) Uglavnom bilo je 6 predavanja (sve sam ih ispratio) i jedan odmor (gde sam jeo kolache i pio mleko :) :)1:10pm – 2:00pm     Building and Deploying OpenSolaris      Ed Pilatowicz2:10pm – 3:00pm     OpenSolaris Virtualization Technologies     Chris Beal3:00pm – 3:20pm  -  AFTERNOON BREAK3:20pm – 4:10pm     New Security Features in OpenSolaris     Darren Moffat4:20pm – 5:10pm     Solaris Performance, Observability & Debugging     Jim Mauro5:20pm – 6:10pm     Solaris and Linux Application Development     Peter Karlsson6:20pm – 7:10pm     OpenSolaris Kernel Debugging     Max Bruning, OpenSolaris Community MemberNeka predavanja su bila bash korisna (recimo Jim Mauro koji je jedan od pisaca knjige Solaris Internals) i koji je drzao predavanje Solaris Performance, Observability & Debugging gde nam je objasnjavao na koji sve nachin mozemo da izmerimo performanse opensolarisa/solarisa, tj kako da ih dinamicki tune-ujemo koristeci mdb, kmdb, dtrace, prstat, vmstats itd. Jim ima 50tak godina, iz New Jersey-a je i vidi se da je veliki entuzijasta sto se tiche ove teme. Nachin na koji nam je objasnjavao je bio takav da je svima drzao paznju do kraja predavanja, posle koga je usledio aplauz (jedini koji sam chuo danas :)

Josh jedno jako korisno predavanje je bilo OpenSolaris Kernel Debugging koje je odrzao nezavisni konsulatant Max Bruning. On nas je vodio kroz jedan problem koji je imao u karijeri: jedna video streaming aplikacija koja se vrti na opensolarisu stavlja socket u blocking stanje i to samo u jednom threadu i aplikacija se obesi i mora da se restartuje. To se desava samo po nekada i to u 12:00 a.m. :) Posle sat vremena objasnjavanja u kome je pokusao da nam predstavi tok misli u periodu od 7 dana (koliko je resavao problem) dosao je do zakljucka da je problem bio u tome sto je aplikacija koristila flow control na udp paketima koje je btw mulitcastovala, i setovala je na 0 nesto sto se zove maximum watter level, te je kernel ukljucivao flow control dokle god je velicina queua >= ovoj vrednosti (koja je 0), pa je na taj nachin flow control bivao uvek ukljucen tj socket je blokirao. Za nalazenje ovog buga je koristio mdb, kmdb, dtrace, truss itd. Zao mi je sto nisam bio bolje upoznat sa debug procesom na solarisu/opensolarisu, pa sam ovo predavanje ispratio recimo sa 70% razumevanja o cemu pricha :)

Lepo predavanje je bilo i predavanje Eda Pilatowicza (Senior Staff Eng. u OpenSolaris grupi u Sun-u) - Building and Deploying OpenSolaris. Koliko sam mogao da vidim iz predavanja i primera koje nam je pokazao, buildovanje opensolaris-a mi je izgledalo jako slichno builovanju freebsd-a :)

Ostala predavanja su bila vishe manja teoretska, a i ja sam trusted extensions, i virtualizaciju vec slushao u okviru transfera informacija pre par meseci od tech leadova tih projekata, pa je ovo sto sam chuo danas bilo vishe manje subset onog sto sam vec chuo.Konferencija ne bi bila konferencija da nisu delili razni promotivni materijal, izmedju ostalog Sun-ovu radnu stanicu chini mi se U20 sa 21" tft monitorom, usb flashove sa preinstaliranim belenixom (live opensolaris), opensolaris dvd-ove, trake za mobilni, majice itd. Racunar na zalost nisam dobio, tj nisu izvukli mene, ali sam zato dobio usb flash (1gb, belenix) na kojem je odstampan opensolaris logo - jako lepo izgleda, jednu opensolaris majicu (2XL - moja velichina :) :), jednu traku opensolaris (koju sam vec podelio :) i 8 dvd-ova opensolaris - original, svaka kutija ima 2 dvd-a, na prvom su belenix, shirlix (joerg shiling - kreator cdrecord-a), dokumentacija itd, a na drugom opensolaris source. Diskove sam dobio kada sam rekao da smo pre 2 dana osnovali Serbia OpenSolaris User Group :) 2 dvd-a i jedna traka su vec otisli, ali je zato tu 6 dvd-ova na raspolaganju, pa javite se ko hoce da mu donesem kada budem dolazio oko nove godine u Srbiju (a saljem i u London ako bude bilo potrebe :))

6 meseci

октобар 3, 2006
Danas se navrshilo tachno 6 meseci (kad pre prolete) od kakao sam pocheo da radim za Sun, a to u timu u kojem sam (Java System Compatibility - QA) znachi zavrshetak probnog rada, i terminacija ili nastavak ugovora ukoliko se obe strane sloze. To je takodje vreme kada se prolazi kroz ono sto sam do sada uradio (tzv performance review) i kakav sam utisak generalno ostavio :) Tako sam i ja danas bio sa mojim managerom u 1-na-1 koji mi je saopshtio par stvari o njegovoj percepciji mene i mog rada :)Prva neverovatna stvar koju je rekao je da sam do sada radio dobro. Haha. Znam, i meni je smeshno :) Pa zar uz sve ono oshljarenje, lenjost, hvatanja krivina, shatro nerazumevanje radnog zadatka (jezichka barijera :) i ostalih metoda koje sam nauchio u Srbiji ... Odmah sam pocheo da se branim da sam loshe radio, posebno na pocetku, te da sam lenj sam posto sam admin i ostalo posipanje pepelom :) Medjutim nije proslo, zakljucak je bio da sam dobro radio. Stvarno pocinjem da se pitam kako izgleda kada radish loshe :) Lichno bih isprobao, ali od ovoga kako sada radim loshije ne moze, tako da cu morati da zamolim kolegu Italijana da mi pomogne da utvrdim kako to izgleda kada se radi loshe :)Ostale pozitivne stvari su da brzo uchim (ko bi rekao) i da sam iskren u komunikaciji tj. da sam jedan od retkih u timu koji daje korisne feedbackove, drugim rechima objasnio mi je da postoje ljudi koji su u stanju da prichaju 15 minuta i nista ne kazu korisno, dok kod mene svaka rech nosi bit informacije. Ovo mislim da i jeste tachno posto sam stvarno pokusavao tako saopshtavam stvari. Dodushe ni konkurencija sto se tiche iznoshenja lichnog stava mi i nije jaka (chitaj: Chesi i Slovaci)Od negativnih stvari nasli su mi samo da kasnim na sastanke (to je istina) i da stavljam lichne stvari ispred firminih (ovo je ono kada sam ostao u Srbiji mesec dana i radio od kuce). Ponovo sam se posuo pepelom i priznao da je sve to tachno i da cu da se popravim sigurno :)U svakom sluchaju rekli su mi da sam prosao probno, i da ako zelim nastavljam da radim za stalno, sto sam i prihvatio :) A sada odoh da trazim ono sto mi po privilegiji pripada posle 6 meseci a to je besplatan Internet kuci (tj u stanu) :)

obuka za novog radnika

мај 12, 2006
Danas sam imao (posle meseci ipo dana rada) obuku za novog radnika :). Cekali su da se nakupi jedanaest ljudi da bi nam tako djuture odrzali obuku. Predavanje je bilo sednje smarajuce (obaveze, beneficije, organizacija, blah blah) dok na scenu nije stupio site manager koji je extra podigao atmosferu sa zajebancijom i malim introductionom koji je svaki radnik morao da da o sebi (tipa ko si, sta si, zasto si dosao u sun, sta volish u zivotu). Ono sto je ovde bilo zanimljivo je to da imamo 2 radinka koji su dosli preko bare da bi ziveli i radili u Pragu. Jedan je iz Canade (Ontario) a drugi iz samog srca sveta kompjutera - silicijumske doline tj California (San Hose). Ono sto me je zapravo odusevilo kod njih je da su oba ovde dosla sa istim razlogom: "I wanted to exachange quality of standard for quality of life". Ovaj jedan koji je proteklih 10 godina radio u San Hose-u nam je ispirichao o shesnaestosatnom radnom danu, spavanju na poslu posto vracanjem kuci nista ne bi postigao, o tome da je za proteklih 10 godina imao 3 meseca odmora sve ukupno itd. Do ovoga danas mi je bilo neshvatljivo da postoje ljudi koji bi dosli iz iz amerike u evropu da rade i zive, ali sada polako pocinjem da shvatam da nije sve u lovi i da je bitno da zivot ima i malo schmeka :) Od stranaca smo bili josh jedan ukrajinac i ja (ako ne rachunamo slovake koji su ovde domaci skoro :). Ukrajinac pored toga sto izlgeda kao Ron Perlman u filmu Der Name der Rose (Ime Ruze) ili Enemy at the Gates pricha engleski toliko loshe da to nije nije normalno :) :). Kao slag na tortu, za kraj uvoda je bilo organizovano takmichenje koliko poznajete firmu. Bila su tri pitanja i tri majice i ja sam shamelessly odgovorio na 2 i uzeo 2 majice :) :) :) To je sigurno zato sto kada sam bio u srednjoj u osnovnoj skoli nikada nisam imao dovoljno majica (i ostale garderobe :) pa sada grabim koliko stizem. A da, pitanja su bila kada je osnovana firma (lako: 1982) i kakavu frizuru ima CEO firme Jonathan Schwartz (ovo je bilo tesko: ponytail) Trece pitanje je bilo u vezi jave (ko je i kada napravio - to nisam imao pojma inache bih uzeo i trecu majicu bez blama :) Naravno nema nista dobro u zivotu a da ne postoji neki zajeb :) Obe majice koje sam osvojio su XL velichina :) Probacu da upadnem makar u jednu, a ako ne uspem organizujem kviz i delim prijateljima (u sushtini to ste vi koji citate moj blog, posto ne verujem da bi neko neko osim prijatelja / porodice (hi mom) i citao :))