Bitcoin Forum
June 26, 2024, 06:29:44 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 [419] 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 ... 570 »
8361  Bitcoin / Mining software (miners) / Re: CGMINER ASIC FPGA GPU overc monit fanspd RPC linux/win/osx/mip/r-pi 3.0.0 on: April 24, 2013, 02:34:33 PM
New version: 3.0.1, 25th April 2013

Windows and osx hotfix updates only. Linux users need not upgrade and I've left the 3.0.0 built linux tarballs in the top directory just to confuse people so they could come here and ask why there isn't a 3.0.1 build.


Human readable changelog:

- Fix for not being able to mine on a small number of pools with stratum on windows.
- Fix for crashes on any OSX machines with more than 1 GPU.


Full changelog:

- Bypass attempting to read and save binary files on OSX to avoid crashes on >1
GPU.
- Receive failures in recv_line should unconditionally fail.
- Use sock_blocks in api.c
- Use sock_blocks function for stratum send and receive.
- Create an OS specific sock_blocks function.
8362  Bitcoin / Mining software (miners) / Re: CGMINER ASIC FPGA GPU overc monit fanspd RPC linux/win/osx/mip/r-pi 3.0.0 on: April 23, 2013, 08:36:12 PM
CGMiner locks up Windows on exit whether I press 'q' or close the window, but only when my 6770 is mining. Any fix for this?

But seriously, any help with this?

