Kernel Update without Reinstalling Nvidia Driver

  31 Jan 2017     Linux

Fedora is always known as a cutting edge distribution with frequent updates. I love it so much expect when I have to reinstall my Nvidia driver everytime the kernel is updated. Recently I found a solution online using DKMS. DKMS, short for Dynamic Kernel Module Support, is used to automatically recompiles all DKMS modules when installing a kernel upgrade, thus allowing the drivers to continue working.

For the Nvidia driver on Fedora, simply install the DKMS package and install the Nvidia driver with “-dkms” option.

sudo dnf install dkms
sudo sh ./<DRIVER>.run --dkms

Abaqus 2016 Installation on Linux: Issues and Solutions

  18 Jan 2017     Abaqus and Linux

Recently, I installed Abaqus 2016 on a few different Linux Distros for workstations in my lab and my PC. Here’s a summary of the issues I encountered and my solutions.

Unsupported Linux Distribution

ABAQUS 2016 officially only has support for SUSE and Red Hat (and CentOS). By default, the installer runs a prerequisites check and an error will return if you runs an unsupported Linux release. I have Fedora 25 for one of my PCs and I successfully installed Abaqus 2016 on it using the following workaround.

The Abaqus installer get the release info using the script located at <installer_dir>/Linux64/1/inst/common/init/Linux.sh. I overrode the command to obtain the OS release using

DSY_OS_Release="CentOS"

I chose CentOS because Fedora is close to Red Hat Linux. I also disabled other system checks by defining environmental variable DSY_Skip_CheckPrereq in the shell before the installation.

export DSY_Skip_CheckPrereq=1

To satisfy the prerequisites of Abaqus, some additional packages must be installed. For example, the libstdc++.so.5 can be installed by

sudo dnf install compat-libstdc++-33

Now you should be able to install Abaqus on your favorite Linux distribution.

Graphical Issues

I failed to start the Abaqus/CAE when the installation done. I got an “X Error” telling me “fmd_GLContext::create(): glXCreateContext() failed”. My Nvidia driver version was 375.26. I found my problem similar to this post. They also gave a suggestion to run Abaqus using

XLIB_SKIP_ARGB_VISUALS=1 abaqus cae -mesa

This works, however, at the price of disabling the hardware acceleration. After some research online, I found this error was related to the indirect GLX rendering. In recent versions, Xorg changed its behavior to disallow indirect GLX by default, probably due to some security concerns.

I tried a few different methods to re-enable the indirect GLX rendering, including modifying the xorg.conf and adding serverargs in startx, but all failed. Finally I found solution in this post to add a wrap for Xorg command. Slightly different in my Fedora 25, my /usr/bin/Xorg is already a wrap, so I simply added the “+iglx” argument in the script:

exec "$basedir"/Xorg "$@" +iglx

Might not be a perfect solution, but hey, now Abaqus can be run natively on my Nvidia GTX 1080!

Fonts Issues

The fonts in my Abaqus/CAE GUI was extremely small and ugly at first. I solved it by installing the 100dpi font in my system:

sudo dnf install xorg-x11-fonts-ISO8859-15-100dpi-7.5-16

I have no idea why this works and I still don’t know how to switch to other fonts. Let me know if you have better ideas about that.


读书笔记:重读《鸟哥的Linux私房菜》【1】

  16 Jan 2017     Book Notes and Linux

引言

从开始用Linux到现在也有四五年了,日常操作早就已经没有什么障碍。但真正遇到问题,常常还是需要网上到处找解决方案。究其原因,自己对Linux的许多基础知识掌握还是很有问题。Linux并非是我的主要操作系统(许多科研需要的CAD/CAE软件还是只支持Windows),我之前玩Linux也只能是断断续续,全凭一时兴起。最近手头上机器多了,好几台服务器都改成了Linux系统,觉得应该利用这个机会,系统的把Linux的知识梳理一下。《鸟哥的Linux私房菜》 是我自己刚接触Linux的时候的入门书,但是内容翔实,我平时日常用都会把它当参考书来用。最近随手翻翻,里面还有好多我不熟悉的内容,此番重读,正好查遗补漏。因为是重读,自然会跳过许多基础的部分,大家有需要可以自行前往鸟哥的网站查看全书。

本篇笔记对应原书第5章

Linux基本权限

Linux基本权限分成r,w,x,赋给owner/group/others三种身份,另外可以用数字4(r),2(w),1(x)来代表。chmod是用来更改权限的命令,需要注意的是递归修改的选项参数是大写的(-R),这对chgrp和chown也是一样的。

另外我一开始经常搞错的是目录权限的意义。对于普通文件而言,r(读取),w(编辑修改),x(执行)的意义非常简单明了。对目录而言,要理解其r,w,x的含义需要对Linux文件系统有更清楚的理解。这里简单对于实际应用来说,

  • r,读取目录内容,可以查询目录下的文件列表(文件名)
  • w,修改目录内容,可以建立新文件/目录,删除、重命名移动已存在文件/目录
  • x,进入目录,所有该目录下指令的前提

举例来说,有一个文件路径为 /dir1/file1,

  • 知道file1存在,需要对/dir1有r权限
  • 读取,修改,执行file1内容,需要对/dir1有x权限(假如已经知道file1文件名,不需要对/dir1有r权限),对file1有相应的r/w/x权限
  • 删除、重命名file1,需要对/dir1有xw权限(注意与file1权限无关!)

一般开放目录给用户访问,需要x和r,而w的权限则权力很大,可以让用户自由删除新建重命名,需要谨慎。

Linux目录配置与FHS

FHS对目录分类主要考量static/variable,shareable/unshareable两个维度。具体可以参考原书以及FHS标准文档。之前我一直搞错的是/usr中usr其实是Unix Software Resource的所写,和user没什么关系。