(已更新Zsh无法使用环境变量问题)
一般如果需要运行java程序时,需要一个简单、稳定的jdk或者jre环境,如下操作即可快速搭建java环境...
使用指令 sudo apt search jdk 即可搜索软件源中的jdk各类版本,找到需要的版本并复制下包名,使用 sudo apt install 包名 即可安装,如图:

通常情况下安装这个版本即可,使用指令 sudo apt install openjdk-11-jdk
如果所需的应用需要特定java环境或者想安装更新版本,可以去手动下载安装包,然后上传并解压等...
java常见下载站:
以AdoptOpenJDK为例,我们本篇文章是为树莓派安装jdk环境,因此选择的“其他平台”
本文推荐选择OpenJDK 11 ,此版本为长期支持版,较稳定,且此版本可以通过上面方法一快速安装。本文演示了OpenJDK 15版本的手动安装
依次选择 OpenJDK 15 —— HotSpot,在下面Operating System出选择Linux,Architecture处选择系统版本
如果是树莓派官方系统,应选择arm32,除非你的树莓派是安装了64位系统版本

在下面筛选出的版本中选择JDK版本下载(如果没有编译等生产需求,可以下载JRE版本,文件体积较小)

下载完后将压缩包上传至树莓派内,并解压,指令为 tar -zxvf 压缩包名

使用指令 mv ./jdk-15.0.2+7 /usr/java 将解压出的文件夹放在 /usr/java 文件夹,或者也可以放到 /etc/java 等其他地方,记下路径,可以输入 pwd 查看当前路径,选中后右键即可复制
配置环境变量:
sudo nano /etc/profile在文件末尾添加上以下内容:
export JAVA_HOME=/usr/java/jdk-15.0.2+7
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin其中,第一行的路径应该改成java存放的位置,如上述中我将解压出来的 jdk-15.0.2+7 文件夹放到了 /usr/java/ ,因此第一行填入当前的路径
修改完毕后按 Ctrl+O 保存,按 Ctrl+X 退出编辑
输入 source /etc/profile 刷新环境变量(无需重启)
输入 java -version 查看版本信息,如果出现版本信息即为安装成功
如果安装了zsh,在zsh下使用java指令会显示
zsh: command not found: java此时可以将/etc/profile添加的内容复制到用户目录下的.zshrc文件内,然后再输入
source .zshrc如图:

记录一个小操作,有时候电脑开热点发现连不上,猜测可能是因为5GHZ频段的问题,重新改又太麻烦,刚好手头有网线,干脆用有线来连接树莓派(同方法也适用于其他设备,只需要在电脑配置即可)...
无WiFi网络或者树莓派莫名其妙连不上无线网络
稳定快速传输数据
对类似设备进行局域网连接配置
一些没无线网卡或者无线网卡损坏、异常的设备使用有线网络来配置
无线网络传输慢且不稳定
网线x1
USB转网口(可选,适用于笔记本没有网线插口情况)
树莓派
Windows(其他系统尚未尝试)
1、树莓派开机,插上网线,网线另一端连接到电脑
2、连接电脑后树莓派网口指示灯会正常闪烁,同时电脑打开设置-网络和Internet-状态-更改适配器选项,会弹出网络连接窗口,里面会显示电脑的全部连接

3、如果是同我一样是使用了USB转网口的,直接找到“以太网”开头的连接,并找到含有USB关键词的连接即可确认为来自树莓派的网络。如果是直接连接电脑,直接找最新的连接即可(可重新插拔网线来确认),并记下该连接的名字
4、双击打开当前电脑正常上网的网络连接(如图中的WLAN连接),选择属性-共享,勾选允许其他用户通过此计算机的Internet连接来连接,并在下面选框中选择前面记下的来自树莓派的连接名字,再勾选允许其他网络用户控制或禁用共享的Internet连接,最后点击确定即可

5、此时树莓派已经得到了共享网络连接,但是如果要去通过ssh连接控制树莓派,仍需要知道树莓派的ip才可以。打开CMD窗口,输入arp -a,在192.168.137.1处查找,如果电脑此时没有分享其他的热点、网络共享的话,一般192.168.137.255之外的那个连接便是树莓派的ip了(在电脑分享出去的网段ip仅限于192.168.137.2-192.168.137.254),图中树莓派的ip为86结尾

6、打开ssh连接,输入该ip尝试是否可以连接成功(在此之前请确保ssh已开启)

