Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs

这篇具有很好参考价值的文章主要介绍了Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

  • Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明
  • Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改
  • Hi3798MV200 恩兔N2 NS-1 (三): 制作 Ubuntu rootfs
  • Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs

关于 Debian rootfs

Debian 没有像 Ubuntu 提供 Ubuntu-Base 那样提供打包好的 rootfs, 但是 Debian 提供了一个制作 rootfs 的工具 debootstrap. 以下介绍使用 debootstrap 制作 Debian rootfs 的过程.

debootstrap 初始化一阶段

安装 debootstrap

sudo apt install debootstrap

准备一个工作目录, 例如 workroot, 初始化. 注意一定要加 mirror, 否则会非常慢

sudo debootstrap --arch=arm64 --foreign buster workroot/ http://mirrors.ustc.edu.cn/debian/

复制 qemu-aarch64-static 到目标系统, 如果没有的话要先安装一下sudo apt install qemu-user-static

sudo cp /usr/bin/qemu-aarch64-static workroot/usr/bin/

检查一下是否能正常执行

sudo chroot workroot/ /usr/bin/qemu-aarch64-static /bin/ls

准备 resolv.conf

echo "nameserver 127.0.0.53" | sudo tee workroot/etc/resolv.conf

debootstrap 初始化二阶段

chroot 到目标系统下

sudo chroot workroot/

第二阶段的初始化

/debootstrap/debootstrap --second-stage http://mirrors.ustc.edu.cn/debian/ 

初始化成功的话, 能看到I: Base system installed successfully

安装设置

安装基础软件

添加 Debian apt source

cat <<EOT > /etc/apt/sources.list
# 依次输入以下内容
deb http://mirrors.ustc.edu.cn/debian buster main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian buster main contrib non-free
deb http://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free
deb http://mirrors.ustc.edu.cn/debian buster-updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian buster-updates main contrib non-free
EOT

检查是否正确

cat /etc/apt/sources.list

最后执行 apt update 更新, apt upgrade 升级

安装一些基础软件, 这一步之后系统大小为 434M

apt install locales dialog

配置 locales, 选择 en_US.UTF-8 UTF-8, en_US.UTF-8

dpkg-reconfigure locales

继续安装一些软件

apt install vim-tiny openssh-server sudo ifupdown net-tools udev iputils-ping sysstat smartmontools

添加驱动文件

仅使用kernel自带的驱动可以启动rootfs, 但是一些板载的外设, 例如SATA硬盘和USB, 会因为没有驱动而无法识别. 需要手动将这些驱动放到rootfs中.

通过uname -r可以看到目标系统的架构为4.4.35-hi3798mv2x, 由此可以确定驱动的路径为

/lib/modules/4.4.35-hi3798mv2x/

将系统中这部分文件提取后放到rootfs的对应目录下, 结构类似于

modules
└── 4.4.35-hi3798mv2x
    ├── kernel
    │   ├── crypto
    │   ├── drivers
    │   ├── fs
    │   ├── lib
    │   └── net
    ├── modules.alias
    ├── modules.alias.bin
    ├── modules.builtin
    ├── modules.builtin.alias.bin
    ├── modules.builtin.bin
    ├── modules.dep
    ├── modules.dep.bin
    ├── modules.devname
    ├── modules.order
    ├── modules.softdep
    ├── modules.symbols
    └── modules.symbols.bin

基础设置

设置主机名

echo n2ns1 > /etc/hostname

设置网络

cat << EOT > /etc/network/interfaces.d/10-eth0
# 依次输入
auto eth0
iface eth0 inet dhcp
EOT

设置 vim

nano /etc/vim/vimrc.tiny

# 修改compatible为nocompatible
set nocompatible
# 增加这行修复backspace键
set backspace=2

重要 给 root 用户设置密码, 否则刷完没法登录

passwd

开启 root 用户 ssh 访问, 编辑 /etc/ssh/sshd_config, 找到

#PermitRootLogin prohibit-password

