我是靠谱客的博主 正直口红,最近开发中收集的这篇文章主要介绍Ubuntu Server 18.04 EDA服务器安装日志目标步骤总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

目标

步骤

1. 制作安装盘

2. 安装ubuntu

3. 安装桌面

4. 配置VNC

5. 安装Quartus II 18.0

6. 安装Synopsys, Mentor

7. Samba共享

8. 修改分辨率

9. 安装多版本GCC

10. 修改网卡名字

总结


目标

  • 在局域网内配置一台EDA工作站,供多人使用。
  • 系统选择Ubuntu Server 18.04 LTS。
  • 配置Xfce4桌面环境与多用户VNC登录。
  • 安装Quartus II 18.0, Verdi, VCS, Modelsim等EDA工具。

步骤

1. 制作安装盘

官网下载:ubuntu-18.04.1-live-server-amd64.iso

使用UltraISO打开安装镜像文件,启动->写入硬盘镜像, 选择U盘,写入。

安装盘制作完毕。

Alternative: 使用Rufus制作启动盘,目前用过的制作安装盘最好的软件。

2. 安装ubuntu

BIOS选择USB启动。

按照提示一路前进,Optional的软件全部忽略。

分区策略:

    SSD 256G
        /boot/efi    500M
        /boot/       500M
        /swap        32G
        /            剩下所有
    HDD 500G
        /home        500G  

速度很快,几分钟就装好了。

3. 安装桌面

重启后,开始安装必备软件包和桌面环境。

Server版默认仓库不全,很多包都找不到,所以全加上:

sudo add-apt-repository main && 
sudo add-apt-repository universe && 
sudo add-apt-repository restricted && 
sudo add-apt-repository multiverse && 
sudo apt-get update

安装XFCE4和一些必备的软件:(后面几个x开头的的包是解决第二个vnc打开灰屏的问题,和远程vnc与本机startx不能同时运行的问题,反正不装上vnc是没法正常用的)

sudo apt-get install 
gcc 
g++ 
gdb 
openssh-server 
vim-gtk3 
net-tools 
xfce4 
xfce4-terminal 
xfce4-goodies 
tigervnc-standalone-server 
firefox 
gnome-system-monitor 
xvfb 
xfonts-100dpi 
xfonts-75dpi 
xfonts-cyrillic 
xorg 
dbus-x11 
-y

卸载屏保程序:(VNC用户长时间没有操作,屏保自动打开,不停变化的图案大量占用网络带宽)

sudo apt-get remove xscreensaver -y

解决配置网卡等待2分钟:“A start job is running for wait for Network to be Configured()_”(这个是因为有一个40G的网卡没有插在交换机上导致的)

systemctl disable systemd-networkd-wait-online.service
systemctl mask systemd-networkd-wait-online.service

安装中文支持语言包和中文字体:

sudo apt-get install language-pack-zh-hant language-pack-zh-hans -y && 
sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei 
ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming -y &&
sudo apt-get install ttf-mscorefonts-installer -y
sudo fc-cache -f -v

装完中文语言包默认会变成中文,在下面几个文件添加环境变量

sudo gvim /etc/environment 
增加
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
sudo vim /var/lib/locales/supported.d/local
修改
en_US.UTF-8 UTF-8
sudo vim /etc/default/locale
修改
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

使配置生效

sudo locale-gen

调整时间:设置时区

sudo timedatectl set-timezone "Asia/Shanghai"
timedatectl status

网上同步时间并将系统时间写入硬件时间

sudo apt-get install ntpdate
sudo ntpdate cn.pool.ntp.org
sudo hwclock --systohc

4. 配置VNC

vncserver的选择, 这个至关重要!!!

开始用的是 vnc4server,也试了tightvnc。登录之后发现Quartus卡死,而本机完全没问题。后来发现Quartus18.0的界面用了新版本的QT,和vnc不兼容,主机正常,vnc中无法打开GUI,直接卡死。而且有些能打开的软件,键盘输入是乱的。VS Code也打不开。

报错信息:

Failed to initialize XRandr VNC
XKEYBOARD extension not present on the X server VNC
xkb extension not present on

尝试了各种办法都没有效果,xrdp登录也不行,最后发现了 tigervnc才解决了这个问题。只有tigervnc才支持XRandr,还能能够动态的调节分辨率。tigervnc是github上的项目,一直在更新,有人解答问题, 比较靠谱。

