添加新文件

按照以下步骤,添加新文件:

注: 如果没有更新,则无需添加新文件。
  1. 将micro-SD卡插入到带有Ubuntu系统的PC上,并执行以下命令检查SD卡分区:
    sudo fdisk -l
    示例输出:
    Device Start End Sectors Size Type
    /dev/sdc1 4096 8191 4096 2M unknown
    /dev/sdc2 8192 16383 8192 4M unknown
    /dev/sdc3 16384 221183 204800 100M EFI System
    /dev/sdc4 221184 4503518 4282335 2G Linux filesystem

    在此输出中,/dev/sdc3分区是SD卡分区。

  2. 执行以下命令,在mnt文件路径下挂载SD卡分区:
    sudo mount /dev/sdc3 /mnt
  3. 执行以下命令,在linux目录下编译文件:
    make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv INSTALL_PATH=<ROOTFS_PATH> zinstall -<jx>
    提示:
    • <ROOTFS_PATH>:用户定义的目录,将在该目录下生成vmliunz文件。
    • <jx>:CPU中的内核数量。如果您的CPU中有8个内核,请将其更改为-j8
      1. 示例命令和输出
      结果:

      将在ROOTFS_PATH路径下生成vmliunz文件。

  4. 查看${ROOTFS_PATH}路径下生成的文件。以下是一个示例:
    2. 示例
  5. 添加新文件:
    1. 查看Micro-SD卡信息。
      df -h
      3. SD卡信息示例
    2. 将内核文件复制到Micro-SD卡上。请在${ROOTFS_PATH}路径下操作。
      sudo cp vmlinuz-5.15.0 /media/<User_Name>/root/boot/ && sync
      提示:

      <User_Name>是您的用户名,例如,atlas

    3. 将模块文件复制到Micro-SD卡上。请在linux/arch/riscv/boot/dts/starfive路径下操作。
      sudo cp jh7110-visionfive-v2.dtb jh7110-visionfive-v2-A11.dtb jh7110-visionfive-v2-ac108.dtb jh7110-visionfive-v2-wm8960.dtb /media/<User_Name>/root/usr/lib/linux-image-5.15.0-starfive/starfive/ && sync
      4. dtb文件列表
  6. 按照以下命令,更新extlinux.conf文件:
    cd /mnt/extlinux
    sudo vim extlinux.conf
  7. 添加以下命令,保存并退出:
    label <Label >
            menu label <Menu_Label> 
            linux /boot/<Newly_Complied_Kernel_file> 
            initrd /boot/initrd.img-5.15.0-starfive
            fdtdir /usr/lib/linux-image-5.15.0-starfive/
            append  root=/dev/mmcblk1p3 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0
    
    提示:

    在以上命令中:

    • <Label>:表示启动项目的标签号。例如,11
    • <Menu_Label>:表示菜单上显示的配置名。例如,myDebian_atlas GNU/Linux-5.15.0-starfive
    • <Newly_Complied_Kernel_file>:在前面步骤中新编译的vmlinuz文件名。例如,vmlinuz-5.15.0Image.gz

    示例:命令示例:

    label l1
    menu label myDebian_atlas GNU/Linux-5.15.0-starfive
    linux /boot/vmlinuz-5.15.0
    initrd /boot/initrd.img-5.15.0-starfive
    fdtdir /usr/lib/linux-image-5.15.0-starfive/
    append  root=/dev/mmcblk1p3 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0
    
  8. (可选)加载不同的dtb文件:
    1. 执行以下命令,编辑uEnv.txt文件:
      cd /mnt
      sudo vim uEnv.txt
    2. 修改fdtfile参数,保存并退出:
      fdtfile=starfive/<dtb_File_Name>
      注:
      • <User_Name>:您的用户名。例如,atlas
      • <dtb_File_Name>如下图所示,dtb文件位于boot/usr/lib/linux-image-5.15.0-starfive/starfive/路径下:
        不同的开发板使用不同的dtb文件:
        • jh7110-visionfive-v2.dtb:用于1.2A和1.3B版的开发板。
        • jh7110-visionfive-v2-ac108.dtb:用于带有ac108编解码器的1.2A和1.3B版的开发版。
        • jh7110-visionfive-v2-wm8960.dtb:用于带有wm8960编解码器的1.2A和1.3B版的开发板。
        提示: 您可查看开发板上的丝印获取版本信息。
        5. dtb文件列表
        示例:

        下面是编辑uEnv.txt以加载jh7110-visionfive-v2-wm8960.dtb的示例:

        6. uEnv.txt内容示例
  9. 取消/mnt目录的挂载:
    sudo umount /mnt

    验证:

    以下步骤用于验证配置是否成功。

    1. 从电脑上拔下SD卡,插入到昉·星光 2上。开机后,系统将正常启动。
    2. 如下所示,您可在菜单界面看到定义的配置项目,例如,myDebian_atlas GNU/Linux-5.15.0-starfive
      7. 示例界面

      同样,您也可以在启动界面看到加载的dtb文件jh7110-visionfive-v2-wm8960.dtb

      8. 启动界面
    3. 系统成功启动后,您可看到新的vmlinuz文件的版本号:

      root@starfive:~# cat /proc/version 
      Linux= version 5.15.0 (atlas@atlas-VirtualBox) (riscv64-linux-ginu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, GNU ld (GNU Binutils for Ubuntu) 2.30) #1 SMP Mon Oct 31 15:12:31 CST 2022 
      root@starfive:~#