瑞芯微Rockchip开发者社区
直播中

陈飞

7年用户 1185经验值
私信 关注
[问答]

怎样使用ubuntu去制作一种文件系统呢

怎样使用ubuntu去制作一种文件系统呢?有哪些制作步骤?

回帖(1)

徐歌

2022-3-7 09:59:18
  Kernel4
  RK Linux
  SDK
  的buildroot对ros支持4的步骤不友好,也没有记录教程,项目需求只好用ubuntu做文件系统。的 Ubuntu arm64 的图片可以在这里找到:
  可以直接下载,或者通过以下的方法来下载:$ mkdir ~/ubuntu-rootfs && cd ubuntu-rootfs然后,通过以下的方法来下载arm64的发布软件:$ wget
  $ tar -xpf ubuntu-base-16.04.2-base-arm64.tar.gz解压缩后是这样的:用户@user:~/ubuntu-rootfs$ ls bin dev home media opt root ***in sys usr
  boot etc lib mnt proc run srv tmp var
  2. 安装 qemu-user-static
  $ pwd
  /home/user/ubuntu-rootfs
  $ apt-get install qemu-user-static
  $ cp /usr/bin/qemu-aarch64-static usr /bin
  $ cp -b /etc/resolv.conf etc here/
  我们要注意的是针对我们arm64的qemu-user-static安装的文件是qemu-aarch64-static。
  3.mount proc, sys, dev, dev /pts到新的文件系统
  利用一个简单的ch-mount.sh脚本来完成这个动作。
  它可以我们mount及unmount。
  #!/bin/bash
  #
  #sudo chgrp -R root ubuntu-rootfs/
  #sudo chown -R root ubuntu-rootfs/
  function mnt() {
  echo “MOUNTING”
  sudo mount -t proc /proc ${2}proc
  sudo mount -t sysfs /sys ${2}sys
  sudo mount -o bind /dev ${2 }开发
  sudo mount -o bind /dev/pts ${2}dev/pts
  sudo chroot ${2}
  }
  function umnt() {
  echo “UNMOUNTING”
  sudo umount ${2}proc
  sudo umount ${2}sys
  sudo umount ${ 2}dev/pts
  sudo umount ${2}dev
  }
  if [ “$1” == “-m” ] && [ -n “$2” ] ;
  然后
  mnt $1 $2
  elif [ “$1” == “-u” ] && [ -n “$2” ];
  然后
  umnt $1 $2
  else
  echo “”
  echo “缺少第一个、第二个或两个参数”
  echo “”
  echo “第一个参数可以是以下参数之一:-m(mount) 或 -u(umount) ”
  echo “”
  echo “例如:ch-mount -m /mediasdcard/”
  echo “”
  echo 第一个参数:${1}
  echo 第二个参数:${2}
  fi
  把下载好的脚本喷涂/ubuntu-rootf目录的上一级目录,并注意修改权限:
  user@user:~$ chmod a+x ch-mount.shmount
  动作,退出后一定要执行重新执行unmount,否则你的本机ubuntu系统会出问题,需要重启
  user@user:~$ sudo bash ch-mount.sh -m ubuntu-rootfs/ [
  sudo] user 的密码:
  MOUNTING
  root@user:/#这样就可以
  进入chroot的环境中了。
  更新系统并安装所需要的包
  使用如下命令来更新系统,并且安装所需要的包。网络环境,安装的时间可能会有差异。
  root@user:/# apt-get update
  root@user:/# apt-get install language-pack-en-base sudo ssh net-tools ethtool wireless-tools lxde xfce4-power-manager xinit xorg network-manager iputils-ping rsyslog lightdm-gtk-greeter alsa-utils gnome -mplayer bash-completion lxtask htop python-gobject-2 python-gtk2 synaptic --no-install-recommends
  apt install bash-completion
  apt install vim
  如不能安装更新一下源
  apt update安装
  dhcp server
  apt install isc-dhcp-server
  gcc make g++
  apt install build-essential
  4.系统基础配置
  在chroot环境中配置
  root@user:/# useradd -s ‘/bin/bash’ -m -G adm,sudo vampire
  root@user:/# passwd vampire
  root @user:/# passwd root设置主机
  名
  root@user:/# echo ‘ubuntu.vampire’ 》 /etc/hostname
  自动设置更新DNS
  root@user:/# apt-get install resolvconf
  root@user:/# dpkg-reconfigure resolvconf
  添加主机入口到/etc/hosts:
  root@user:/#echo “127.0.0.1 localhost” 》 /etc /hosts
  root@user:/#echo “127.0.0.1 ubuntu.vampire” 》 /etc/hosts
  root@user:/#echo “127.0.1.1 vampire” 》 /etc/hosts
  设置时区
  root@user:/# apt- get install tzdata
  root@user:/# dpkg-reconfigure tzdata
  在lib目录下创建目录并进入我们自己硬件相关的模块文件
  可以从主机中进入我们想要的arm64的模块系统中,比如我们想要的arm64的模块系统中:
  root@user:/# cp -r /opt/out/modules/3.4.5 ~/ubuntu-rootfs/lib/modules
  在这里,我们把我们想要的定制包 ~ 到lib下面的modules中。
  退出并制作可烧录的此处开机@user
  :/#退出
  后一定要注意,退出umount出来,直接掉会执行一次本机系统挂载
  退出
  user@user**:〜$密码
  /home/user/user@user:~$./ch-mount.sh -u ubuntu-rootfs /
  proc target is busy
  如果umount失败,需要重启,然后直接下一步即可使用
  5.制作打包ubuntu文件系统启动
  dd指令空的容器
  $ dd if=/dev/zero of=ubuntu-rootfs.img bs1M count=4096
  bs以count是容器的大小,这个具体来的图像有多大看,编译规则后内容有镜像6g,所以这里可以把count=8192自适应。
  $ sudo mkfs.ext4 ubuntu-rootfs.img
  将arm64文件系统制作到ubuntu-rootfs.img
  $ mkdir ubuntu-mount
  $ sudo mount ubuntu-rootfs.img ubuntu-mount/
  $ sudo cp -rfp ubuntu-rootfs/* ubuntu-mount/
  $ sudo umount ubuntu-mount/
  $ e2fsck -p -f ubuntu-rootfs.img
  $ resize2fs -M ubuntu-rootfs.img
  最终,我们生成我们需要的ubuntu-rootfs.img文件:
  user@user:~$ ls ubuntu-rootfs.img -hal
  -rw-rw-r-- 1 个用户用户 2.0G 10 月 31 日 16:23 ubuntu-rootfs.img
  user@user:~$ 文件 ubuntu-rootfs.img
  ubuntu-rootfs.img: Linux rev 1.0 ext4 文件系统数据,UUID =9ed38b-e81a-4ec9-a8e0-bd185f223936 (需要日志恢复) (extents) (large files) (huge files)
  6.下载到板子中引导
  使用rk自带工具
  。/upgrade_tool di -rootfs ubuntu-
  rootfs.img上电,帮助
举报

更多回帖

发帖
×
20
完善资料,
赚取积分