The advancement of technology and the division of labor in society allow us to focus more on solving problems within our own domain. This brings up the question of how to better expand our thinking and utilize boundaries. Often, as chip design engineers, we have ready-made EDA tools, operating environments, and workflows, enabling us to concentrate more on solving chip design issues. However, this also brings challenges, such as the need to involve more stakeholders to resolve issues, leading to more meetings without a significant increase in efficiency. For individuals, personal growth requires additional planning, as project completion does not always align with growth expectations.
I have been preparing this series for some time, summarizing the roles of CAD in chip design as I understand them, trying out server providers, and reviewing my content to distinguish between wishful thinking and substantive material. Is AI like the “Sophon” from science fiction, trapping us in a knowledge cocoon? Even without AI, we are already living in information and knowledge cocoons.
First, let’s set up a Linux environment. After comparing several service providers, I chose LightNode (registering and consuming through my link gives me a 10% rebate). I will break down the process of installing the basic environment from scratch. The advantage of this provider is its numerous data centers distributed across various regions, especially in Asia. If you find registering, paying, and maintaining servers troublesome, I offer paid services to handle these tasks. There are two options: shared servers, where multiple users share one server with CPU and memory scaling as the number of users increases, and dedicated servers with their own IPs and root access, suitable for setting up AI services or personal brand websites and resumes. If interested, please leave a comment or message me directly on Zhihu or Knowledge Planet. I encourage everyone to try it themselves, as consulting and maintenance fees can be more expensive than the machine costs. A machine with a single virtual CPU and 2GB of memory costs about 50 RMB per month (prices vary by data center location).
I will skip the LightNode account registration process, as it is similar to registering on any website. After registration, you need to top up your account and create an instance using the CentOS 7.9 system. The creation page looks like this:
After configuration, the login screen using vnc-viewer looks like this:
Installation and Usage
Usually, when we join a company, the IT department sets up the environment and accounts for us, and we can request Linux tools or other needs. Today, we will do a simple personal deployment. First, let’s discuss whether this is necessary. Often, migration requires engineers to validate, and discovering and reporting issues is valuable. Knowing the problem and the workaround is an effective contribution. Additionally, as chip designers, whether it’s IT or CAD, they provide basic tools, and we still need to do a lot of customization based on our needs. This step-by-step deployment and understanding can improve our technical skills and help us discover new opportunities. I will share some of my validated findings later.
After deploying CentOS 7 on LightNode, we can log in using its IP. The website’s backend is intuitive, with room for functional improvement but commendable usability. If you are using a Mac, simply open the Terminal and enter the root password (this password is mandatory on the system creation page).
ssh root@<server ip>
- Add other users besides root, and finally add your username to the same line as root with ALL permissions.
sudo adduser icsteve --shell /usr/bin/tcsh
sudo passwd icsteve
visudo
- We need to install vncserver and common tools like tcl. The following commands install tcsh, git, vncserver, and the Gnome desktop environment.
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"
- Set a separate password for vnc, install gvim, tcl, python, php, etc., and start a vnc display with a resolution of 1920×1080. Finally, use chfn to change your name so that finger can automatically retrieve your information.
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
- Continue installing other tools like rlwrap, zellij, and 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
- Upgrade common tools like git and curl, and install 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
At this point, our basic CentOS environment is set up. Later, we will delve deeper into customizing the shell, gvim, and EDA configuration structures that align with intuition, chip engineers’ habits, and address minor pain points. You can also use some open-source structures and add your own customizations.