惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
N
News and Events Feed by Topic
S
Schneier on Security
G
GRAHAM CLULEY
Scott Helme
Scott Helme
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CERT Recently Published Vulnerability Notes
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
T
The Blog of Author Tim Ferriss
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 司徒正美
Blog — PlanetScale
Blog — PlanetScale
Project Zero
Project Zero
MyScale Blog
MyScale Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
The Last Watchdog
The Last Watchdog
Vercel News
Vercel News
The Cloudflare Blog
C
Check Point Blog
Help Net Security
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
腾讯CDC
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
S
SegmentFault 最新的问题
MongoDB | Blog
MongoDB | Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
AWS News Blog
AWS News Blog
Cloudbric
Cloudbric
N
News and Events Feed by Topic
PCI Perspectives
PCI Perspectives
S
Securelist
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Vulnerabilities – Threatpost
S
Secure Thoughts

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
尝试过为你的树莓派构建系统吗?这是你的零基础构建教程。(Debian系) - 少数派
2021-03-30 · via 少数派

之前看到一位大佬的博客,一下子激起了我为自己树莓派构建系统的兴趣,本文教程基于他的博客进行扩充

本文系统基于Ubuntu Server 20.04.1 LTS(基于Windows 10的VMWare虚拟机),x64架构CPU进行交叉构建。

考虑到有些萌新还没有使用过VMWare虚拟机,本文也将教授虚拟机配置过程。

一、前期准备

1 VMWare Workstation Pro 安装以及虚拟机配置

1.1 安装VMWare Workstation

伸手党福利!官方链接点此即可,点击“立即下载”。安装完后输入许可证密钥(如果没钱激活的话可以自行百度,当然不激活影响不大,只要不被判定为商业用途即可)。

1.2 配置虚拟机

  1. 左上角文件-新建虚拟机
  2. 不要典型!选择自定义!!
  3. 两次下一步之后选择稍后安装操作系统!不要直接选择映像文件!
  4. 客户机操作系统选择Linux-Ubuntu
  5. 名称自定,其他选项根据自身情况配置,下一步即可

1.3 安装系统

  1. 点击此处下载官方Ubuntu映像,建议使用下载工具(IDM等等)
  2. 右键虚拟机-编辑虚拟机设置
  3. 点击CD/DVD,勾选启动时连接,并点击使用ISO映像文件,选择你刚刚下好的映像
  4. 关闭窗口,开启虚拟机

PS. 由于我这里已经安装好系统,此处不再演示

2 安装依赖

# 获取root权限,便于后续操作

sudo su

2.1 换源,系统更新

个人习惯使用nano编辑文件,不喜欢也可使用vim等等

mv /etc/apt/sources.list /etc/apt/sources.list.bak
nano /etc/apt/sources.list

这边采用清华大院开源镜像站TUNA的源,文档来自Ubuntu 镜像使用帮助

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

Ctrl+OCtrl+X保存并退出。

更新系统

apt update
apt upgrade

2.2 安装应用依赖以及下载文件

一揽子全部安装,省的后面再弄,麻烦。

apt install kpartx build-essential gcc-aarch64-linux-gnu bc bison flex libssl-dev make libc6-dev libncurses5-dev git debootstrap qemu-user-static

下载内核文件准备编译

wget https://cdn.jsdelivr.net/gh/yuzh0816/tools@0.1/firmware.tar.xz
# 此处可能会非常慢,因为文件来自Github
wget -O rpi-firmware.tar.gz https://github.com/Hexxeh/rpi-firmware/tarball/master

二、开始构建

如果想要在工作目录中构建,可以创建文件夹

mkdir debian
cd debian

1 创建镜像

注意,此处设置镜像文件大小为3G,实际情况可以根据自身情况调整

# 创建buster.img空镜像文件
dd if=/dev/zero of=buster.img bs=3G count=0 seek=1

使用cfdisk命令进行GUI模式镜像分区

cfdisk buster.img

创建两个分区,一个是FAT32的boot分区,一个是rootfs分区。

创建镜像

挂载镜像文件并查看挂载的设备名称

losetup -f --show buster.img
查看挂载的设备名称

此时loop设备在/dev/loop8下挂载,我们用kpartx把它两个分区挂载到/dev/mapper

kpartx -va /dev/loop8
挂载

可以看到挂载成功。

这时第一个分区在/dev/mapper/loop8p1,第二个是在/dev/mapper/loop8p2下。

现在格式化这两个分区(记得把下面的目录改成上面显示的loop-p-,警告不用管)。

#格式化boot分区

mkfs.fat -F 32 -n "boot" /dev/mapper/loop8p1

#格式化rootfs,设置label

mkfs.ext4 -L rootfs /dev/mapper/loop8p2
格式化分区

然后,在工作目录下新建两个分区的目录,并挂载。

mkdir boot rootfs
mount /dev/mapper/loop8p1 boot/
mount /dev/mapper/loop8p2 rootfs/

此时,空镜像文件已经制作完成,执行lsblk命令看挂载情况。

挂载情况

第一步完成。

三、RootFS构建

1 初步构建阶段

这里可以选择你想要构建的系统,此处选择为图方便选择Debian。

镜像可以选择的有很多(必须为Debian系统),列举两个清华大学TUNA镜像地址:

  1. Debian
  2. Ubuntu(Ports版,支持Arm64)

经过亲自测试可行的有Debian、UOS和Ubuntu。

# --foreign表示异构系统构建,即在不同CPU架构下进行构建
debootstrap --arch=arm64 --no-merged-usr --foreign buster rootfs/ https://mirrors.tuna.tsinghua.edu.cn/debian/

