Posts by Skip Da Shu

1) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 44597)
Posted 22 Jun 2012 by Skip Da Shu
Post:
hello again,

im having this problem, but the other way roud :)

BOINC detects my GPU (nVidia GT 220) but its unable to use it.

Currently i have SETI@home CPU tasks disabled, and only GPU tasks enabled, and i cant process any GPU WU.

Im currently running boinc 7.0.24 from official repo, under Ubuntu 12.04

any idea?


Something to at least look at in /etc/boinc-client/cc_config.xml:

--><cc_config>
<options>
<use_all_gpus>1</use_all_gpus>
<ignore_cuda_dev>0</ignore_cuda_dev>
<max_file_xfers>8</max_file_xfers>
<max_file_xfers_per_project>5</max_file_xfers_per_project>
</options>
2) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 38821)
Posted 7 Jul 2011 by Skip Da Shu
Post:
UPDATE: Desktop converted to PinguyOS (Ubuntu/Mint derivative), "server" remains Xubuntu v10.04, others all converted to #! (crunchbang) linux (Debian derivative). Above all seems to still apply. In one quick attempt in one #! machine I couldn't get dual ATI cards running and now don't have my ATI cards doing BOINC for the time being. Dual Nvidia cards worked.
3) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 38820)
Posted 7 Jul 2011 by Skip Da Shu
Post:
First off - IF you are running BOINC under Linux ...


I'm a newby in ubuntu (2 days) and I'm not so good in english but I'm not a newby in Boinc.
First aff all thank you for your help I've sovled my problem with the "sleep" line and the "xhost" line and sorry for my terible english.
One thing is not clear for me ... if I restart the session the isn't recognized ... I've to give the command sudo /etc/init.d/boinc-client restart every time I start an Ubunt session?


Yes, unfortunately at this point in time, if you logoff and log back in you must restart BOINC (ATI cards only). You will need to leave the user logged in/on.

PS: Your English is WAY better than my Italian(none) or Spanish(little, Tex-Mex).
4) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 37512)
Posted 17 Apr 2011 by Skip Da Shu
Post:

So, thank you for keeping up the spirit(s) to address this nastiness.

No Steffen... thank YOU for being a major part of the Debian BOINC support team!

Now we only need a way to perform the initialisation of CUDA and friends without an installation of X at all.

To use my favorite saying... 'Unencumbered by any actual knowledge'...
I was under the impression that starting up of the drivers w/o X would require a not-minor change in the proprietary drivers from ATI & Nvidia.

Do you think there is any other way around this... theoretically anyway?
5) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 37510)
Posted 17 Apr 2011 by Skip Da Shu
Post:
Some excellent news from Steffen(Devian boinc dev)!

From above post and also in in the boinc dev mailing list.


Hello, Skip had sent me a pointer to his summary on the BOINC forums on
the matter and I have followed your all's instructions. So, when
6.12.23+ comes out, this should also auto-detect your graphics card.
Many thanks to you all.

Steffen
6) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 37155)
Posted 12 Mar 2011 by Skip Da Shu
Post:
Fixes personally confirmed to work on Ubuntu, Xubuntu, Mint, PinguyOS versions based on 9.xx and 10.xx. Also reported to work on Archlinux and Debian.

I've not been able to get GPU card crunching working onthe current #! (Crunchbang) yet. If anyone has GPU card working on #! please let me know as I'd really like to try this distro on my dedicated crunchers.

Thanx, Skip
7) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 37154)
Posted 12 Mar 2011 by Skip Da Shu
Post:
I see I have used sleep 6 and sleep 9 in different examples.

Sleep 6 is sufficient for nearly any machine that has a processor faster than an Intel P4 2.5GHz or a AMD XP2500+ unless you have an extremly large number of things starting up at boot. For those older machines try using sleep 9 instead of sleep 6.
8) Message boards : GPUs : Issues with an ATI Radeon HD 2400 XT (Message 36498)
Posted 21 Jan 2011 by Skip Da Shu
Post:
Created a new thread under GPUs with all the details on the various fixes for the two major Linux GPU crunching issues I've come across, including the one below.

