一、安装Ubuntu
1、下载镜像
Install Ubuntu on a Raspberry Pi | Ubuntu
2、解压镜像
(1)下载的镜像后缀是.xz,而烧录镜像需要.img格式。这里我们对下面文件执行解压操作:
(2)得到:ubuntu-20.04.3-preinstalled-server-arm64+raspi.img
3、烧录镜像到SD卡
(1)下载软件:balenaEtcher。balenaEtcher - Flash OS images to SD cards & USB drives
(2)安装balenaEtcher
(3)打开
a.选择镜像:点击select image,选择刚刚解压成功的.img文件
b.选择烧录目标:点击select target,这里我选择的是SD卡,图片就不放了。
c.最后开始烧录:点击flash! 稍等几分钟,完成后会有提示(主要不要点击“格式化SD”之类的选项,否则会将刚刚烧录的内容清除),然后关闭窗口。
4、接通树莓派电源(注意:如果Ubuntu系统启动成功的话,绿灯会先常亮,然后闪烁,最后熄灭),将树莓派4B通过有线或者无线接入网络。这里我采取的是有线接入的方式。然后通过路由器管理界面查询到机器所在的IP地址:192.168.X.X
5、通过SSH连接树莓派/通过显示器接入进行操作。我选择了前者。
a.下载远程ssh工具 putty。
b.输入刚刚查询到的IP地址,点击【open】。
c.进入命令行界面登录Ubuntu。【login as:】后面输入账号名,紧接着输入密码。这里我不熟悉机器踩了坑:一直用【树莓派默认系统】的登录账号和密码在尝试【Ubuntu】的登录账号密码,结果显然是不行的,会一直提示:access is denied。
安装Ubuntu的话输入的账号名和密码都是:ubuntu。下面是登录成功的界面,马上会提示密码已失效,需要修改。
二、设置SSD启动
前提:有外接SSD和硬盘盒,并将外接SSD与4B通过USB连接。
1、启动SD卡引导的树莓派系统。
2、在树莓派操作系统中打开终端,也可以通过SSH 从另一台计算机执行。
-------------------------------------------------------------------------------------------------------
1、获取root权限
sudo -i
2、运行以下命令,升级BootLoader
sudo apt update
sudo apt full-upgrade
3、检查 bootloader 的版本,在 20年5月以后就是已经支持 USB 启动的了。
sudo vcgencmd bootloader_version
机器上运行后提示没有vcgencmd命令。
-最后我输入:vcgencmd bootloader_version,还是提示未找到vcgencmd命令,然后根据提示:sudo apt install XX,然后再次执行,成功
三、测试树莓派SD读写性能
测试脚本
#!/bin/bash
# Raspberry Pi microSD card benchmark script.
#
# A script I use to automate the running and reporting of benchmarks I compile
# for: http://www.pidramble.com/wiki/benchmarks/microsd-cards
#
# Usage:
# # Run it locally.
# $ sudo ./microsd-benchmarks.sh
#
# # Run it straight from GitHub.
# $ curl https://raw.githubusercontent.com/geerlingguy/raspberry-pi-dramble/master/setup/benchmarks/microsd-benchmarks.sh | sudo bash
#
# Another good benchmark:
# $ curl http://www.nmacleod.com/public/sdbench.sh | sudo bash
#
# Author: Jeff Geerling, 2016
printf "\n"
printf "Raspberry Pi Dramble microSD benchmarks\n"
CLOCK="$(grep "actual clock" /sys/kernel/debug/mmc0/ios 2>/dev/null | awk '{printf("%0.3f MHz", $3/1000000)}')"
if [ -n "$CLOCK" ]; then
echo "microSD clock: $CLOCK"
fi
printf "\n"
# Fail if $SUDO_USER is empty.
if [ -z "$SUDO_USER" ]; then
printf "This script must be run with sudo.\n"
exit 1;
fi
# Variables.
USER_HOME_PATH=$(getent passwd $SUDO_USER | cut -d: -f6)
IOZONE_INSTALL_PATH=$USER_HOME_PATH
IOZONE_VERSION=iozone3_487
cd $IOZONE_INSTALL_PATH
# Install dependencies.
START=$(date +%s)
apt-get -y update
apt-get -y dist-upgrade
apt-get -y upgrade
END=$(date +%s)
DIFF=$(( $END - $START ))
echo '**************************************************************************************************'
echo ' Just a feel test as the amount of updates will always change but likely to be the same on the day'
echo " So if you did a fresh image a full upgrade took $DIFF seconds"
echo '**************************************************************************************************'
if [ ! `which hdparm` ]; then
printf "Installing hdparm...\n"
apt-get install -y hdparm
printf "Install complete!\n\n"
fi
if [ ! `which curl` ]; then
printf "Installing curl...\n"
apt-get install -y curl
printf "Install complete!\n\n"
fi
if [ ! `which make` ]; then
printf "Installing build tools...\n"
apt-get install -y build-essential
printf "Install complete!\n\n"
fi
# Download and build iozone.
if [ ! -f $IOZONE_INSTALL_PATH/$IOZONE_VERSION/src/current/iozone ]; then
printf "Installing iozone...\n"
curl "http://www.iozone.org/src/current/$IOZONE_VERSION.tar" | tar -x
cd $IOZONE_VERSION/src/current
make --quiet linux-arm
printf "Install complete!\n\n"
else
cd $IOZONE_VERSION/src/current
fi
# Run benchmarks.
printf "Running hdparm test...\n"
hdparm -t /dev/mmcblk0
hdparm -T /dev/mmcblk0
printf "\n"
printf "Running dd test...\n\n"
dd if=/dev/zero of=${USER_HOME_PATH}/test bs=8k count=50k conv=fsync; rm -f ${USER_HOME_PATH}/test
printf "\n"
printf "Running iozone test...\n"
./iozone -e -I -a -s 100M -r 4k -i 0 -i 1 -i 2
printf "\n"
printf "microSD card benchmark complete!\n\n"
步骤:
第一步:生成文件
1. cd 到想要存放脚本的目录下
2. touch + (file+name)
第二步:写入脚本
1. gedit 打开文件,个人感觉方便编辑(不太会用vim)
2. 第一行是必有的,剩下的就是平常要在终端里执行的一条一条语句
第三步:脚本执行
1. 脚本执行个人一般选择进入脚本所在文件,用sudo ./file_name执行
2. 上面写的脚本保存以后直接执行,会报一个“找不到命令的错误”----也可使用“chmod 777 XX.sh”指定文件访问权限
3. 打开脚本文件属性,勾选“允许作为程序执行文件”
4. 脚本执行成功
常用命令
1. 终端touch 表示生成文件
2. cd或cd~ 表示返回home
3. cd ../ 表示返回上一级 cd ../../ 返回上两级
测试结果
踩坑记录
树莓派联网问题
重装树莓派系统至 Ubuntu22.04 server,由于实验室是校园网,无法使用有线连接上网(无法输入认证账号、密码),只能使用无线上网。搜了各种帖子都无法解决问题,后来按照下面的帖子的方法2,完成了树莓派的无线网连接上网:
远程登录
在Windows上用VNC,输入树莓派IP后无法连接,后根据下面帖子内容进行设置,再次连接后成功: