Knight de Ficus

在树莓派上玩转Kali Linux

前两个月去外省面试,面试过关之后在外面庆祝吃饭。是一个日料店,第一次在墙上的电视看到 Lofi Girl 的视频。在那之后又几次偶遇了这个频道,就对Lofi Girl这个频道和他们的直播、音乐很有兴趣。我觉得学习的过程中有个赛博学习伙伴还蛮有意思的,因此就用树莓派做了一个桌面小屏幕,能够循环播放视频。

上面是刚做好的最开始的版本,是用动态壁纸实现的,未来我还希望自己写一个程序,直接连接Lofi Girl的直播,就可以随着时间变换窗外的景色。

写在前面

请看完再操作,有的步骤的关键点可能在后面,不要过于心急

未来树莓派或者操作系统的升级可能会导致这个教程部分或全部不可用,所以务必看清楚版本号

对了,推荐几个比较好的树莓派相关博客

从选购到入手:树莓派零基础入坑指南 笔记本Win10超简单hdmi线链接树莓派 树莓派5的最新特色和引脚大全

购买建议

总的来说,第一次启动树莓派,你至少要有这些东西:

另外一台电脑:用来给树莓派烧录系统

树莓派本体、电源和电源线、屏幕和屏幕线鼠标键盘、内存卡

这里斜体的是可以在配置完成之后省去的东西 接下来,我会针对每一个部件给你比较详细的推荐或者建议

本体

树莓派5

树莓派本体的选择,我建议买新不买旧。但是如果你的预算实在有限,想要买4或者3,我不反对,但是还是得提醒你,旧版的性能比你想象的差。 树莓派有很多版本,小白不要买成Pico或者Zero了,前者是阉割版,后者是单片机。 在四代及以前,树莓派分AB两种Model,初学者最好买全功能的B Model

供电

5V5A电源

如果你是5代用户,买专门的电源 买专门的电源 买专门的电源!!

不要为了省钱用手机充电线。可以启动,但是手机的功率达不到要求,很容易断电关机。

这是因为现有的手机充电标准没有5V5A,即使是支持PD协议的5V充电头也不能输出5A,有且仅有专门设计的电源能跑满功率。

注意:4代及以前没有电源键,最好线上面有开关。

视频信号传输

HDMI Micro线 + HDMI接口屏幕

或者22pin(DSI)接口mipi屏幕

分享一下我的方案:HDMI线 + HDMI-60pin驱动板 + 50pin屏幕(7寸IPS,1204x600),加支架和元件专用双面胶,预算1.2张左右

注意HDMI线有三种规格:标准、迷你型mini和微型micro,树莓派上面的是微型micro,不要买错了

如果你打算用现有的屏幕,注意以下几点:

关注你的屏幕是什么接口,是否能接收HDMI信号。电视,专业显示屏,都可以!但是一定要注意HDMI还是VGA

普通的笔记本电脑不能显示外来信号!笔记本的HDMI接口只能出不能进!

如果你打算另外买一个小屏幕,我还是十分建议大家还是买成品的驱动板和屏幕二合一,一劳永逸而且不容易踩雷。单独采购没有外壳,而且不是很稳定,如果有移动的需求就完全没办法满足,顶多胜在便宜一丁点。

screen

P.S. 这个屏幕我发现启动时候显色会偏灰偏白,亮一会儿慢慢恢复正常是怎么回事,有没有专业的同学解答一下

screen1

screen2

在开头我有提到说这个部分可以在未来可以省去,是因为在配置完之后,可以通过电脑(甚至移动设备)使用SSH或者VNC远程登录,就不需要直接在设备上看了,因此对于有的小伙伴购买树莓派做服务器,可以在配置之后省去屏幕。键盘鼠标也是同理。

键盘鼠标

有线/2.4G 键盘鼠标

如果你有空闲的键鼠,用就是了。

要注意在开机之前就插入设备,否则可能无法识别导致用户密码都输入不了。

第一次配置只能用有线或者2.4G键鼠!蓝牙要开机配置之后才能使用。

很建议买一个这样的2.4G输入键盘触摸板二合一,便宜实用,毕竟USB要一直插在树莓派上面(开机前插入),最好还是分配一个单独的。(除非你真的愿意每次切换设备都要插拔)

kb

TF卡及其读卡器

按正常的买就可以了

经验:

我买了32GB的卡,实测29GB

安装后,boot占200+MB,Kali占13GB左右,剩下是自由分配的空间

读卡器可以买个USB3.0的,一劳永逸而且不会多花多少钱,以后会用到的

网线

正常情况下,你可以开机配置无线网络。不过考虑这么一种艰难的情况:树莓派没有屏幕,也没有配置无线网络,但是有笔记本电脑和网线,你希望能够不借助屏幕的情况下绕过无线网络这一限制登录SSH,那么网线就派上用场了。用网线将树莓派和笔记本电脑连接起来,就能接入同一网段。通过arp-scan工具查找同一网段下的设备,找到树莓派的IP(这是其中一种方法),然后就可以登录SHH进入树莓派,配置其无线网络或者做其他设置。

散热

CNC全包式散热外壳,不带风扇

或许有的人自知需求不多,树莓派平常用不到比较高的占用,想省去这一部分。不过我个人是很不推荐树莓派裸奔的。

散热性能、噪音、体积、预算。按照你的具体需求,市面上有很多这样的树莓派定制的散热产品。