See http://boinc.berkeley.edu/dev/forum_thread.php?id=6307
9) Message boards : Questions and problems : No usable GPUs found (Message 36497)
Posted 21 Jan 2011 by Skip Da Shu
Post:
Sorry to bring that posting up again, but just wanted to confirm that this problem also exists for archlinux and your solution works like a charm!!


Thanx, That's REALLY cool to hear. At the request of local moderator I've created a thread with all the details on this topic in a new thread: http://boinc.berkeley.edu/dev/forum_thread.php?id=6307
10) Message boards : GPUs : Debian/Ubuntu/Mint/Derivatives - GPU recognition fixes (Message 36496)
Posted 21 Jan 2011 by Skip Da Shu
Post:
First off - IF you are running BOINC under Linux as it's installed from the Berkeley site (executed out of /home/user/BOINC/) then little if any of this will apply.

IF you are running BOINC as Debian (Ubuntu, Mint, Archlinux, other derivatives) installs it (executed out of /var/lib/boinc-client) then this should apply.


Preface, My environment:

1.All of the machines I've got a GPUs in that are doing BOINC crunching are now running Ubuntu 64b OS. I've got the versions down to a narrow range from v9.04 thru v10.04 (soon to add v10.10).
2.All of the machines are running BOINC v6.10.58 installed via Synaptic Package manager and have the BOINC-DEVs PPA repository installed along with 'Backports' as the source for this version.
3.I am using a couple of different proprietary drivers. All were originally downloaded and installed manually.
(a)Starting with (I believe) Ubuntu v10.10 the Nvidia drivers in Synaptic are probably current enough to use them but this depends on the project.
4.My Nvidia drivers are currently all v195.36.15 and except one which is v260.19.20.
5.My ATI drivers are v10.8, v10.9 and v10.10 as of now.


Optional Install of 'Backports' and the BOINC-DEV's PPA repository (recommended):

1.From the top Ubuntu menu: System → Administration → Synaptic Package Manager
2.From the top Synaptic menu: Settings → Repositories
3.Go to the tab labeled “Updates” and enable Unsupported updates (Karmic/Lucid backports).
4.Go to the tab labeled “Other Software” and click the “Add” button at the bottom of this panel.
5.Paste the appropriate line from below into the “apt line:” box that is presented
6.For v9.10 use → deb http://ppa.launchpad.net/pkg-boinc/ppa/ubuntu karmic main
7.For v10.04 use → deb http://ppa.launchpad.net/pkg-boinc/ppa/ubuntu lucid main
8.For others substitute in the appropriate release name (Maverick?).
9.Doing it this way you'll get the appropriate security key installed automajically.



Issues & Solutions:

ISSUE #1: BOINC starts before GDM can finish getting up and running. This makes the BOINC think the video card is absent. This can occur with both ATI and Nvidia cards but I first found it on Nvidia card equipped machines. If your GPU is recognized after you restart BOINC but doesn't find the card right after a reboot this is likely your problem. This can be a bit sporadic on some machines where it'll find it after one reboot but not another. If this is the only problem it'll find it every time after a restart of just BOINC.
sudo /etc/init.d/boinc-client restart

See history here: https://bugs.launchpad.net/ubuntu/+source/boinc/+bug/414244

FIX #1: My fix was to add a delay into the start-up script so that GDM/X has a chance to have drivers fully loaded. This solution inserts a 6 second delay in the boinc start-up script which allows ample time for the driver to be available on all machines tested to date.
(a)Edit the start-up script file /etc/init.d/boinc-client with sudo gedit /etc/init.d/boinc-client.
(b)Find this function code and add the line “sleep 6” where it's shown here:
start()
{
  log_begin_msg "Starting $DESC: $NAME"
  if is_running; then
    log_progress_msg "already running"
  else
    sleep 6
    start-stop-daemon --start --quiet --background --pidfile $PIDFILE \
      --make-pidfile --user $BOINC_USER --chuid $BOINC_USER \
      --chdir $BOINC_DIR --exec $BOINC_CLIENT -- $BOINC_OPTS
  fi
  log_end_msg 0

  if [ "$SCHEDULE" = "1" ]; then
    schedule
  fi
}


