Gentoo Linux是什么?

Gentoo Linux是一个万能的,基于源代码的Linux发行版——可以变成任何你需要的系统——甚至更强大。他的官网是https://www.gentoo.org/,文档位于https://wiki.gentoo.org/。Portage是他的强大的包管理器,是用python和bash写成的。

MIPS64el N64是什么?

https://www.linux-mips.org/上有两篇文章,《MIPS ABI History》、《WhatsWrongWithO32N32N64》。简单的说o32相当于MIPS32的IA-32,n32相当于MIPS64的x32,n64相当于MIPS64的AMD64。这里我选择安装n64系统。

准备

安装Gentoo需要准备三样工具:

  1. 一个可以启动的Linux内核和环境;
  2. 安装手册;
  3. stage3 tarball。

在《走进龙芯3A3000(一)安装Loongnix 》中我已经安装了一个Loongnix。Loongnix的软件都不是最新的版本,这也是我为什么要安装Gentoo的原因。不过Loongnix可以提供一个可以启动的Linux环境,正好拿来用。

安装手册位于https://wiki.gentoo.org/有中文的,和英文的(当然还有其他语言的版本)。我的整个安装过程将和手册对照。过程中的注释指示这对应手册的标题。

我没有使用官方的stage3 tarball,官方对于MIPS的支持很陈旧了。我也曾尝试过自己制作一个stage1、2、3的tarball,无奈没有成功。不过我在这里:n64 stages for mipsel… any interest?找到了一个MIPS64el n64的stage3 tarball。经过测试可用。

过程

