[daip] problems with XAS in my MAC

Eric Greisen egreisen at nrao.edu
Mon Jun 3 19:30:26 EDT 2013


Salvador Curiel wrote:
> Hi Eric,
> 
> I have the last version of AIPS (31DIC13) on my Mac Pro with Mac OS X 
> version 10.7.5. However, when I start AIPS the TV window does not come 
> up and I get the following error message:
> 
> XAS: ** TrueColor FOUND!!! 
> XAS: ***  Using shared memory option for speed ***
> XAS: Using screen width 1910 height 958,
>      max grey level 8191 in 16 grey-scale memories
> Shared memory id failure: Cannot allocate memory
> Warning: locale not supported by Xlib, locale set to C
> Warning: locale not supported by Xlib, locale set to C
> 
> I have checked all the information in the AIPS Managers FQ but 
> everything seems to be OK. Do you have any suggestions? Thanks in 
> advance for your help.
> 
> Cheers,
> Salvador Curiel

After you follow the instructions below appropriate to your release of 
the Mac operating system, you must re-boot the computer. The control 
file for shared memory is read at boot time only. Note that a re-boot is 
not simply logging the current user out and then back in. You must do a 
full restart.

The default Mac system limits shared memory pages to 4 Mbytes. When XAS 
starts it tells you that it is making a screen x pixels by y pixels. The 
memory you will need is at least 4 x y bytes, but this rounds upward 
rapidly. For the new large screens this is more than 8 Mbytes. On 10.3 
and 10.4 systems, you can change this limit by changing (as root or 
admin) the rc file in /etc, adjusting the kern.sysv.shm* line to

          #Setting the shared memory to something a bit more reasonable.
             sysctl -w kern.sysv.shmmax=10485760
             sysctl -w kern.sysv.shmmin=1
             sysctl -w kern.sysv.shmmni=32
             sysctl -w kern.sysv.shmseg=8
             sysctl -w kern.sysv.shmall=4096


If you are really lucky and have a 30-inch screen (2550 by 1500 pixels) 
then you will have to make the shmmax line even larger

             sysctl -w kern.sysv.shmmax=16777216


Note that these are upper limits, so it does not hurt to set a value 
that might be larger than necessary for your system. The shmmax must be 
an integer multiple of the shmall which must be a power of 2 >= 1024. A 
3190 by 958 screen was found to require the larger value above. I think 
this comes by n times (4096 / 4 bytes/word) has to be > 3190 leading to 
4096 words per row. Then 958 * 4096 * 4 bytes = 15695872 or just a bit 
less than the 16777216.

On the latest "leopard", "snow leopard", "lion", and "mountain lion" (X 
10.5-10.8) systems, /etc/rc is gone and creating it will have no effect. 
You need to create an /etc/sysctl.conf file and put the values in it,

             kern.sysv.shmmax=10485760
             kern.sysv.shmmin=1
             kern.sysv.shmmni=32
             kern.sysv.shmseg=8
             kern.sysv.shmall=4096


You should use the values you had when you were running tiger. Those 
could be in /Previous\ System/etc/rc, assuming you have "Previous 
System". So three different OS upgrades and three different ways to 
adjust the default shared memory. Note: You will need to reboot the 
system for the change in shared memory to take place. You can check if 
the shared memory changes happened by typing "sysctl kern.sysv" in a 
terminal or xterm window. Look for the kern.sysv.shm* values. If the 
values have not changed, make sure you haven't inadvertently left in 
"sysctl -w" in the /etc/sysctl.conf file or mis-typed one of the values. 
If the /etc/sysctl.conf file is not properly formatted, or shmmax is not 
an integer multiple of shmall, the shared memory will not be adjusted 
after the reboot.

-----------------

Did you reboot????????

Eric Greisen




More information about the Daip mailing list