FIX #2: Modify the start-up sequence of the /etc/init.d/boinc-client script.
(a)I got this from gfarmerfr an ATI/Ubuntu user on the DNETC forums after telling him how I was putting the delay in. I haven't actually tried it. It worked for gfarmerfr and he knows what he's doing. I believe this was tested on v9.10. In many ways this is a better fix but I was already into the script for other reasons (adding fan speed control) so I stuck with my sleep 6 version.
(b)Execute the following two commands to move BOINC start-up to the end of start-up processing:
sudo update-rc.d -f boinc-client remove
sudo update-rc.d boinc-client defaults 99




ISSUE #2 (ATI Only): ATI Driver / X-session can not be accessed by user “boinc” results in GPU not found with Hdxxxx series cards (this may have started with v10.04 of Ubuntu).

See history here: https://bugs.launchpad.net/ubuntu/+source/boinc/+bug/587426


FIX #1 (recommended one):
(a)Do not apply this fix without first having applied one of the delay BOINC fixes above.
(b)By default the user “boinc” does not have access to the x-session and therefore the ATI driver that is installed (Proprietary v10.x driver from AMD site).
(c)After multiple attempts at fixing this, the following line added right after the sleep 6 (see issue #1) will give you a work around solution. A permanent fix will require changes in the ATI drivers.
xhost local:boinc &> /dev/null

(d)This will allow user “boinc” access to the x-session and therefore the ATI drivers.
(e)You will have to restart boinc after you've logged in from a cold start or reboot with:
sudo /etc/init.d/boinc-client restart

(f)You will have to leave the machine logged on.
(g)The credit for this fix really goes to gfarmerfr


FIX #2 (the first one I tried & tested):
(a)Edit the file /etc/default/boinc-client with sudo gedit /etc/default/boinc-client.
(b)Change the line
BOINC_USER="boinc"
to be
BOINC_USER=”root”
.
(c)This has some security risks that would not normally be tolerated on a linux system because BOINC will now be running with root privileges and a malicious task could destroy your system.
(d)I'm not sure of this (bad memory installed in the unit writing this) but I believe you will still have to restart BOINC as in steps f and g above.


FIX #3 (I don't think I ever tested this one but it should work and has been reported as such):
(a)Same as FIX #2 but instead of running BOINC as root set it to run as your user id.
(b)So (see (b) above) change it to
BOINC_USER=”skip”
instead (obviously, I hope, use your user id here not mine).
(c)Change the directory /var/lib/boinc-client and everything under it to be owned by your user id. See man chown. This should be something like:
sudo chown -R skip: /etc/var/lib/boinc-client.


ISSUE #2, FIX #1 addendum:
(a)One person reported that this will get rid of the need for a restart and to remain logged in but it didn't work for me.
(b)It did buy me one thing. A GPU WU that was in progress when a machine was restarted will start up again after the restart and seems to finish OK. I say “seems to” because I only tested this on one project. However another new GPU WU didn't start up for me, instead the application reported errors finding threads and/or devices for the WU (two different projects did this). There are some security issues around this. However here's all it is if you want to give it a try.
(c)Create or Modify /etc/gdm/custom-conf with sudo gedit /etc/gdm/custom-conf adding the following lines:
# to allow user "boinc" to connect prior to log on
[xdmcp]
Enable=true

(d)Modify /etc/init.d/boinc-client to include an additional line AFTER the sleep 9 from issue #1, fix #1 and BEFORE the
issue #2, fix #1 xhost local:boinc line so your start-up script now has the following in it:
 else
    sleep 9
    export DISPLAY=:0.0 
    xhost local:boinc &> /dev/null
    start-stop-daemon --start --quiet --background --pidfile $PIDFILE \
      --make-pidfile --user $BOINC_USER --chuid $BOINC_USER \
      --chdir $BOINC_DIR --exec $BOINC_CLIENT -- $BOINC_OPTS


Also cross-posted to: http://dcteam.guru-mountain.com/dcteam/forums/viewtopic.php?f=14&t=45.
11) Message boards : GPUs : Issues with an ATI Radeon HD 2400 XT (Message 36475)
Posted 19 Jan 2011 by Skip Da Shu
Post:
Are you running boinc from the Debian/Ubuntu repositories (runs out of /var/lib/boinc-client/) or are you running the setup as download from here (runs out of /home/user/BOINC/)?

