118.龙芯2k1000-pmon(17)-制作ramdisk

31 篇文章 0 订阅
2 篇文章 0 订阅

目前手上这个设备装系统不容易,总是需要借助虚拟机才能实现。

对生产就不太那么友好,能否不用虚拟机就能装Linux系统呢?

主要是文件系统的问题需要解决,平时我们一般是用nfs挂载后,然后对硬盘格式化,之后再把文件系统解压到硬盘中,这个过程就必须借助虚拟机,而且还要求虚拟机的nfs和网络必须正常好用。

这次我就想到了ramdisk,如果借助ramdisk,那么是否就可以脱离掉虚拟机,用几个命令是否就可以把系统装好呢?

好,那么首先得有一个ramdisk才行。

没有找到现成的,那就自己做吧。

一、制作ramdisk的最简文件系统


1.1 创建根文件系统目录


mkdir ramdisk_ls2k 
cd ramdisk_ls2k 
mkdir root dev etc boot tmp var sys proc lib mnt home usr   
mkdir etc/init.d etc/rc.d etc/sysconfig  
mkdir usr/sbin usr/bin usr/lib usr/modules  
mkdir var/lib var/lock var/run var/tmp 
sudo mknod -m 600 dev/console c 5 1  
sudo mknod -m 600 dev/null  c 1 3  
可以写成一个脚本,避免每次都要一行行敲

1.2 拷贝交叉编译工具里面的库


比如我使用的交叉编译工具是mips64el-loongson-linux-gcc,
这里我一下没有找到库,所以我选择把busybox(我用的版本是1.34.1)编译为静态库的方式。
      Settings  --->
            [*] Build static binary (no shared libs) 

            (/home/jc/ramdisk_ls2k) Destination path for 'make install'
            设置为安装的目录      
其他配置不变
      makefile修改一下
            CROSS_COMPILE ?=mips64el-loongson-linux-
            ARCH ?= mips

      make之后,直接make install

        用编译内核的环境变量设置一下。


1.3 建立etc目录下的配置文件


1.3.1、拷贝主机etc目录下的passwd、group、shadow文件到ramdisk_ls2k/etc目录下。
1.3.2、创建etc/mdev.conf内容为空。
1.3.3、etc/sysconfig目录下新建文件HOSTNAME(主机名),内容为“dazhi”。
1.3.4、编辑etc/inittab文件,内容如下:
      ::sysinit:/etc/init.d/rcS        #rcS作为系统初始化文件                                 
      console::askfirst:-/bin/sh      #在串口启动一个登录会话
      ::restart:/sbin/init  
      ::ctrlaltdel:/sbin/reboot     
      ::shutdown:/bin/umount -a -r  #告诉init在关机时运行umount命令卸载    所有的文件系统,如果卸载失败,试图以只读方式重新挂载。
      ::shutdown:/sbin/swapoff -a  

          
1.3.5、编辑etc/init.d/rcS文件,并chmod +x 修改文件权限
      #!/bin/sh
      PATH=/sbin:/bin:/usr/sbin:/usr/bin #启动环境,设置必要的环境变量
      runlevel=S
      prevlevel=N
      umask 022
      export PATH runlevel prevlevel
      echo "----------mount all----------------"
      mount -a   #读取/etc/fstab,加载文件系统
      echo /sbin/mdev>/proc/sys/kernel/hotplug
      
      echo "****************Hello dazhi*********************"
      echo "Kernel version:linux-3.10 (2024)"
      echo "***********************************************"     
      /bin/hostname -F /etc/sysconfig/HOSTNAME #设置机器名字
      mdev –s

1.3.6、编辑etc/fstab
      #device   mount-point     type       option       dump      fsck  
      proc      /proc           proc       defaults     0         0  
      none      /tmp            ramfs      defaults     0         0  
      #mdev     /dev            ramfs      defaults     0         0  
      sysfs      /sys            sysfs      defaults     0         0

1.3.7、编辑etc/profile
      USER="id -un"                    #id -un是打印输出当前的用户名,例如:root
      LOGNAME=$USER
      PS1='[\u@\h $PWD]#'              #“[用户名@主机名 目录]#”, PS1的值即进入shell后的默认
      PATH=$PATH
      HOSTNAME='/bin/hostname'         #通过/bin/hostname获取主机名
      export USER LOGNAME PS1 PATH
      echo “-----/etc/profile-------”

1.4 用nfs验证一下

虚拟机中设置好/etc/exports,然后重启nfs-kernel

手动加载文件系统:

g console=ttyS0,115200 noinitrd root=/dev/nfs rw nfsroot=192.168.0.14:/home/jc/ramdisk_ls2k/,v3 ip=192.168.0.12:192.168.0.14::::eth1

能够正常启动说明文件系统制作成功了。

二、内核设置ramdisk

2.1 需要修改一下内核选项,重新编译

框中的两条,选中并设置路径

然后重新编译内核,

重名了,准备手动加载试试

cp vmlinuz /mnt/hgfs/share-win/vmlinuz-ramdisk

2.2 手动加载,并指定使用ramdisk

load tftp://192.168.0.10/vmlinuz-ramdisk

g console=ttyS0,115200  root=/dev/ram0 rdinit=/linuxrc

启动成功。

制作好的ramdisk,解压之后就是文件夹。

链接: https://pan.baidu.com/s/1pWIdfShpLLspwxNV-NRHYw?pwd=jfww 提取码: jfww 

欢迎大家提出宝贵意见。

下期准备用ramdisk装系统试试。再会。

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
龙芯2K1000LA的开发流程可以简单概括为以下几个步骤: 1. 硬件准备:准备好龙芯2K1000LA处理器的开发板和相应的外设设备。 2. 配置内核:使用引用\[2\]中提到的命令,通过修改配置文件和使用menuconfig工具来配置内核。可以根据具体需求选择需要的功能和驱动程序。 3. 编译内核:使用引用\[2\]中提到的命令,通过交叉编译工具链编译内核。可以使用make命令来编译内核镜像。 4. 更新内核:可以选择使用网口或者U盘来更新内核。但是根据引用\[3\]的建议,使用U盘更新速度更快。将U盘插入开发板,开机后按照指定的步骤进入pmon命令行,然后将pmon引导程序和设备树写入flash中。 5. 测试和调试:完成内核更新后,可以进行测试和调试。可以验证系统的功能和性能,并进行必要的调整和优化。 需要注意的是,以上只是一个简单的概述,具体的开发流程可能会因为项目的不同而有所差异。在实际开发中,可能还需要进行驱动程序的开发、应用程序的编写等工作。建议参考相关的开发文档和资料,以获得更详细的指导。 #### 引用[.reference_title] - *1* *2* [龙芯2k1000LA之pmon学习](https://blog.csdn.net/m0_71897505/article/details/129523765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [龙芯2K1000la开发之更新文件系统及内核](https://blog.csdn.net/hushichuanren/article/details/130860087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大智兄

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值