提交 b224f196 编写于 作者: O openeuler-ci-bot 提交者: Gitee

!241 提交罗宇哲系列博客1、2

Merge pull request !241 from Joyee/master
+++
title = "openEuler开源社区开发流程"
date = "2020-07-31"
tags = ["开源社区", "git"]
archives = "2020-07"
author = "罗宇哲"
summary = "openEuler开源社区开发流程,介绍如何使用git提交PR。"
+++
### 使用git提交PR
一、环境准备
1. 注册码云账号,地址:<https://gitee.com>
2. 加入openEuler社区,地址:https://openeuler.org/zh/
3. 安装git
> 3.1 windows安装:https://git-scm.com/download/win
> 3.2 linux安装:
```
openEuler: dnf install git
centOS: yum install git
ubuntu: apt-get install git
```
4. git配置
> 4.1 全局配置用户名和邮箱
```
git config --global user.name "Your Name"
git config --global user.email <email@example.com>
```
> 4.2 链接远程仓库
> 1)生成SSH密匙
```
ssh-keygen -t rsa -C "youremail\@example.com"
cat \~/.ssh/id_rsa.pub
```
> 2)登录远程仓库网站Gitee账户并添加密匙
<https://gitee.com/profile/sshkeys>
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF01.png">
二、提交PR
1. 进入要修改的仓库,点击右上角的Forked,将其fork到自己的仓库,如下图所示。
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF02.png">
2. Fork成功之后会自动进入Fork的仓库目录,点击克隆/下载-\>选择复制任一链接。见下图。
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF03.png">
3. 将仓库clone到本地,并进入仓库目录。以上图perl-Text-ParseWords仓库为例。
```
git clone <https://gitee.com/dogsheng/perl-Text-ParseWords>.git
cd perl-Text-ParseWords
```
4. 可以通过git remote –v查看所有远程库的url,见下图。
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF04.png">
> 发现没有原作者的项目地址,使用git remote add upstream
> https://gitee.com/openeuler/perl-Text-ParseWords.git添加,再次执行git remote
> –v。如下图所示。
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF05.png">
> 使用git remote set-url --push upstream
> no_push,设置不直接将改变推送到上游openEuler里面的仓库,而是只推送到自己Fork的gitee仓库下。见下图。
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF06.png">
> 4.1 git fetch
> upstream与上游openEuler社区保持同步;如果是已提交过一次代码以后再做代码修改操作,可以跳过2.3/2.4两个步骤。
> 4.2 切换到master分支,并且把最新的代码同步下来。
```
git checkout master
git rebase upstream/master
```
5. 建立并进入分支进行代码开发、改动。
> git checkout –b \*\*\* // \*\*\*为自己定义的分支名,这里取名test_ci
> 5.1 cd指令进入软件包路径,修改代码; 如果是对已提交过的代码再进行修改,则追加git
> pull(从初次操作的clone变为pull)。
> 5.2 git add .
> git commit –m “modify” //其中modify为进行改变的标题,自行定义
6. 将代码提交到远端,\*\*\*为步骤2.6建立的分支名称。git push -f origin
\*\*\*。结果见下图。
注:
git config --global credential.helper store
> 输入上述命令以后用户名密码就会被git记住,之后在这个目录下都不需要再输入用户名密码了
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF07.png">
7. 进入改动过代码的自己的仓库,选择下图小标1,或者点击小标2后接着进入新建Pull Requests。
<img src="/zh/blog/luoyuzhe/000openEuler-community-development-process/OEKF08.png">
8. 例子中2.6步建立的分支为test_ci,在新建Pull Requests之后,如下图所示
<img src="/zh/blog/luoyuzhe/000openEuler开源社区开发流程/OEKF09.png">
> 填写标题和说明即可创建Pull Request。
\ No newline at end of file
+++
title="第一期自动搭建openEuler虚拟机运行QEMU运行环境"
date="2020-07-31"
tags=["openEuler","虚拟机","QEMU运行环境"]
archives="2020-07"
author="罗宇哲"
summary="自动搭建openEuler虚拟机运行QEMU运行环境"
+++
_作者:罗宇哲,中国科学院软件研究所智能软件研究中心_
本文介绍了一个自动搭建openEuler虚拟机QEMU运行环境的脚本使用方法,本脚本能下载并安装各种依赖项,自动下载并编译安装QEMU4.1.1和busybox 1.25.1,下载并安装对Linux 4.19.1进行ARM64交叉编译并用gdb进行调试的环境,该环境能帮助我们理解openEuler内核的运行,以及下载和QEMU环境下安装openEuler1.0版。本脚本参考了前辈[1]在ARM32位环境下对Linux Kernel的交叉编译脚本,特此感谢!我们修改了QEMU、busybox和Linux kernel的版本和根文件系统搭建的方法,增加了依赖项,并将ARM交叉编译环境和gdb改为了64位,而且增加了openEuler的相关内容。
## 一、openEuler虚拟机运行环境搭建
环境准备:在VMware 15.1.0 或VirtualBox 6.10上搭建Ubuntu 18.04虚拟机,建议分配硬盘大小120G,内存大小2G以上。
自动搭建脚本码云地址:https://gitee.com/luo_yu_zhe/openEulerInstallation
**运行脚本之间请手动更改下载源为国内源!否则下载较慢,更改源的方式参考[3]。**
###### 脚本运行流程
1. sudo ./prepare.sh
2. source \~/.bashrc
3. sudo ./build.sh, 做完这一步ARM64交叉编译环境、linux kernel 4.19.1、busybox和QEMU以及依赖项应该都装好了。
4. sudo ./start-qemu.sh进行无gdb调试linux kernel 4.19.1 或者sudo./start-qemu-gdb.sh之后另开一个窗口, aarch64-linux-gnu-gdb进入gdb界面,再输入 target remote localhost:1234进入调试阶段,在gdb窗口输入c就可以切换到qemu窗口运行。
sudo ./start-qemu.sh后:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU1.png">
开启gdb运行后:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU2.png">
###### Prepare.sh 脚本功能介绍
该脚本用于下载并解压64位ARM交叉编译工具、QEMU-4.1.1和openEuler镜像,此外,它还会通过apt install 安装依赖项。该脚本会检查压缩包是否存在,若存在不会重复下载解压。
下载openEuler镜像:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU3.png">
下载并解压交叉编译gcc,设置环境变量:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU4.png">
安装依赖项:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU5.png">
下载并安装QEMU-4.1.1:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU6.png">
下载QEMU UEFI启动固件并生成img文件,大小可以分配:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU7.png">
###### Build.sh脚本功能介绍
下载并编译linux kernel 4.19.1,下载并编译busybox
1.25.1,制作根文件系统。架构和版本可以通过文件开头的参数进行设置。
下载并编译Linux内核4.19.1版:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU8.png">
把编译好的Image文件copy到目标文件夹:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU9.png">
下载并解压busybox:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU10.png">
编译安装busybox:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU11.png">
制作根文件系统:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU12.png">
###### qemu启动脚本介绍
start-qemu.sh: qemu普通启动。
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU13.png">
start-qemu-gdb.sh:带gdb 启动。
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU14.png">
start-euleros.sh :用qemu启动euleros镜像。
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU15.png">
采用gdb模式启动的时候首先运行sudo./start-qemu-gdb.sh命令,然后重新启动一个terminal,运行aarch64-linux-gnu-gdb,输入端口号然后按c。
qemu常见选项[2]:
\-hda file、-hdb file、-hdc file和-hdd file。
把文件当成hard disk 0、hard disk 1、hard disk 2和hard disk 3。
 
