龙芯派教学

龙芯派教学

很多小伙伴拿到龙芯派后不知从何下手学习,一脸困惑,本文将解决小伙伴的遇到的困惑。龙芯派默认安装loongxin系统,开机后自动启动到系统下,此时龙芯派可以理解成一台pc机,连接上屏幕、鼠标、键盘就可以在桌面下办公。但很多小伙伴想从“零”开始学习龙芯派,接下来带领大家熟悉龙芯派整个开发流程。

友情提示:高手请跳过

龙芯派软件由:pmon、内核、文件系统组成
框架
龙芯派是从sip flash启动的,pmon存在flsah前1M里

一、pmon

1.1 pmon相关资源

1)pmon源码获取
pmon:http://ftp.loongnix.cn/loongsonpi/pi_2/source/
解压:

$ sudo tar -xvf pmon-loongson3-pai.tar.gz

2)pmon工具链获取
工具链: http://ftp.loongnix.cn/loongsonpi/pi_2/toolchain/gcc-4.4-gnu.tar.gz
解压:

$ sudo tar  -zxvf gcc-4.4-gnu.tar.gz  -C  /

解压完在系统的 /opt 目录下得到gcc-4.4-gnu,可以通过ls命令查看 ls /opt

1.2 pmon编译依赖工具安装

1)安装makedepand

$ sudo apt-get install xutils-dev 

2)安装pmoncfg

$ sudo apt-get install bison flex build-essential patch
$ cd pmon-loongson3/tools/pmoncfg   (pmon源码里)
$ make pmoncfg
$ sudo cp pmoncfg /usr/bin 
1.3 pmon 编译

Pmon采用交叉编译,在源码目录下创建编译脚本,操作如下:
1)在pmon源码pmon-loongson3目录下创建cmd.sh文件

$ sudo vim cmd.sh

2)将下面内容写到cmd.sh文件里

#!/bin/bash
cd zloader.ls2k
export PATH=/opt/gcc-4.4-gnu/bin/:$PATH
make cfg 
make all tgt=rom ARCH=mips CROSS_COMPILE=mipsel-linux- DEBUG=-g
make dtb

3)修改cmd.sh执行权限

$ sudo chmod 777 cmd.sh

4)编译pmon

$ sudo ./cmd.sh

5)编译完成后在pmon源码目录下的zloader.ls2k/目录下生成gzrom-dtb.bin
如更改了配置文件Targets/LS2K/conf/ls2k, 则在编译前要执行make cfg, 使得更改生效,如果普通编译没有更改配置,则每次无需都执行make cfg命令。
执行make dtb 可以将dtb和gzrom.bin 结合生成gzrom-dtb.bin,此命令可以在上面编译完成后执行,dtb为设备树。

1.4 pmon 烧写

1)在线更新pmon,启动到pmon命令下

① load -r -f 0xbfc00000 tftp://ip/gzrom-dtb.bin				//网络更新
② load -r -f 0xbfc00000 /dev/fs/fat@usb0/gzrom-dtb.bin	        //U盘更新

2)ejtag烧写pmon
① linux系统下使用简介
a、ejtag软件下载
网址:ftp://ftp.loongnix.cnembedd/ls1b/ejtag/打开上面的网址下载以ejtag-debug-v×××开头ejtag最新的软件版本,当前最新版本为:ejtag-debug-v3.25.9.tar.gz
如果不能下载,直接联系龙芯技术人员获取!!!
b、ejtag安装
命令:

$ tar  zxvf  ejtag-debug-v3.25.9.tar.gz -C /opt/

b、ejtag烧写pmon(二进制文件为gzrom-dtb.bin)

$ cd /opt/ejtag-debug
$ sudo ./ejtag_debug_usb -t

ejtag里输入:

cpu0 -source configs/config.ls2k
在这里插入图片描述

ejtag里输入:

cpu0 -loop -1 stop
给板卡上电,开机后
ctrl + c 打断
在这里插入图片描述

ejtag里输入:

jtagregs d8 1 1
在这里插入图片描述

注:jtagregs d8 1 1读处理器的ejtag id寄存器,如果是0x20010819或者0x5a5a5a5a都说明连接正确,如果不是则硬件有问题。

ejtag里输入:

program_cachelock /home/tftpboot/gzrom-dtb.bin
在这里插入图片描述

注:执行完program_cachelock命令,默认将/tmp/目录下的gzrom.bin 烧录到芯片里。program_cachelock命令后可以放gzrom.bin的绝对路径,例如:program_cachelock /home/tftpboot/gzrom.bin

