目录

Lemote Fuloong

Lemote Fuloong 是龙梦推出的迷你主机的英文名称,也称之为“福珑迷你电脑”。
在内核代码树中,称之为“lemote-fuloong-2f-box”

硬件组成

硬件名称芯片型号参数资料
中央处理器Loongson 2F数据手册
南桥芯片AMD CS5536AD数据手册
板载显示芯片SIS 315E + 301支持VGA,DVI和svideo输出
板载显存HY57V281620FTP X 2两片共32MB
系统BIOS芯片Flash存储芯片MX29LV040容量 512KB
内存插槽笔记本内存插槽,最大支持1G容量DDR II , 667MHz
板载网络芯片RTL8110SC单网络接口
板载声卡芯片ALC655全双工

主板正面:散热片下面靠近风扇是CPU,靠近显存是显卡芯片,南桥安装硬盘时会被遮盖。
主板背面:主要是内存插槽和BIOS芯片,也包括声卡芯片和混合视频输出芯片SIS301
AMD的南桥芯片,在龙梦2F系列主机中大多配置这个芯片,灵珑Lynloong 9003除外
网络芯片

固件存储芯片和声卡芯片

软件架构

龙芯2F处理器指令集架构兼容MIPS III,并提供一些扩展。
其上运行的软件一共分三个部分:

  1. 硬件系统固件。
  2. 操作系统内核。
  3. 应用软件。

硬件系统固件

系统固件是烧写在512KB闪存的一个系统硬件管理程序,福珑使用的是PMON。它在系统加电时进行硬件基本系统的初始化,比如处理器和内存。
之后会扫描主板上的其他硬件,并进行配置。它也提供了一个类似X86/64主机的图形配置界面,除此之外它也提供了一个命令行界面。
支持一些底层硬件调试和系统加载等功能。默认情况下,Pmon启动时会查找U盘和硬盘,定位存储介质第一个分区的boot.cfg文件。
boot.cfg文件的主要内容是操作系统内核的具体位置,并可以传递一些参数给即将运行的内核。
Pmon加载完内核后,会启动内核,把控制权交给内核。

操作系统内核

操作系统内核,可以理解为硬件运行的一个抽象层。它相当于一个管家,管理系统硬件提供的各种资源,提供给系统程序、用户程序使用。
它的主要功能集中在一个内核文件中,也包括一些没有加入到内核的硬件驱动程序。它决定着系统运行效率和硬件支持程度。
龙芯2F处理器可以运行多种类unix的操作系统内核,比如开源的Linux,NetBSD等。软硬件支持程度取决于mips社区的移植进度。

源代码获取和编译

pmon 源代码

https://github.com/kisom/pmon
https://github.com/loongson-community/pmon-2ef
https://gitee.com/bexsder/pmon-orig

三者根据网络状况任选其一即可。

源代码下载,即git clone,确保git工具程序已经安装

git clone https://github.com/kisom/pmon.git
 

pmon 工具链

https://mirrors.tuna.tsinghua.edu.cn/loongson/pmon/toolchain-pmon.tar.bz2

工具链安装:为确保编译工具可用,工具链需安装需要管理员权限,可以使用su 或 sudo 获取,如下安装指令假设当前用户可sudo获取权限。

sudo tar xvf toolchain-pmon.tar.bz2 -C /

上述命令可以把工具链解压到如下目录:

/usr/local/comp/mips-elf/gcc-2.95.3/

同时也会在当前目录新增 readme.txt 文件,文件里描述了大致的编译流程:

debian-i386  lenny

yeeloong:
cd pmon/zloader.2f7inch
make cfg
/usr/local/sbin/build.sh   # 工具链内含脚本

fuloong:
cd pmon/zloader
make cfg
/usr/local/sbin/build.sh

output:
pmon_ram.bin
pmon.bin

文件 /usr/local/sbin/build.sh 内容:

#!/bin/bash
export MKDEP=makedepend     # 需安装 xutils-dev,是xorg 构建所需要的一个工具程序。
export PATH=/usr/local/comp/mips-elf/gcc-2.95.3/bin/:$PATH
make cfg            # 更新配置
make tgt=ram
mv gzram pmon_ram.bin
make tgt=rom    # 产生烧制文件 gzrom.bin
mv gzrom.bin  pmon.bin
mkdir -d /var/lib/tftpboot
cp pmon.bin pmon_ram.bin /var/lib/tftpboot