\-append cmdline
将cmdline作为kernel command line,所谓kernel command line就是在kernel启动的时候,用cmdline对内核进行配置。比如"root=/dev/hda",将/dev/hda设置成根文件系统。
\-M machine
选择模拟的机器(我们可以输入-M?提到一个模拟的机器列表)
\-fda file/-fdb file
使用file作为软盘镜像.我们也可以通过将/dev/fd0作为文件名来使用主机软盘。
\-cdrom file
使用文件作为CD-ROM镜像(但是我们不可以同时使用'-hdc'和'-cdrom').我们可以通过使用'/dev/cdrom'作为文件名来使用主机的CD-ROM。
\-boot [a\|c\|d]
由软盘(a),硬盘(c)或是CD-ROM(d).在默认的情况下由硬盘启动.
\-snapshot
写入临时文件而不是写入磁盘镜像文件.在这样的情况下,并没有写回我们所使用的磁盘镜像文件.然而我们却可以通过按下C-a s来强制写回磁盘镜像文件。
\-m megs
设置虚拟内存尺寸为megs M字节.在默认的情况下为128M。
\-smp n
模拟一个有n个CPU的SMP系统.为PC机为目标,最多可以支持255个CPU。
\-nographic
在通常情况下,Qemu使用SDL来显示VGA输出。使用这个选项,我们可以禁止所有的图形输出,这样Qemu只是一个简单的命令行程序。模拟的串口将会重定向到命令行。所以,我们仍然可以在Qemu平台上使用串口命令来调试Linux内核。
## 二、openEuler 系统安装说明
##### 1.QEMU安装openEuler镜像
运行完sudo ./prepare.sh后,运行sudo./start_euleros.sh,运行该脚本会执行一下命令:
qemu-system-aarch64 -machine virt -cpu cortex-a57 -m 1024 -bios ./QEMU_EFI.fd
-cdrom openEuler-1.0-aarch64-dvd.iso -hda ./qemu_Euler.img -serial stdio
QEMU会读入openEuler的镜像文件然后进入安装流程。选择安装openEuler后,选择安装模式(**选择test media选项**),之后分别配置每个前面有”[!]”这个标记的选项,主要有installation destination, root password和user password等,注意选择的时候是先输入选项对应的数字,确定之后按回车,然后再按c(continue)继续安装。以下是一个选择的流程,选项前面有[x]代表选中了该选项:
###### A.选择 Use text mode 选项
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU16.png">
###### B.选择Root password选项并配置
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU17.png">
配置完之后我们可以发现大部分之前有[!]的选项之前都变成了[x]。
###### 配置安装目的地
选择大小:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU18.png">
选择使用空间:
VMware:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU19.png">
VirtualBox:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU20.png">
选择Partition方式:
VMware:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU21.png">
VirtualBox:
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU22.png">
###### 配置用户账户,输入b完成配置
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU23.png">
###### E.安装完成
到这一步需要按一下回车然后输入之前设定的用户名和密码才行。
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU24.png">
<img src="/zh/blog/luoyuzhe/001Auto-build-vm-enviroment/QEMU25.png">
然后就和linux的操作基本一样了\~有一个问题是每次运行都要安装一次,所以装好之后最好能保存一个虚拟机快照。
## 参考文献
[1]https://github.com/xianjimli/qemu-arm-linux.git
[2]https://blog.csdn.net/ustc_dylan/article/details/5385691
[3]https://blog.csdn.net/qq_35451572/article/details/79516563
\ No newline at end of file
......@@ -9,15 +9,13 @@ summary = "【手把手带你玩转openEuler】系列直播进行中"
为了让更多人更深入认识openEuler并积极参与进来,社区将通过一系列直播和大家近距离接触,邀请openEuler开源的重要参与者、SIG组maintainer等资深专家来进行持续分享,从带你认识openEuler,到教你如何安装、如何使用openEuler,如何参与到openEuler社区贡献,都有很详细的解读
为了让更多人更深入认识openEuler并积极参与进来,社区将通过一系列直播和大家近距离接触,邀请openEuler开源的重要参与者、SIG组maintainer等资深专家来进行持续分享,带你深入认识openEuler,教你使用openEuler,分享如何参与到openEuler社区贡献
欢迎来B站openEuler直播间和社区讲师互动!
***已******播出******
**已播出回顾:**
**1、初识openEuler** 讲师:朱延朋
......@@ -30,13 +28,13 @@ summary = "【手把手带你玩转openEuler】系列直播进行中"
​ 视频回顾:https://www.bilibili.com/video/BV1vK4y1s7QG
** 3、使用openEuler**
**3、使用openEuler** 讲师:沈洋洋
视频回顾:https://www.bilibili.com/video/BV13z4y1D7mq
**4、openEuler构建之OBS使用指导**
**4、openEuler构建之OBS使用指导** 讲师:朱春意
视频回顾:https://www.bilibili.com/video/BV1YK411H7E2
......@@ -45,8 +43,39 @@ summary = "【手把手带你玩转openEuler】系列直播进行中"
视频回顾:https://www.bilibili.com/video/BV1pK411J7R9
***七月后续直播计划:***
**6、虚拟化介绍**
视频回顾:https://www.bilibili.com/video/BV1of4y1X7p1
**后续直播计划:**
8月6号20:00(周四) iSula容器镜像构建
8月11号20:00(周二) 开源license&copyright
8月13号20:00(周四) 如何参与 openEuler kernel 开发
8月18号20:00(周二) openEuler 网络配置
**【iSula容器系列】**
8月20号20:00(周四) 深入理解容器镜像构建工具 isula-build
8月25号20:00(周二) isula-build之安全特性
8月27号20:00(周四) 轻量级容器引擎 iSulad 之功能介绍及架构解析
9月1号20:00(周二) iSulad 之性能测试、分析与比较
9月3号20:00(周四) iSulad 之安全特性实现解析
9月8号20:00(周二) iSula 容器之系统容器
9月10号20:00(周四) iSula 容器之安全容器
9月15号20:00(周二) 手把手带你完成 openEuler 环境部署 K8S
<img src="/img/events/20200723-openeluer-live-01.jpg">
晚上20:00-21:00直播,直播间地址:http://live.bilibili.com/22290444
**欢迎准时到B站openEuler直播间收看!直播间地址:http://live.bilibili.com/22290444**
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册