为什么要学习PA

2019年3月29日,重新拾起自己最初的梦想,硬件设计。我是商学院毕业的,但是我想为中国芯片做点什么。在某位老师的指导下,决心完成整个PA实验,为了自己想做的事情疯狂一回。

基本开发环境安装和验证

使用的实验环境版本VM_PRO_14+CentOS-7-x86_64-Minimal-1810
对于如何在VM虚拟中安装Linux系统略去。

Linux安装Docker

首先需要进行yum源的检测,确保是最新版本

$yum update

确保yum源为最新版本后进行docker的安装

$yum install -y docker

检查docker的版本,验证是否安装成功
安装成功
验证安装成功后启动docker服务,并查看docker的版本

$ service docker start
$ docker version

启动服务
完成Docker安装后,开始进行PA0实验:
首先进行DockerFile文件的编写:

 # setting base image
FROM debian

RUN apt-get update

 # Set the locale
RUN apt-get install -y locales
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
RUN dpkg-reconfigure --frontend=noninteractive locales
RUN update-locale LANG=en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

 # new a directory for sshd to run
RUN mkdir -p /var/run/sshd
 # installing ssh server
RUN apt-get install -y openssh-server

 # installing sudo
RUN apt-get install -y sudo

 # make ssh services use IPv4 to let X11 forwarding work correctly
RUN echo AddressFamily inet >> /etc/ssh/sshd_config

 # defining user account imformation
ARG username=ics
ARG userpasswd=ics

 # adding user
RUN useradd -ms /bin/bash $username && (echo $username:$userpasswd | chpasswd)

 # adding user to sudo group
RUN adduser $username sudo

 # setting running application
CMD /usr/sbin/sshd -D

建立Docker镜像链接:

docker build -t ics-image .

接下来就是漫长的等待~~~~
直到:
Building Docker image Successed
啊哈哈成功了,然后呢?然后就是建立容器啦~

docker create --name=ics-vm -p 20022:22 --tmpfs /dev/shm:exec --privileged=true ics-image

其中-p 20022:22的意思是将端口20022与22绑定。
在这里插入图片描述
查看下我们建立好的容器:

docker ps -a

查看容器
至此Docker基础环境就安装完成啦~可以进行下一关咯 ~

Docker容器启动的小插曲

容器启动中的不愉快
产生这个问题的原因是/dev/shm被加载了多次,那么该如何解决这个问题呢?
这个问题我查了很多资料,但是都没有合适的解决办法,然后重现看:

docker create --name=ics-vm -p 20022:22 --tmpfs /dev/shm:exec --privileged=true ics-image

这条命令中 –tmpfs /dev/shm:exex是整个问题的关键点,在这里连接到了dev/shm上,但是这个加载点会一直报错。所以去掉这个参数,重新加载容器

docker create --name=ics-vm -p 20022:22 --privileged=true ics-image
docker start ics-vm

插曲结束

回归主题,第一个小测试。

首先使用ssh连接到我们启动的容器,并登陆。

ssh -p 20022 ics@127.0.0.1

远程登陆容器
测试登陆成功后,退出登录,并开始下一关卡~

安装基础工具

PA实验文档中给到的基础工具是

apt-get install build-essential    # build-essential packages, include binary utilities, gcc, make, and so on
apt-get install man                # on-line reference manual
apt-get install gcc-doc            # manual for GCC
apt-get install gdb                # GNU debugger
apt-get install git                # reversion control system
apt-get install libreadline-dev    # a library to use compile the project later
apt-get install libsdl2-dev        # a library to use compile the project later
apt-get install qemu-system-x86    # QEMU
Logo

更多推荐