【一生一芯】PA0:LINUX环境搭建
最近申请参与“一生一芯”项目,想要了解一块CPU是怎么设计出来的。花了半天时间跟着PA0一起完成了LINUX环境的配置,特此记录配置的过程。
一、制作Windows & Linux 双系统
由于我使用的是Windows系统的电脑所以要制作一个双系统出来(不推荐使用虚拟机,以前用过驱动之类的东西很麻烦,各种真机不会出现的问题虚拟机会出现),现在制作linux双系统基本没有什么难度,流程和重装系统差不多:
- 从ubuntu官网上弄到ubuntu22的镜像;
- 通过镜像烧录软件制作启动U盘;
- 压缩卷,为ubuntu分出来50G以上的空间;
- 进BIOS通过启动U盘启动,安装ubuntu22;
- 安装完成后根据提示拔掉U盘重启电脑;
- 进入BIOS,将ubuntu22的引导设置为最优先
这里要注意几点:我使用的微星笔记本一开始无法进入BIOS,原因是没有关闭电源设置里的快速启动;微星的BIOS里启动项并没有区分Windows和Linux的启动,而直接是从SSD 0启动,在其下方有个UEFI启动项选项,进入后可以调整Linux和Windows启动的优先级。如果不调整Linux为最优先,那么每次启动都会直接进入Windows中。
二、配置Linux软件环境
配置Linux软件环境大致和PA0讲义内容一样。但是编写讲义的人似乎有意锻炼阅读者的能力,很多地方会故意引导使用报错的方式or直接省略一些步骤。因此写这篇随笔的意义就是记录一下完整的配置过程。毕竟互联网存在的意义就是站在前人的肩膀上能看到更远。
1.设置一个root账户
在安装ubuntu的过程中会要求用户设置自己的用户名和密码,此密码用于解锁系统锁屏,并不意味着直接就可以当作root账户的密码使用,因此需要设置一个root密码。
首先使用【Ctrl+Alt+T】快捷键打开终端,在终端中输入:
sudo passwd
然后输入并确认你设置的密码即可
2.换源 & 配置or安装工具
众所周知的原因,在大陆是无法直连谷歌的,不换源很多软件安装无法进行,因此我们需要对ubuntu进行换源。
在终端中输入以下命令打开源配置文件:
sudo gedit /etc/apt/sources.list
打开后复制以下文本到源文件并保存:
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse ## Pre-released source, not recommended. # deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse # deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse ## Pre-released source, not recommended. # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse ## Pre-released source, not recommended. # deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse # deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse # deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse # deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse # deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse ## Pre-released source, not recommended. # deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse # deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
然后在终端中输入以下命令更新源的配置:
sudo apt-get update sudo apt-get upgrade
更新完成后可以安装PA 所需要的工具了:
su # use root 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 # on-line reference manual for gcc apt-get install gdb # GNU debugger apt-get install git # revision control system apt-get install libreadline-dev # a library used later apt-get install libsdl2-dev # a library used later apt-get install llvm llvm-dev # llvm project, which contains libraries used later
最后安装世界上最好(难)用的文本编辑器Vim,在终端中输入以下命令:
sudo apt-get install vim
输入以下命令进入vim编辑器:
vim test
进入vim后默认在“Normal”模式(看左下角),此时按下键盘上的 “ i ” 键,进入“Insert”模式,此时可以进行文本输入。在“Insert”模式中,按下键盘上的 “ ESC ” 键即可退出并回到“Normal”模式。在“Normal”模式下输入" :q "退出vim编辑器。有关编辑器的使用方法参考了半离的博客。
更多使用Vim编辑器的教程可以Baidu或Google。
3.配置中文输入法
由于安装ubuntu的时候选择的是English,所以系统默认是没有中文输入法的。
首先在“Language Support”中安装“Chinese”
然后在终端中输入以下命令:
sudo apt-get install ibus-pinyin
安装完成后,在“Settings”-“Keyboard”中点击“Input Source”下方的加号,选择“Chinese(Intelligent pinyin)”。如果找不到添加的选项可以重启电脑,重启完毕后即可出现。
一系列操作做完之后,会发现在终端中输入法起作用(谁会在终端里用中文啊),但是系统自带的火狐浏览器中还是只能使用英文,这是因为火狐浏览器的系统设置没有支持中文。进入火狐浏览器设置,找到语言,添加中文。重启后火狐浏览器就支持中文输入法了。
4.配置GITHUB环境
GITHUB是一个非常好用的版本控制管理软件,一生一芯项目采用GITHUB来进行版本控制。在上面步骤已经安装了git工具,接下来只需要申请GITHUB账号(如果没有的话),安装git服务器和配置SSH公钥即可。
申请账号这里不赘述,从安装git服务器开始,终端中输入以下命令配置git服务器:
sudo apt-get install openssh-server openssh-client #open SSH sudo /etc/init.d/ssh restart #start ssh server sudo apt-get install git-core #install git server
配置ssh公钥:
ssh-keygen -C '你的邮箱地址' -t rsa
输入完成后,提示给公钥文件命名,我命名为“ssh_key”
然后询问是否需要口令,连续两次回车即口令为空。
配置完公钥后,会发现在目录路径下生成了“ssh_key”的ssh公钥文件。打开github网站,进入“settings”-“SSH and GPG keys”点击“Add new SSH keys”添加你的SSH公钥(公钥内容为.pub后缀文件里的,直接复制即可)。
提示,如果看不到.ssh文件夹,可以输入以下命令来查看生成的公钥文件:
ls -al ~/.ssh #查看默认路径下的ssh密钥文件 cat ~/.ssh/xxx.pub #打开你生成的ssh密钥,文件名根据上一条命令得到的结果来填写
在桌面新建“YSYX”文件夹,打开文件夹后,在文件夹中打开终端(直接在终端中使用命令行也可以,这样做只是windows图形化界面用久了养成的习惯)输入以下命令配置你的github账户:
git config --global user.name "211220000-Zhang San" # 你的用户名 git config --global user.email "zhangsan@foo.com" # 你的邮箱 git config --global core.editor vim # 编辑器 git config --global color.ui true
5.在“YSYX”文件夹中打开终端,输入以下代码克隆仓库:
git clone -b ysyx2204 git@github.com:OSCPU/ysyx-workbench.git
可以看到“YSYX”文件夹中出现了“ysyx-workbench”子文件夹,说明仓库克隆成功。
使用命令或者在自文件夹中打开终端,输入以下命令查看项目分支:
git branch
返回结果为:
* ysyx2204
说明本地只有一个分支,输入以下命令新建"pa0"分支;
git checkout -b pa0
返回结果提示我们切换到了pa0分支:
Switched to a new branch 'pa0'
再使用一次git branch命令,返回以下结果:
* pa0
ysyx2204
说明现在项目以及有两支分支,当前处于“pa0”分支上。
接着在终端中输入命令按照PA要求修改“Makefile”
vi Makefile
vim编辑器的使用方式这里不再赘述
修改完成后,输入命令查看修改内容:
git status
返回结果为
On branch pa0 Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: Makefile no changes added to commit (use "git add" and/or "git commit -a")
可以看到修改了Makefile,这与之前的操作一致,没有问题。查看更加细节的修改内容,输入以下命令:
git diff
就能看到修改前后内容的对比了。确认无误后,将内容上传到仓库中:
git add .
git commit -m "First Commit"
上传成功后,输入以下命令查看修改记录:
git log
从返回信息可以看到修改人(Author)、修改时间(Date)以及修改内容(First Commit)。
接着返回“ysyx2204”分支,查看makefile内容:
git checkout ysyx2204 vi Makefile
可以看到Makefile内容为:
STUID = ysyx_22040000
STUNAME = 张三
说明“ysyx2204”分支并没有被修改,这就是新建一支分支的意义。
自此,PA0的内容全部结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具