DietPi

From FriendlyELEC WiKi
Revision as of 02:47, 6 July 2018 by Yftan (Talk | contribs)

Jump to: navigation, search

查看中文

1 Introduction to DietPi

DietPi is a highly customized light-weighted Debian OS. It is developed and maintained by a third party. DietPi is a good choice for experienced developers and Linux fans. For those that are not familiar with it we suggest you use a ROM released at its official site. If you have any issues or questions you can go to DietPi's forum or its github site for help.
DietPi has the following features:
1. Light-weighted. ROM size is less than 500M
2. Highly optimized. CPU and RAM usage is small
3. Contains various utilities and provides user-friendly services
4. DietPi-Software: a good tool for installing packages
5. DietPi-Config: a good tool for system configuration
6. DietPi-Backup: a good tool for system backup and restoration
For more details you can refer to DietPi's official site
dietpi-features

2 Install DietPi

2.1 Download Image Files

DietPi image files are developed and maintained by the DietPi team. Its official site is DietPi download link,DietPi is being ported to more FriendlyElec's boards. So far the following boards already work with DietPi:
dietpi-friendlyelec-board
如果您喜欢 DietPi 这种轻量化的小型 OS,并且想要参与到 DietPi 的开发和维护中,可以关注 DietPi 的 github 项目DietPi Github和论坛DietPi forum,协助 DietPi 支持更多 FriendlyElec 的开发板。

另外,您也可以选择从 FriendlyElec 光盘里下载 DietPi 系统固件,位于DVD/unoffcial-ROMs目录下,官方光盘里的固件也是从 DietPi 网站上下载而来,并且只进行了简单的修改和验证,修改的主要目的是为了保持 DietPi 系统固件里使用了 FrielyElec 维护的最新的 Bootloader/Kernel/DTB/Modules 等系统文件。如果您在 FriendlyElec 发布的 DVD 里没有找到 DietPi 的系统固件,则说明官方没有在该板子上验证过 DietPi。如果您是从DietPi的官网上下载的系统固件,请注意检查固件里的 Bootloader/Kernel/DTB/Modules 等系统文件是否为 FriendlyElec 维护的最新版本,如果不是,需要您自行参考开发板对应的维基,手动将这些系统文件更新为最新版本。

2.2 烧写DietPi

烧写 DietPi 系统固件的方法和烧写 FriendlyElec 提供的各种SD卡Linux发行版系统固件的方法是一样的:
将系统固件和烧写工具 win32diskimager.rar 分别解压,在 Windows 下插入TF卡(限4G及以上的卡),以管理员身份运行 win32diskimager 工具,在 win32diskimager 工具的界面上,选择你的TF卡盘符,选择系统固件,点击 Write 按钮烧写即可。

2.3 配置文件dietpi.txt

将 DietPi 系统固件烧写到 SD 卡后,SD 卡会被划分为2个分区: boot 分区和 rootfs 分区。其中 boot 分区中与 DietPi 相关的核心文件为 dietpi 目录和系统配置文件 dietpi.txt。dietpi 目录中包含了所有Dietpi系统的定制脚本,该目录在第一次运行 DietPi 时会被拷贝到 rootfs 分区并用于一系列的初始化操作,控制初始化操作的配置文件正是 dietpi.txt,建议仔细阅读 dietpi.txt 以了解 DietPi 系统提供了哪些可配置的功能,下面会描述部分比较重要的配置项,里面所有的配置项都需要用户自行去测试是否正常工作。

2.3.1 网络选项Networking Options

# 是否使能以太网和WiFi,当2者同时被使能时,会优先使用WiFi。
AUTO_SETUP_NET_ETHERNET_ENABLED=1
AUTO_SETUP_NET_WIFI_ENABLED=0
 
# 设置WiFi连接的热点名称和密码
AUTO_SETUP_NET_WIFI_SSID=MySuperDooperWiFi
AUTO_SETUP_NET_WIFI_KEY=0123456789
# available | WPA-PSK / WPA-EAP / NONE | WEP=No longer supported
AUTO_SETUP_NET_WIFI_KEYMGR=WPA-PSK
 
# 设置hostname
AUTO_SETUP_NET_HOSTNAME=DietPi
 