If the later I can't be of any help as this problem as I know it pertains to the Debian/Ubuntu setup.

If the former then take a look here for history and current work around:
https://bugs.launchpad.net/ubuntu/+source/boinc/+bug/587426/comments/31

Tweaking the following in the /etc/init.d/boinc-client start up script and then restarting boinc after logging onto the machine allows it to detect and continuously run WUs on my 4850, 5830 & 5850 cards.

Here's the start function as I've modified it (the 3 lines after 'else' and before the 'start-stop-daemon'):

start()
{
  log_begin_msg "Starting $DESC: $NAME"
  if is_running; then
    log_progress_msg "already running"
  else
    sleep 9
    export DISPLAY=:0.0 
    xhost local:boinc &> /dev/null 
    start-stop-daemon --start --quiet --background --pidfile $PIDFILE \
      --make-pidfile --user $BOINC_USER --chuid $BOINC_USER \
      --chdir $BOINC_DIR --exec $BOINC_CLIENT -- $BOINC_OPTS
  fi
 


I am using the v6.10.58 of boinc out of the BOINC-DEV PPA lib. I believe you can get the url to add to software sources or synaptic package manager from this site: http://www.ubuntuupdates.org/packages/show/210004


PS: Looks like Ageless and I were posting at the same time. The post he links to (mighty nice of him) is the original solution and works fine. The only thing this one adds (with the export) was an attempt to not have to restart after logging on. It works in as far as any previously started WUs will pick up and continue but it doesn't seem to be able to find the HDxxxx card again when a new WU starts unless you've restarted boinc (sudo /etc/init.d/boinc-client restart) after logging on.

PPS: There is one other option that I did test but frankly it introduces potential security issues. Might be good for a quick test though. Edit the file /etc/default/boinc-client and change the parameter for BOINC_USER
from
BOINC_USER="boinc"
to
BOINC_USER="root"

Restart and boinc should find your HDxxxx card but then u have boinc running as root.

Hmmmm, thinking about this a bit more...
Setting BOINC_USER="skip" should work also IF I changed the ownership of /var/lib/boinc-client and it's contents to "skip" and then set BOINC up to start or restart after I logon... in theory anyway.
12) Message boards : Questions and problems : All GPU WU failing after ATI Catalyst 10.8 upgrade (Message 34706)
Posted 16 Sep 2010 by Skip Da Shu
Post:
Heck, I'd just like BOINC to see both ATI cards (non-xfire). For now the 2nd card is moved back to the machine I'd robbed it from. I was told that if I xfire them Collatz will run on them both but that wasn't really my goal.

However, since BOINC doesn't even report the 2nd card isn't that a BOINC issue? Any chance that re-installing Cat 10.8 while BOTH cards are installed would make any difference?

From my post on Collatz but also posted on DNETC:

I've got a machine running Ubuntu v10.04 x64. With fglrx installed from the repos a HD4850 works fine.

With fglrx removed and catalyst v10.8 installed from the AMD site it works fine with a HD5830 in it once you add gfarmerfr's fix into the startup script:
xhost local:boinc &> /dev/null


When I plugged in a 2nd HD5830 boinc is not seeing it:

12-Sep-2010 21:50:45 [---] Starting BOINC client version 6.10.58 for x86_64-pc-linux-gnu
12-Sep-2010 21:50:45 [---] Config: use all coprocessors
.
.
.
12-Sep-2010 21:50:45 [---] OS: Linux: 2.6.32-24-generic
12-Sep-2010 21:50:45 [---] Memory: 3.86 GB physical, 3.72 GB virtual
12-Sep-2010 21:50:45 [---] Disk: 33.00 GB total, 27.71 GB free
12-Sep-2010 21:50:45 [---] Local time is UTC -5 hours
12-Sep-2010 21:50:46 [---] ATI GPU 0: ATI Radeon HD5800 series (Cypress) (CAL version 1.4.792, 1024MB, 1915 GFLOPS peak)
12-Sep-2010 21:50:46 [Collatz Conjecture] Found app_info.xml; using anonymous platform