用网线连接时跑了一下软件更新,发现更新速度感觉快多了...(树莓派自带的无线网卡也是够拉胯,平时挂机跑东西都是用六类千兆网线连接的,速度能跑满)
本连接方法并非长久之计,仅用来临时配置树莓派用,如需稳定使用此方法可能还需要配置静态IP等操作,本文不再详解,这篇文章只是记录因为不小心配置错了wifi导致无法ssh的应急操作...
]]>前几期已经成功对树莓派做足了当服务器的准备,是时候用树莓派做出一些实用的事情了...
树莓派4B版本的网口与USB相比之前有了较大提升,尤其是网口提升到了千兆的速率,这样一来树莓派更加适合做一些小型网络服务器,正如今天所搭建的私人NAS网盘...
经过前几期的准备,我们的树莓派已经可以实现软件上内网穿透,硬件上自动温控保护,目前的环境已经稳定下来,可以去搭建小型服务器了。本文中将会使用树莓派接入外置硬盘,通过有线网络实现搭建NAS网盘,且提供两种不同思路,给不同场景使用。
1、Frp内网穿透(参考:用云服务器搭建自己的Frp服务)
2、硬件温度保护(参考:为树莓派制作个简单温控系统)
3、软件源更换(参考:树莓派4b上手“装机必备” - 2)
使用网盘平台:samba
1、安装Samba服务:sudo apt install samba -y
2、编辑Samba配置文件:sudo nano /etc/samba/smb.conf
3、在文件末尾添加如下内容并保存(文件目录根据实际调整):
其中,path(共享路径)此处填写的为接下来要映射外置硬盘的文件夹,如果使用的是u盘或者外置固态硬盘则可以忽略,如果使用的是外置机械硬盘(推荐使用带自动休眠功能的硬盘盒),推荐直接修改为/home/pi,否则每次当windows资源管理器加载网络储存时都会导致机械硬盘启动,从而会加大损耗硬盘寿命(尽可能使用带自动休眠的硬盘盒,仅sata转换器无法达成自动休眠硬盘效果,还需安装相关软件)。缺点是无法在windows网络硬盘中看到外置硬盘容量,好处是更方便的传输文件到/home/pi目录。
[share]
path = /home/pi/share
valid users = pi
browseable = yes
writable = yes注:如需将samba用户名pi修改为其他用户名,需要添加一个新的系统账户。因该账户仅用于samba分享服务,因此可以将其设置为无登陆权限的账户,如下过程即可:
//添加用户组samba,设置id为2000(id和名字可随意)
sudo groupadd samba -g 2000
//添加用户yanhy,用户id为2000,并将其添加进id为2000的用户组
sudo useradd yanhy -u 2000 -g 2000 -s /sbin/nologin -d /dev/null
//授予访问权限
sudo chown -R yanhy:samba /home/ubuntu/
//同时再给自己一边权限
sudo chown -R ubuntu:ubuntu /home/ubuntu/
//添加samba用户密码
sudo smbpasswd -a yanhy4、根据以下内容将外部硬盘连接到共享文件夹:
--接入外置硬盘(3.5寸机械硬盘需要额外供电,如果2.5寸机械硬盘太多也需要额外供电)
--ssh连接树莓派,使用 sudo fdisk -l 查看储存信息,看容量识别硬盘,一般是/dev/sda1
--创建个目录用来挂载硬盘 sudo mkdir /home/pi/nas
--改权限 sudo chmod 777 /home/pi/nas
--将硬盘通过mount挂载到该文件夹 sudo mount /dev/sda1 /home/pi/nas
--(此条方法可能有问题,新版本系统谨慎尝试,如果卡开机了请取出sd卡,手动修改/etc/fstab中的内容)写入硬盘启动信息,下次重启后自动挂载数据盘 echo "/dev/sdb1 /home/pi/nas/ ext4 defaults 0 0" >> /etc/fstab
--使用 df -h 查看硬盘状态,如果第一列有显示/dev/sda1且后面目录为/home/pi/nas说明挂载成功5、配置完后重启Samba服务:sudo systemctl restart smbd
6、设置访问用户:sudo smbpasswd -a pi(如根据第三步新建用户,可以跳过这步)
7、电脑输入smb://树莓派ip 即可访问到共享文件夹,或者打开 网络 ,开启局域网共享,也可以发现树莓派设备并连接(老版本教程)
8、兼容ntfs
树莓派不支持写入ntfs文件系统,如果硬盘已经有文件不想格式化,可以安装软件包来兼容:sudo apt install ntfs-3g -y ,更新内核模块:sudo modprobe fuse , 重启系统:sudo reboot
使用网盘平台:Cloudreve
1、手动访问 https://github.com/cloudreve/Cloudreve/releases 选择cloudreve_x.x.x_linux_arm64.tar.gz右键复制下载链接
2、ssh连接树莓派,创建一个文件夹 mkdir nas 并进入 cd nas ,并使用 wget 复制的链接 下载软件包
3、下载完后使用 tar -zxvf cloudreve_x.x.x_linux_arm64.tar.gz 解压,得到 cloudreve 文件(无后缀)
4、如果树莓派上有安装防火墙,需要使用 sudo ufw allow 5212 手动放行cloudreve的端口
5、输入 ./cloudreve 启动程序,接下来会自动显示出账号与密码,需要记下来,第一次登陆需要(后期可以修改),如果忘记了生成的账号密码,删除当前目录的db数据库文件后再次启动程序即可
6、如果此时在内网环境中,在本地浏览器输入树莓派ip加端口即可访问cloudreve了,如192.168.31.73:5212(由于我已经安装过,直接演示进入浏览器界面)


