木须柄的时光工坊

探索技术与游戏乐趣的奇妙之旅

目录
龙芯 2F 灵珑 9S2A 一体机 安装共创 Linux 1.8.4 + Debian 6 系统
/        

龙芯 2F 灵珑 9S2A 一体机 安装共创 Linux 1.8.4 + Debian 6 系统

image-20240518013608427.png

机器介绍: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 分区。

image-20240517225855426.png

共创 Linux 1.8.4 系统恢复镜像的下载地址,提取码:e9da ;将cocreate_os_1.8.4.zip加压到U盘内,即可完成系统恢复镜像的制作。其中主要包含七个文件:

image-20240517230335969.png

其中有两个文件需要注意以下,一个是boot.cfg文件,此文件用于U盘的启动引导。由于我这里的U盘是 FAT32格式的分区,因此执行 “For Fat” 内核。如果U盘使用的是 EXT 分区,则需要切换到 “For ext2 and ext3” 内核。

 1default 0
 2showmenu 1
 3
 4title Lemote Recover Tool
 5#For Fat 
 6kernel /dev/fat/disk@usb0/vmlinuz
 7
 8#For ext2 and ext3
 9#kernel /dev/fs/ext2@usb0/vmlinuz
10#kernel /dev/fs/ext2@usb0/vmlinux
11
12#args console=tty machtype=yeeloong video=smifb:1024x600-16@60 recover=usbdisk
13#args console=tty machtype=lynloong video=sisfb:1360x768-16@60 recover=usbdisk
14args console=tty machtype=lemote-lynloong-2f-9003 video=sm501fb:1368x768@60 recover=usbdisk
15#args console=tty machtype=fuloong video=sisfb:1024x768-16@60 recover=usbdisk
16#args console=tty machtype=fuloong video=sisfb:1280x720-16@60 recover=usbdisk