lspci shows both cards:
01:00.0 VGA compatible controller: ATI Technologies Inc Device 689e
01:00.1 Audio device: ATI Technologies Inc Cypress HDMI Audio [Radeon HD 5800 Series]
02:00.0 VGA compatible controller: ATI Technologies Inc Device 689e
02:00.1 Audio device: ATI Technologies Inc Cypress HDMI Audio [Radeon HD 5800 Series]
13) Message boards : Questions and problems : No usable GPUs found (Message 34659)
Posted 13 Sep 2010 by Skip Da Shu
Post:
The problem, at least with my v10.04 Ubuntu x64 and the fglrx driver is that the user "boinc" doesn't have access to the x-session. You can fix this by adding:

xhost local:boinc

into your startup script: /etc/init.d/boinc-client

right after the start function as below:

start()
{
  log_begin_msg "Starting $DESC: $NAME"
  if is_running; then
    log_progress_msg "already running"
  else
    sleep 5
    xhost local:boinc &> /dev/null
    start-stop-daemon --start --quiet --background --pidfile $PIDFILE \
      --make-pidfile --user $BOINC_USER --chuid $BOINC_USER \
      --chdir $BOINC_DIR --exec $BOINC_CLIENT -- $BOINC_OPTS
  fi
  log_end_msg 0


Credit for finding this goes to 'gfarmerfr', Ubuntu guy extraordinaire!


One problem with this is boinc-client may not start at boot up. So you may have to run "sudo /etc/init.d/boinc-client start" after you log on to start the client.

The other alternative is to go into /etc/default/boinc-client and change the default user from "boinc" to "root". If you don't mind the security issues with this method it's actually the simplest.
14) Message boards : Questions and problems : "No usable GPUs found" Ubuntu and Nvidia 8500 GT (Message 34239)
Posted 15 Aug 2010 by Skip Da Shu
Post:
I just put together a 9.1 x64 ubuntu system using 6.10.32 and 190.53 and on about 3 out of 5 reboots, the GTS-250 cannot be found.

An old thread at gpugrid suggested using a 5 sec delay in the "start" of boinc-client and rescheduling the task by changing the script name from S20boinc-client to S32boinc-client. Not sure if this is going to fix the problem.

Anyway, I was wondering if anyone else has seen a problem like this?

This is my first CUDA ubuntu system. All the others were VISTA 64.


Sounds like something I was doing at one time.

1) I no longer rename the S20boinc-client to S32....
2) I use the 3~6 second delay in the /etc/init.d/boinc-client script, like below.

start()
{
  log_begin_msg "Starting $DESC: $NAME"
  if is_running; then
    log_progress_msg "already running"
  else
    sleep 5
    start-stop-daemon --start --quiet --background --pidfile $PIDFILE \


This will work if doing a "sudo /etc/init.d/boinc-client restart" solves the problem. The problem is that the boinc-client is getting started before the driver has been loaded from the xorg.conf file. The 3~5 second delay is enough to allow gdm, et. al. to finish up before boinc goes looking for the driver.

Solved the issue on all my Nvidia equipped machines. I have a diff problem on my ATI machine that results in the same message.

15) Message boards : Questions and problems : No usable GPUs found (Message 34213)
Posted 14 Aug 2010 by Skip Da Shu
Post:
I wanna use mine on DNETC.
16) Message boards : Questions and problems : No usable GPUs found (Message 34212)
Posted 14 Aug 2010 by Skip Da Shu
Post:
Permissions. Allow the user account you normally use to find the ATI drivers. BOINC checks for a certain library file within the drivers. If your user account can't read the drivers (its path isn't in your user account's path structure), BOINC won't find the library file.


Doesn't the following tell me that my user account can get to the drivers and that maybe it's boinc who can't???

skip@crunch26:~$ fglrxinfo
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 5800 Series  
OpenGL version string: 4.0.10057 Compatibility Profile Context