7、登陆后点击右上角头像,即可进入管理面板,里面可以修改是否允许用户注册等功能,其他功能暂不详细叙述

8、给树莓派挂载硬盘并使该网盘使用外置硬盘来储存:
--接入外置硬盘(3.5寸机械硬盘需要额外供电,如果2.5寸机械硬盘太多也需要额外供电)
--ssh连接树莓派,使用 sudo fdisk -l 查看储存信息,看容量识别硬盘,一般是/dev/sda1
--创建个目录用来挂载硬盘 sudo mkdir /home/pi/nas/sda1
--将硬盘通过mount挂载到该文件夹 sudo mount /dev/sda1 /home/pi/nas/sda1
--写入硬盘启动信息,下次重启后自动挂载数据盘 echo "/dev/sdb1 /home/pi/nas/sda1 ext4 defaults 0 0" >> /etc/fstab
--使用 df -h 查看硬盘状态,如果第一列有显示/dev/sda1且后面目录为/home/pi/nas/sda1说明挂载成功
--进入管理面板,打开 存储策略 标签页
--修改默认策略,使用 向导模式编辑
--在路径处可以看到当前使用的路径,将其改成 /home/pi/nas/sda1/{uid}/{path} 即可在硬盘内创建文件
--路径内{uid}/{path}无需修改,分别为用户id和用户文件路径,如:管理员uid为1,在网盘内上传了a.MP4文件,路径则为/home/pi/nas/sda1/1/a.MP4,不同用户之间文件不相通,管理员在管理面板可以管理全部文件
--如果需要用图床功能,需要在第二步开启永久直链功能,其他选项根据个人使用去修改
其他软件如openmediavault(omv)等也可以实现局域网共享,本文不再细说
本文参考链接:
树莓派挂载移动硬盘
挂载 机械硬盘_利用树莓派和闲置硬盘,搭建起家中的个人网盘
树莓派使用cloudreve搭建nas和离线下载

使用树莓派小风扇对其风冷散热,并且在三极管组成的简单电路下通过树莓派GPIO口输出PWM进行不同阶段温度的控制,使其可以在温度过高情况下减少PWM占空比加速散热、温度较低时静音慢速散热,减少因为长期高速运转产生的噪声,也同时增加了风扇寿命。
1、树莓派及优质电源线(推荐使用官方电源,第三方电源在风扇运转时容易出现低电压警告)

2、树莓派小风扇 x1
3、三极管NPN8050 x1
4、电解电容100μF x1(理论上大部分电容都支持,起到稳定风扇作用,减少因风扇突然加速等产生的异响)
5、接插件 x5
6、杜邦线(母对母) x3