#** Choosing the media **
# Choosing the right installation medium
http://www.longlandclan.id.au/~stuartl/gentoo/mips/n64/stage3-mipsel3_n64-20170509.tar.bz2#** Configuring the network **#** Preparing the disks **
lvcreate -L 30G -nslash-gentoo-n64 vg
lvcreate -L 30G -nhome-gentoo-n64 vg
mkfs.ext4 /dev/vg/slash-gentoo-n64
mkfs.ext4 /dev/vg/home-gentoo-n64
mkdir /media/gentoo-n64
mount /dev/vg/slash-gentoo-n64 /media/gentoo-n64
mkdir -p /media/gentoo-n64/{home,boot}
mount /dev/vg/home-gentoo-n64 /media/gentoo-n64/home
mount /dev/sda1 /media/gentoo-n64/boot#** Installing stage3 **
# Installing a stage tarball
date
tar xpf stage3-mipsel3_n64-20170509.tar.bz2 --xattrs-include='*.*' --numeric-owner -C /media/gentoo-n64/
vi /media/gentoo-n64/etc/portage/make.conf
MAKEOPT="-j5"
GENTOO_MIRRORS="https://mirrors.aliyun.com/gentoo/"
# Loongnix have not mirrorselect, so add GENTOO_MIRRORS manually#** Installing base system **
# Chrooting
mkdir --parents /media/gentoo-n64/etc/portage/repos.conf
cp /media/gentoo-n64/usr/share/portage/config/repos.conf /media/gentoo-n64/etc/portage/repos.conf/gentoo.conf
cp --dereference /etc/resolv.conf /media/gentoo-n64/etc/
mount --types proc /proc /media/gentoo-n64/proc
mount --rbind /sys /media/gentoo-n64/sys
mount --make-rslave /media/gentoo-n64/sys
mount --rbind /dev /media/gentoo-n64/dev
mount --make-rslave /media/gentoo-n64/dev
chroot /media/gentoo-n64/ /bin/bash
Loongson-3A3000 / # source /etc/profile
Loongson-3A3000 / # export PS1="(chroot) $PS1"
(chroot) Loongson-3A3000 / # # Configuring Portage
emerge-webrsynceselect news readeselect profile list# make sure profile point to n64
# --force must be between "set" word and "12"
eselect profile set --force 12[12]  default/linux/mips/13.0/mipsel/multilib/n64 (exp)vi /etc/nsswitch.conf
...
passwd:      compat files
shadow:      compat files
group:       compat files
...emerge -e system# End
exitcd
umount -l /media/gentoo-n64/dev{/shm,/pts,}
umount -R /media/gentoo-n64#========== [插曲] make a stage3-N64 tarball =========#
mount /dev/vg/slash-gentoo-n64 /media/gentoo-n64
mount /dev/vg/home-gentoo-n64 /media/gentoo-n64/home
mount /dev/sda1 /media/gentoo-n64/boot
mount --types proc /proc /media/gentoo-n64/proc
mount --rbind /sys /media/gentoo-n64/sys
mount --make-rslave /media/gentoo-n64/sys
mount --rbind /dev /media/gentoo-n64/dev
mount --make-rslave /media/gentoo-n64/dev
chroot /media/gentoo-n64/ /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"exitcd
umount -l /media/gentoo-n64/dev{/shm,/pts,}
umount -R /media/gentoo-n64#reboot
mount /dev/vg/slash-gentoo-n64 /media/gentoo-n64#
c
cd usr/portage
rm * -rfcd /media/gentoo-n64/
vi etc/portage/make.conf
delete all except CHOSTcd etc/portage/
rm repos.conf -rfrm /media/gentoo-n64/etc/resolv.conf -f# make a stage3 tarball
tar cjvpf /home/lophyxp/下载/stage3-mips64r2el-n64-20180509.tar.bz2 .#============== End make =============## to be continue...
mount /dev/vg/slash-gentoo-n64 /media/gentoo-n64
mount /dev/vg/home-gentoo-n64 /media/gentoo-n64/homevi /media/gentoo-n64/etc/portage/make.confUSE="networkmanager bash-completion"MAKEOPT="-j5"LINGUAS="zh zh_CN"
L10N="zh-CH"INPUT_DEVICES="libinput"
VIDEO_CARDS="radeon radeonsi amdgpu"GENTOO_MIRRORS="https://mirrors.aliyun.com/gentoo/"#** Installing base system **
# Chrooting
mkdir --parents /media/gentoo-n64/etc/portage/repos.conf
cp /media/gentoo-n64/usr/share/portage/config/repos.conf /media/gentoo-n64/etc/portage/repos.conf/gentoo.conf
cp --dereference /etc/resolv.conf /media/gentoo-n64/etc/
mount --types proc /proc /media/gentoo-n64/proc
mount --rbind /sys /media/gentoo-n64/sys
mount --make-rslave /media/gentoo-n64/sys
mount --rbind /dev /media/gentoo-n64/dev
mount --make-rslave /media/gentoo-n64/devchroot /media/gentoo-n64/ /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"# Configuring Portage
emerge-webrsynceselect news readeselect profile list# Updating the @world set
emerge -uDN world#Timezone
ls /usr/share/zoneinfo
echo "Asia/Shanghai" > /etc/timezone
emerge --config sys-libs/timezone-data# Configure locales
nano -w /etc/locale.gen
zh_CN.UTF-8 UTF-8locale-gen
eselect locale list
eselect locale set 3
env-update && source /etc/profile && export PS1="(chroot) $PS1"# diff -u mkspecs/features/functions.prf.orig mkspecs/features/functions.prf > /etc/portage/qmake-enable-arch-mips64el-20180609.patch
#
mkdir -p /etc/portage/patches/sys-kernel/genkernel/
cd /etc/portage/patches/sys-kernel/genkernel/
vi genkernel-default-ld-arch-mips64el-20180809.patch
--- a/arch/mips/config.sh       2018-08-09 12:04:20.835098252 +0800
+++ b/arch/mips/config.sh       2018-08-09 12:05:05.835311954 +0800
@@ -16,4 +16,5 @@# genkernel on mips is only used for LiveCDs && netboots.  Catalyst# will know where to get the kernels at.
-CMD_INSTALL=0
+CMD_INSTALL=1
+DEFAULT_UTILS_LD=gccvi /etc/portage/bashrc
pre_src_prepare() {[[ ${EAPI:-0} == [012345] ]] || returnif ! type estack_push > /dev/null 2>&1; thenlocal estack_names="eshopts_push eshopts_pop evar_push evar_push_set evar_pop estack_push estack_pop"source <(awk "/^# @(FUNCTION|VARIABLE): / { p = 0 } /^# @(FUNCTION|VARIABLE): (${estack_names// /|})\$/ { p = 1 } p { print }" ${PORTDIR}/eclass/estack.eclass)fiif ! type epatch_user > /dev/null 2>&1; thenlocal epatch_names="EPATCH_SOURCE EPATCH_USER_SOURCE epatch_user_death_notice epatch_user epatch"source <(awk "/^# @(FUNCTION|VARIABLE): / { p = 0 } /^# @(FUNCTION|VARIABLE): (${epatch_names// /|})\$/ { p = 1 } p { print }" ${PORTDIR}/eclass/epatch.eclass)fiepatch_userfor name in $epatch_names; dounset $namedonefor name in $estack_names; dounset $namedone}#** Configuring the kernel **
# Installing the sources
# Alternative: Using genkernel
cd /etc/portage
mkdir package.use
touch package.use/default.use
mkdir package.mask
touch package.mask/default.maskemerge -a gentoo-sources genkernel
eselect kernel list
eselect kernel set 1nano -w /etc/fstab
/dev/sda1               /boot           ext2            noauto,noatime  1 2
/dev/vg/slash-gentoo-n64    /               ext4            noatime         0 1
/dev/vg/home-gentoo-n64     /home           ext4            noatime         0 1
/dev/vg/swap            none            swap            sw              0 0# need --firmware Enable copying of firmware
# into initramfs to init AMD gfx card
genkernel --kernel-config=/usr/src/linux/arch/mips/configs/loongson3_defconfig --menuconfig --lvm --install --firmware all
Machine selection[*] RS780/SBX00 HPET Timer
General setup(-n64) Local version - append to kernel release<*> Kernel .config [*]   Enable access to .config through /proc/config.gz ......[ ] Enable deprecated sysfs features to support old userspace toogenkernel --kernel-config=/usr/src/def-3a.conf --no-clean --no-mrproper --install --lvm --firmware all# compiling done,但是genkernel居然不自动install
cd /var/tmp/genkernel
mount /dev/sda1 /boot
# cp *gentoo-n64* /boot#** Configuring the system **
# Filesystem information
# nano -w /etc/fstab
# bypass!# Networking information
nano -w /etc/conf.d/hostname
# Set to the hostname of this machine
hostname="loongson-3A3000"nano -w /etc/conf.d/net
# Set the dns_domain_lo variable to the selected domain name
dns_domain_lo="localdomain"# Set the nis_domain_lo variable to the selected NIS domain name
nis_domain_lo="local-nisdomain"# Configuring the network
emerge --ask --noreplace net-misc/netifrcnano -w /etc/conf.d/net
config_enp6s0="dhcp"# Automatically start networking at boot
cd /etc/init.d/
ln -s net.lo net.enp6s0
rc-update add net.enp6s0 default# The hosts file
nano -w /etc/hosts
127.0.0.1       loongson-3A3000.localdomain loongson-3A3000
::1             localhost# System information
# Root password
passwd# a user login informat
groupadd -g 1000 lophyxp
useradd -g lophyxp -m lophyxp
gpasswd -a lophyxp wheel
passwd lophyxp# Init and boot configuration
nano -w /etc/rc.confnano -w /etc/conf.d/keymapsnano -w /etc/conf.d/hwclock
clock="local"#** Installing Tools**
# System logger
emerge --ask app-admin/sysklogd
rc-update add sysklogd defaultmkdir -p /var/log/news
cd /var/log/news
touch news.{crit,err,notice}# Optional: Cron daemon
emerge --ask sys-process/cronie
rc-update add cronie default
crontab /etc/crontab# Optional: File indexing
emerge --ask sys-apps/mlocate
#updatedb# Optional: Remote access
rc-update add sshd defaultnano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100# Filesystem tools
emerge --ask sys-fs/e2fsprogs# lvm
emerge --ask lvm2
rc-update add lvm boot# vim
emerge --ask vim# Networking tools
# Installing a DHCP client
emerge --ask net-misc/dhcpcd# cookie: HIDPI font for tty
emerge --ask media-fonts/terminus-font
vi /etc/conf.d/consolefont
consolefont="ter-132b"
rc-update add consolefont boot#** Configuring the bootloader **
# PMON没有Intel架构上的MBR的概念,
# PMON本身就是bootloader。
# 任何存在boot.cfg文件的可识别文件系统
# (vfat,ext2)都可以启动。
# boot.cfg的语法如下:
mount /dev/sda1 /boot
vi /boot/boot.cfg
timeout 5
default 0
showmenu 1title 'Gentoo Linux N64'kernel (wd0,0)/kernel-genkernel-mips-4.16.13-gentoo-n64initrd (wd0,0)/initramfs-genkernel-mips-4.16.13-gentoo-n64args   root=/dev/mapper/vg-slash--gentoo--n64 ro dolvm# Rebooting the system
exitcd
umount -l /media/gentoo-n64/dev{/shm,/pts,}
umount -R /media/gentoo-n64
reboot

