OSes‎ > ‎

SuSE9.1

SUSE 9.1

I now have access to a dual Opteron 246 system with SUSE 9.1 (Linux 2.6.x) at work.Here are some of the new things (i.e. different from RedHat) I encountered.After the failure of updating my laptop (ZT1230) to FedoraCore 2, it is now usingSUSE 9.1.

Index


Why I do get Xsession: Logon for user disabled?

If you get this error message, you cannot login at console.This is due to the fact that SUSE's own /etc/X11/xdm/Xsession. If you read the following section, you understand.


  ## Disable graphical login if normal login is disabled
  #login=false
  while read sh ; 
  do    
  if test "$sh" = "$SHELL" ; 
  then	
  login=true	
  break    
  fidone < 
  /etc/shellsif test "$login" != "true" -o "$SHELL" = "/bin/false" ; 
  then    
  trap "exec xmessage -timeout 10 -button okay:1 -center	\
  \"${0##*/}: Login for $USER is disabled.\""		\
  EXIT SIGHUP SIGINT SIGPIPE SIGTERM SIGIO    
  exit 1fiunset sh login
  

The problem is due to the fact that the user shell variableis not found in /etc/shells, then you get this error. Add the shell into /etc/shells or change /etc/passwd shell.

Please see http://archive.lug.boulder.co.us/bymonth/2001.10/msg00145.html.

Top


How can I fix the problem on autoconf under SUSE9.0?

When I ran autoconf on the project NFS mounted, I get the error:


  autom4te: cannot lock autom4te.cache/requests with mode 2: No locks available
  at /usr/bin/autom4te line 1176
  

No problem on the local files. This happened only on SUSE9. RedHat 9, 7.3, Fedora are fine. The fix is described here: http://lists.gnu.org/archive/html/autoconf-patches/2003-09/msg00074.html. Here is the diff:


  /usr/share/autoconf/Autom4te>diff XFile.pm XFile.pm.orig90d89< use Errno;216,225c215<<   
  # On some systems (e.g. GNU/Linux with NFSv2), flock(2) does not work over<   
  # NFS, but Perl prefers that over fcntl(2) if it exists and if<   
  # perl was not built with -Ud_flock.  Normally, this problem is harmless,<   
  # so ignore the ENOLCK errors that are reported in that situation,<   
  # However, if the invoker is using "make -j", the problem is not harmless,<   
  # so report it in that case.  Admittedly this is a bit of a hack.<   
  if (!flock ($fh, $mode)<       && (!$!{ENOLCK} ||<
  ($ENV{'MAKEFLAGS'} && " $ENV{'MAKEFLAGS'}" =~ / (-j|--jobs)/)))--->   
  if (!flock ($fh, $mode))
  

The other one is a warning generated:


  minerva:/space/birn/12/users/tosa/minerva/dev>makecd . && 
  /bin/sh /space/birn/12/users/tosa/minerva/dev/config/missing --run aclocal-1.8/usr/share/aclocal/cppunit.m4:4: 
  warning: underquoted definition of AM_PATH_CPPUNIT  run info '(automake)Extending aclocal'  
  or see http://sources.redhat.com/automake/automake.html#Extending%20aclocal/usr/share/aclocal/avifile.m4:21: 
  warning: underquoted definition of AM_PATH_AVIFILE/opt/gnome/share/aclocal/gst-element-check-0.6.m4:7: 
  warning: underquoted definition of AM_GST_ELEMENT_CHECK
  

The fix is to do, For instance

     
  # bad style     
  AC_PREREQ(2.57)     
  AC_DEFUN(AX_FOOBAR,[AC_REQUIRE([AX_SOMETHING]) dnl AX_FOO AX_BAR])
  should be rewritten as     
  AC_DEFUN([AX_FOOBAR],[AC_PREREQ(2.57) dnl AC_REQUIRE([AX_SOMETHING]) dnl AX_FOO AX_BAR ])
  