三极管8050三个管脚顺序从平面、从左到右依次是发射极E、基极B、集电极C
本图中,风扇负极接入三极管的发射极E,树莓派上任意一个GPIO引脚接入三极管的基极B,树莓派上的GND接入三极管的集电极C;
将电容C1并联到风扇的两段,或者直接并联到接插件的1、3处,如果使用电解电容需要注意正负极
本电路无需焊接至电路板上,直接通过接线即可使用,且因为体积较小可以直接放入树莓派壳内,方便移动
通过树莓派的GPIO引脚输出高电平以导通三极管,且通过PWM控制树莓派的转速,代码如下:
程序参考:https://blog.csdn.net/vince025/article/details/103749006
#!/usr/bin/python3
# encoding: utf-8
import RPi.GPIO
import time
RPi.GPIO.setwarnings(False)
RPi.GPIO.setmode(RPi.GPIO.BCM)
#下面多处14是我使用的BCM编码为14的GPIO,根据实际情况修改
RPi.GPIO.setup(14, RPi.GPIO.OUT)
pwm = RPi.GPIO.PWM(14, 75)
duty = 0
lastDuty = 0
try:
while True:
tmpFile = open('/sys/class/thermal/thermal_zone0/temp')
temp = int(tmpFile.read())
tmpFile.close()
duty = 100;
#以下内容可自由修改,duty为占空比,值越大速度越慢
if temp < 40000:
duty = 100
if lastDuty >= 40000:
duty = 75
if temp >= 42000:
duty = 60
if temp >= 45000:
duty = 50
if temp >= 50000:
duty = 25
if temp >= 55000:
duty = 10
#----------------
if duty == 100:
pwm.stop()
time.sleep(.2)
RPi.GPIO.output(14, RPi.GPIO.LOW)
if duty == 0:
pwm.stop()
time.sleep(.2)
RPi.GPIO.output(14, RPi.GPIO.HIGH)
if duty > 0 and duty < 100:
if lastDuty == 0 or lastDuty == 100:
pwm.start(0)
time.sleep(1)
pwm.ChangeDutyCycle(duty)
lastDuty = duty
#print(duty,temp)
time.sleep(5)
except KeyboardInterrupt:
pass
pwm.stop()
time.sleep(1)
RPi.GPIO.output(14, RPi.GPIO.LOW)程序二参考:https://tieba.baidu.com/p/4238265567?red_tag=2276462921
#!/usr/bin/env python3
# encoding: utf-8
import RPi.GPIO
import time
RPi.GPIO.setwarnings(False)
RPi.GPIO.setmode(RPi.GPIO.BCM)
#下面多处14是我使用的BCM编码为14的GPIO,根据实际情况修改
RPi.GPIO.setup(14, RPi.GPIO.OUT)
pwm = RPi.GPIO.PWM(14, 75)
speed = 0
prv_temp =0
try:
while True:
tmpFile = open( '/sys/class/thermal/thermal_zone0/temp' )
cpu_temp = int(tmpFile.read())
tmpFile.close()
if cpu_temp>=35000:
if prv_temp<35000 :
pwm.start(0)
pwm.ChangeDutyCycle(100)
time.sleep(.1)
speed = min( cpu_temp/125-257 , 100 )
pwm.ChangeDutyCycle(speed)
else :
pwm.stop()
prv_temp = cpu_temp
print(speed,cpu_temp)
time.sleep(5)
except KeyboardInterrupt:
pass
pwm.stop()以上为python3代码,树莓派中运行需要使用python3 fan.py运行
方法同上一篇文章用云服务器搭建自己的Frp服务
cd /lib/systemd/system
sudo nano fan.service编辑启动项:
[Unit]
Description=frp service
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=python3 #文件完整路径,如/home/pi/fan.py
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target保存并退出后,使用systemctl start fan即可在后台启动温控程序
使用systemctl status fan可以查看运行状态,如果前面代码中print未被注释可以看到实时温度以及占空比
使用systemctl enable fan即可开机启动该程序

以下内容涉及过多终端,推荐用ssh连接后操作...
树莓派内连接wifi后:
有显示屏:打开终端,输入 ifconfig 查看当前的ip地址;
无显示屏:进入路由器后台或者热点查看连接列表,找到设备名为 raspberrypi,并记录下ip地址;
将ip地址填入ssh远程软件,然后远程连接到树莓派:
用户名为pi,默认密码为raspberry,如遇到第一次连接证书问题选择 是 即可
树莓派自带的软件源一般来说功能是比较齐全,但是由于地区原因访问较慢,甚至部分地区无法访问等,因此我们一般会先更换到国内软件源,再进行接下来的操作
raspbian 32位源:中科大源文档 http://mirrors.ustc.edu.cn/help/raspbian.html#
raspbian 64位x32位源:清华源文档 https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/
64位树莓派可以直接使用debian源
清华源debian源:https://mirrors.tuna.tsinghua.edu.cn/help/debian/
中科大debian源:http://mirrors.ustc.edu.cn/help/debian.html
更换源方法:
输入 sudo nano /etc/apt/sources.list 回车后进入编辑源配置文件,将官方源前面加#禁用,再在最后面添加各个源的链接
网上换源教程中,有提及/etc/apt/sources.list.d/raspi.list修改源的,这里不推荐修改,这是由树莓派基金会维护的源,内包括了树莓派特有的软件包、驱动等少量资源
第一步:sudo apt update
第二步:sudo apt upgrade -y(这一段可能比较漫长,等待即可,图中因校园网炸了,网速巨慢)