替换为

PermitRootLogin yes

配置登录的串口, 修改文件 /etc/systemd/system/getty.target.wants/getty@tty1.service

vi /etc/systemd/system/getty.target.wants/getty\@tty1.service

ConditionPathExists=/dev/tty0

修改为实际的名称

ConditionPathExists=/dev/ttyAMA0

添加欢迎界面, 新建 /etc/update-motd.d/60-welcome, 内容如下, 属性设为可执行

#!/bin/sh
#
IP=$(ifconfig eth0 | grep '\<inet\>'| grep -v '127.0.0.1' | awk '{print $2}' | awk 'NR==1')
DEVICE=$(dmesg 2> /dev/null | grep "CPU: hi3798" | awk -F ':[ ]' '/CPU/{printf ($2)}')
[ ! "$DEVICE" ] && DEVICE=$(head -n 1 /etc/regname 2> /null)
echo "
   Board   : ${DEVICE}
   Module  : $(egrep -oa "hi3798.+reg" /dev/mmcblk0p1| cut -d '_' -f1 | sort | uniq | tr "\\n" ",")
   CPU     : $(cat -v /proc/device-tree/compatible |sed 's/\^@//g') @ $(cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l) cores
   Version : $(awk -F '[= "]' '/PRETTY_NAME/{print $3,$4,$5}' /etc/os-release) | $(uname -r)-$(getconf LONG_BIT)bit
   Storage : $(df -m / | grep -v File | awk '{a=$4*100.0/$2;b=$4;c=$2} {printf("%.1f%% free, %.1fMiB of %.1fMiB\n",a,b,c)}')
   Memory  : $(free -m | grep Mem | awk '{a=$7*100.0/$2;b=$2} {printf("%.1f%% free, %.1fMiB total\n",a,b)}') | Swap:$(free -m | grep Swap | awk '{a=$4*100/$2;b=$4} {printf("%.1f%% %.1fMiB\n",a,b)}')
   Up Time : $(awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60;d=($1%60)} {printf("%d days %02d:%02d:%02d\n",a,b,c,d)}' /proc/uptime)
   IP Addr : $IP
   Temp    : $(grep Tsensor /proc/msp/pm_cpu | awk '{print $4}')°C
   MAC     : $(ifconfig eth0 |grep "ether"| awk '{print $2}')
"

文件清理

安装完成后, 清理apt

apt autoremove
apt autoclean
apt clean

最后exit退出文章来源地址https://www.toymoban.com/news/detail-631200.html

制作 rootfs 镜像文件

