机器介绍:https://wiki.chuang.ac.cn/loongson:device:lemote_lynloong
一、系统安装
1. 安装共创 Linux 1.8.4
为了体验龙芯 2F 的原生功能,首先我们需要安装龙芯的共创 Linux 系统。这里我们通过 U 盘来安装官方的系统恢复镜像。
1.1 准备工作
首先准备一只 2GB 容量的 U 盘,容量太大会导致无法正常引导。没有合适的 U 盘的话,可以使用 DiskGenius 工具将 U 盘划分出一个 2GB 的 FAT32 分区。
共创 Linux 1.8.4 系统恢复镜像的下载地址,提取码:e9da ;将 cocreate_os_1.8.4.zip
加压到 U 盘内,即可完成系统恢复镜像的制作。其中主要包含七个文件:
其中有两个文件需要注意以下,一个是 boot.cfg
文件,此文件用于 U 盘的启动引导。由于我这里的 U 盘是 FAT32 格式的分区,因此执行 “For Fat” 内核。如果 U 盘使用的是 EXT 分区,则需要切换到 “For ext2 and ext3” 内核。
default 0
showmenu 1
title Lemote Recover Tool
#For Fat
kernel /dev/fat/disk@usb0/vmlinuz
#For ext2 and ext3
#kernel /dev/fs/ext2@usb0/vmlinuz
#kernel /dev/fs/ext2@usb0/vmlinux
#args console=tty machtype=yeeloong video=smifb:1024x600-16@60 recover=usbdisk
#args console=tty machtype=lynloong video=sisfb:1360x768-16@60 recover=usbdisk
args console=tty machtype=lemote-lynloong-2f-9003 video=sm501fb:1368x768@60 recover=usbdisk
#args console=tty machtype=fuloong video=sisfb:1024x768-16@60 recover=usbdisk
#args console=tty machtype=fuloong video=sisfb:1280x720-16@60 recover=usbdisk
另一个是 config.txt
文件,此文件恢复系统的分区,默认的文件内容是这样的:
----------------------------------------------------------------
-- Partition table
-- Note: Size unit is 'M'
----------------------------------------------------------------
Cfg.partitions = {
['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
-------------------------------------------------------------------------------------------------
[1]= { 128, 'ext3', 'Y', };
[2]= { 4096,'ext3','Y', };
[3]= { 2048,'swap','Y', };
[4]= { 'NULL','extend','NULL', };
[5]= { 20480,'ext3','Y', '/','basesys-20100706.tar.gz'};
[6]= { 'rest','ext3','Y', '/home','basesys-20100706.tar.gz'};
['Boot'] = 1;
['Backup'] = 2;
}
Cfg.partitions1 = {
['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
-------------------------------------------------------------------------------------------------
[1]= { 20480, 'ext3', 'Y', '/','root.tar.gz'};
[2]= { 4096,'ext3','Y', };
[3]= { 2048,'swap','Y', };
[4]= { 'NULL','extend','NULL', };
[5]= { 20480,'ext3','Y', '/etc','etc.tar.gz'};
[6]= { 'rest','ext3','Y', '/home','home.tar.gz'};
['Boot'] = 1;
['Backup'] = 2;
}
Cfg.default_partitions = Cfg.partitions
----------------------------------------------------------------
-- Other configuration
--
----------------------------------------------------------------
Cfg.OSFAB_NAME = {"OSFab-2012-0522.squashfs", "OSFab-thirdpart-2012-0522.squashfs"}
Cfg.SYSTEM_NAME = "Cocreate Linux Desktop for Loongson"
Cfg.SYSTEM_NUM = ""
Cfg.SYSTEM_VERSION = "edu-150K"
Cfg.LANGUAGE = ""
Cfg.CONFIG_VERSION = "1.0"
这里我们只需要关注 Cfg.partitions
这个部分,代表恢复系统的分区方式。其中分区 1 代表启动分区,2 存放系统恢复镜像,3 是交换分区,5 用于挂载 /
,6 用于挂载 /home
。本机的默认硬盘大小为 160GB,如果更换了硬盘大小或者需要安装多系统,则需要对分区表做适当修改。这里我把分区表改成以下的格式:
Cfg.partitions = {
['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
-------------------------------------------------------------------------------------------------
[1]= { 256, 'ext3', 'Y', };
[2]= { 4096,'ext3','Y', };
[3]= { 2048,'swap','Y', };
[4]= { 'NULL','extend','NULL', };
[5]= { 20480,'ext3','Y', '/','basesys-20100706.tar.gz'};
[6]= { 55040,'ext3','Y', '/home','basesys-20100706.tar.gz'};
[7]= { 30720,'ext3','Y', };
[8]= { 'rest','ext3','Y', };
['Boot'] = 1;
['Backup'] = 2;
}
此处我增加了启动分区的容量,并新增了两个分区,预留出了 80GB 的空间给第二个系统。如何分区可以根据实际情况自行修改。
另外,如果修改了文件,记得同时修改 md5sum.txt
文件中的 MD5 值,避免后续步骤的校验失败。当然确认文件无误的话,也可以直接删除这个文件,对安装没有什么影响。
1.2 系统恢复
将 U 盘插入龙芯 2F 一体机,重启之后可以看到 U 盘的引导选项 “Lemote Recover Tool”,选择之后就可以进入系统恢复界面。
接下来的部分是图形化操作界面,非常简单,点击 “开始还原” 即可开始安装系统,整个过程是全自动的,需要消耗一定的时间。系统还原完毕后,拔掉 U 盘,点击 “退出”,系统即安装完成了。
这里的安装教程参考了这篇文章:Loongson2f 龙芯灵珑 9S2A 一体机安装 debian5 和 debian6 双系统,特别是关于分区表和引导项的内容认识和修改,受到了很大的启发。不过其使用的是共创 Linux 1.7.4 版本的系统,我在整理搜索本机自带的系统时,发现 sda5/yee/.updateclient
目录下,存放了名为 cocreate_os_1.8.4.tar
的系统升级安装包和 1.8.5-1.8.8
一系列应用更新补丁,修改日期是 2014/10/30,目前还没有在网络上看到有分享。也不知道有没有更新版本的系统存在,如果有更新版本的系统,也可以到这个目录下去拷贝出来。
1.3 更新软件源
龙芯的共创(Cocreate) Linux 系统基于 Debian 5 lenny 开发,距今已经年代久远,其官方的软件源也早已失效。目前除了 Debian 档案的官方源,国内还可以使用 163 源和腾讯源,进行基础的软件管理。这里我们把 apt 源修改如下:
我这里使用腾讯源的速度要更快一点,另外初次更新,也可以把官方源添上,不过国内更新速度较慢,建议关闭。切换源之后就可以更新一下软件列表了。
$ sudo apt-get update
获取:1 http://mirrors.cloud.tencent.com lenny Release.gpg [1034B]
命中 http://mirrors.cloud.tencent.com lenny/main Translation-zh_CN
忽略 http://mirrors.cloud.tencent.com lenny/contrib Translation-zh_CN
忽略 http://mirrors.cloud.tencent.com lenny/non-free Translation-zh_CN
命中 http://mirrors.cloud.tencent.com lenny Release
错误 http://mirrors.cloud.tencent.com lenny Release
获取:2 http://mirrors.cloud.tencent.com lenny Release [99.6kB]
忽略 http://mirrors.cloud.tencent.com lenny Release
忽略 http://mirrors.cloud.tencent.com lenny/main Packages/DiffIndex
忽略 http://mirrors.cloud.tencent.com lenny/contrib Packages/DiffIndex
忽略 http://mirrors.cloud.tencent.com lenny/non-free Packages/DiffIndex
忽略 http://mirrors.cloud.tencent.com lenny/contrib Sources/DiffIndex
忽略 http://mirrors.cloud.tencent.com lenny/main Sources/DiffIndex
忽略 http://mirrors.cloud.tencent.com lenny/non-free Sources/DiffIndex
命中 http://mirrors.cloud.tencent.com lenny/main Packages
命中 http://mirrors.cloud.tencent.com lenny/contrib Packages
命中 http://mirrors.cloud.tencent.com lenny/non-free Packages
命中 http://mirrors.cloud.tencent.com lenny/contrib Sources
命中 http://mirrors.cloud.tencent.com lenny/main Sources
命中 http://mirrors.cloud.tencent.com lenny/non-free Sources
下载 101kB,耗时 7s (12.9kB/s)
正在读取软件包列表... 完成
W: GPG error: http://mirrors.cloud.tencent.com lenny Release: 下列签名无效: KEYEXPIRED 1337087218 由于没有公钥,下列签名无法进行验证: NO_PUBKEY AED4B06F473041FA
W: GPG error: http://mirrors.cloud.tencent.com lenny/updates Release: 下列签名无效: KEYEXPIRED 1356982504
W: 您可能需要运行 apt-get update 来解决这些问题
其中公钥签名早已过期,可以直接忽略。
1.4 远程登陆
龙芯共创 Linux 已经配置好了 SSH 登陆,默认的 root
的密码是 loongson
。
2. 安装 Debian 6
我这里的灵珑 9S2A 是 9003/9013 型号,板载 GPU 是慧荣 SM502,型号比较特殊。没有受到主线内核的支持,可用的 Linux 内核版本停留在 2.6.27 上。因此目前能在 9003 上运行的,只有刘工版 Debian 6 和基于 Debian 5 的共创操作系统。 其中:
Linux 内核:https://github.com/loongson-community/linux-legacy ,branch 为 lemote-9003-2.6.27.1
Debian 6: http://www.anheng.com.cn/loongson/install/lynloong_2f_9003/lynloong_debian6_install.tar.gz
注:如果按照类似第一节的方法,事先预留好了安装 Debian 6 的分区空间,则可以直接跳过 2.1 和 2.2 的部分步骤。
2.1 修改分区
挂载硬盘的 sda2
分区,这个分区是用来存放系统恢复镜像的,内容和之前拷贝到 U 盘的内容基本一致。
$ mkdir /mnt/sda2
$ mount /dev/sda2 /mnt/sda2/
查看其中的 config.txt
文件的 Cfg.partitions
部分,此文件用来定义恢复系统的分区,详情已经在 1.1 小节介绍过了。如果先前没有为双系统预留好合适的分区空间,则可以在这里进行修改,然后重新恢复共创 Linux 系统。(重新分区会全盘格式化,注意备份重要数据!)
Cfg.partitions = {
['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
-------------------------------------------------------------------------------------------------
[1]= { 256, 'ext3', 'Y', };
[2]= { 4096,'ext3','Y', };
[3]= { 2048,'swap','Y', };
[4]= { 'NULL','extend','NULL', };
[5]= { 20480,'ext3','Y', '/','basesys-20100706.tar.gz'};
[6]= { 55040,'ext3','Y', '/home','basesys-20100706.tar.gz'};
[7]= { 30720,'ext3','Y', };
[8]= { 'rest','ext3','Y', };
['Boot'] = 1;
['Backup'] = 2;
}
由于上一步我们已经预留好了分区空间,这里就不需要修改文件了。这里我打算将 Debian 6 安装在 sda7 分区中。(预留了 30GB 空间)
2.2 修改启动项
挂载硬盘的 sda1
分区,这个分区是启动分区,存放系统启动文件 boot.cfg
。
$ mkdir /mnt/sda1
$ mount /dev/sda1 /mnt/sda1/
这里我们修改系统启动文件 boot.cfg
,将 recovery
改为 1。重启后则可以开始恢复共创 Linux 系统。
另外添加一个 Debian 6 for Lynloong
的启动项,用于切换启动 Debian 6 双系统。其中 kernel
项的位置 /dev/fs/ext2@sata0g
代表 sda7
分区。(从 sata0a
开始依次计算)可以根据实际分区情况修改。
default 0
showmenu 1
title Lemote Recovery Tool
kernel /dev/fs/ext2@sata0b/vmlinuz
args console=tty machtype=lemote-lynloong-2f-9003 video=sm501fb:1368x768@60 resume=/dev/sda3 recover=localdisk
recovery 0
title Cocreate Linux Desktop for Loongson
kernel /dev/fs/ext2@sata0e/boot/vmlinux
args console=tty no_auto_cmd quiet root=/dev/sda5 machtype=lemote-lynloong-2f-9003 video=sm501fb:1368x768@60 resume=/dev/sda3
title Debian 6 for Lynloong
kernel /dev/fs/ext2@sata0g/boot/vmlinux
args console=tty no_auto_cmd quiet root=/dev/sda7 machtype=lemote-lynloong-2f-9003 video=sm501fb:1368x768@60 resume=/dev/sda3
2.3 安装系统
挂载硬盘的 sda7
分区,这个分区是我用来存放 Debian 6 系统的。
$ mkdir /mnt/sda7
$ mount /dev/sda7 /mnt/sda7/
网上流传的 Debian 6 安装镜像是以 LZMA 格式压缩的,好处是可以压缩到 2GB 以内,方便通过 U 盘启动引导,具体的安装方法与第一节类似。但是默认的共创 Linux 的内置软件包没有 xz-utils
等工具,对应的 apt 软件源也无法直接下载,因此我这里通过局域网 SSH 和 SFTP 来传输文件。另外考虑到系统文件较大,同时为了避免混淆,传输位置我这里放到了 sda7/install
目录下。
上图中示例的是网上流传的 Debian 6 安装镜像内容,解压后还需要调整内核文件,添加驱动模块,否则会无法使用键鼠,且没有声音输出(具体步骤参考这篇博文)。我把这些工作都做好之后重新打包为 debian6_lynloong_2f_9003_20240518.tar.gz
(下载地址),这样直接解压文件包到 sda7
分区后,即可完成 Debian 6 双系统的安装。
# 直接解压 Debian 6 系统文件到 /dev/sda7 目录下(挂载到 /mnt/sda7)
$ tar zxvf debian6_lynloong_2f_9003_20240518.tar.gz -C /mnt/sda7
查看 /dev/sda7/boot
目录,这里的 vmlinux
内核文件对应了内核启动项的位置 kernel /dev/fs/ext2@sata0g/boot/vmlinux
,如果自定义的分区格式有区别,只要注意启动项与内核文件的对应正确即可。
查看 /lib/modules/
目录,这里的 2.6.27.1
版本的模块文件,可以完全兼容本机的键鼠、音频等外设对应了内核启动项的位置 kernel /dev/fs/ext2@sata0g/boot/vmlinux
整合包的主要改动就在以上两处,完成系统文件的解压后,确认启动项修改正确。重启后选择新添加的 Debian 6 for Lynloong
,即可进入新的 Debian 6 系统。
2.4 更新软件源
同理,我们把 Debian 6 的 apt 源修改如下,区别就是修改一下版本代号名称 queeze
:
$ sudo vim /etc/apt/sources.list
# 163 源
# deb http://mirrors.163.com/debian-archive/debian queeze main contrib non-free
# deb-src http://mirrors.163.com/debian-archive/debian squeeze contrib main non-free
# 腾讯源
deb http://mirrors.cloud.tencent.com/debian-archive/debian squeeze main contrib non-free
deb-src http://mirrors.cloud.tencent.com/debian-archive/debian squeeze contrib main non-free
# Debian 6 官方源
# deb http://archive.debian.org/debian squeeze contrib main non-free
# deb-src http://archive.debian.org/debian squeeze contrib main non-free
同理,Debian 6 的软件源目前还可以正常更新使用,切换源之后就可以更新一下软件列表了。
$ sudo apt-get update
$ sudo apt-get upgrade
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于