您的位置:首页 > 科技 > 能源 > 中华室内设计网公众号下载_一个人可以看片_搜索引擎营销包括_百度推广落地页

中华室内设计网公众号下载_一个人可以看片_搜索引擎营销包括_百度推广落地页

2025/2/22 12:53:32 来源:https://blog.csdn.net/Liuqz2009/article/details/145648641  浏览:    关键词:中华室内设计网公众号下载_一个人可以看片_搜索引擎营销包括_百度推广落地页
中华室内设计网公众号下载_一个人可以看片_搜索引擎营销包括_百度推广落地页

在这里插入图片描述

系列文章目录


Linux内核学习
Linux 知识(1)
Linux 知识(2)
WSL Ubuntu
QEMU 虚拟机
Linux 调试视频
PCIe 与 USB 的补充知识
vscode 使用说明
树莓派 4B 指南
设备驱动畅想
Linux内核子系统
Linux 文件系统挂载
QEMU 通过网络实现共享文件
OrangePi 学习摘录 —— 制作桌面版镜像
Radxa 学习摘录
Rockchip RK3399 - 引导流程和准备工作
制作Ubuntu根文件
制作RK3568 ubuntu20.04桌面版镜像
Rockchip RK3399 - 移植ubuntu 20.04.4根文件系统


文章目录

  • 系列文章目录
  • 1. 安装开发环境和工具
  • 2. 下载UBUNTU基础镜像包
  • 3. 修改镜像包
    • 3.1 解压基础包, 需注意解压的参数中 p 参数保留权限:
    • 3.2 修改网络配置和 qemu-aarch64-static 【PC版无需】
    • 3.3 替换软件源
    • 3.4 进入根文件系统进行操作,开始修改
      • 1. 更改根目录
      • 2. 更新
      • 3. 问题
    • 3.5 包介绍
      • net-tools
      • iproute2
      • ethtool
      • ifupdown
      • iputils-ping
      • sudo
      • psmisc
      • nfs-common
      • htop
      • rsyslog
      • language-pack-en-base
      • systemd
      • network-manager
      • openssh-sftp-server
    • 3.6. 桌面系统
  • 4. 打包镜像
  • 5. 启动
    • 基本流程
      • 1. 准备内核和根文件系统镜像:
      • 2. 启动 QEMU 命令:
  • 参考


1. 安装开发环境和工具

qemu-user-static 是一个用于在 x86 主机上运行 ARM 或其他非 x86 操作系统的工具。它是一个静态版本的 QEMU,因此它可以直接从磁盘运行,而无需安装 QEMU 或任何其他软件.

安装它用于在PC主机上运行下载下来的UBUNTU镜像, 方便修改镜像的内容

# PC
sudo apt-get install qemu-user-static

2. 下载UBUNTU基础镜像包

Index of /ubuntu-base/releases

ubuntu-base-22.04.3-base-amd64.tar.gz

3. 修改镜像包

3.1 解压基础包, 需注意解压的参数中 p 参数保留权限:

# PC
sudo tar -xvpf ubuntu-base-22.04.3-base-amd64.tar.gz -C ubuntu-rootfs/

3.2 修改网络配置和 qemu-aarch64-static 【PC版无需】

# PC
#为了可以联网更新软件,拷贝本机的dns配置文件到根文件系统
sudo cp -b /etc/resolv.conf ubuntu-rootfs/etc/
#下载的ubuntu-base是aarch64架构的,因此需要拷贝qemu-aarch64-static到ubuntu/usr/bin/
sudo cp /usr/bin/qemu-aarch64-static ubuntu-rootfs/usr/bin/

3.3 替换软件源

No system certificates available. Try installing ca-certificates

apt update
apt -y install ca-certificates

Ubuntu 软件仓库

