文章来源: http://docs.loongnix.cn/loongnix/faq/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E6%A1%8C%E9%9D%A2%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.html
自2022/11/16日起桌面版软件源的key到期,如本地遇到key的问题,可依照下列方法对Key授权进行升级即可:
wget
http://pkg.loongnix.cn/loongnix/pool/main/d/debian-archive-keyring//debian-archive-keyring_2019.1.lnd.2_all.deb
dpkg -i debian-archive-keyring_2019.1.lnd.2_all.deb
apt-key add /usr/share/keyrings/debian-archive-buster-loongarch64-stable.gpg
1. loongnix桌面系统源
#
http://pkg.loongnix.cn/loongnix/
2. 开启sshd服务
#
Loongnixi桌面系统默认关闭sshd服务,开启方法:
loongson@loongson-pc:~$ sudo apt install openssh-server
loongson@loongson-pc:~$ systemctl start ssh
loongson@loongson-pc:~$ systemctl status ssh
3. 安装auditd软件包
#
Loongnix系统默认不集成auditd软件包,若使用过程中用到审计功能,需手动安装auditd软件包:
loongson@loongson-pc:~$ sudo apt install auditd && systemctl start auditd && systemctl status auditd
4. 制作rootfs文件系统
#
已安装debootstrap的前提下,使用以下方法制作rootfs文件系统:
debootstrap --no-check-gpg --variant=minbase --components=main,non-free,contrib --arch=loongarch64 --foreign DaoXiangHu-stable iso http://pkg.loongnix.cn/loongnix/
chroot iso debootstrap/debootstrap --second-stage
cd iso
chroot .
执行debootstrap操作时,如果遇到下述错误现象:
...文章来源: https://bbs.loongarch.org/d/435-2k500openharmony
一、系统需求和环境配置
#
官方推荐系统是ubuntu 20.4,预留60G到80G的磁盘空间,交换分区推荐8G以上,主要环境是python3.9。
也可以使用Debian构建,留意python版本,python3.10及更新版本要改一行代码,才能正常运行hb构建工具。
需要安装的软件包:
sudo apt update
sudo apt upgrade
sudo apt install apt-utils binutils bison flex bc build-essential make mtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9 python3-pip git zip unzip curl wget gcc g++ ruby dosfstools mtools default-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-dev tar rsync liblz4-tool genext2fs binutils-dev device-tree-compiler e2fsprogs git-core gnupg gnutls-bin gperf lib32ncurses5-dev libffi-dev zlib* libelf-dev libx11-dev libgl1-mesa-dev lib32z1-dev xsltproc x11proto-core-dev libc6-dev-i386 libxml2-dev lib32z-dev libdwarf-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales doxygen libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev npm libfl-dev
二、注册gitee账号和代码下载前的准备
#
源码下载推荐使用gitee的repo工具,从OpenHarmony gitee仓库下载代码,也可以使用OpenHarmony全量代码包。
参见资源链接1。使用repo工具需要gitee账号,并上传ssh公钥到账号的"ssh配置”里面,并且需要对git进行全局配置。大致过程如下:
1、使用电子邮箱注册gitee账号,如
abc@163.com
2、使用如下命令建立公钥
ssh-keygen -t ed25519 -C "Gitee SSH Key"
3、获取公钥内容并复制到gitee的ssh配置里面
cat ~/.ssh/id_ed25519.pub
4、获取gitee repo工具并赋予可执行权限
sudo curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
5、对git进行全局配置,配置账号和选项并进行测试
// 配置git,以abc@163.com为例,实际配置以注册账号为准 git config --global user.name "abc" git config --global user.email "abc@163.com" git config --global credential.helper store
// 测试 ssh -T git@gitee.com
...龙芯平台常用启动参数
#
增加串口
#
console=ttyS0,115200 earlycon=uart,mmio,0x1fe001e0
注意:
console
即是指控制台输出, ttyS0
是龙芯默认的串口终端, 波特率是115200
.earlycon
是用来打印早期acpi
初始化过程的参数, 在使用dts
传参时可能不可用.
核数限制
#
多核调度限制
#
示例可以使0,1,3,4,5
核不参与调度, 即被孤立.
禁用SMP
#
串口调试休眠
#
在s3
和s4
的过程中, 串口将打印执行流程.
设置替代初始化进程
#
减少内核启动时的输出
#
设置日志级别
#
设置根文件系统所在设备
#
加载ramdisk
#
initrd=/path/to/initrd.img
设置PCI属性
#
如禁用msi
设置挂载参数
#
设置SELinux启用
#
禁用gpu驱动
#
使能lsdc驱动
#
内核参数查询
#
龙芯系统支持的内核启动参数可以使用如下命令查看:
...龙芯内核编译
#
目前龙芯已经由MIPS架构转战LoongArch架构.
- vmlinux+vmlinuz
- libmodules
- RamDisk_initrd
准备阶段
#
下面以LoongArch架构的编译为例.
编译器采用Gcc交叉编译LoongArch版本
- 编译器版本 :
loongarch64-linux-gnu-gcc-8.3.0
- 配置文件 采用龙芯默认配置:
cp arch/loongarch/configs/loongson3_defconfig .config
开始编译
#
vmlinux/vmlinuz
- 执行 make ARCH=loongarch CROSS_COMPILE=/opt/LoongArch_Toolchains/loongarch64-linux-gnu-2020-11-06/bin/loongarch64-linux-gnu-(此为编译器路径 which gcc) menuconfig
进入图形化配置界面,开关相关功能,我们直接Esc退出.
执行 make ARCH=loongarch CROSS_COMPILE=/opt/LoongArch_Toolchains/loongarch64-linux-gnu-2020-11-06/bin/loongarch64-linux-gnu- -j 16 //采用16线程进行编译(目前我是在服务器上编译,核数较多). 到此vmlinux/vmlinuz 非压缩和压缩版内核就编译完成.
System.map 是符号表
执行 make modules_install INSTALL_MOD_PATH=./ ARCH=loongarch CROSS_COMPILE=/opt/LoongArch_Toolchains/loongarch64-linux-gnu-2020-11-06/bin/loongarch64-linux-gnu- 编译lib/modules/ 驱动模块包,熟悉内核的人都了解,当配置menuconfig的时候,会将M的驱动以modules的形式在内核中加载.
将编译的文件进行使用
#
1.vmlinuz 放在os的/boot/下,并可以修改成自己喜欢的名字 vmlinuz_go
2.将lib/modules/下的文件copy到os根目录/lib/modules/
3.参考Deebian制作Ramdisk为例: 执行
使用draut进行制作,该脚本制作的Ramdisk支持了好几种文件系统,你可以简单制作RamDisk,这里就不详细介绍该命令了.将制作的*.img文件拷贝到/boot下.
dracut 是一个事件驱动的 initramfs 基础设施。dracut(工具)被用来通过拷贝工具和文件,从一个已经安装的系统创建一个 initramfs 镜像,并将镜像与dracut框架结合在一起。
...1 全系统更新:
#
Debian
系:
apt update && apt upgrade
Redhat
系:
yum update
Arch
系:
pacman -Syu
安同 OS (AOSC OS):
oma upgrade
2. 单独更新内核
#
2.1 更新自己编译的内核
#
将内核放置/boot
下即可(通常/boot
是grub.cfg
默认指定的根目录)
更新完记得更新grub.cfg
, 见第四节.
2.2 更新软件源上的内核
#
以Debian
系为例, 其余不做演示:
root@loongson-pc:/home/loongson# apt-cache search linux-header
aufs-dkms - DKMS files to build and install aufs
linux-headers-4.19.0-17-common - Common header files for Linux 4.19
linux-headers-4.19.0-17-loongson-3 - Linux kernel headers for 4.19 on loongson-3
linux-headers-4.19.0-18-common - Common header files for Linux 4.19
linux-headers-4.19.0-18-loongson-3 - Linux kernel headers for 4.19 on loongson-3
linux-headers-4.19.0-19-common - Common header files for Linux 4.19
linux-headers-4.19.0-19-loongson-3 - Linux kernel headers for 4.19 on loongson-3
linux-headers-loongson-3 - Linux kernel headers for 4.19 on loongson-3 (meta-package)
root@loongson-pc:/home/loongson#
root@loongson-pc:/home/loongson# apt install linux-headers-4.19.0-19-loongson-3
正在读取软件包列表... 完成正在分析软件包的依赖关系树
正在读取状态信息... 完成
......
......
3. 单独更新initrd
#
3.1 更新自己编译的modules并生成initrd
#
将从内核源码编译的模块文件拷贝至/lib/modules/
, 比如4.19.190+.tgz
是模块文件的压缩包:
...1. Initrd
#
通常, lib/modules/
下的文件夹名称和内核的版本名是一致的, 所以可以通过下列命令生成Initrd
:
1.1 dracut命令
#
ls lib/modules/* | xargs -I N dracut --kver N --force
1.2 mkinitramfs命令
#
ls lib/modules/* | xargs -I N mkinitramfs /lib/modules/N -o /boot/initrd.img-N
2. GRUB
#
2.1 Grub
#
通常, Grub
安装在当前启动系统所在的磁盘上, 如下命令可以找到当前磁盘. (希望将Grub
安装在其他盘的同学, 看明白自己想要的效果)
[root@mxd ~]# lsblk -P | grep "$(lsblk -P | grep -w 'MOUNTPOINTS="/"' | sed 's/.*MAJ:MIN="\([^:]*\).*/\1/g'):0" | awk -F '"' '{print "/dev/" $2}'
/dev/nvme0n1
再通过grub-install
或者grub2-install
命令安装进磁盘:
grub-install /dev/nvme0n1
2.2 grub.cfg
#
grub-mkconfig -o /boot/grub/grub.cfg
2.3 grub.efi
#
grub-mkimage -c /boot/grub/grub.cfg -o /boot/efi/EFI/BOOT/BOOTLOONGARCH64.EFI -O loongarch64-efi
2.1
节中生成grub
可以让bios
找到启动设备, 自动启动.
...1. 查看系统版本
#
[root@mxd mxd]# cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
2. 查看内核版本
#
[root@mxd mxd]# uname -a
Linux mxd 6.5.0-4 #1 SMP PREEMPT Thu, 31 Aug 2023 09:38:08 +0000 loongarch64 GNU/Linux
3. 查看固件版本
#
[root@mxd mxd]# cat /sys/firmware/loongson/boardinfo
BIOS Information
Vendor : Loongson
Version : Loongson-UDK2018-V4.0.05494-stable202305
ROM Size : 4096 KB
Release Date : 07/10/23 18:05:47
Board Information
Manufacturer : Loongson
Board Name : Loongson-LS3A6000-7A2000-1w-EVB-V1.21
Family : LOONGSON64
4. 查看ip
#
[root@mxd mxd]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:55:7b:b5:7d:f7 brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether ce:38:b3:df:3b:23 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.13/23 brd 192.168.1.255 scope global dynamic noprefixroute enp2s0
valid_lft 40218sec preferred_lft 40218sec
inet6 fe80::80b6:e9f0:ab6c:e9c5/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:4e:12:01:c7 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
valid_lft forever preferred_lft forever
5. 查看pci设备
#
[root@mxd mxd]# lspci
00:00.0 Host bridge: Loongson Technology LLC Hyper Transport Bridge Controller
00:00.1 Host bridge: Loongson Technology LLC Hyper Transport Bridge Controller (rev 01)
00:00.2 Host bridge: Loongson Technology LLC Device 7a20 (rev 01)
00:00.3 Host bridge: Loongson Technology LLC Device 7a30
00:03.0 Ethernet controller: Loongson Technology LLC Device 7a13
00:04.0 USB controller: Loongson Technology LLC OHCI USB Controller (rev 02)
00:04.1 USB controller: Loongson Technology LLC EHCI USB Controller (rev 02)
00:05.0 USB controller: Loongson Technology LLC OHCI USB Controller (rev 02)
00:05.1 USB controller: Loongson Technology LLC EHCI USB Controller (rev 02)
00:06.0 Multimedia video controller: Loongson Technology LLC Device 7a25 (rev 01)
00:06.1 VGA compatible controller: Loongson Technology LLC Device 7a36 (rev 02)
00:06.2 Audio device: Loongson Technology LLC Device 7a37
00:07.0 Audio device: Loongson Technology LLC HDA (High Definition Audio) Controller
00:08.0 SATA controller: Loongson Technology LLC Device 7a18
00:09.0 PCI bridge: Loongson Technology LLC Device 7a49
00:0a.0 PCI bridge: Loongson Technology LLC Device 7a39
00:0b.0 PCI bridge: Loongson Technology LLC Device 7a39
00:0c.0 PCI bridge: Loongson Technology LLC Device 7a39
00:0d.0 PCI bridge: Loongson Technology LLC Device 7a49
00:0f.0 PCI bridge: Loongson Technology LLC Device 7a69
00:10.0 PCI bridge: Loongson Technology LLC Device 7a59
00:13.0 PCI bridge: Loongson Technology LLC Device 7a59
00:16.0 System peripheral: Loongson Technology LLC Device 7a1b
00:19.0 USB controller: Loongson Technology LLC Device 7a34
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
05:00.0 Non-Volatile memory controller: Shenzhen Longsys Electronics Co., Ltd. SM2263EN/SM2263XT-based OEM SSD (rev 03)
07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Oland [Radeon HD 8570 / R5 430 OEM / R7 240/340 / Radeon 520 OEM] (rev 87)
07:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series]
5.1 详细查看某pci设备使用的驱动
#
其中07:00.0
是上面左侧显示的一段数字, 根据描述, 07:00.0
那一行指一个VGA兼容设备
, 换句话说是指显示设备, 业内叫做显卡
...转载文章来源:
https://bbs.loongarch.org/d/88-archlinux/28
本主题多人协作,版主权限可编辑,开源爱好者若要参与协作,可回复中申请权限,或者在QQ群里申请。
#
为了协调一致,本指南基于
@yetist制作的可引导安装镜像,指南覆盖系统引导、安装和具体应用配置。安装配置中遇到的问题,可以在回复中提出。本主题多人协作持续更新,勿催,谢谢!
#
一、龙芯新固件环境下引导盘的制作
#
安装镜像及软件仓库动态,可在如下主题中找到
#
https://bbs.loongarch.org/d/67-loongarchlinux-202203/30
最新镜像下载,随时更新
#
https://mirrors.wsyu.edu.cn/loongarch/2022.03/iso/2022.06/loongarchlinux-2022.06.16.1-loongarch64.iso
https://mirrors.wsyu.edu.cn/loongarch/2022.03/iso/2022.06/loongarchlinux-2022.06.22.1-loongarch64.iso
https://mirrors.wsyu.edu.cn/loongarch/archlinux/iso/latest/archlinux-loong64.iso
引导盘制作
#
准备工作:一块确定状态良好的U盘,容量4G以上即可,制作引导U盘会擦除盘内原始数据,注意备份。
Linux环境下,插入U盘,系统会识别,不要做任何打开,加载等操作,具体设备名,可使用如下命令
ls -la /dev/sd* ## U盘一般会识别成硬盘设备,*表示系统动态赋予的一个字符,用以区分不同硬盘
Linux环境下,使用dd这个工具软件
#
注意:x是个字符,用实际内容替换,命令执行需要root用户权限
sudo dd if=loongarchlinux-xxx.iso of=/dev/sdx bs=1M status=progress oflag=direct
# 命令执行完成后,建议运行下如下命令,确保U盘写入完整
sudo sync
二、系统引导和安装前的检查
#
使用新固件引导,有两个快捷键会经常用到:
F2 ----- 激活固件配置界面,可在配置界面的选择引导设备
F12 ----- 激活引导管理菜单,暂时不推荐使用这个方式选择引导设备
使用新固件引导系统,包括引导本主题中制作好的U盘和之前使用grub有区别,具体流程是:
1、开机前把制作好的U盘插入机器USB接口,建议插入到主板提供的接口上,不建议使用前置接口,躲坑。
2、开机后出现龙芯logo,快速按F2,直到进入固件配置界面
3、按如下图示操作:
…
TODO: 需要补充英文界面操作,或说明修改语言方法。
移动光标到 启动管理 项,回车:
进入 启动管理 菜单之后,将会看到一系列可选择的启动项,请在列表中找到 EFI System Partition 或 EFI System Partition 2,并选择此项启动:
...