skip@crunch26:~$ uname -a
Linux crunch26 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 05:14:15 UTC 2010 x86_64 GNU/Linux
skip@crunch26:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 10.04.1 LTS
Release:	10.04
Codename:	lucid

skip@crunch26:~$ aticonfig --odgc

Default Adapter - ATI Radeon HD 5800 Series  
                            Core (MHz)    Memory (MHz)
           Current Clocks :    400           1000
             Current Peak :    855           1000
  Configurable Peak Range : [600-875]     [1000-1200]
                 GPU load :    0%




17) Message boards : Questions and problems : Windows service stops immediately (Message 33311)
Posted 8 Jun 2010 by Skip Da Shu
Post:
Well I'm at a loss... same problem that was originally reported here... the 1067 error, can't start service.

I have:

1) Done a repair re-install of WinXP 64
2) uninstalled BOINC
3) deleted data directory
4) deleted program folder
5) deleted user folder Boinc_master
6) deleted keys in registry (per ageless's note)
7) reinstalled 10.6.57 (had also tried 10.6.56 earlier) (64b version) using Advanced button, no screen saver, run protected, allow anyone options.

From run "services.msc" I saw that the service had reported as "started" during the install. When I refresh (F5) that window it shows blank (not running). Right click / start returns the 1067 error, can't start service error.

Any thoughts on how to determine what it's issue is?

The ONLY think I can think that might somehow factor here (but don't know why) is I do have Catalyst / CCC installed on this machine but the ATI card is NOT in it right now (power supply died, which is what led to this whole mess) waiting on new PSU to arrive (running it off of a spare 460w w/o vid card in). I'm using the onboard video from the mobo (standard windows VGA driver) till the new PSU arrives (tomorrow night).
18) Message boards : Questions and problems : GPU device assignment, 6.10.56 for x86_64-pc-linux-gnu (Message 33297)
Posted 7 Jun 2010 by Skip Da Shu
Post:
Remind me, is there a way to uninstall drivers under Linux? For it may be that you have to get rid of them, before reinstalling that will change this. Some configuration file somewhere that sets the order, that the rest is getting their information from.


Yes, I can uninstall the drivers reboot and let boinc come up saying "GPU missing" stop it, stop the GUI and reinstall the driver. I'll give that a shot tonight. Good idea, thanx.

Skip

PS: There's always "a way" in Linux ;-) It's just a matter of do I know it... LOL
19) Message boards : Questions and problems : x64 is really x64? (Message 33247)
Posted 3 Jun 2010 by Skip Da Shu
Post:
U can double check what architecture your client is by checking the very first log entry line (messages tab in advanced view of the manager) right after a restart. It'll tell you if its x86 or x86_64 in both WinXP and Linux.
20) Message boards : Questions and problems : GPU device assignment, 6.10.56 for x86_64-pc-linux-gnu (Message 33246)
Posted 3 Jun 2010 by Skip Da Shu
Post:
The order is set by the way you insert them in your machine, the drivers you have installed and the library read by BOINC. I think you'll have to reinstall your drivers if you want to see them in the correct order as they are in the machine.

BOINC merely checks for the GPU library, sees if it exists on your system and then shows what - according to that library - is installed and in what order. It doesn't reorder anything.


We're still missing a step someplace...

I reinstalled 195.36.24 drivers right before I posted the results. On that machine nvidia-settings reports GPU 0 as the GTS-250 and GPU 1 as the GTX-275 which corresponds to them being in slot 1 and slot 2.

Boinc still reports:

Thu 03 Jun 2010 05:24:39 PM CDT		NVIDIA GPU 0: GeForce GTX 275 (driver version unknown, CUDA version 3000, compute capability 1.3, 896MB, 691 GFLOPS peak)
Thu 03 Jun 2010 05:24:39 PM CDT		NVIDIA GPU 1: GeForce GTS 250 (driver version unknown, CUDA version 3000, compute capability 1.1, 511MB, 470 GFLOPS peak)


I am suspicious of some Xorg setting someplace but it's not in /etc/X11/xorg.conf



Next 20

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.