PS: Tiger的vncviewer效率比较高,流畅度明显比之前用的realvncviewer要好,就是登陆界面做的太丑了。

VNC Server启动命令:

tigervncserver :1  -geometry 2560x1388 -depth 24 -localhost no

Ubuntu18.04仓库里默认的是1.7版本,需要加localhost这个参数,不然vncviewer无法连接,这个也是坑爹坑到家了,如果能早点把tigervnc用起来,这个Qt GUI的问题也不会搞很久。最新的1.9版本不需要加了,这个参数被作废了。

开机自启动脚本(两个文件)

/etc/vncserver/vncservers.conf

VNCSERVERS="1:1920x1080:user0"
VNCSERVERS=${VNCSERVERS}" 2:1920x1080:user1"
VNCSERVERS=${VNCSERVERS}" 5:1920x1080:user2"
VNCSERVERS=${VNCSERVERS}" 6:2560x1388:user3"

/etc/init.d/vncserver.sh (以服务形式开机自动启动)

#!/bin/bash
### BEGIN INIT INFO
# Provides:          set_vncserver
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      1 0 6
# Short-Description: ...
# Description: ...
### END INIT INFO


VNCSERVERS=""

[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
# [ -f vncservers.conf ] && . vncservers.conf
echo $VNCSERVERS

prog=$"VNC server"
. /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Starting $prog: "
 ulimit -S -c 0 >/dev/null 2>&1
 RETVAL=0
for display in ${VNCSERVERS}
do
    export USER="${display##*:}"
    if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
        echo -n "${display} "
        unset BASH_ENV ENV
        DISP="${display%%:*}"
        GEOMETRY=`echo $display | sed 's/.*:(.*):.*/1/g'`
#        echo $DISP
#        echo $USER
#        echo $GEOMETRY
        su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver -geometry ${GEOMETRY} :${DISP} && exit"
    fi
done

5. 安装Quartus II 18.0

最难搞的问题是启动时GUI卡死,在前面关于VNC的问题里已经说明。

缺库Solution:

wget http://ftp.cn.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.49-1+deb7u2_amd64.deb
sudo apt install ./libpng12-0_1.2.49-1+deb7u2_amd64.deb

库版本报错Solution:

mv /tools/intelFPGA/18.0u_pro/quartus/linux64/liblzma.so.5 /tools/intelFPGA/18.0u_pro/quartus/linux64/liblzma.so.5.bak
ln -s /lib/x86_64-linux-gnu/liblzma.so.5.2.2 /tools/intelFPGA/18.0u_pro/quartus/linux64/liblzma.so.5

报错

libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

这个使用 LIBGL_DEBUG=verbose quartus 就可以看到详细错误信息,根据提示,得到Solution:

mv /tools/intelFPGA/18.0u_pro/quartus/linux64/libstdc++.so.6 /tools/intelFPGA/18.0u_pro/quartus/linux64/libstdc++.so.6.bak
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 /tools/intelFPGA/18.0u_pro/quartus/linux64/libstdc++.so.6

6. 安装Synopsys, Mentor

Crack就不说了,eetop去搜吧。

lmgrd无法执行,报错找不到,没有此文件。这个问题也是坑的让你怀疑人生,文件明明在哪里就是说没有,原来是系统不认,装个包就好了。

sudo apt-get install lsb lsb-base lsb-core

VCS

报错/bin/sh illegal option -h

Solution:

sudo rm -f /bin/sh
sudo ln -s /bin/bash /bin/sh

Verdi

mv /tools/synopsys/Verdi_vN-2017.12-SP1/etc/lib/libstdc++/linux64/libtinfo.so.5 /tools/synopsys/Verdi_vN-2017.12-SP1/etc/lib/libstdc++/linux64/libtinfo.so.5.bak
ln -s /lib/x86_64-linux-gnu/libtinfo.so.5 /tools/synopsys/Verdi_vN-2017.12-SP1/etc/lib/libstdc++/linux64/libtinfo.so.5

Modelsim

sudo apt-get install libxft2

7. Samba共享

使用hostname生效:

sudo apt-get install libnss-winbind samba -y
sudo gvim /etc/nsswitch.conf
    找到 hosts:          files dns
    改为 hosts:          files dns wins
sudo service winbind start

现在可以使用hostname来登录vnc了。

与Window共享文件夹:
前面已经安装samba的包,直接

sudo gvim /etc/samba/smb.conf

在最后加上:

[share]
comment = Share Folder require password
browseable = yes
path = /home/share
create mask = 0777
directory mask = 0777
valid users = user0 user1 user2 @group_name
public = yes
writable = yes
available = yes 

设置共享目录

mkdir /home/share
sudo chmod 777 /home/share
sudo chown root:root /home/share/

添加samba用户

sudo smbpasswd -a user0
sudo smbpasswd -a user1
sudo smbpasswd -a user2

重启samba服务

sudo service smbd restart
sudo service nmbd restart

此时window上可以看到server的共享目录并用对应的用户登录访问。

PS: Samba相对scp拷贝文件还是快不少的。千兆网Winscp拷贝只有半速,Babun里scp大概用到80%带宽,Samba是全速。

挂载windows上的共享:

sudo apt-get install cifs-utils
sudo  mount -t cifs //192.168.xxx.xxx/dd$ ~/mnt -o username=your_name,gid=1000,uid=1000

9. 安装多版本GCC

sudo apt-get install -y gcc-4.8 gcc-4.8-multilib
sudo apt-get install -y g++-4.8 g++-4.8-multilib
sudo apt-get install -y gcc-5 gcc-5-multilib
sudo apt-get install -y g++-5 g++-5-multilib
sudo apt-get install -y gcc-6 gcc-6-multilib
sudo apt-get install -y g++-6 g++-6-multilib
sudo apt-get install -y gcc-7 gcc-7-multilib
sudo apt-get install -y g++-7 g++-7-multilib
sudo apt-get install -y gcc-8 gcc-8-multilib
sudo apt-get install -y g++-8 g++-8-multilib
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 48
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 80

切换版本

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

目前VCS只有用gcc4.8才不报错。gcc-5是版本5.5,也不行。Ubuntu 16.04上默认gcc版本是5.4,VCS没问题。可能是VCS不支持版本大于5.4的gcc吧。

10. 修改网卡名字

网卡默认名字是ensXX,而有些EDA工具不认这个名字,导致license Check Out 失败,比如Quartus 16.0。所以必须改成eth0。

18.04以前

sudo gvim /etc/network/interfaces

添加文件内容:
auto  lo
iface lo inet loopback

auto eth0 
iface eth0 inet dhcp

auto eth1 
iface eth1 inet static
address 192.168.10.1
netmask 255.255.255.0

auto eth2 
iface eth2 inet static
address 192.168.10.2
netmask 255.255.255.0

systemctl restart networking

以下18.04之后可用:
旧的管理工具如果有,要先卸载掉

apt remove ifupdown


In Ubuntu 18.04 server, cloud-init manages the network configuration. So, you would need to disable it by editing the below file.
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Put the below line into the configuration file.
network: {config: disabled}


编辑文件:
sudo vim /etc/netplan/50-cloud-init.yaml
内容:

network:
    renderer: networkd
    ethernets:
        eth0:
            # dhcp4: true
            dhcp4: no
            addresses: [192.168.32.37/24]
            gateway4: 192.168.32.1
            nameservers:
                    # search: [itzgeek.local]
                    addresses: [166.111.8.28, 8.8.8.8]
        eth1:
            dhcp4: true
        eth2:
            dhcp4: true
        eth3:
            dhcp4: true
    version: 2

Generate the required configuration for the renderers.
netplan generate


Apply all configuration and restart renderers.

netplan apply

ifconfig -a

查看DNS状态:

systemd-resolve --status

然后:

sudo gvim /etc/default/grub

找到 GRUB_CMDLINE_LINUX=""

改为 GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

更新grub配置文件 :

sudo update-grub

重启。

总结

安装过程坑太多,各种乱七八糟的问题没有做详细描述,贴的命令基本就是解决方案。

最后

以上就是正直口红为你收集整理的Ubuntu Server 18.04 EDA服务器安装日志目标步骤总结的全部内容,希望文章能够帮你解决Ubuntu Server 18.04 EDA服务器安装日志目标步骤总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部