等待数分钟,执行后rootfs目录结构如下

目录

解压之前下好的压缩包(驱动文件以及固件)

tar -Jxvf firmware.tar.xz -C rootfs/lib/
mkdir rpi-firmware
tar -zxvf rpi-firmware.tar.gz -C rpi-firmware --strip-components 1
cp -r rpi-firmware/vc/hardfp/opt/vc rootfs/opt/
cp -r rpi-firmware/vc/sdk/opt/vc rootfs/opt/

编辑文件系统信息

#此处依然要将loop后的数字进行更改
blkid /dev/mapper/loop8*
blkid

复制两串PARTUUID,粘贴到rootfs/etc/fstab中。

nano rootfs/etc/fstab
fstab

然后换源

nano rootfs/etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main non-free contrib

2 第二构建阶段

开始构建

chroot rootfs/ debootstrap/debootstrap --second-stage
cp /usr/bin/qemu-aarch64-static rootfs/usr/bin/
chroot构建
完成!

chroot进入系统根目录

chroot rootfs/ /usr/bin/qemu-aarch64-static /bin/bash
chroot

开始进行系统内配置:

1.  更新软件

dpkg --add-architecture armhf
apt update
apt upgrade
更新

2.  安装基本软件以及运行库

apt install libc6:armhf
apt install locales rng-tools wpasupplicant dhcpcd5 sudo parted
apt install net-tools avahi-daemon dphys-swapfile ssh openssh-server 
apt install htop bash-completion wget curl vim nano

3. 添加vc-userland支持

echo "/opt/vc/lib/"   >/etc/ld.so.conf.d/vc-userland.conf
cd /usr/bin/ ; for i in /opt/vc/bin/* ; do ln -sf $i ./ ; done ; cd /

4. 设置内核参数

echo -e "kernel.printk = 3 4 1 3\nvm.min_free_kbytes = 16384" > /etc/sysctl.d/98-rpi.conf
echo -e "net.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

5. 设置时区(中国大陆选择上海)

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

6. 配置wpa_supplicant,并链接到boot目录下的wpa_supplicant.conf

ln -sf /usr/share/dhcpcd/hooks/10-wpa_supplicant /lib/dhcpcd/dhcpcd-hooks/10-wpa_supplicant
ln -sf /boot/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf

7. 配置主机名称(引号内“yuzhpi”内容更改为主机名称,可在局域网内显示、连接)

echo "yuzhpi" > /etc/hostname
echo -e "127.0.0.1\yuzhpi" >> /etc/hosts

8. 重新设置软件包区域、语言(经本人尝试,Ubuntu似乎不可行  ||  英语好的可以跳过,这步其实没啥必要)

dpkg-reconfigure locales

空格键选择en_US.UTF-8zh_CN.UTF-8Tab键选择Ok

选择zh_CN.UTF-8Tab选定。

9. 添加用户(最好为pi)

useradd -m -s /bin/bash pi
passwd pi #输入密码x2
echo "pi    ALL=(ALL:ALL)  NOPASSWD: ALL" > /etc/sudoers.d/00_pi

10. 安装常用软件

此处自便,根据需求安装即可。


退出chroot。

sync
exit
echo > rootfs/root/.bash_history #清除bash记录
sync

四、Boot分区(启动分区)配置

基本启动配置

复制Bootloader启动驱动文件

cp rpi-firmware/bootcode.bin rpi-firmware/fixup* rpi-firmware/start* boot/

然后同上文blikd命令,执行下面那句命令,将8改为最早弄的那个数字,保存PARTUUID(其实前面已经执行过了,就是之前让你们保存的那串PARTUUID)

blkid /dev/mapper/loop8p2

编辑cmdline.txt

nano boot/cmdline.txt

粘贴,把UUID覆盖此处UUID。

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=ca013eb7-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

编辑config.txt

nano boot/config.txt

文件内容如下

arm_64bit=1
dtparam=audio=on
[pi4]
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]

无线网络配置

touch boot/wpa_supplicant.conf

如无需配置无线,仅需执行上面那行命令即可。

nano boot/wpa_supplicant.conf

替换提示文本为网络配置。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN

network={
    ssid="wifi名称"
    psk="wifi密码"
    key_mgmt=WPA-PSK
    priority=1
}

四、内核构建

Git Clone官方内核

 git clone --depth=1 https://github.com.cnpmjs.org/raspberrypi/linux
git clone

可以通过修改linux/Makefile第五行EXTRAVERSION自定义版本号

e.g: EXTRAVERSION = -yuzh,则显示[版本号]-yuzh

开始编译

这步需要好久。好久。好久。。

cd linux
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-#可以添加' -j2'实现多核编译,jn即为n核编译
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=../rootfs modules_install

编译期间分配的CPU负载跑满

复制编译好的文件到Boot分区。

cp arch/arm64/boot/Image ../boot/kernel8.img
cp arch/arm64/boot/dts/broadcom/*.dtb ../boot/
cp -r arch/arm64/boot/dts/overlays/ ../boot/

五、大功告成

同步并卸载镜像。

cd ../
sync
umount boot/
umount rootfs/

取消挂载(你也可以选择关闭虚拟机),依然需要更改数字。

kpartx -d /dev/loop8
losetup -d /dev/loop8

把镜像从虚拟机复制出来,即可刷入板子。目前兼容3B3B+4B

六、总结

踩过的坑: 

  1. 有许多软件不兼容chroot内部进行,需要在板子上实操才行。
  2. 本以为编译速度很快,没想到速度这么慢。。
  3. 构建镜像中途不小心退出,且没有sync,需全部重头来过

快捷工具:

  1. Github Zip下载器,曲线救国