Fcitx及Google拼音:sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
安装完重启即可
部分老32位系统默认是采用英文字库且没有中文的,因此我们可以手动安装中文字体让树莓派显示出中文(安装完后手动去raspi-config选择中文即可)sudo apt install ttf-wqy-zenhei
xrdp:sudo apt install xrdp
启动xrdp服务:sudo /etc/init.d/xrdp restart
检查端口是否正常占用:netstat -tnl (如果出现3389字样,说明开启成功)
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
输入并回车执行即可,根据提示输入yes等,安装过程会比普通服务器平台缓慢很多
本篇文章到此结束,需要更多内容请持续关注本博客!
]]>有时候在使用树莓派时并没有显示屏配件,这时候就需要远程操作了...
本篇文章推荐配合前篇一起阅读————树莓派4b上手准备工作 - 1

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="wifi-name-1"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
network={
ssid="wifi-name-2"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1
}其中,前三行为默认即可
ssid:网络的名称(避免中文名,树莓派无法识别)
psk:密码
priority:连接优先级,数字越大优先级越高(不能为负数)
scan_ssid:连接隐藏WiFi时需要指定该值为1
key_mgmt:wifi加密方法,可以参考手机上显示的信息,一般为WPA/WPA2加密
保存后关闭文件,然后新建ssh以及vnc空文件(之前64位系统不兼容vnc,有可能无法使用vnc连接)
将储存卡插入树莓派后开机
进入路由器后台(无路由器的话电脑或者手机开热点也可),找到连接信息中raspberrypi的ip地址,将其复制到远程软件中,进行连接即可
远程时默认用户名为pi,密码为raspberry
成功进入后一般显示为这样:
关于更多树莓派内容,还请多多关注本博客!
]]>博客开篇日志,记录一下我搞树莓派的前期流程,以便以后重置系统时方便用...
1、树莓派本体——Raspberry 4b
2、4GB以上储存卡——闪迪16GB储存卡
3、读卡器
4、液晶显示屏——3.5寸树莓派专用HDMI显示屏
5、网络-WIFI网络环境
6、线材——电源线、HDMI线等
7、树莓派迷你2.4GHz无线键鼠
树莓派64位官方镜像:https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-08-24/
其他镜像直接使用树莓派官方系统安装器即可直接下载安装
树莓派官方系统安装器: https://www.raspberrypi.org/software/
树莓派其他32位系统镜像:https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
将下载的压缩包解压出.img镜像文件后,使用树莓派官方镜像安装器安装:





将储存卡插入树莓派的卡槽后,通电开机...
第一次启动时会自动重启,再次启动会耗时较长,一般会直接进入系统,如无法进入桌面环境,输入startx即可
刚进入桌面,会提示为了安全性让用户修改默认密码,点击Ok关闭窗口
接下来进入树莓派开机引导(ssh连接时无此引导),借用其他网站的动图:
第一页设置国家、语言、时区,国家可以选择China,时区选择shanghai,推荐勾选use US keyboard,以纠正键盘键位用;如使用32位等系统,语言直接选择中文可能会乱码,因为需要安装字体,请阅读接下来的文章,了解一系列“装机必备”的操作;
第二页即为修改密码,不建议长期使用默认密码;
第三页有个设置screen,根据自己需求设置;
第四页为连接wifi界面,可以手动连接wifi,连接隐藏wifi时仍需要去修改配置文件;
第五页询问是否更新软件,选择跳过,不换源的情况下更新速度较慢;
最后设置完成后需要重启,选择立刻重启即可。
本篇文章到此结束,需要更多内容请持续关注本博客!
]]>