# 设置以太网的速率
# 0=automatic speed | 10 = 10mbit, 100 = 100mbit etc
AUTO_SETUP_NET_ETH_FORCE_SPEED=0

2.3.2 混杂选项Misc Options

# swap文件的大小
# 0=Disabled | 1=auto (2GB-RAM = size) | 2+=manual
AUTO_SETUP_SWAPFILE_SIZE=1
# swap文件的生成目录
AUTO_SETUP_SWAPFILE_LOCATION=/var/swap

2.3.3 软件预安装选项Software Automation Options

# 是否自动安装软件
AUTO_SETUP_AUTOMATED=0
 
# 全局密码,包括root和dietpi用户的密码,以及后续如果安装MySQL, Transmission等软件时的的密码
AUTO_SETUP_GLOBAL_PASSWORD=dietpi
 
# 选择使用哪种SSH server
#		0=none
#		-1=dropbear
#		-2=opensshserver
AUTO_SETUP_SSH_SERVER_INDEX=-1
 
# 选择使用哪种日志服务
#		0=none/manual
#		-1=ramlog 1h clear
#		-2=ramlog 1h save clear
#		-3=logrotate + rsyslog
AUTO_SETUP_LOGGING_INDEX=-1
 
# 选择使用哪种webserver
#	NB: This will get ignored, if you have manually selected any WEBSERVER_Stack.
#		0=Apache2
#		-1=Nginx
#		-2=Lighttpd
AUTO_SETUP_WEB_SERVER_INDEX=-2

2.3.4 DietPi-Config settings

# CPU策略 | ondemand | powersave | performance | conservative
CONFIG_CPU_GOVERNOR=ondemand
CONFIG_CPU_USAGE_THROTTLE_UP=50
 
# 设置CPU最小频率和最大频率
CONFIG_CPU_MAX_FREQ=Disabled
CONFIG_CPU_MIN_FREQ=Disabled
 
# 启动系统时是否等待网络
CONFIG_BOOT_WAIT_FOR_NETWORK=1
 
# 是否使能调试串口登录,第一次启动系统必须完成初始化操作才能使用调试串口进行登录。
CONFIG_SERIAL_CONSOLE_ENABLE=1
 
# 软件源,该选项比较重要,请务必选择一个您所在地区可以访问的软件源链接,否则DietPi将无法完成初始化操作
CONFIG_APT_DEBIAN_MIRROR=http://ftp.cn.debian.org/debian/

上述描述仅为部分DietPi提供的定制功能,更多的定制功能请自行阅读dietpi.txt和访问DietPi查询了解。

3 DietPi系统的使用

3.1 第一次启动DietPi

DietPi 的初始化配置比较繁琐,但只要完成一次这些初始化配置后,Dietpi 还是值得资深爱好者去使用的。
首先,必须连接好网线,DietPi 的初始化操作要求必须能连接上网络。
第一次运行 DietPi 系统时,DietPi 会扩展rootfs分区,扩展完成后会重启系统。重启系统后,会根据dietpi.txt里的配置进行进行一系列的初始化操作,如果在dietpi.txt里设置了CONFIG_SERIAL_CONSOLE_ENABLE=1,那么这一次启动系统会调用DietPi-Set_Hardware脚本使能serial-getty服务,但是要等待下一次启动系统才能使用调试串口登录。如果你不想再次重启系统,可以选择通过SSH或者在HDMI上进行登录,登录的账号和密码分别是root和dietpi。登录系统后会继续进行更多的初始化操作,我们根据提示一步步执行即可。以下截图是DietPi-V6.7在NanoPi-K1-Plus的实测初始化步骤, 不同板子不同版本的DietPi的初始化版本可能会有差异,用户只要安装具体的提示一步步进行操作即可:
运行DietPi-Software:
dietpi-Software

根据打印的log信息可以看出,其中有执行apt-get update,如果您使用的固件无法连接软件源,请自行修改dietpi.txt里的配置项CONFIG_APT_DEBIAN_MIRROR。
运行DietPi-Set_software, 设置全局密码:
dietpi-Set_software_gpd

运行DietPi-Set_software, 设置用户密码:
dietpi-Set_software_upd

提示用户可通过ip a命令查看IP地址:
DietPi-ip-a

