1. Grub编译
#
git clone https://github.com/loongarch64/grub.git
cd grub
./bootstrap
./configure --with-platform=efi --target=loongarch64 --prefix=$(pwd) --disable-werror
2. Grub文件生成
#
2.1 grub.efi
#
./grub-mkimage -p . -c /boot/mxd.cfg -d ./grub-core/ -O loongarch64-efi -o /boot/mxd.efi $(ls grub-core/ | grep -E "\.mod$" | cut -d "." -f 1 | uniq)
各参数可在help
信息中查看.
2.2 grub.cfg
#
./grub-mkconfig -o /boot/mxd.cfg
除了生成grub.cfg
外, 系统下还有一些用于参考的grub
默认配置选项, 如: /etc/default/grub
, /etc/grub.d
等. 倘若修改这些文件, 还需要更新/boot/grub/grub.cfg
, 有命令可以做到:
update-grub
2.3 将grub安装至UEFI引导界面
#
grub-install --boot-directory=/boot --efi-directory=/boot/efi --bootload-id=mxd /dev/sda
--boot-directory
指定在/boot
作为根目录, 下寻找grub.cfg
和模块.
...更新: 新pmon
固件已支持efi_stub
, 详情查看
10.1节
1. 查看设备
#
PMON> devls
syn0
wd0
usb0
sync0
, igb0
, em0
等字样,表示网络设备, 即网卡
wd0
, nvme0
, usb0
, cd0
等字样表示存储设备, 即硬盘, U
盘等.
2. 查看pci信息
#
PMON> pciscan
>> BUS 0 <<
Dev Fun Device description
--------------------------
0 0 vendor/product: 0x0014/0x7a00 (bridge, host, interface: 0x00, revision: 0x00)
0x00000000:0x00000000 mem @0x00000000, 0 bytes
0 1 vendor/product: 0x0014/0x7a10 (bridge, host, interface: 0x00, revision: 0x01)
0x00000000:0x00000000 mem @0x00000000, 0 bytes
0 2 vendor/product: 0x0014/0x7a20 (bridge, host, interface: 0x00, revision: 0x01)
0x00000000:0x00000000 mem @0x00000000, 0 bytes
0 3 vendor/product: 0x0014/0x7a30 (bridge, host, interface: 0x00, revision: 0x00)
0x00000000:0x00000000 mem @0x00000000, 0 bytes
4 0 vendor/product: 0x0014/0x7a24 (serialbus, USB, interface: 0x10, revision: 0x02)
64-bit mem,low address
0x59648004:0xffff8004 mem @0x59648000, 32768 bytes
0x00000000:0x00000000 mem @0x00000000, 0 bytes
......
......
3. 产看固件版本信息
#
PMON> vers
PMON: PMON 5.0.3-Release (loongson) #233: Wed Oct 18 15:09:40 CST 2023 commit d044be8f495e97082c8905b131d525ef31ade0b9 Author: Xiangdong Meng <mengxiangdong@loongson.cn> Date: Wed Sep 6 15:15:31 2023 +0800
4. 查看寄存器信息
#
PMON> d8 0x800000001fe00020 2
800000001fe00020 : 0000303030364133 0000000000000000 3A6000..........
5. 查看磁盘信息
#
这里fdisk
命令后面的设备名是在第一节中devls
命令列出来的.
...UEFI须知
#
1. 进入UEFI setup界面
#
在串口或者显示界面下显示BDS
字样的时候(如下图), 稍微按按上下键即可进入Setup
界面
2. Setup界面
#
无论是Intel
还是loongson
, BIOS
下都有设置的接口, PMON
也有, 无非是显示样式差异, 原理相通. Loongson
的UEFI
界面如下图
不同的条目, 用于设置不同的功能. 其中普通用户通常只需要进入BootManager
界面选择相应的启动目标即可.
3. BootManager界面
#
在下图区域1
中为条目名称, 区域2
中为UEFI
下解析的路径名(有点专业,不用理解), 总之, 左边看不懂时就看右边, 找相关的关键字, 比如下图, 左侧是设备名, 不太能看出是什么设备, 右侧则有Sata
字样可以识别.
4. Shell下操作
#
通常, 正常情况下, 系统直接启动, 用户无法感知上述界面的存在, 但当出现一些问题时, 我们可能需要进入Shell
下进行操作, 如上图中的第二个条目, 选中后回车进入下图界面:
4.1. 显示启动设备
#
正常情况下, 进入Shell
后仍然会提示启动相关的设备, 如上图, 倘若由于操作过多, 或者显示bug
等, 我们还想再次看到相关的显示, 则需要通过map
命令再次显示,如下图:
可以看到, 其实和默认进入Shell
的打印是一样的, 不过为了防止打印被冲刷掉, 还是要会一下.
4.2. 进入设备及查看文件
#
看上图, 图中黄色字体, FS0:
, BLK0:
等, 可以理解为不同设备的重命名, 其中FS
开头的标识表示该设备的文件系统可以识别, BLK
开头的表示表示该设备不存在文件系统, 或者文件系统不可识别. 总之对我们有意义的就只有FS
开头的标识.
...龙芯UEFI使用详解
#
1. UEFI主界面及设置语言
#
在串口或者显示界面下显示BDS
字样的时候(如下图), 按方向下(↓
)或F2
即可进入Setup
界面, 即主界面。
光标默认在语言设置
,可以通过方向键选择,示例为修改语言。
2. 主板信息
#
进入主板信息,可以查看BIOS版本、主板型号、CPU名字等相关硬件基础信息,如下图:
2.1 PCIE信息
#
选择PCIe设备信息
可以查看主板的PCIe的全部信息,如下图:
2.2 USB信息
#
选择USB设备信息
可以查看主板的USB的全部信息,如下图:
3. 设置系统时间
#
操作系统时间通常默认使用rtc时钟,所以可以在固件下设置rtc时间以改变操作系统的默认时间。(当操作系统不通过rtc时间同步时,此方法不一定生效,关于系统下的配置,本文不作讨论)
4. 安全设置
#
安全设置包括如下内容:安全启动、恢复出厂设置、BIOS密码配置、固件更新等。
4.1 安全启动配置
#
在下图界面中,可以看到安全启动相关的配置,包括状态和开启开关,同事包含相关自定义配置。
安全启动开启后,BIOS会开启自身校验功能,对普通用户来说,安全性提高的同时,会对启动速度产生一定影响。
4.2 恢复出厂设置
#
如下图,按照提示执行恢复出厂设置后,原先所有在BIOS下保存的个人配置(如启动顺序、传统启动模式等)都将会被重置。
4.3 BIOS密码设置
#
BIOS密码分为管理员密码和普通用户密码,其中当设定管理员密码后,则必须解锁管理员密码才可进一步更改相关配置,TODO.
4.4 固件更新
#
固件更新应该是目前龙芯用户最关心的功能,截止目前(2024/12/13),龙芯UEFI下的固件更新功能可额外指定三项功能,如下图,分别是: 是否保留SMBIOS信息、是否保留BIOS配置(如启动顺序)、是否校验要更新的BIOS文件等。
...在PMON下更新固件
#
详情
PMON使用方法
从硬盘加载:
PMON> fload /dev/fs/usb0a/gz.mxd
Loading file: /dev/fs/fat@usb0a/gz.mxd dl_offset 900000000f800000 addr 900000000f800000
(bin)
-
Loaded 993222 bytes
Programming flash 900000000f800000:f27c6 into 800000001c000000
Erase end!
-Programming end!
从tftp服务器加载:
PMON> fload tftp://192.168.1.4/gz.mxd
Loading file: tftp://192.168.1.4/gz.mxd dl_offset 900000000f800000 addr 900000000f800000
(bin)
-
Loaded 993222 bytes
Programming flash 900000000f800000:f27c6 into 800000001c000000
Erase end!
-Programming end!
从http服务器加载:
PMON> fload http://192.168.1.4/gz.mxd
Loading file: http://192.168.1.4/gz.mxd dl_offset 900000000f800000 addr 900000000f800000
(bin)
-
Loaded 993222 bytes
Programming flash 900000000f800000:f27c6 into 800000001c000000
Erase end!
-Programming end!
在UEFI下更新固件
#
详情
uefi使用方法
...