② Win系统下使用简介
a、ejtag软件(本人仅验证过win7和XP系统)
网址:ftp://ftp.loongnix.cn/embedd/ls1b/ejtag/old/打开上面的网址下载以ejtag-debug-cygwin×××开头ejtag最新的软件版本,当前最新版本为:ejtag-debug-cygwin-v3.25.9.zip
如果不能下载,直接联系龙芯技术人员获取!!!
b、驱动安装 注:pwd代表任何位置
ejtag-debug-cygwin-v3.25.9.zip解压到pwd,将ejtag与pc端链接好,此时在设备管理器里看到未知设备,点击未知设备更新,手动更新路径为pwd,操作流程:
在这里插入图片描述
在这里插入图片描述
备注:路径位pwd/ejtag-debug-cygwin
在这里插入图片描述在这里插入图片描述在这里插入图片描述c、烧录写流程
把烧录的gzrom-dtb.bin拷贝到ejtag-debug-cygwin-v3.25.9.zip解压后目录内,将ejtag连接到pc上,另一端连接到龙芯派模块上,进入ejtag-debug-cygwin,双击可执行文件ejtag_debug_usb.exe出现一个命令行终端,如图:
在这里插入图片描述烧写gzrom-dtb.bin方式和linux下操作一样,输入gzrom-dtb.bin 绝对路径,program_cachelock ./gzrom-dtb.bin
如果烧写成功,则最后会返回命令提示符cpu0-;否则烧写失败,请重新检查连接情况。

二、内核

2.1 内核相关资源

1)内核源码获取
内核:http://ftp.loongnix.cn/embedd/ls2k/linux-3.10.tar.gz
解压:

$ sudo tar -zxvf linux-3.10.tar.gz

2)工具链获取
工具链:http://ftp.loongnix.cn/loongsonpi/pi_2/toolchain/gcc-4.9.3-64-gnu .tar.gz
http://ftp.loongnix.cn/embedd/ls3a/toolchain/gcc-4.9.3-64-gnu.tar.gz

解压:

$ sudo tar  -zxvf  gcc-4.9.3-64-gnu.tar.gz  -C  /

解压完在系统的 /opt 目录下得到gcc-4.9.3-64-gnu,可以通过ls命令查看 ls /opt

2.2 内核编译依赖工具安装

在ubuntu上交叉编译之前需要安装以下库文件:

$ sudo apt-get install -y bison flex
$ sudo apt-get install libncurses5-dev
2.3 内核配置与编译

1)内核配置

cd linux-3.10
cp arch/mips/configs/loongson2k_defconfig  .config
./mymake menuconfig  可以对内核进行图形化配置

2)内核编译

./mymake vmlinuz
2.4 内核和文件系统

开发时有需要将内核与文件系统编译到一起,有时需要分开。在内核配置里操作如下:
1)内核和文件系统编译到一起
使用ramdisk文件系统启动内核后,会在内存中形成一个根文件系统,这需要在编译内核时,告诉内核根文件系统所在的目录,把根文件系统编译到内核中。
下面的步骤是如何把根文件系统编译到内核中:
a、内核源码目录下执行 ./mymake menuconfig
用上下键选择General setup —>,执行过上述操作后
在这里插入图片描述蓝色停留在上图位置按 Enter 键进入该选项,并用上下键按照下图所示选择:
在这里插入图片描述黑色选中为[*],蓝色停留在上图位置,单击 Enter 键,输入文件系统的绝对路径,假设文件系统的绝对路径为/home/rootfs/,执行上述步骤后,如下图所示:
在这里插入图片描述
然后保存退出,并通过命令 ./mymake vmlinuz 编译内核。

2)内核和文件系统分开
在这里插入图片描述蓝色位置,括号里为空即可,然后保存退出,并通过命令 ./mymake vmlinuz 编译内核。

三、文件系统

3.1 现成文件系统

文件系统:http://ftp.loongnix.cn/loongsonpi/pi_2/source/ramdisk_2.tar.gz
http://ftp.loongnix.cn/embedd/ls2k/rootfs.cpio.gz
解压:

$ sudo tar -zxvf ramdisk_2.tar.gz   

注:文件系统是ramdisk_2,如果想与内核编译到一起,配置填写的路径则是ramdisk_2目录的绝对路径

3.2 buildroot

一般文件系统都要包含很多第三方软件,比如busybox,tftp,apache,PHP,DNS,qt等等,为了避免繁琐的移植工作,buildroot应运而生,通过menuconfig来配置我们需要的功能,不需要的去掉,再执行make编译,buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式文件系统。
1)buildroo源码获取
http://ftp.loongnix.cn/embedd/ls2h/buildroot/buildroot.tar.gz
解压:

$ sudo tar -xvf buildroot.tar.gz 

2)buildroo编译
在buildroot的顶层目录下写个cmd.sh编译的脚本文件,内容如下:

$ cd  buildroot
$ vim cmd.sh

在这里插入图片描述

$ chmod 777  cmd.sh
$ cp configs/ls2k_docker-gcc-4.9.3.config   .config

执行make menuconfig开始配置buildroot:
当前配置是ls2k_docker-gcc-4.9.3.config的默认配置,所以不需要修改,保存推出即可。

执行./cmd.sh开始编译,buildroot编译需要连网,编译完成后,结果在output/target目录里。