是否允许DietPi收集并上传硬件信息:
DietPi-Survey

DietPi已经自动升级到最新版本:
dietpi-update-latest

由于DitePi系统自动了版本升级,所以又会再次重启系统,系统重启后同样会运行Dietpi-Software,并询问是否修改全局密码和用户密码后,由于DietPi的版本已经为最新版本,这时会直接进入DietPi-Software的核心界面,该界面允许用户选择自己想要安装的软件:
dietpi-software-install

我们使用默认设置,不再安装额外的软件,直接选择Install,并且选择OK,表示使用DietPi的纯净版最小系统:
dietpi-software-minimal

此时会再次重启系统,这次才真正地完成了DietPi的初始化设置。

3.2 DietPi实用脚本简介

Dietpi系统提供了大量的实用脚本,所有脚本的源码均位于/rootfs/Dietpi目录,这里选择一些核心的脚本进行功能性的描述,这些描述都是基于NanoPi-K1-Plus + DietPi-V6.10,具体的脚本里的各个功能并没有在其他平台上经过准确的测试和验证,用户需自行测试和使用,如果遇到了问题,请向DietPi的官方github和论坛进行意见反馈。

3.2.1 DietPi-Launcher

我们可以通过dietpi-launcher来统一地使用这些脚本工具,在命令行终端运行该工具:

$ dietpi-launcher

可以看到如下界面:
dietpit-launcher

同理,下列DietPi提供的下列脚本也可以在命令行终端单独运行:

dietpi-autostart      dietpi-cleaner        dietpi-drive_manager  dietpi-letsencrypt    dietpi-process_tool   dietpi-survey         
dietpi-backup         dietpi-config         dietpi-justboom       dietpi-logclear       dietpi-services       dietpi-sync           
dietpi-bugreport      dietpi-cron           dietpi-launcher       dietpi-morsecode      dietpi-software       dietpi-update

3.2.2 DietPi-Software

dietpi-software-install

在Software Optimized里有大量常见的软件,预先配置好、开箱即用。
dietpi-software-choice

选择您需要的软件,然后选择“Go >> Start installation for selected software”开始安装。

3.2.3 DietPi-Config

提供各种软硬件配置和功能:
dietpi-config

本维基编写时,部分开发板硬件相关的功能并没有实现好,但是仍然有许多通用的软件功能可以使用。

  • Display Options

外观显示相关的设置,例如分辨率,LED的设置。

  • Audio Options

选择系统默认使用的声卡设备。

  • Performance Options

设置CPU的性能,例如CPU的分配策略,最大最小频率。

  • Advanced Options

设置swap文件的大小,是否使能: 网络时间同步、蓝牙、调试串口。

  • Language/Regional Options

设置语言和时区。

  • Security Options

设置hostname和password。

  • Network Options: Adapters

设置有线和无线网络,是否使用代理。

  • Network Options: Misc

设置是否apt软件源、ntp软件源等。

  • AutoStart Options

设置开机登录或者运行指定软件,可单独运行DietPi-AutoStart来进入该界面。

  • Tools

测试系统性能和稳定性的工具, 调用Benchmarks和stress工具。

3.2.4 DietPi-Cron

dietpi-cron

将你想要定时运行的脚本放到/etc/cron.daily/目录下,然后通过该工具设置定时运行的时间。

3.2.5 DietPi-Drive_Manager

dietpi-drive-manager

管理各种存储器,例如SD卡,emmc,U盘。提供格式化设备、选择设备的挂载点、挂载网络设备等功能。

3.2.6 DietPi-Update

dietpi-update

一键升级DietPi的版本。

3.2.7 DietPi-Backup

dietpi-backup

支持备份和还原文件系统,默认生成的备份文件位于/mnt/dietpi-backup。

3.2.8 DietPi-Cleaner

dietpi-cleaner

清理文件系统,允许选择需要清理的组件(例如apt软件包,log文件等),运行模拟执行清理操作以防止误删除。

3.2.9 DietPi-CpuInfo

dietpi-cpuinfo

显示CPU的频率、温度等信息。

3.2.10 DietPi-BugReport

dietpi-bugreport

反馈Bug给DietPi的官方团队。