传统格式(/etc/apt/sources.list
DEB822 格式(/etc/apt/sources.list.d/ubuntu.sources

3.4 进入根文件系统进行操作,开始修改

1. 更改根目录

#PC
sudo chroot ubuntu-rootfs

或使用脚本

#!/bin/bash
mnt() {echo "MOUNTING"sudo mount -t proc /proc ${2}procsudo mount -t sysfs /sys ${2}syssudo mount -o bind /dev ${2}devsudo mount -o bind /dev/pts ${2}dev/ptssudo chroot ${2}
}
umnt() {echo "UNMOUNTING"sudo umount ${2}procsudo umount ${2}syssudo umount ${2}dev/ptssudo umount ${2}dev
}if [ "$1" == "-m" ] && [ -n "$2" ] ;
thenmnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
thenumnt $1 $2
elseecho ""echo "Either 1'st, 2'nd or both parameters were missing"echo ""echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"echo ""echo "For example: ch-mount -m /media/sdcard/"echo ""echo 1st parameter : ${1}echo 2nd parameter : ${2}
fi

执行如下命令将会挂载 ubuntu-base 文件系统;

./mnt_ubuntu.sh -m rootfs/

执行如下命令卸载文件系统:

./mnt_ubuntu.sh -u rootfs/

2. 更新

# QEMU
# 更新
apt update
apt upgrade# 安装常用工具包
# apt install net-tools iproute2 ifupdown iputils-ping vim sudo
apt install net-tools iproute2 iputils-ping vim sudo psmisc# apt install nfs-common htop rsyslog language-pack-en-base 
apt install rsyslog language-pack-en-base apt install network-manager systemd openssh-server
# apt install network-manager systemd openssh-sftp-server kmod wireless-tools# 安装桌面
apt install xubuntu-desktop# 修改ROOT 密码
passwd root# 创建 rk3568 账户
useradd -s '/bin/bash' -m -G adm,sudo rk3568
passwd rk3568# 修改主机名
echo "rk3568" > /etc/hostnameexit# 查询系统中属于nano的文件:
$ dpkg-query -L vim

3. 问题

/usr/bin/apt-key: 95: cannot create /dev/null: Permission denied

sudo cp -af /dev/null dev/

3.5 包介绍

net-tools

net-tools 是一个在 Ubuntu 系统中用于网络管理和诊断的工具包,它包含了多个常用的网络命令和工具。net-tools 提供了如 ifconfigroute 等命令,用于配置和管理网络接口及路由信息。

iproute2

iproute2 是一个用于配置和管理 Linux 网络的工具集,它提供了丰富的命令行工具,用于控制和监控 Linux 内核中的网络行为。使用 ip addr 命令来添加或删除网络接口的 IP 地址。

# 查看网络接口信息:
ip link show# 启用网络接口:
ip link set eth0 up
ip link set enp0s3 up# 配置IP地址:
ip addr add 10.0.2.15/24 dev eth0
ip addr add 10.0.2.15/24 dev enp0s3# 添加路由:
ip route add 10.0.2.0/24 via 10.0.2.0 dev eth0
ip route add default via 10.0.2.2 dev eth0
ip route add default via 10.0.2.2 dev enp0s3
route add default gw 10.0.2.2
# 检查默认路由
ip route show
# 删除默认路由
ip route del default via 10.0.2.2 dev eth0
ip route del default via 10.0.2.2 dev enp0s3# 指定发送的 ICMP 请求次数
ping -c 5 <目标IP地址或域名>
ping -W 2 <目标IP地址或域名>
# 这将设置超时时间为 2 秒,如果在指定时间内未收到响应,ping 命令会停止

ethtool

ethtool 是一个用于查询和设置 Linux 系统中网络接口(网卡)参数的命令行工具。

  • 查看网卡信息:
    • 查看网卡的基本硬件属性,如速度、双工模式、MAC 地址、驱动程序信息等。
    • 查看网卡支持的各种高级功能,例如是否支持 TCP 分段卸载(TSO)、通用接收卸载(GRO)等网络功能。
  • 配置网卡参数:
    • 调整网卡的工作参数,如双工模式、传输速率等。
    • 设置网卡的高级功能,如流控制、接收和发送队列数量、电源管理等。
  • 查看统计信息:
    • 查询设备的统计信息,如包计数、错误计数等。
# 查看网卡基本信息:
ethtool eth0# 查看网卡驱动信息:
ethtool -i eth0# 设置网卡双工模式:
ethtool -s eth0 duplex full# 设置网卡速度:
ethtool -s eth0 speed 100

ifupdown

ifupdown 是一个用于管理网络接口的工具,广泛应用于 Ubuntu 和其他基于 Debian 的发行版中。主要功能如下:

  • 管理网络接口:允许用户通过命令行启动、停止和重新配置网络接口。
  • 配置文件管理:使用 /etc/network/interfaces 文件来定义网络接口的配置,包括 IP 地址、子网掩码、网关等。
  • 动态和静态配置:支持动态(DHCP)和静态 IP 配置。
  • 网络服务管理:可以用于管理网络服务的启动和停止。
# 启动接口:
sudo ifup eth0# 停止接口:
sudo ifdown eth0# 重启接口:
sudo ifreload eth0# 查看接口状态:
sudo ifstatus eth0

iputils-ping

iputils-ping 是一个包含网络诊断工具的 Ubuntu 软件包,主要用于发送 ICMP 回显请求(即 “ping”)来测试网络连通性。主要功能:

  • ping 命令:用于向目标主机发送 ICMP 回显请求,以测试目标主机是否可达以及网络延迟。
ping 8.8.8.8

sudo

sudo(superuser do)是 Ubuntu 系统中用于以超级用户权限执行命令的工具。以下是关于 sudo 安装包的详细介绍:

  • 权限提升:允许普通用户以超级用户(root)权限执行命令。
  • 用户管理:可以将用户添加到 sudoers 文件中,使其具有 sudo 权限。
  • 日志记录:记录 sudo 命令的使用情况,便于审计和安全监控。
  • 灵活性:支持多种选项和配置,如指定用户、设置密码策略等。
# 执行命令:
# sudo [command]
sudo apt install package_name
#   这将以超级用户权限安装指定的软件包。# 切换用户:
# sudo -u [username] [command]
sudo -u john ls /home/john
#   这将以用户 john 的身份执行 ls 命令。# 查看权限:
sudo -l
#   这将列出当前用户可以执行的 sudo 命令。

psmisc

psmisc 是一个用于处理与进程相关的操作的工具包,它包含了一些常用的命令,如 ps、killall、fuser 等。主要功能:

  • 进程信息显示:ps 命令用于显示当前系统上运行的进程信息,包括进程的 PID(进程标识符)、运行状态、CPU 使用率等。
ps aux
  • 杀死指定名称的进程:killall 命令可以根据进程的名称找到并终止该进程,方便地杀死一组相同名称的进程。
killall firefox
  • 查找和终止使用文件或目录的进程:fuser 命令用于查找和终止正在使用某个文件或目录的进程,解决文件被占用无法删除或移动的问题。
fuser -k /path/to/file

nfs-common

nfs-common 是一个用于支持 Network File System (NFS) 功能的 Ubuntu 软件包,它包含了客户端和服务端通用的工具和库。以下是关于 nfs-common 安装包的简单介绍:

  • 提供NFS客户端工具:允许用户在Linux系统上挂载和访问NFS共享目录。
  • 支持NFS服务端功能:与 nfs-kernel-server 配合使用,可以配置和管理NFS服务端。
  • 包含通用工具:如 mount.nfs、showmount 等命令,用于操作和查看NFS共享。
# 挂载NFS共享目录:
sudo mount -t nfs server_ip:/shared/directory /mnt/nfs

其中 server_ip 是NFS服务器的IP地址,/shared/directory 是服务器上共享的目录,/mnt/nfs 是本地的挂载点 。

htop

htop 是一个开源的、交互式的进程查看器,它提供了实时的系统资源和进程监视功能。以下是关于 htop 安装包的详细介绍:

  • 实时系统资源监视:显示系统负载、内存使用、CPU 使用情况等关键资源指标。
  • 交互式进程管理:允许用户通过按键直接操作和修改正在运行的进程,如结束进程、改变进程优先级等。
  • 直观的用户界面:提供比传统 top 命令更直观的彩色图形界面,包括进程树形结构、命令过滤等功能。
  • 自定义视图:用户可以自定义显示的信息字段,如进程的内存占用、运行时间等。
  • 可扩展性:支持插件和扩展,可以通过脚本或其他工具进一步增强其功能。

rsyslog

rsyslog 是一个功能强大的日志守护进程,用于在 Linux 系统中收集、处理和转发日志消息。以下是关于 rsyslog 安装包的详细介绍:

  • 日志收集:从本地系统和远程系统收集日志消息。
  • 日志处理:根据配置规则对日志消息进行过滤、转换和处理。
  • 日志转发:将日志消息转发到远程日志服务器或存储系统。
  • 灵活的配置:支持多种输入、输出模块和模板,满足不同的日志管理需求。
  • 高可扩展性:通过插件和自定义脚本扩展功能,支持复杂的日志处理逻辑。
# 启动和启用服务:
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
  • 配置文件位置:

    • 主配置文件:/etc/rsyslog.conf。
    • 额外的配置文件:/etc/rsyslog.d/ 目录下的文件。
  • 基本配置示例:

module(load="imuxsock") # 本地 Unix socket 输入
module(load="imklog")   # 内核日志输入
template(name="TraditionalFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%\n")
authpriv.*               /var/log/secure
mail.*                   -/var/log/mail
cron.*                   /var/log/cron
*.info;mail.none;authpriv.none;cron.none  /var/log/messages
*.emerg                  :omusrmsg:*
*.* @192.168.1.100:514
  • 查看日志文件:
sudo tail -f /var/log/syslog
  • 重启服务:
sudo systemctl restart rsyslog

language-pack-en-base

language-pack-en-base 是一个用于提供英文语言支持的 Ubuntu 软件包。以下是关于 language-pack-en-base 安装包的详细介绍:

  • 提供英文翻译:包含所有受支持软件包的英文翻译数据。
  • 支持多种桌面环境:适用于多种桌面环境,如 GNOME、KDE、Xfce 等。
  • 基础语言包:作为英文语言支持的基础包,提供基本的翻译和语言环境配置。
# 安装完成后,可以通过以下命令设置系统的默认语言为英文:
sudo update-locale LANG=en_US.UTF-8# 然后重启系统以使设置生效:
sudo reboot
#   重启后,系统的语言就会变成英文。

systemd

systemd 是一个用于 Linux 系统的系统和服务管理器,它是现代 Linux 系统的核心组件之一。以下是关于 systemd 安装包的详细介绍:

  • 系统初始化:systemd 在系统启动时作为第一个进程运行,负责初始化系统组件和服务。
  • 服务管理:管理系统服务的启动、停止和重启,支持按需启动服务,提高系统效率。
  • 进程管理:管理进程的生命周期,包括创建、监控和终止进程。
  • 资源管理:管理系统资源,如 CPU、内存和文件系统,确保系统稳定运行。
  • 依赖关系管理:自动处理服务之间的依赖关系,确保服务按正确的顺序启动和停止。
  • 日志管理:通过 journalctl 命令提供日志管理功能,记录系统和服务的运行日志。
# 启动服务
sudo systemctl start [service_name]
sudo systemctl start apache2# 停止服务:
sudo systemctl stop [service_name]# 重启服务:
sudo systemctl restart [service_name]# 查看服务状态:
sudo systemctl status [service_name]# 启用服务开机自启:
sudo systemctl enable [service_name]# 禁用服务开机自启:
sudo systemctl disable [service_name]# 查看系统日志:
journalctl -b

network-manager

network-manager 是 Ubuntu 系统中用于管理网络连接的守护进程和服务,以下是关于 network-manager 安装包的详细介绍:

  • 自动连接管理:NetworkManager 能够自动检测并管理可用的网络连接。当用户设备进入某个网络范围时,它可以自动连接到用户之前配置过的网络,无需手动操作。
  • 网络配置简化:提供了图形化界面(如 nm-connection-editor)和命令行工具(如 nmcli),使用户能够轻松地配置和管理网络连接。支持配置多种网络类型,如以太网、Wi-Fi、VPN 等,用户可以设置各种网络参数,如 IP 地址、子网掩码、DNS 服务器等。
  • 网络状态监控:NetworkManager 实时监控网络连接的状态,包括连接是否建立、信号强度、网络速度等。当网络状态发生变化时,它会及时通知用户,并可以根据用户的配置执行相应的操作,如重新连接网络或切换到其他网络。
  • 网络问题诊断与修复:NetworkManager 能够收集和分析网络状态信息,帮助用户快速定位和解决网络问题。它提供了网络诊断工具,如 ping、traceroute 等,用户可以使用这些工具来检测网络连通性和延迟等问题。
  • 网络安全性:NetworkManager 支持最新的网络安全标准,如 WPA2、WPA3 等,确保无线网络连接的安全性。同时,它还提供了 VPN 连接功能,允许用户通过加密隧道安全地访问远程网络资源。
# 启动和启用服务:
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager

配置网络连接:

  • 图形界面配置:

    • 打开 “系统设置” 。
    • 点击 “网络” 。
    • 在 “网络连接” 界面,可以添加新的连接、编辑现有连接或删除连接。
  • 命令行工具配置:

    • 查看所有网络连接:nmcli con
    • 添加新的网络连接:nmcli con add type ethernet ifname eth0 ip4 192.168.1.100/24
    • 编辑现有网络连接:nmcli con mod eth0 ipv4.addresses 192.168.1.101/24
    • 删除网络连接:nmcli con del eth0

openssh-sftp-server

openssh-sftp-server 是一个用于提供 SFTP(Secure File Transfer Protocol)服务的 Ubuntu 软件包,以下是关于 openssh-sftp-server 安装包的详细介绍:

  • 安全文件传输:openssh-sftp-server 提供了一个安全的文件传输协议,允许用户通过 SSH 协议在客户端和服务器之间安全地传输文件。
  • 集成 SSH 服务:作为 OpenSSH 服务器的一部分,它与 SSH 服务集成,确保文件传输的安全性和效率。
  • 支持多种身份验证方式:支持基于密码和密钥的身份验证,增强了安全性。

openssh-sftp-server 依赖于 openssh-server ,因为 SFTP 服务需要通过 SSH 协议来提供安全的文件传输。

3.6. 桌面系统

  • 关于 xubuntu-desktop
    • 大小在3.5G左右, 安装需要很长时间
    • 安装过程需要配置键盘之类的,需要手动选择输入
    • 显示管理选择 LightDM, 选 GDM 没有图像画面.

PS: LightDM 和 GDM 都是 Linux 系统的显示管理器,负责显示登录界面,并允许用户登录系统。

特性LightDMGDM
大小小巧较大
速度较快较慢
功能简单丰富
可定制一般较好

4. 打包镜像

#PC
# 查看文件大小
# du -h rs/
# 创建空白的镜像文件
dd if=/dev/zero of=root.img bs=1M count=6000
mkfs.ext4 root.img# 挂在镜像文件, 以便写入数据
mkdir rimage
sudo mount root.img rimage/
# 注意 p 参数
sudo cp -rfp ubuntu-rootfs/*  rimage/
sudo umount rimage/# 检查和修复 rootfs.img 文件系统
e2fsck -p -f root.img#resize2fs 命令是调整 ext2、ext3 和 ext4 文件系统大小的有效工具
# *如果碰到启动不进桌面, 可以尝试不要resize2fs*
resize2fs -M root.img

最终生成的镜像文件: root.img

5. 启动

要使用 QEMU 启动一个基于 Ubuntu 的 x64 Linux 系统,你需要确保以下几个关键组件准备就绪:编译好的内核、根文件系统镜像(你的 ext4 镜像),以及一个适当配置的 QEMU 启动命令。

基本流程

1. 准备内核和根文件系统镜像:

  • 确保你的内核(如 vmlinuz 或类似的 ELF 文件)和根文件系统(如 rootfs.img,ext4 格式)已经准备好。
  • 镜像文件应该是一个可以直接被 QEMU 加载的块设备镜像(比如使用 dd 创建的 .img 文件)。

2. 启动 QEMU 命令:

使用以下命令启动系统:

run2:qemu-system-x86_64 \-enable-kvm \-kernel ${bzImagePath}/bzImage \-m 1G -nographic \-device qemu-xhci \-virtfs local,path=/mnt/shared,mount_tag=host_share,security_model=none \-net user,id=net0,ipv6=off,hostfwd=tcp::8022-:22 \-net nic,model=virtio \-drive file=root.img,format=raw \-append "earlyprintk=serial,ttyS0 console=ttyS0 nokaslr root=/dev/sda rw"debug2:qemu-system-x86_64 \-kernel ${bzImagePath}/bzImage \-m 1G -nographic \-device qemu-xhci \-virtfs local,path=/mnt/shared,mount_tag=host_share,security_model=none \-net user,id=net0,ipv6=off,hostfwd=tcp::8022-:22 \-net nic,model=virtio \-drive file=root.img,format=raw \-S -s \-append "earlyprintk=serial,ttyS0 console=ttyS0 nokaslr root=/dev/sda rw"

命令说明

  • qemu-system-x86_64: 指定模拟 x86_64 架构。
  • -enable-kvm: 启用硬件虚拟化加速(KVM),可以显著提升性能。
  • -m 1024: 为虚拟机分配 1GB 内存。
  • -kernel: 指定内核镜像路径。
  • -append: 传递内核命令行参数:
    • root=/dev/sda1: 指定根文件系统挂载点(假设根文件系统在第一个磁盘的第一个分区)。
    • rw: 以读写模式启动。
    • console=ttyS0: 将内核输出重定向到第一个串口(方便在终端查看输出)。
  • -drive: 指定根文件系统镜像:
    • file=rootfs.img: 镜像文件路径。
    • format=raw: 指定镜像格式为 raw(dd 创建的通常是 raw 格式)。
  • -net user: 使用用户模式网络,支持基本的网络功能。
  • hostfwd=tcp::2222-:22: 将宿主机的 2222 端口转发到虚拟机的 22 端口(用于 SSH 访问)。
  • -nographic: 不启动图形界面,直接输出到终端。

其他注意事项

  • KVM 的启用:
    • 确保你的宿主机支持 KVM(Intel VT-x 或 AMD-V)。可以通过以下命令检查:
grep -E 'vmx|svm' /proc/cpuinfo
    • 如果没有输出,可能需要在 BIOS 中启用硬件虚拟化。
    • 如果无法启用 KVM,可以去掉 -enable-kvm 选项,但性能会下降。
  • 文件系统镜像路径:

    • 确保 rootfs.img 文件和启动命令在同一目录下,或者指定绝对路径。
  • 内核和文件系统的兼容性:

    • 确保内核版本和根文件系统是兼容的。如果系统无法启动,可能需要检查内核配置或文件系统是否完整。

参考

Linux RK3399 基于 Firefly RK3399 Board 制作 Ubuntu Desktop 版本
Rockchip RK3399 - 移植ubuntu 20.04.4根文件系统
Create Ubuntu root file system
制作RK3568 ubuntu20.04桌面版镜像

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com