Same problem here on Ubuntu 12.04. cgminer version 2.11.4.
After that /var/log/syslog shows these messages:
Code:
[13788.238066] divide error: 0000 [#1] SMP
[13788.238076] CPU 1
[13788.238079] Modules linked in: vesafb snd_hda_codec_hdmi snd_hda_codec_realtek kvm_amd kvm hid_generic microcode snd_hda_intel snd_hda_codec snd_hwdep fglrx(PO) serio_raw snd_pcm ipt_MASQUERADE iptable_nat amd_iommu_v2 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack snd_seq_midi video xt_LOG edac_core edac_mce_amd snd_rawmidi xt_tcpudp k10temp wmi rfcomm bnep bluetooth parport_pc ppdev snd_seq_midi_event snd_seq usbhid snd_timer hid snd_seq_device iptable_filter iptable_mangle ip_tables x_tables snd i2c_nforce2 mac_hid soundcore snd_page_alloc f71882fg lp parport r8169 pata_amd ahci libahci forcedeth
[13788.238163]
[13788.238170] Pid: 1605, comm: Xorg Tainted: P           O 3.5.0-27-generic #46~precise1-Ubuntu MSI MS-7578/NF750-G55 (MS-7578)
[13788.238180] RIP: 0010:[<ffffffffa03740a1>]  [<ffffffffa03740a1>] CIslands_FanCtrl_SetFanSpeedRPM+0x71/0x160 [fglrx]
[13788.238394] RSP: 0018:ffff880067ef1d08  EFLAGS: 00010246
[13788.238400] RAX: 00000000608f3d00 RBX: ffff880068405828 RCX: 0000000000000000
[13788.238405] RDX: 0000000000000000 RSI: 0000000000000080 RDI: ffff88006840580c
[13788.238409] RBP: ffff88006840580c R08: 00000000c05001a0 R09: ffff88006a09d608
[13788.238414] R10: ffff88006a09d608 R11: ffff880066af7808 R12: 0000000000000000
[13788.238418] R13: 0000000000000001 R14: 00007fffeef19d80 R15: 0000000000000000
[13788.238423] FS:  00007fd3830e1880(0000) GS:ffff88007fc80000(0000) knlGS:0000000000000000
[13788.238428] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[13788.238432] CR2: 00007f5b99a084d4 CR3: 000000007a4ed000 CR4: 00000000000007e0
[13788.238437] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[13788.238441] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[13788.238446] Process Xorg (pid: 1605, threadinfo ffff880067ef0000, task ffff8800689e1700)
[13788.238449] Stack:
[13788.238453]  ffff88006840500c ffffffffa02fd5c0 0000000000000000 ffffffffa02fd5d2
[13788.238461]  0000000000000000 ffffffffa031b9b9 ffff880063291ff0 ffff880067ef1db8
[13788.238469]  ffff880063291ff0 0000000000000000 ffff880068758000 ffffffffa0312c33
[13788.238476] Call Trace:
[13788.238684]  [<ffffffffa02fd5c0>] ? PHM_SetFanSpeedPercent+0x50/0x50 [fglrx]
[13788.238884]  [<ffffffffa02fd5d2>] ? PHM_SetFanSpeedRPM+0x12/0x50 [fglrx]
[13788.239078]  [<ffffffffa031b9b9>] ? PEM_SetFanSpeed+0x79/0xa0 [fglrx]
[13788.239274]  [<ffffffffa0312c33>] ? PEM_CWDDEPM_OD6_SetFanSpeed+0xd3/0x1c0 [fglrx]
[13788.239468]  [<ffffffffa030f169>] ? PP_Cwdde+0x109/0x180 [fglrx]
[13788.239599]  [<ffffffffa023d750>] ? firegl_pplib_cwddepm_call+0x1e0/0x250 [fglrx]
[13788.239609]  [<ffffffff81060100>] ? ns_capable+0x30/0x60
[13788.239739]  [<ffffffffa023d570>] ? firegl_pplib_iri_call+0x2f0/0x2f0 [fglrx]
[13788.239856]  [<ffffffffa0211c4d>] ? firegl_ioctl+0x1ed/0x250 [fglrx]
[13788.239964]  [<ffffffffa0201ade>] ? ip_firegl_unlocked_ioctl+0xe/0x20 [fglrx]
[13788.239974]  [<ffffffff81199d2a>] ? do_vfs_ioctl+0x8a/0x340
[13788.239983]  [<ffffffff8118833d>] ? vfs_read+0x10d/0x180
[13788.239991]  [<ffffffff8119a071>] ? sys_ioctl+0x91/0xa0
[13788.240000]  [<ffffffff816a4ae9>] ? system_call_fastpath+0x16/0x1b
[13788.240004] Code: 00 00 00 48 89 ef 48 8d 5d 1c e8 4b 88 ff ff 48 89 ef 31 d2 89 c6 42 8d 0c e5 00 00 00 00 69 f6 c0 27 09 00 89 f0 be 80 00 00 00 <f7> f1 ba 70 00 30 c0 41 89 c4 e8 c0 37 f9 ff 48 89 ef 83 e0 07
[13788.240077] RIP  [<ffffffffa03740a1>] CIslands_FanCtrl_SetFanSpeedRPM+0x71/0x160 [fglrx]
[13788.240250]  RSP <ffff880067ef1d08>
[13788.240256] ---[ end trace ab7d0505fc0ce5b0 ]---
[13788.284891] [fglrx:firegl_release] *ERROR* device busy: 1 0
[13788.284897] [fglrx] release failed with code -EBUSY
[13788.861813] init: lightdm main process (1598) terminated with status 1

My GPU is 7790 (Bonaire), AMD SDK version 2.8RC, graphic driver is 12.101.2.1 (the only one that seems to support my graphic card).
Is there anything I can do to prevent this error?

I'll check 3.0 now.
That's crashing in the driver code that measures temperature. Are you using another app to adjust temperature/fanspeed at the same time? Theoretically they can fight over it. Disabling the other app if that's so might help. Not making cgminer adjust fanspeed/gpuspeed might help, or disabling all control/monitoring entirely with --no-adl should help if all else fails.
8363  Bitcoin / Pools / Re: [400GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: April 23, 2013, 01:26:51 PM
I know Aseras and ckolivas spent some time trying to get Avalons to play with p2pool with mixed results I think. If Aseras is AFK then maybe ask ckolivas how it went?
I did not directly work with p2pool. It was a lot of work to bring the avalon code in line with mainline cgminer, and improve some the driver flakiness, which I have done thanks to the access provided by Aseras. I only tested it briefly on p2pool with stratum and saw it produce a truckload of duplicate shares and then p2pool go into some kind of death spiral trying to catch up with shares and then the avalon getting all angry at me. With fix protocol p2pool would continually run out of resources on the machine trying to process shares and the avalon would be just as pissed off at me. I've not played with avalon on p2pool since, but with enough time I may be able to instrument this problem more in the future. I have no firm working diagnosis, but vague ideas to do with large coinbases on avalon with its limited resources, and perhaps some kind of overflow in the stratum message from p2pool or resubmissions, or time to process shares or... There is a lot happening at the moment though  Undecided
8364  Bitcoin / Mining software (miners) / Re: CGMINER ASIC FPGA GPU overc monit fanspd RPC linux/win/osx/mip/r-pi 3.0.0 on: April 23, 2013, 12:34:05 PM
Quote
Q: I have multiple GPUs and although many devices show up, it appears to be
working only on one GPU splitting it up.
8365  Bitcoin / Hardware / Re: Avalon ASIC users thread on: April 23, 2013, 06:47:46 AM

thanks for confirming, but what's stopping cgminer inside avalon from using stratum with p2pool?

I have several cairnsmore boards mining on p2pool with stratum with cgminer 2.10.5, so a much older version than the one inside latest avalon firmware.

is this a problem of p2pool code or one of the version of cgminer inside avalon?
p2pool's stratum code. The version of cgminer inside avalon in the latest firmware is up to date now.

ckolivas,


cgminer is also older than the one on latest avalon firmware.

But if I point my Avalon to my p2pool without adding --fix-protocol I only get invalids.

How can it be?
I heard you the first time. Dunno, but the rest of the pools get it right yet it makes the avalon spit out heaps of dupes. I don't understand python so I wasn't about to go poking into the p2pool code. If/when I have more time on the avalons I can investigate further to see what p2pool is spitting out that it doesn't like, but for now, the code used by the cgminer on avalons is the same as the current cgminer code and not a single pool has a problem with them. I have some vague ideas but nothing conclusive... and have other tasks taking priority for obvious reasons.
8366  Bitcoin / Hardware / Re: Avalon ASIC users thread on: April 23, 2013, 06:21:12 AM

thanks for confirming, but what's stopping cgminer inside avalon from using stratum with p2pool?

I have several cairnsmore boards mining on p2pool with stratum with cgminer 2.10.5, so a much older version than the one inside latest avalon firmware.

is this a problem of p2pool code or one of the version of cgminer inside avalon?
p2pool's stratum code. The version of cgminer inside avalon in the latest firmware is up to date now.
8367  Bitcoin / Mining / Re: How many people stop mining in the summer? on: April 23, 2013, 04:13:29 AM
I wrote the --auto-fan and --auto-gpu features so I wouldn't have to stop mining in summer... Of course if you can't get the heat out of your house or it's in your own room or whatever, that's a different problem.
8368  Bitcoin / Mining software (miners) / Re: README files - what on earth are they? on: April 23, 2013, 12:49:36 AM
Subbed
8369  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overc monit fanspd RPC stratum linux/windws/osx/mip/r-pi 2.11.4 on: April 22, 2013, 09:40:06 PM
I did that during setup and I tried it again in case anything got knocked around. No joy... Sad

This problem is driving me nuts. I can't figure what it could be.

Thanks for your help and suggestions so far though.
README believe it or not, has faq about this...
8370  Bitcoin / Mining support / Re: Quick newbie question Windows mining on: April 22, 2013, 03:09:20 PM
Only one difference. You can use more GPUs on 64bit.

Performance and features etc. is identical. GPUs are 32 bit devices and mining is a mostly 32 bit operation.
8371  Bitcoin / Mining support / Re: ubuntu: cgminer as service (/etc/init.d) or as cron on: April 22, 2013, 10:55:14 AM
Launch cgminer via screen
8372  Bitcoin / Mining software (miners) / Re: CGMINER ASIC FPGA GPU overc monit fanspd RPC linux/win/osx/mip/r-pi 3.0.0 on: April 22, 2013, 09:45:17 AM
Working on repackaging it now...
Repackaged and reuploaded the source tarballs, sorry about the inconvenience.
8373  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overc monit fanspd RPC stratum linux/windws/osx/mip/r-pi 2.11.4 on: April 22, 2013, 05:25:03 AM
New version: 3.0.0, 22nd April 2013

No, not the BFL ASIC code yet. As soon as kanoi and/or I have one, we'll have a release that supports them which should be pretty soon. This is the first release officially supporting Avalon ASICs. Lots of work under the hood, but very little to GPU mining.


Human readable changelog:

- Avalon support. Note this still uses the old serial-usb interface but is far more reliable than the earlier firmware release versions. If I get a lot more time to hack on an avalon I will update the code to use direct USB the way we're planning for BFL ASICs.
- Drop all CPU mining code.
- Changed default worksize to 256 for scrypt mining.
- Fixed a rare crash on stratum pool drop outs when built with older libcurls.
- Fixed potential deadlocks.
- Fixes for some flaky hardware that would frequently drop stratum connections.
- Fixed detection of solving a block, and restart work if we know we solved it.
- Lots more readme updates.
- That's all.


Full changelog:

- Remove all CPU mining code.
- compile on win32
- Update SCRYPT README with improved hashrates for 7970.
- Use copy_time helper throughout cgminer.c
- Provide wrappers for commonly used timer routines with API stats.
- Avoid one cgtime call in sole_hash_work.
- Fulltest is true if value is <= target.
- Use system host to endian functions for clarity in fulltest.
- Provide endian_flipX functions to avoid special casing big endian in cgminer.c
- Provide a flip128 helper to simplify big endian flipping.
- Use flip helpers to simplify code for calculation of midstate.
- Use flip32 function instead of open coding it in gen_stratum_work.
- Move util.c exports to util.h
- Fix warning on building avalon on win32
- Use cgtime in driver-avalon.c
- Use cgtime in driver-icarus.c
- Use cgtime in driver-bitforce.c
- Use cgtime in logging.c
- Use cgtime in usbutils.c
- Use cgtime in driver-opencl.c
- Use cgtime wrapper in driver-modminer.c
- Use cgtime in driver-ztex.c
- Use cgtime in compat.h
- Use cgtime instead of gettimeofday in fpgautils.c
- Replace gettimeofday usage in cgminer.c with cgtime
- Create a cgminer specific gettimeofday wrapper that is always called with tz
set to NULL and increases the resolution on windows.
- Add high resolution to nmsleep wrapper on windows.
- Set default ocl work size for scrypt to 256.
- define le32toh if needed
- fliter out the wrong result from adjust fan code
- compile avalon driver on win32 and win64
- Restart threads on the rare chance we found the block ourselves.
- Add more FAQs about crossfire.
- Set last device valid work on adding device.
- Increment last device valid work count in submit_nonce to cover scrypt.
- Set opt_scrypt drv max diff for correctness.
- Make scrypt submission use the submit_nonce code, with nonces matching
endianness.
- Do testing for HW errors on submit nonce for both scrypt and sha.
- Increment hardware error count from the one site.
- Rename scrypt regenhash function for consistency.
- Add new best share info to verbose logging.
- Add notice for when network diff is changed.
- Convert error getting device IDs in ocl code to info log level only since
multiple platforms may be installed and the error is harmless there.
- Unnecessary extra array in ocl code.
- Further driver FAQs.
- Add MAC FAQ.
- Add more FAQ details.
- Check for work restart after disable in the hash queued work loop since it may
be a long time before we re-enable a device.
- Unconditionally test for many wrong results on avalon and reset to avoid
passing a corrupt avalon result to temperature code.
- build out of source dir
- Set device_diff for queued work or there will be no diff1 share count.
- Only reset an avalon device with no results when there are no results
consecutively.
- More FAQs.
- More FAQs.
- Cleanup when stratum curl fails to initialise.
- Avoid applog in recalloc_sock.
- Avoid applog under stratum_lock in recv_line.
- Avoid applog under stratum_lock in __stratum_send.
- Put spacing around locking in util.c for clarity.
- Avoid applog under cg_wlock.
- Put spacing around locking code for clarity.
- Avoid applog under pool_lock.
- Avoid more recursive locks.
- Avoid applog while ch_lock is held.
- Avoid recursive locks in fill_queue.
- Variable is already initialised in global scope.
- More GPU faqs.
- More README faqs.
- Yet more README faqs.
- Add more faqs to README.
- Merge branch 'master' into avalon-dev
- Wrap result wrong tests in avalon scanhash in unlikely() and only consider a
hash count of zero wrong if a restart wasn't issued.
- avalon: if result_wrong >= get_work_count jump out the read loop
- Fix warning on 32bit.
- Fix warning on 32bit.
- Avoid curl_easy_cleanup on old curl versions in setup_stratum_curl as well.
- fix the fan control on max temp2/3
- for some reason network down. one simple cgminer command:   "cgminer -o
127.0.0.1:8888 -O fa:ke --avalon-options 115200:32:10:50:256" can idle the
avalon for safe power and protect chip
- if hash_count == 0; reinit avalon, fix the 0MHS bug use the max value of temp1
and temp2 for fan control
- Reinstate the matching_work_count per subdevice on avalon based on the work
subid.
- Avalon driver is missing the drv_id.
- Rationalise and simplify the share diff and block solve detection to a common
site.
- Rationalise and simplify the share diff and block solve detection to a common
site.
- Make the avalon array size a macro.
- Use replacement of work items in the avalon buffer as needed instead of
flushing them.
- Reinstate wrong work count to reset avalon regardless and display number of
wrong results.
- Revert "The result_wrong measurement for avalon is continually leading to
false positives so remove it."
- select() on serial usb in avalon does not work properly with zero timeout.
- The result_wrong measurement for avalon is continually leading to false
positives so remove it.
- Revert "Use only 2 queued work arrays in avalon."
- Use no timeout on further reads in avalon_gets
- Do sequential reads in avalon_get_reset to cope with partial reads.
- Show read discrepancy in avalon_get_reset.
- Reuse avalon_get_work_count variable.
- Check for AVA_GETS_RESTART when deciding if avalon has messed up.
- Make the detection of all wrong results on avalon much more conservative to
avoid false positives on work restarts.
- Show error codes on select and read fail in avalon.
- If we get a restart message in avalon_gets still check if there's a receive
message to parse first without a timeout before returning AVA_GETS_RESTART.
- Use only 2 queued work arrays in avalon.
- avalon_gets is always called from the one call site so inline it.
- The read_count is unused by the avalon get result code and no longer required
for avalon reset so simplify code removing it.
- Use a separate avalon_get_reset function for resetting avalon instead of using
avalon_get_result.
- The current hash count returned by avalon scanhash is just an obfuscated
utility counter so make it explicit.
- Check for a restart before a timeout in message parsing code in avalon.
- We should check for a restart message before checking for a timeout in avalon
scanhash.
- Store the subid for the work item in avalon.
- usbutils more stats for bflsc
- Fix record_temp_fan function in avalon driver. Patch by Xiangfu
<xiangfu@openmobilefree.net>
- Remove inappropriate memset of struct avalon result which was corrupting fan
values.
- Fix warning with no curses built in.
- Add API support for Avalon.
- Only do_avalon_close once on multiple errors.
- Reset the result_wrong count on block change in avalon scanhash to prevent
false positives for all nonces failed.
- Small timeouts on select() instead of instant timeout increase reliability of
socket reads and writes.
- Only get extra work in fill_queue if we don't have any unqueued work in the
list.
- Small timeouts on select() instead of instant timeout increase reliability of
socket reads and writes.
- Rotate the avalon work array and free work on AVA_SEND_BUFFER_EMPTY as well.
- Only get extra work in fill_queue if we don't have any unqueued work in the
list.
- Don't get any work if our queue is already full in avalon_fill.
- Differentiate socket closed from socket error in recv_line.
- Differentiate socket closed from socket error in recv_line.
- Free avalon->works in the event we call avalon_prepare on failure to
initialise.
- Fix warnings.
- Create an array of 4 lots of work for avalon and cycle through them.
- Remove unused per unit matching work count for avalon.
- Rename the confusing avalon_info pointer.
- Simplify avalon scanhash code using the new find_queued_work_bymidstate
function. Partially works only.
- Members of cgpu_info for avalon are not meant to be in the union.
- Use correct struct device_drv for avalon_drv.
- cgminer.c -S help to only say Icarus
- Check enough work is queued before queueing more in avalon_fill.
- Actually put the work in the avalon queue.
- Rneame avalon_api to avalon_drv.
- First draft of port of avalon driver to new cgminer queued infrastructure.
- Add Makefile entry for driver-avalon.
- Add configure support for avalon.
8374  Bitcoin / Mining / Re: 3 x 7970s - CGminer tweak advice on: April 22, 2013, 01:56:56 AM
-g 1 is for 1 card... change this to however many cards you have.
No it's not. At least you're trying to help...
8375  Bitcoin / Mining software (miners) / Re: CGMINER GPU FPGA overc monit fanspd RPC stratum linux/windws/osx/mip/r-pi 2.11.4 on: April 21, 2013, 02:23:37 PM
Hopefully at least one of these is going to you guys.
I hope so too man. I have not been contacted, but they do have my address. I would not keep it a secret if do receive something.
Here's the answer:
http://www.youtube.com/watch?v=_6mmTRheUzg

In short, no, I'm not one of the first it seems.
But probably not long after based on this...:

Yes, Conman and Kano should be getting their units next week as well as Bitminter, among a number of others.
8376  Bitcoin / Pools / Re: Ozcoin: BTC Site OFFLINE - *** If you are mining BTC you are donating. on: April 21, 2013, 10:05:06 AM
Making coinbase payments has ~nothing to do with a pool's payout granularity policy. Ironically, the best known coinbase paying pool (eligius) produces a far smaller amount of small payments than many large pools which will happily make daily payments of 0.01 btc.  You can still keep the overall bulk of the coins in coinbase payments while still batching small payouts— the result is that pool only ends up carrying the sum of yet-unpaid small miners instead of a big wallet.
Ah that's nice, sorry I was under the impression it would always pay out per block solve like p2pool seems to.
8377  Bitcoin / Hardware / Re: Butterfly Labs Jalapeno Unboxing on: April 21, 2013, 07:38:05 AM
Yes, Conman and Kano should be getting their units next week as well as Bitminter, among a number of others.
Well that's reassuring news, thanks. I haven't heard a thing in months directly so I've been in the dark as much as anyone else.
Grats! Will cgminer support multiple "Jalapeno"  devices at the same time?
Of course.
8378  Bitcoin / Hardware / Re: Butterfly Labs Jalapeno Unboxing on: April 21, 2013, 07:10:34 AM
Yes, Conman and Kano should be getting their units next week as well as Bitminter, among a number of others.
Well that's reassuring news, thanks. I haven't heard a thing in months directly so I've been in the dark as much as anyone else.
8379  Bitcoin / Pools / Re: A guide for mining efficiently on P2Pool, includes FUD repellent and FAQ on: April 21, 2013, 07:05:43 AM
p2pool is effectively a different block chain and cgminer stores a database of blocks as they come out so it would confuse it to run p2pool and regular btc mining. Provided p2pool is the primary pool, and you set failover-only it still should be okay.
8380  Bitcoin / Pools / Re: Ozcoin: BTC Site OFFLINE - *** If you are mining BTC you are donating. on: April 21, 2013, 06:58:18 AM
Coinbase payments pollute the block chain with small miners.
Pages: « 1 ... 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 [419] 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 ... 570 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!