Skip to content

Commit

Permalink
勇豹
Browse files Browse the repository at this point in the history
  • Loading branch information
sunhaiyong1978 committed May 12, 2023
1 parent e3b6484 commit 8e967d0
Show file tree
Hide file tree
Showing 769 changed files with 1,452 additions and 1,049 deletions.
1 change: 1 addition & 0 deletions README.md
1 change: 1 addition & 0 deletions docs/README.md
27 changes: 27 additions & 0 deletions docs/最简使用指南.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# “勇豹”最简使用指南

1、获取“勇豹”代码

```sh
git clone https://github.com/sunhaiyong1978/Yongbao.git --depth 1
```

2、使用“勇豹”创建系统

```sh
pushd Yongbao
./create.sh
popd
```

3、创建的系统

当create.sh脚本正常结束后,一个可以启动的Linux系统就被存放在workbase/live_usb目录中。

4、制作一个可以启动创建系统的U盘(LiveUSB)

找来一个U盘,保存好其中的数据(如果有的话),将其设置为gpt分区模式,并进行分区,将第一个分区格式化为VFAT文件系统格式,然后将workbase/live_usb目录中的所有文件复制到U盘的第一个分区即可。

5、启动LiveUSB

找一个符合所创建系统指令架构的机器启动LiveUSB。
55 changes: 55 additions & 0 deletions docs/说明.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# “勇豹”(Yongbao)发行版构建项目 使用说明

## 简介:

“勇豹”(Yongbao)是一个使用交叉编译的方式构建目标指令集架构操作系统发行版的项目。

以下“勇豹”及“Yongbao”均指代该项目。

“勇豹”旨在用来为目标指令集架构提供一个全新可使用的操作系统,亦可用来帮助用户编译、验证在目标系统上运行的程序。

目前“勇豹”支持构建的操作系统为Linux,支持的目标指令集架构:LoongArch64,“勇豹”支持的架构后续会逐渐进行丰富。

## 获取方式:

“勇豹”项目可以通过git命令进行获取,使用以下命令获取最新的版本:

```sh
git clone https://github.com/sunhaiyong1978/Yongbao.git --depth 1
```

## 基本使用方式:

当获取了“勇豹”的代码后,即可以开始进行构建发行版的工作了(对于“勇豹”运行环境和操作说明可参考《运行环境准备》和《最简使用指南》部分的内容说明)。

获取“勇豹”的代码后在Yongbao目录中运行构建命令:

```sh
./build.sh
```

该命令会进行目标指令集架构操作系统的构建,在构建前会对构建过程中所需的源码包和资源文件进行下载,请保持网络环境的畅通。

可以通过 -h 参数获取build.sh命令的基本用法说明。

因构建过程取决于构建机器的性能,因此不同机器的构建时间差异可能巨大,请耐心等待构建过程完成。

build.sh命令的进一步的使用方法可以参考《工具命令详解》部分的内容说明。

当build.sh命令完成后还需要做些什么,可以参考《启动Yongbao发行版系统》内的说明。

## 相关文档

你还可以参考以下文档:

《运行环境准备》

《最简使用指南》

《“勇豹”使用指南》

《工具命令详解》

《启动Yongbao发行版系统》

《“勇豹”的目录构成与定制指南》
133 changes: 133 additions & 0 deletions docs/运行环境准备.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# “勇豹”运行环境准备

1、概念说明:

  主系统:即在硬件上直接运行的操作系统。

  用户系统:即跑在主系统之上但系统软件在逻辑上独立于主系统的操作系统,如使用虚拟机中的系统、chroot进入的系统,通常用于某个具体需求而安装。

  目标系统:构建生成的系统,运行在目标架构的硬件环境上。

2、使用需求:

  “勇豹”提供了一组脚本和工具用来交叉编译构建操作系统发行版,然而要想让这些脚本和工具正常工作,需要用户系统满足运行所需的软件环境。


  以下是一个对用户系统的概要性需求描述:

  1、一个基本的GNU/Linux操作系统发行版,可使用例如Fedora Linux发行版。

  2、发行版中需要提供构建系统过程中所需的软件包:

  (1) binutils、gcc、make等软件编译相关的软件包;

  (2)一些构建host环境工具所需要的一些开发包,如openssl-devel、libxml2-devel等;

  (3)常用的工具命令,如doxygen、gtk-doc等。