走进龙芯3A3000(二)安装Gentoo N64相关推荐

  1. 走进龙芯3A3000(四)安装XFCE4

    我想要安装KDE 我想要qtwebengine的MIPS64实现.曾经读过千里孤坟的<KDE综览>,就深深喜欢上了KDE,当时的版本还是KDE3.后来KDE4发布,千里孤坟又写了<K ...

  2. come type6 定义_COMe-B6101龙芯3A3000 COM Express Type6模块

    COMe-B6101是一款以龙芯3A多核处理器和AMD RS780E SB710芯片组为核心,高可靠性和高效能的主板模块.COMe-B6101 内部集成ATI M72-based图像引擎,支持双屏显示 ...

  3. 龙芯3a5000下安装达梦8和Qt

    一.DM8安装 龙芯3a5000+kylin10 1.创建用户和组 #创建安装用户和用户组 sudo groupadd dm sudo useradd -g dm -m -d /home/dmdba ...

  4. 龙芯3a5000下安装部署rabbitmq

    1.下载erlang源码准备手动编译 http://erlang.org/download/otp_src_24.0.tar.gz 解压缩备用 apt install unixodbc unixodb ...

  5. Linux内核4.10在龙芯3A3000笔记本上的移植

    http://ask.loongnix.org/?/article/66 http://ask.loongnix.org/?/article/67 http://ask.loongnix.org/?/ ...

  6. 龙芯3A5000 上安装docker-compose

    操作系统:Loongnix server 8.4 yum install -y loongnix-release-openstack-victoria.noarch yum install -y lo ...

  7. 使用U盘为龙芯笔记本安装操作系统

    摘要:在没有光驱的情况下,可以使用dd命令或者ultraISO软件制作Linux安装U盘,方法适合龙芯和X86.AMD64的设备. 前段时间,由于开发需要,拿到了一部龙芯3A3000的笔记本.出厂的安 ...

  8. 中标麒麟系统u盘安装_优盘安装《中标麒麟7.0(龙芯)》

    龙芯3A3000,根据主板启动方式,分为PMON.昆仑固件和UEFI.如果是PMON环境,目前仅支持MBR分区的硬盘启动,因此,安装的硬盘容量一般不要大于2T.但是,做为非启动盘的硬盘支持GPT(GU ...

  9. 龙芯linux安装checkinstall方法

    原文地址:https://blog.csdn.net/peihexian/article/details/108884345 先说背景: 龙芯3a3000,中标麒麟linux,因为编译程序需要,卸载了 ...

  10. 龙芯平台python答案_在龙芯平台上自己编写原创应用——“动态壁纸”

    原标题:在龙芯平台上自己编写原创应用--"动态壁纸" 一.为何要在龙芯平台上编写"动态壁纸"? 龙芯3A3000桌面电脑的用户越来越多了,人们都想在龙芯电脑上有 ...

最新文章

  1. 太赞了!副业月入3W的技术大佬的公众号,学起来!
  2. 从配置文件到分布式配置管理QConf
  3. 微服务之数据同步Porter
  4. 在线python编程编译器-编译器python
  5. jupyter 显示全部数据
  6. 用webstorm做一个跑马灯_用Workman做一个聊天室
  7. css固定gridview的表头
  8. 从字节码看 finally关键字、异常表
  9. MySql表结构修改详解
  10. 【java奇思妙想】使用多线程的思想来实现java网络编程接收和发送的问题
  11. 关于ENSP1.2.00.510安装过程中的一点心得
  12. 怎么测试软件的自动升级,欧姆龙编程软件怎么升级 自动更新步骤详解
  13. Flask 学习-86.Flask-APScheduler 创建定时任务
  14. FPGA与数字图像处理技术
  15. 知瓜数据丨月入过亿的品牌“李宁”,如何成为直播营销的领头羊
  16. Android开发 SpannableString开发详解
  17. Java Fork/Join与协程
  18. linux怎么滑动命令行窗口_如何在Linux命令行界面愉快进行性能测试
  19. 9.7-一定要开始学了
  20. 电脑搜索不到部分wifi,搜索不到部分2.4G频率的wif,手机开热点电脑搜不到wifi。

热门文章

  1. 计算机里找不到刚装的固态硬盘,新装的固态硬盘系统里看不见?解决方法来了...
  2. 门限回归模型的思想_门限回归汇总与空间门槛回归模型简介
  3. TensorFlow学习记录:saved_model模块的用法
  4. 【LaTeX入门】15 在文章中添加脚注
  5. matlab小波变换学习入门
  6. 共享计算机如何建快捷方式,创建快捷方式的几种方法
  7. python实现根据前序序列和中序序列求二叉树的后序序列
  8. 2021-01-15
  9. 腾讯业务安全岗 IDP 谈话总结
  10. alc236黑苹果驱动_瑞昱 Realtek2.5G有线网卡 | RTL8125、RTL8156黑苹果驱动