想要极致的散热,有专门的CPU风冷散热塔,缺点是很贵体积很大,带风扇的噪音也是非常大(应该也有不带风扇的版本)。

想要没有噪音(像我一样),就买这种CNC的全包散热外壳,便宜没噪音,体积也非常小,不过缺点就是还是比较烫(跑动态壁纸平均下来65℃,什么都不运行34℃)。

如果可以接受一点噪音,那么买一个我这个外壳的带风扇版本,我猜散热效果能好很多。

shuileng

Kali安装:

在你的现有电脑下载:win32diskimager(win)或者Etcher(mac)

下载和你的树莓派版本对应的操作系统,比如Kali的网址是: Kali-arm操作系统

针对Raspberry Pi 5进行下载,下载下来是一个xz文件。解压xz为img,然后用软件烧录到tf卡。原有的tf卡会变成可写入的boot盘和不可写入的一个盘(不用管)。理论上如果你没有很深的配置需求,就可以把tf卡插到树莓派上面,开机完事。

可能要注意的:

如果开机发现鼠标不好用,那么需要在boot盘的cmdline加上 usbhid.mousepoll=0

网络配置和源配置

如果有SSH的需求,就尽量不要连校园网,尽量连比较可控的网络环境,再不济手机热点是一个很好的选择。复杂的网络环境会导致IP每次都变动,SSH每次都要设置会比较麻烦。

树莓派自己的操作系统配置网络需要配置boot盘文件,不过Kali不用。实测在图形界面登录配置即可,开机之后都可以正常连上WiFi。

Kali用pip进行包的下载。国内网络环境你知道的,需要换源。

Kali的包Debian的源即可涵盖绝大部分包,我还加了清华的源(不过清华源有的包有点抽象)还原之后记得update和upgrade

deb https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib non-free-firmware

deb http://ftp.cn.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb http://ftp.cn.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb http://ftp.cn.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware
deb http://ftp.cn.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
sudo apt upgrade
sudo apt install 你想要的包

apt下载包的时候记得带-y参数,否则依赖下不全,当然,肝王可以手动下载 =)

SSH和远程图形界面

Kali自带且开机自启SSH,直接连接即可;自带VNC,用SSH启动之后,电脑VNC即可连接。

我用的是RealVNC,免费但是加密要钱,如果有安全需求可以换一个软件。

vncserver
//开启服务,默认从1开始,连接时候连接192.168.*.*:1(换成你自己的IP地址)
//第一次开启时需要配置密码

vncserver -kill :1
//关闭1号vnc服务

我有动态壁纸的需求,而vnc连接看不到而且没办法配置壁纸,类似情况的朋友还是建议用屏幕,或者绕路用RDP。我没用过RDP,大家得自己去找答案了...

动态壁纸

注意:此之后是通过回忆写的,可能有不完善或者不准确的地方,可以邮箱联系我修改。

动态壁纸我使用的软件是Komorebi。不能用现成安装包,要手动编译,按照仓库链接的教程一步步做即可。

仓库链接: Komorebi

sudo add-apt-repository ppa:gnome3-team/gnome3 -y
sudo add-apt-repository ppa:vala-team -y
sudo add-apt-repository ppa:gnome3-team/gnome3-staging -y

sudo apt install cmake valac libgtk-3-dev libgee-0.8-dev libclutter-gtk-1.0-dev libclutter-1.0-dev libwebkit2gtk-4.0-dev libclutter-gst-3.0-dev
// 这一步如果出错就一个一个包安装

sudo apt install gstreamer1.0-libav -y
// 这一步仓库教程没有写这个依赖,但是视频背景需要这个。记得加上-y参数以安装依赖

git clone https://github.com/cheesecakeufo/komorebi.git
cd komorebi
mkdir build && cd build
cmake .. && sudo make install && ./komorebi

遇到一个bug,如果有类似经历的可以参考:如果kali没有安装gstreamer1.0-libav,更换壁纸时会提示无法使用视频背景,但是安装之后这个提示不会消失,但是你确确实实可以使用视频背景了,所以可以无视,maybe??

成功安装Komorebi之后,使用Wallpaper Creator创建你自己的动态壁纸,导入喜欢的视频,然后创建之后运行提示的代码即可。

为了更好的体验...

任务栏隐藏

没什么好说的。Setting - Panel - Automatically hide the panel - Always

鼠标隐藏

有很多种实现方法,我这里使用unclutter。安装unclutter包,然后设置5秒(或者任何你喜欢的隐藏时间)不动就隐藏鼠标,然后将启动unclutter加入开机启动。

sudo apt-get install unclutter
unclutter -idle 5 -root
//你可以用这一句来设置隐藏鼠标,调整和设置来找到啊你习惯的隐藏时间,CtrlC结束这条指令

vim /etc/rc.local
//编辑这个文件,这个文件写入了开机自启运行的指令

在文件尾部加上这句,重启一下就行了(如果要取消,文件里面删掉这句就行)

/usr/bin/unclutter -idle 5 -root &
//&参数指的是后台运行

Komorebi 开机自启

仍然有很多种实现方法,kali可以使用自带的xdg实现。

cd /etc/xdg/autostart
touch test.desktop
sudo vim komorebi.desktop
// 可以是任何名字.desktop

输入以下代码,保存重启(也可以不重启哈哈)即可

[Desktop Entry]
Name=komorebi
Exec=/System/Applications/komorebi
Type=Application

这个方法也适用于任何Application的程序,实现开机自动启动。