# 生成一个适当大小的空镜像,这个大小参考du -h workroot/ -d1
dd if=/dev/zero of=rootfs.img bs=1M count=1024
# 格式化 
mkfs.ext4 rootfs.img
# or
mkfs -t ext4 rootfs.img
# 挂载空镜像
mkdir rootfs
sudo mount rootfs.img rootfs/
# 写入文件, 保留权限
sudo cp -rfp workroot/* rootfs/
# 取消挂载
sudo umount rootfs/
# 检查文件系统并自动修复
e2fsck -p -f rootfs.img
# 使镜像紧凑
resize2fs -M rootfs.img

参考

  • Detailed process https://akhileshmoghe.github.io/_post/linux/debian_minimal_rootfs

到了这里,关于Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EC6110-Hi3798MV310-当贝纯净桌面-卡刷强刷固件包

    EC6110-Hi3798MV310-当贝纯净桌面-卡刷强刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运行速度提升,多出大量的存储空间; 5、去除应用安装限制

    2024年02月03日
    浏览(41)
  • 华为盒子EC6110-M、EC6110-T(3798mv310芯片)强刷固件及教程

    固件特点: 1.采用官方系统核心以及官方内核; 2.全局精简,保留基本功能,速度更快,无广告,无推送; 3.微调运行机制,使系统更流畅; 4.默认开启硬件GPU加速; 5.固件默认开启ROOT。默认开启ADB; 6.添加精简版当贝桌面,桌面和软件可以自由选择卸载; 7.本固件刷机为三

    2024年02月11日
    浏览(45)
  • RISC-V Linux系统rootfs制作

    buildroot 是一个构建嵌入式Linux系统的框架。整个 buildroot 是由Makefile(*.mk) 脚本和 Kconfig(Config.in) 配置文件构成的,因此可以像配置 Linux 内核一样执行 make menuconfig 进行配置,编译出一个完整的、可以直接烧写到机器上运行的 Linux 系统文件(包含 bootloader、kernel、rootfs 以及 rootf

    2024年02月11日
    浏览(41)
  • 【TES714】JFM7K325T(复旦微FPGA)+HI3531DV200(华为海思)的综合视频处理平台设计原理图及调试经验

    板卡概述 TES714 是自主研制的一款 5路HD-SDI 视频采集图像处理平台,该平台采用上海复旦微的高性能Kintex系列FPGA加上华为海思的高性能视频处理器 HI3531DV200 来实现。 华为海思的HI3531DV200是一款集成了ARM A53四核处理器性能强大的神经网络引擎,支持多种智能算法应用,集成多

    2024年02月13日
    浏览(49)
  • SuperMap Hi-Fi 3D SDK for Unity制作游戏引擎材质

    kele     在交通,电力,规划等行业中,有的对象常常具有很强的质感,比如金属质感的 钢轨,电力塔;陶瓷材质的绝缘子;玻璃材质的建筑幕墙等,但常规方式的表现效果 往往差强人意。     游戏引擎(Unity3D)中已有丰富的材质资源库,比如玻璃,金属等材质,这

    2024年02月09日
    浏览(87)
  • 香橙派--关于jammy-xfce-arm64.f12a43b3e629442a073a7236bf9166ce.tar.lz4的rootfs定制与镜像制作

    Linux SDK,即 orangepi-build,支持在安装有 Ubuntu 22.04 的电脑上运行,所以下载 orangepi-build 前,请首先确保自己电脑已安装的 Ubuntu 版本是 Ubuntu22.04。查看电脑已安装的 Ubuntu 版本的命令如下所示,如果 Release 字段显示的不是 22.04,说明当前使用的 Ubuntu 版本不符合要求,请更换系

    2024年02月03日
    浏览(44)
  • 全志F1C200S嵌入式驱动开发(spi-nor image制作)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         一般soc系统里面添加spi-nor flash芯片,特别是对linux soc来说,都是把它当成文件系统来使用的。spi-nor flash和spi-nand flash相比,虽然空间小了点,但是胜在稳定,这是很多工业场景所必须

    2024年02月16日
    浏览(45)
  • 无/自监督去噪(1)——一个变迁:N2N→N2V→HQ-SSL

    知乎同名账号同步发表 1. 前沿 N2N,即 Noise2Noise: Learning Image Restoration without Clean Data ,2018 ICML的文章。 N2V,即 Noise2Void - Learning Denoising from Single Noisy Images ,2019 CVPR的文章。 这两个工作都是无监督去噪的重要开山之作,本文先对其进行简单总结,然后引出一个变体:HQ-SSL(2

    2024年01月20日
    浏览(38)
  • 无监督去噪的一个变迁(1)——N2N→N2V→HQ-SSL

    知乎同名账号同步发表 1. 前沿 N2N,即 Noise2Noise: Learning Image Restoration without Clean Data ,2018 ICML的文章。 N2V,即 Noise2Void - Learning Denoising from Single Noisy Images ,2019 CVPR的文章。 这两个工作都是无监督去噪的重要开山之作,本文先对其进行简单总结,然后引出一个变体:HQ-SSL(2

    2024年01月17日
    浏览(46)
  • 第N2周:中文文本分类-Pytorch实现

    🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍖 原作者:K同学啊|接辅导、项目定制 环境搭建 Python 3.8 pytorch == 1.8.1 torchtext == 0.9.1

    2024年02月01日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包