3、构建过程需要大量的存储空间,因此剩余可用于构建的空间容量不少于50G。

运行环境安装:

  为了不破坏主系统的情况下,通常可以创建一个专用的运行“勇豹”的用户系统。

  以下是一个用户系统安装内容的示范,例如在Fedora系统中使用以下命令安装一个额外的系统环境:

```sh
export DISTRO_URL=https://mirrors.bfsu.edu.cn/fedora/releases/38/Everything/x86_64/os/
  sudo dnf install @core @c-development glibc-langpack-zh rpm-build git wget texinfo \
zlib-devel rsync libunistring-devel libffi-devel gc-devel \
expat-devel pcre2-devel glib2-devel cmake openssl-devel libyaml-devel \
libxml2-devel cairo-devel libxslt-devel gettext-devel \
glib2-static libstdc++-static zlib-static \
fpc tcl ncurses-devel gperf openssl icu docbook-style-xsl bc squashfs-tools \
graphviz doxygen xmlto xcursorgen dbus-glib lynx gtk-doc sqlite \
--installroot ${HOME}/mybuild --disablerepo="*" \
--repofrompath core,${DISTRO_URL} \
--releasever 38 --nogpgcheck
unset DISTRO_URL
```

上面的命令将在主系统的用户目录中创建一个mybuild目录,其中安装了一个Fedora Linux系统,该系统将作为后续的用户系统进行使用。

接下来切换到该用户系统中:

```sh
sudo chroot ${HOME}/mybuild
```

第一次进入用户系统环境后需要挂载必要的文件系统:

```sh
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devtmpfs dev /dev
mount -t devpts devpts /dev/pts
mount -t tmpfs shmfs /dev/shm
```

如果没有再次启动计算机或者卸载文件系统,当再次切换到该用户系统时不需要再次挂载,否则需要重新挂载以上的文件系统。


用户系统环境的安装亦可采用docker等方式,安装方式(待补充)

4、创建普通用户

无论是哪种方式建立的用户系统环境,都建议创建一个普通用户用于“勇豹”系统的制作,这样可减少因为一些意外的操作而导致对用户系统甚至主系统破坏的情况。

使用以下命令创建用户
```sh
groupadd yongbao
useradd -s /bin/bash -g yongbao -m -k /dev/null yongbao
```

使用命令切换到新创建的用户:

```sh
su - yongbao
```

为制作用户设置最精简和必要的环境变量,以帮助后续制作过程的开展。

```sh
cat > ~/.bash_profile << "EOF"
exec env -i HOME=${HOME} TERM=${TERM} PS1='\u:\w\$ ' /bin/bash
EOF
```

```sh
cat > ~/.bashrc << "EOF"
set +h
umask 022
export LC_ALL=zh_CN.UTF-8
export PATH=/usr/bin:/usr/local/bin
unset CFLAGS
unset CXXFLAGS
EOF
```

启用用户环境的设置,使用命令:
```sh
source ~/.bash_profile
```

5、设置用户权限

因“勇豹”的制作过程中需要使用root权限进行目录的挂载,为减少认证的次数,建议给刚创建的用户赋予挂载目录的权限。

使用以下命令修改权限设置文件:
```sh
sudo visudo
```

加入以下内容并保存
```sh
yongbao localhost=(root) NOPASSWD: /bin/mount, /bin/umount
```
这里设置yongbao用户在本机上而非远程访问操作时可以在不输入密码的情况下使用mount和umount两个命令。

若希望远程访问也可以不输入密码,则可将"localhost"改为"ALL"。


权限设置完成后就可以使用“勇豹”构建Linux系统了,新手入门,请参考《最简使用指南》,更详细的使用请参考《“勇豹”使用指南》
Loading

0 comments on commit 8e967d0

Please sign in to comment.