$ cd  output/target
$ find  . | cpio  -o  -H  newc > rootfs.cpio
$ gzip  -c  rootfs > rootfs.cpio.gz 

四、更换内核与文件系统

4.1 在loongnix系统基础上添加启动项

1)从电脑上将内核和文件系统拷贝到U盘里

① cp  vmlinuz    u盘
② cp  rootfs.cpio.gz	u盘

2)将龙芯派启动到系统下后,打开终端,执行

① $ sudo  cd  /boot
② $ sudo  cp  u盘/vmlinuz  /boot
③ $ sudo  cp  u盘/rootfs.cpio.gz  /boot

④ 修改/boot目录下的boot.cfg文件

$ sudo  vim  boot.cfg

在第四行后添加如下内容:

title loongson ls2k pai test
	kernel (wd0,0)/vmlinuz
	initrd (wd0,0)/rootfs.cpio.gz
	args console=ttyS0,115200 console=tty

保存退出
⑤ 重启reboot

4.2 不要loongnix系统,硬盘里只有内核和文件系统

1)将内核和文件放到ssd盘里准备工作
① vmlinuz-ramdisk 带文件系统 (在内核配置里添上文件系统,编译内核生成的vmlinuz,将vmlinuz修改名称为vmlinuz-ramdisk防止混交)
② vmlinuz 不带文件系统 (内核配置里去掉文件系统配置,编译内核生成vmlinuz)
③ 文件系统rootfs.cpio.gz (从ftp网址获取)
2)准备boot文件夹
① 创建一个文件夹,起名为boot
② 将vmlinuz和rootfs.cpio.gz拷贝到boot目录下
③ 在boot目录下创建文件boot.cfg,boot.cfg里内容如下

timeout 5
default 0
showmenu 1

title kernel or fs on ssd
	kernel /dev/fs/ext2@wd0/boot/vmlinuz
	initrd /dev/fs/est2@wd0/boot/rootfs.cpio.gz
	args console=tty console=ttyS0,115200

3)启动到pmon命令行下(启动时按C即可进入pmon 命令行下)

① load tftp://ip/vmlinuz-ramdisk           //网络加载
 或 load /dev/fs/fat@usb0/vmlinuz-ramdisk    //u盘加载,上电前将U盘插到板卡
② g console=ttyS0,115200 rdinit=/sbin/init

4)启动到内核下
假如ssd硬盘盘符是/dev/sda
① 使用fdisk命令对硬盘分区(存放内核只能放到第一分区里,否则pmon找不到)

$ fdisk  /dev/sda

② 使用mkfs.ext2 对/dev/sda0格式化

$ mkfs.ext2  /dev/sda0

③ 挂载/dev/sda0分区

mount /dev/sda0  /mnt/

④ 将boot文件夹从U盘拷贝到mnt目录下 (u盘也需要手动挂载)

$ cp  “u盘/boot”  /mnt  -ad
$ sync

⑤ 拷贝完成后卸载硬盘和u盘

umount /mnt/

⑥ 拔掉u盘后重启

reboot

备注:因为pmon下只能对ssd盘进行读取,不能写入数据,所以往ssd盘里写数据必须先启动一个带文件系统的内核镜像,然后启动到内核下再对ssd盘操作。

  • 13
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
您好!感谢您的提问。以下是安装 CentOS Linux 操作系统到龙芯的基本步骤: 1. 下载 CentOS 镜像:访问 CentOS 官方网站(https://www.centos.org/),选择适合您的龙芯版本的 CentOS 镜像进行下载。通常,您需要选择适用于 Loongson 3A 或 3B 平台的镜像。 2. 制作启动SD卡:将下载的 CentOS 镜像写入到 SD 卡中,以便用于安装。您可以使用类似 balenaEtcher、dd 或 Win32 Disk Imager 的工具来完成此步骤。 3. 连接显示器与输入设备:将龙芯连接到显示器,并连接键盘和鼠标等输入设备。 4. 启动龙芯:插入制作好的 SD 卡,并启动龙芯。 5. 进入安装界面:一旦龙芯启动,您将看到 CentOS 安装界面。按照屏幕上的指示进行操作。 6. 安装 CentOS:在安装界面中,选择适当的语言、时区和键盘布局等设置。然后,选择安装类型和磁盘分区方案。 7. 设置网络和主机名:配置网络设置和主机名,以便您能够远程访问或使用网络服务。 8. 创建用户和设置密码:创建一个管理员用户,并设置密码。 9. 完成安装:完成上述步骤后,等待安装程序完成。 10. 重启系统:安装完成后,系统将提示您重新启动。拔掉 SD 卡,并重新启动龙芯。 这样,您就成功安装了 CentOS Linux 操作系统到龙芯上。请注意,具体步骤可能因版本和个人需求而有所差异。如果您在安装过程中遇到问题,建议参考 CentOS 官方文档或社区论坛寻求支持。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大、猫

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值