另一个是config.txt文件,此文件恢复系统的分区,默认的文件内容是这样的:

 1
 2----------------------------------------------------------------
 3-- Partition table
 4-- Note: Size unit is 'M'
 5----------------------------------------------------------------
 6Cfg.partitions = {
 7
 8['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
 9-------------------------------------------------------------------------------------------------
10[1]= { 128, 'ext3', 'Y',  };
11[2]= { 4096,'ext3','Y',  };
12[3]= { 2048,'swap','Y',  };
13[4]= { 'NULL','extend','NULL',  };
14[5]= { 20480,'ext3','Y', '/','basesys-20100706.tar.gz'};
15[6]= { 'rest','ext3','Y', '/home','basesys-20100706.tar.gz'};
16
17['Boot'] = 1;
18['Backup'] = 2;
19}
20
21Cfg.partitions1 = {
22
23['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
24-------------------------------------------------------------------------------------------------
25[1]= { 20480, 'ext3', 'Y', '/','root.tar.gz'};
26[2]= { 4096,'ext3','Y',  };
27[3]= { 2048,'swap','Y',  };
28[4]= { 'NULL','extend','NULL',  };
29[5]= { 20480,'ext3','Y', '/etc','etc.tar.gz'};
30[6]= { 'rest','ext3','Y', '/home','home.tar.gz'};
31
32['Boot'] = 1;
33['Backup'] = 2;
34}
35
36Cfg.default_partitions = Cfg.partitions
37
38----------------------------------------------------------------
39-- Other configuration
40-- 
41----------------------------------------------------------------
42
43Cfg.OSFAB_NAME = {"OSFab-2012-0522.squashfs", "OSFab-thirdpart-2012-0522.squashfs"}
44Cfg.SYSTEM_NAME = "Cocreate Linux Desktop for Loongson"
45Cfg.SYSTEM_NUM = ""
46Cfg.SYSTEM_VERSION = "edu-150K"
47Cfg.LANGUAGE = ""
48Cfg.CONFIG_VERSION = "1.0"

这里我们只需要关注 Cfg.partitions 这个部分,代表恢复系统的分区方式。其中分区1代表启动分区,2存放系统恢复镜像,3是交换分区,5用于挂载/,6用于挂载/home。本机的默认硬盘大小为 160GB,如果更换了硬盘大小或者需要安装多系统,则需要对分区表做适当修改。这里我把分区表改成以下的格式:

 1Cfg.partitions = {
 2
 3['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
 4-------------------------------------------------------------------------------------------------
 5[1]= { 256, 'ext3', 'Y',  };
 6[2]= { 4096,'ext3','Y',  };
 7[3]= { 2048,'swap','Y',  };
 8[4]= { 'NULL','extend','NULL',  };
 9[5]= { 20480,'ext3','Y', '/','basesys-20100706.tar.gz'};
10[6]= { 55040,'ext3','Y', '/home','basesys-20100706.tar.gz'};
11[7]= { 30720,'ext3','Y', };
12[8]= { 'rest','ext3','Y', };
13
14['Boot'] = 1;
15['Backup'] = 2;
16}

此处我增加了启动分区的容量,并新增了两个分区,预留出了 80GB 的空间给第二个系统。如何分区可以根据实际情况自行修改。

另外,如果修改了文件,记得同时修改md5sum.txt文件中的 MD5 值,避免后续步骤的校验失败。当然确认文件无误的话,也可以直接删除这个文件,对安装没有什么影响。

1.2 系统恢复

将U盘插入龙芯2F一体机,重启之后可以看到U盘的引导选项 “Lemote Recover Tool”,选择之后就可以进入系统恢复界面。

image-20240517232947543.png

接下来的部分是图形化操作界面,非常简单,点击 “开始还原” 即可开始安装系统,整个过程是全自动的,需要消耗一定的时间。系统还原完毕后,拔掉U盘,点击 “退出”,系统即安装完成了。

image-20240517233616487.png

这里的安装教程参考了这篇文章: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 源修改如下:

我这里使用腾讯源的速度要更快一点,另外初次更新,也可以把官方源添上,不过国内更新速度较慢,建议关闭。切换源之后就可以更新一下软件列表了。

 1$ sudo apt-get update
 2
 3获取:1 http://mirrors.cloud.tencent.com lenny Release.gpg [1034B]
 4命中 http://mirrors.cloud.tencent.com lenny/main Translation-zh_CN
 5忽略 http://mirrors.cloud.tencent.com lenny/contrib Translation-zh_CN
 6忽略 http://mirrors.cloud.tencent.com lenny/non-free Translation-zh_CN
 7命中 http://mirrors.cloud.tencent.com lenny Release
 8错误 http://mirrors.cloud.tencent.com lenny Release
 9  
10获取:2 http://mirrors.cloud.tencent.com lenny Release [99.6kB]
11忽略 http://mirrors.cloud.tencent.com lenny Release
12忽略 http://mirrors.cloud.tencent.com lenny/main Packages/DiffIndex
13忽略 http://mirrors.cloud.tencent.com lenny/contrib Packages/DiffIndex
14忽略 http://mirrors.cloud.tencent.com lenny/non-free Packages/DiffIndex
15忽略 http://mirrors.cloud.tencent.com lenny/contrib Sources/DiffIndex
16忽略 http://mirrors.cloud.tencent.com lenny/main Sources/DiffIndex                                                                    
17忽略 http://mirrors.cloud.tencent.com lenny/non-free Sources/DiffIndex
18命中 http://mirrors.cloud.tencent.com lenny/main Packages
19命中 http://mirrors.cloud.tencent.com lenny/contrib Packages
20命中 http://mirrors.cloud.tencent.com lenny/non-free Packages
21命中 http://mirrors.cloud.tencent.com lenny/contrib Sources
22命中 http://mirrors.cloud.tencent.com lenny/main Sources
23命中 http://mirrors.cloud.tencent.com lenny/non-free Sources                               
24下载 101kB,耗时 7s (12.9kB/s)                                                             
25正在读取软件包列表... 完成
26W: GPG error: http://mirrors.cloud.tencent.com lenny Release: 下列签名无效: KEYEXPIRED 1337087218 由于没有公钥,下列签名无法进行验证: NO_PUBKEY AED4B06F473041FA
27W: GPG error: http://mirrors.cloud.tencent.com lenny/updates Release: 下列签名无效: KEYEXPIRED 1356982504
28W: 您可能需要运行 apt-get update 来解决这些问题

其中公钥签名早已过期,可以直接忽略。

1.4 远程登陆

龙芯共创 Linux 已经配置好了 SSH 登陆,默认的root的密码是loongson

image-20240518001341985.png

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

image-20240518013508273.png

注:如果按照类似第一节的方法,事先预留好了安装 Debian 6 的分区空间,则可以直接跳过2.1和2.2的部分步骤。

2.1 修改分区

挂载硬盘的sda2分区,这个分区是用来存放系统恢复镜像的,内容和之前拷贝到U盘的内容基本一致。

1$ mkdir /mnt/sda2
2$ mount /dev/sda2 /mnt/sda2/

image-20240518011730141.png

查看其中的config.txt文件的Cfg.partitions部分,此文件用来定义恢复系统的分区,详情已经在 1.1 小节介绍过了。如果先前没有为双系统预留好合适的分区空间,则可以在这里进行修改,然后重新恢复共创 Linux 系统。(重新分区会全盘格式化,注意备份重要数据!)

 1Cfg.partitions = {
 2
 3['Partition'] = {'Size','Type', 'Format',"MountPoint","Files"};
 4-------------------------------------------------------------------------------------------------
 5[1]= { 256, 'ext3', 'Y',  };
 6[2]= { 4096,'ext3','Y',  };
 7[3]= { 2048,'swap','Y',  };
 8[4]= { 'NULL','extend','NULL',  };
 9[5]= { 20480,'ext3','Y', '/','basesys-20100706.tar.gz'};
10[6]= { 55040,'ext3','Y', '/home','basesys-20100706.tar.gz'};
11[7]= { 30720,'ext3','Y', };
12[8]= { 'rest','ext3','Y', };
13
14['Boot'] = 1;
15['Backup'] = 2;
16}

由于上一步我们已经预留好了分区空间,这里就不需要修改文件了。这里我打算将 Debian 6 安装在 sda7 分区中。(预留了30GB空间)

2.2 修改启动项

挂载硬盘的sda1分区,这个分区是启动分区,存放系统启动文件boot.cfg

1$ mkdir /mnt/sda1
2$ mount /dev/sda1 /mnt/sda1/

这里我们修改系统启动文件boot.cfg,将recovery改为1。重启后则可以开始恢复共创 Linux 系统。

另外添加一个Debian 6 for Lynloong的启动项,用于切换启动 Debian 6 双系统。其中kernel项的位置/dev/fs/ext2@sata0g代表sda7分区。(从sata0a开始依次计算)可以根据实际分区情况修改。

 1default 0
 2showmenu 1
 3
 4title Lemote Recovery Tool
 5kernel /dev/fs/ext2@sata0b/vmlinuz
 6args console=tty machtype=lemote-lynloong-2f-9003 video=sm501fb:1368x768@60 resume=/dev/sda3 recover=localdisk
 7recovery 0
 8
 9title Cocreate Linux Desktop for Loongson 
10kernel /dev/fs/ext2@sata0e/boot/vmlinux
11args console=tty no_auto_cmd quiet root=/dev/sda5 machtype=lemote-lynloong-2f-9003 video=sm501fb:1368x768@60 resume=/dev/sda3
12
13title Debian 6 for Lynloong
14kernel /dev/fs/ext2@sata0g/boot/vmlinux
15args 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 系统的。

1$ mkdir /mnt/sda7
2$ mount /dev/sda7 /mnt/sda7/

网上流传的 Debian 6 安装镜像是以 LZMA 格式压缩的,好处是可以压缩到 2GB 以内,方便通过U盘启动引导,具体的安装方法与第一节类似。但是默认的共创 Linux 的内置软件包没有xz-utils等工具,对应的 apt 软件源也无法直接下载,因此我这里通过局域网 SSH 和 SFTP 来传输文件。另外考虑到系统文件较大,同时为了避免混淆,传输位置我这里放到了sda7/install目录下。

image-20240518044757459.png

上图中示例的是网上流传的 Debian 6 安装镜像内容,解压后还需要调整内核文件,添加驱动模块,否则会无法使用键鼠,且没有声音输出(具体步骤参考这篇博文)。我把这些工作都做好之后重新打包为debian6_lynloong_2f_9003_20240518.tar.gz下载地址),这样直接解压文件包到sda7分区后,即可完成 Debian 6 双系统的安装。

1# 直接解压 Debian 6 系统文件到 /dev/sda7 目录下(挂载到 /mnt/sda7)
2$ tar zxvf debian6_lynloong_2f_9003_20240518.tar.gz -C /mnt/sda7

查看/dev/sda7/boot目录,这里的vmlinux内核文件对应了内核启动项的位置kernel /dev/fs/ext2@sata0g/boot/vmlinux,如果自定义的分区格式有区别,只要注意启动项与内核文件的对应正确即可。

image-20240518125051584.png

查看/lib/modules/目录,这里的2.6.27.1版本的模块文件,可以完全兼容本机的键鼠、音频等外设对应了内核启动项的位置kernel /dev/fs/ext2@sata0g/boot/vmlinux

image-20240518125158889.png

整合包的主要改动就在以上两处,完成系统文件的解压后,确认启动项修改正确。重启后选择新添加的 Debian 6 for Lynloong,即可进入新的 Debian 6 系统。

2.4 更新软件源

同理,我们把 Debian 6 的 apt 源修改如下,区别就是修改一下版本代号名称queeze

 1$ sudo vim /etc/apt/sources.list
 2
 3# 163 源
 4
 5# deb http://mirrors.163.com/debian-archive/debian queeze main contrib non-free
 6# deb-src http://mirrors.163.com/debian-archive/debian squeeze contrib main non-free
 7
 8# 腾讯源
 9
10deb http://mirrors.cloud.tencent.com/debian-archive/debian squeeze main contrib non-free
11deb-src http://mirrors.cloud.tencent.com/debian-archive/debian squeeze contrib main non-free
12
13# Debian 6 官方源
14
15# deb http://archive.debian.org/debian squeeze contrib main non-free
16# deb-src http://archive.debian.org/debian squeeze contrib main non-free

同理,Debian 6 的软件源目前还可以正常更新使用,切换源之后就可以更新一下软件列表了。

1$ sudo apt-get update
2$ sudo apt-get upgrade
评论
取消