科技的进步,社会的分工让我们可以更集中注意力解决自己一亩三分地的问题,随之带来的思考就是如何去更好的发散思维,利用边界呢?很多时候作为芯片设计工程师,EDA工具和运行环境,还有很多workflow 都是现成的,我们可以更好的集中注意力解决芯片设计中的问题。随之带来的问题也有,比如很多事情需要involve 更多的相关方才能解决,会议变多了,但是效率并没有提高太多。对于个人来讲,学习成长需要额外规划,而不是随着项目就成长了,项目完成和成长预期存在差距。
我这个系列准备了有一段时间,从我了解的一些芯片设计中CAD 的职能总结,试用服务器提供商,以及Review 我的内容,哪些是我一厢情愿,哪些是真材实料。AI 是不是会像智子一样,将我们锁在知识茧房,其实不需要AI,我们都是生活在信息茧房,知识茧房中。
我们首先来准备一个Linux 环境,通过比较了几家服务提供商,我选择了LightNode(通过我的链接 https://www.lightnode.com/?inviteCode=ULMJEE&promoteWay=LINK 注册消费可以让我得到10% Rebate),我会将我从0开始安装基础环境做一个拆解。这个提供商的好处是机房多,在各个地区都有分布,尤其是亚洲。如果你觉得自己注册,付费,维护很麻烦,我提供有偿代劳。分两种,一种是共用服务器,多人用一台服务器,CPU 和Memory 会随着人数的增加而扩容,另外一种就是独立的服务器,有自己的IP,root 权限等,可能比较适合需要自己搭建AI 服务,甚至做个人品牌网站,简历什么的。如果有兴趣请留言,或直接知乎或知识星球私信。我鼓励大家自己折腾,咨询维护服务费会比机器费用贵。一个单虚拟cpu 和2G 内存的机器大概是50 人民币一个月(价格会根据机房地区不同而有差异)。
注册LightNode 账户我就是省略了,和所有网站需要注册都是类似的。注册完之后需要充值,然后创建一个实例,使用CentOS 7.9 系统。创建页面如下:
配置完以后使用vnc-viewer 登录后的样子:
安装与使用
平时我们到一个公司都有IT 部门帮忙设置好环境,账号,有什么Linux 工具或者其他需求都可以提,今天我们做一个简单的个人部署。先来讲讲有没有这个必要,很多时候Migration 需要Engineer 去验证,问题的发现和上报是有价值的,知道了问题以及知道了workaround是一种有效的contribution,其次,作为芯片设计师,无论是IT 也好,CAD 也罢,提供的都是基础工具,我们自己还是需要根据需求做很多Customization,这个一步步部署,一步步了解,可以提高我们自身的技术能力以及发现新的切入机会。我后面会讲我的一些被验证了的发现。
在LightNode后台部署好CentOS 7以后,我们可以通过它的IP 进行登录,网站的后台做得还是很直观的,功能性有待提高,但是易用性值得夸奖。如果你使用的是Mac 直接打开Terminal 就可以了。输入root 的密码(这个密码在创建系统的页面上是一个必选项)。
ssh root@<server ip>
- 添加root 之外的其他用户,最后一步将你的用户名加到root 同一行下,permission 是ALL。
sudo adduser icsteve --shell /usr/bin/tcsh
sudo passwd icsteve
visudo
- 我们需要安装vncserver,以及常用的工具,比如tcl等。下面的命令安装了tcsh,git,vncserver以及Gnome 桌面环境。
sudo yum update ;
sudo yum upgrade ;
sudo yum install tcsh
sudo yum install git
sudo yum install tigervnc-server
sudo yum -y groups install "GNOME Desktop"
- 设置vnc单独密码,安装gvim,tcl,python,php等,并起一个vnc 分辨率为1920×1080 的display,最后使用chfn 修改自己的名字一遍finger 可以自动get 出我的信息。
sudo startx &
su - icsteve
vncpasswd
vncserver -geometry 1920x1080
sudo yum install -y gcc make ncurses ncurses-devel
sudo yum install -y vim-X11
sudo yum install -y tcl expect tk
sudo yum install -y python3
sudo yum install -y php
# Use this command to change the finger output
# chfn = Change Finger
chfn
- 继续安装一些其他工具,rlwrap,zellij和tmux。
# Install rlwrap
cd ~/.local/repo
git clone https://github.com/hanslub42/rlwrap.git
sudo yum install -y autoconf automake
sudo yum install -y realine-devel
./configure
sudo make install
# install zellij and tmux
sudo yum install -y tmux
mkdir -p ~/.local/repo/zellij/bin
cd ~/.local/repo/zellij/bin
wget https://github.com/zellij-org/zellij/releases/download/v0.41.2/zellij-x86_64-unknown-linux-musl.tar.gz
tar xzvf zellij-x86_64-unknown-linux-musl.tar.gz
rm -fr zellij-x86_64-unknown-linux-musl.tar.gz
- 升级常用工具版本,git和curl,安装Homebrew
sudo yum groupinstall 'Development Tools'
sudo yum install procps-ng curl file git
sudo yum -y remove git
sudo yum -y remove git-*
sudo yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
sudo yum install git
cd /usr/local/src/
sudo wget https://curl.se/download/curl-7.88.0.zip
sudo unzip curl-7.88.0.zip
cd curl-7.88.0/
sudo yum -y install openldap*
sudo yum -y install openssl*
sudo ./configure --with-ssl --with-zlib --with-gssapi --enable-ldap --enable-ldaps --with-libssh --with-nghttp2
sudo make
sudo make install
curl --version
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
setenv HOMEBREW_CURL_PATH /usr/local/bin/curl
至此,我们的一个基本的CentOS 环境已经建好,之后我们会深入一下方向,分享一个用于个性化shell,gvim,以及EDA 的配置结构,符合直觉,符合芯片工程师的习惯和解决一些小痛点,你也可以使用一些开源的结构啥的,然后加入自己的定制。