Wrapping AC_PREREQ call inside the macro and quoting the AX_FOOBAR allowsthe macro to be redefined or included twice. (see http://sources.redhat.com/automake/automake.html#Extending%20aclocal.)

Top


How can I setup for autofs?

We have /space, /links, /homes, /cmas set up as nfs mounted places.Note that RedHat /etc/auto.master is not compatible with SUSE. Here is the RedHat version:


  yp:auto.space   intr,rw,hard,nodev,rsize=8192,wsize=8192
  yp:auto.links   intr,rw,hard,nodev
  yp:auto.homes   intr,rw,hard,nodev,rsize=8192,wsize=8192
  yp:auto.cmas    intr,rw,hard,nodev
  

SUSE does not understand "yp:" part. Thus /etc/init.d/autofs must be modified to remove yp: part in function getmouts_nis():


  /etc/init.d>diff autofs autofs.orig11c11< 
  # Should-Start: ypbind keyserv nfslock---> 
  # X-UnitedLinux-Should-Start: ypbind keyserv nfslock13c13< 
  # Should-Stop:---> 
  # X-UnitedLinux-Should-Stop:109,110d108<
  nismap=`echo $map | cut -f2- -d:`<
  test -n "$nismap" && map=$nismap158c156<
  echo "$DAEMON $daemonoptions $dir $prog $map"--->
  echo "$DAEMON $daemonoptions $dir $prog \"$map\""
  

In /etc/nsswitch.conf, one must have


  automount:      files nis
  

Run the cron job of /usr/etc/fixlinks every 41st minutes.


  #!/usr/bin/perluse strict;use File::Find ();
  # for the convenience of &wanted calls, including -eval statements:use vars qw/*name *dir *prune/;
  *name   = *File::Find::name;
  *dir    = *File::Find::dir;
  *prune  = *File::Find::prune;
  exit if ( -d "/autofs_links");
  my $yp=`ypwhich >
  /dev/null 2>&1`;
  exit unless (($?>>8) == 0);
  if ( -d "/autofs/space" ) 
  {  my $n = int(rand(5));  
     $n += 2;  
	 foreach my $d ( 'space', 'homes', 'cmas' ) 
	 {    
	    next unless ( -d "/autofs/links/$n/$d" );    
		my $rdate = ( -M "/autofs/links/$n/$d" );    
		my $ldate = ( -M "/$d" ) || 32768;    
		my @t = stat("/$d");    
		my $nlinks = $t[3];    
		if ( ! -d "/$d" || $rdate < $ldate || $nlinks < 6) 
		{        
		   chdir("/autofs/links/$n/$d") or die;
		   mkdir("/$d.new");
		   open(TAR,"tar cf - . | ( cd /$d.new ; tar xf - ) |") or die;
		   while() { print $_; }        
		   close(TAR);
		   &removedir("/$d.old") if ( -d "/$d.old" );
		   rename("/$d","/$d.old") if ( -d "/$d" );
		   rename("/$d.new","/$d");
		   &removedir("/$d.old") if ( -d "/$d.old" );
		   }  }}sub wanted {    lstat($_);
		   if ( -d _ ) 
		   {        rmdir($_);    } 
		   else 
		   {        unlink($_);    }}
		   sub removedir 
		   {  
		      my $dir = shift;  
			  File::Find::finddepth({wanted => \&wanted}, $dir);  rmdir($dir);
		   }
  

Top


Why doesn't autofs work on SUSE9.1?

When I installed SUSE9.1, autofs did not work at boot time. However, doing/etc/init.d/autofs start did work. When I did chkconfig autofs on,it returned saying it has been activated. However chkconfig -L autofs showed all runlevels were off.

Our sysadmin, Paul, found that /etc/rc.d/rc5.d did not have the link to autofs. Create a link like the following:


  /etc/rc.d/rc5.d>
  ls -l *autofs
  lrwxrwxrwx  1 root root 9 2004-06-28 22:55 K05autofs -> ../autofs*
  lrwxrwxrwx  1 root root 9 2004-06-28 22:55 S17autofs -> ../autofs*   /etc/rc.d/rc3.d>
  ls -l *autofs
  lrwxrwxrwx  1 root root 9 2004-06-28 22:55 K05autofs -> ../autofs*
  lrwxrwxrwx  1 root root 9 2004-06-28 22:55 S17autofs -> ../autofs*
  

Top


What is the gcc cpuid to use (-march=) for opteron?

Currently, gcc 3.4.x does not distinguish various AMD64 processors (Opteron,Athlon64, Athlon64-Fx). You use -mcpu=x86-64 for gcc (Note that it is notx86_64). Don't use -m3dnow but use -msse2. AMD decided to obsolte 3dnow.

Top


How can I eliminate the permission denied error on postfix mail?

The error messages repeats are as follows:postdrop: warning: mail_queue_enter: create file maildrop/764996.16760: Permission denied


  0. kill all postdrop process (ps aux | grep postdrop).
  1. /etc/postfix/main.cf   mydestination should be point to the mail server.
  2. permission of /var/spool/postfix/maildrop should be drwx-wx--T (1734)    
     This is the sticky bit. 'T' means that the sticky bit is set (t is executalbe sticky bit).
  3. if /usr/sbin/postdrop has set-gid is enabled, then /var/spool/postfix/maildrop must   
     be the same group ownership.
  4. run "/etc/postfix/post-install set-permissions"
  

Top


How can I run the old 32 bit application on a 64 bit OS?

Use linux32.

  
  $ linux32 uname -p  athlon  $ uname -p  x86_64
  

Another way is to use 32 bit console to run. The 32 bit consoleis available by

  
  System->Terminal->Linux32
  

Top


Edited on 11/26/2004

Home