构建龙芯平台的Fedora 40操作系统第04章-创作基地

4.1 搭建初始系统

4.1.1 安装一个系统环境

export DISTRO_URL=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/40/Everything/x86_64/os/

	sudo dnf install @core @c-development rpm-build git python3-devel texinfo zlib-devel \
	gettext-devel rpm-devel tcl ncurses-devel openssl-devel bc wget meson ninja-build \
	gperf help2man \
	--installroot /opt/distro --disablerepo="*" --repofrompath base,${DISTRO_URL} \
	--releasever 40 --nogpgcheck

unset DISTRO_URL

4.1.2 配置初始系统

pushd /opt/distro
	sudo mount -t devtmpfs dev dev
	sudo mount -t proc proc proc
	sudo mount -t sysfs sys sys
	sudo mount -t devpts devpts dev/pts -o gid=5,mode=620
	sudo mount -t tmpfs shm dev/shm
	sudo mount -t tmpfs tmpfs tmp -o nosuid,nodev
	sudo mount -t tmpfs tmpfs run -o nosuid,nodev,mode=755
popd
sudo cp /etc/resolv.conf /opt/distro/etc/

4.1.3 下载全部源代码

sudo rsync -r --progress --delete --update \
	rsync://mirrors.tuna.tsinghua.edu.cn/fedora/releases/40/Everything/source/tree/ /opt/srpms

sudo mkdir -pv /opt/distro/opt/srpms
sudo mount --bind -o ro /opt/srpms /opt/distro/opt/srpms

4.1.4 登录初始系统

sudo chroot /opt/distro /bin/env -i HOME=/root TERM="${TERM}" \
	PS1='\u:\w\$ ' /bin/bash --login +h

4.1.5 配置软件仓库

sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/*.repo
nano /etc/yum.repos.d/fedora.repo

修改fedora.repo,修改[fedora]仓库的baseurl为:

baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/$basearch/os/

在metalink前面加上#,注释掉这一行。
将enabled的值修改为1,启用[fedora]仓库。

修改[fedora-source]仓库的baseurl为:

baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/source/tree/

在metalink前面加上#,注释掉这一行。
将enabled的值保持为0。

如果下载了Fedora Linux的全部源代码(前面我们的确已经下载了),那么baseurl可以设置为:

baseurl=file:///opt/srpms/

如果要移植的版本已经发布有一段时间了,那么我们也可以修改fedora-updates.repo,将其中的[updates]仓库修改为:

baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/updates/$releasever/Everything/$basearch/

在metalink前面加上#,注释掉这一行。
将enabled的值保持为0,禁用[updates]仓库。

4.2 创作基地的搭建和设置

4.2.1 设置环境变量

export SYSDIR=/opt/mydistro

4.2.2 建立创作基地目录

mkdir -pv ${SYSDIR}

4.2.3 创建必要的目录

mkdir -pv ${SYSDIR}/sources
mkdir -pv ${SYSDIR}/build
install -dv ${SYSDIR}/tools
install -dv ${SYSDIR}/cross-tools
ln -sv ${SYSDIR}/tools /
ln -sv ${SYSDIR}/cross-tools /

4.2.4 创建制作用户

groupadd loongson
useradd -s /bin/bash -g loongson -m -k /dev/null loongson
usermod -a -G wheel loongson
passwd loongson # 设置用户密码
chown -Rv loongson ${SYSDIR}
chmod -v a+wt ${SYSDIR}/{tools,cross-tools,sources,build}

4.2.5 设置制作用户

su - loongson
cat > ~/.bash_profile << "EOF"
exec env -i HOME=${HOME} TERM=${TERM} PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc << "EOF"
set +h
umask 022
export SYSDIR="/opt/mydistro"
export BUILDDIR="${SYSDIR}/build"
export DOWNLOADDIR="${SYSDIR}/sources"
export LC_ALL=POSIX
export CROSS_HOST="$(echo $MACHTYPE | sed "s/$(echo $MACHTYPE | cut -d- -f2)/cross/")"
export CROSS_TARGET="loongarch64-unknown-linux-gnu"
export MABI="lp64d"
export BUILD_ARCH="-march=loongarch64"
export BUILD_MABI="-mabi=${MABI}"
export BUILD64="-mabi=lp64d"
export LD_LIBRARY_PATH="${SYSDIR}/cross-tools/lib:${SYSDIR}/cross-tools/${CROSS_TARGET}/lib"
export PATH=/cross-tools/bin:/bin:/usr/bin:${PATH}
unset CFLAGS
unset CXXFLAGS
EOF
source ~/.bash_profile
export # 检查用户设置
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值