摘要:對于期望或正在從事靈活工作的人來說,自己動手打造或組合高效行動工具是一件充滿樂趣的必備技能徽惋。本篇幫助您入手樹莓派险绘,了解購買裝備、下載并安裝操作系統(tǒng)宦棺、配置網絡連接、掛載移動硬盤蹈丸、和其它一些相關配置等呐芥,從此開始您的精彩別樣之旅。
關于未來的工作荸百,全職員工將成為少數(shù)人潮太,更多的人趨向于過多元化的人生虾攻,這種多元化包括生活更鲁、工作澡为、收入等方方面面漂坏。作為用科技去驅動未來工作時代到來的IT人員,應當意識到媒至,不能被自己創(chuàng)造的時代所遺忘拒啰。這里,我試著從這條不確定的道路上剩失,嘗試著探索一下册着,基于當下觸手可得的資源,如何裝備自己演熟,逐步成為一個面向未來工作的自由職業(yè)者司顿。
我選擇樹莓派為基礎裝備,用一系列的文章是辕,介紹我的實戰(zhàn)成果猎提。希望這些對你在嘗試過多元化人生而做自己的準備時锨苏,也能有所啟示和行動棺聊。
《自由職業(yè)者的樹莓派》系列文章包括:
采用樹莓派作為自由職業(yè)者的基礎裝備,我主要基于這幾點來考慮:
- 樹莓派設備流行葵诈,支持的公司眾多,社區(qū)豐富理疙,容易獲得支持泞坦;
- 可以自己搭建個人私有的網盤贰锁,隨時隨地訪問自己的照片、文檔和數(shù)據(jù)授嘀;
- 可以自己管理數(shù)據(jù)锣险,即使在網絡不可用時,依然可以回到家獲取資料夯接;
- 一次投入即可纷妆,不用買那些昂貴的包年包月服務;
- 可以隨時隨地存取代碼逊拍,設計际邻、開發(fā)世曾、部署、調試骗露、測試和演示自己的軟件程序(當然血巍,這需要一臺最低配置的云主機做內網穿透使用);
- 低功耗柿隙,可以7x24小時在線,也可以隨時隨地按需開關機衩辟。
如果你也認同這些想法帆焕,那么我們就開始來親手打造吧叶雹。
- 購買必要裝備
- 下載并安裝操作系統(tǒng)
- 配置網絡連接
- 掛載移動硬盤
- 配置其它
購買必要裝備
很顯然,在開始之前我們需要買一些必要的裝備钥星,才能完成這個愿望满着。主要包括以下:
- 樹莓派:必備微型電腦,也就手掌那么大宁改;
- TF 存儲卡:用來安裝設備的操作系統(tǒng);
- 移動硬盤:用來存放數(shù)據(jù)(可選痴施,因為也可以把數(shù)據(jù)存放在 TF 卡上枷邪;當然如果要確保數(shù)據(jù)盡可能安全,可以購買支持 RAID1 的移動硬盤盒斗遏,用雙硬盤做鏡像備份)鞋邑;
- WiFi 插座:用來隨時控制電源,長期不用時可以關機藻懒,需要同步或獲取資料時视译,遠程開機就是酷含。
某東某寶上,都很容易買到樹莓派 4B限番。我買的樹莓派 4B 是 4GB 內存版本呀舔,基本夠用了,現(xiàn)在新推出了 8GB 內存版本霜瘪,大家可以考慮入手惧磺。如圖所示(我這個是已經貼了散熱片的)磨隘。
TF 存儲卡,買個 32GB 容量左右的就合適了个唧,如果你不想買移動硬盤來單獨存放數(shù)據(jù)设预,也可以買大一點的絮缅,我現(xiàn)在用的是 64GB。
移動硬盤画恰,我買的是低速版 1TB (M.2 Nvme)的 SSD 硬盤吸奴,外加一個硬盤盒。低速的一般意味著低功耗考润,發(fā)熱量小读处,不用安裝散熱殼罚舱,適合用來專門存放照片绎谦、文檔等數(shù)據(jù)粥脚。選個這樣單獨的移動硬盤刷允,也可以避免重裝系統(tǒng)的時候,忘記備份 TF 卡纤怒,把數(shù)據(jù)清除的尷尬破托。
另外土砂,如果覺得自己的東西特別重要,也可以換成一個組裝雙 SATA SSD 硬盤的 RAID1 硬盤盒(這種硬盤運行功耗也不大吴叶,我測試過序臂,大概就 1.5瓦左右)。
把這幾個東西算在一起奥秆,整體待機和運行功耗大概在 5~8 瓦左右,按照這個推算侮叮,一個月的耗電量大概在4.5度左右悼瘾,也就 2元多錢,可能也就跟坐一趟公交車差不多卸勺,完全可以接受烫扼。
下載并安裝操作系統(tǒng)
因為樹莓派官方還沒有推出 64-bit 版本的操作系統(tǒng),所以一般來說對于 3GB 以上內存的樹莓派設備圆到,都建議使用 Ubuntu on Raspberry Pi。訪問 Ubuntu 的樹莓派 鏡像下載 網站,下載最新的 LTS 64-bit 版本的鏡像包挣菲。
鏡像下載好后掷邦,可以參考 官方教程抚岗,根據(jù)你電腦的操作系統(tǒng)(Ubuntu, Windows, macOS),選擇下載和安裝對應的 Raspberry Pi Imager 工具向抢,用于寫入系統(tǒng)鏡像到 TF 卡上胚委。
啟動 Imager 工具亩冬,點擊 CHOOSE OS 按鈕,在彈出的對話框中覆享,點擊 Use custom营袜,選擇前面步驟中下載的操作系統(tǒng)鏡像包。
同時核蘸,將你要寫入 Ubuntu on Raspberry Pi 操作系統(tǒng)的 TF 卡插入電腦客扎,點擊 CHOOSE SD CARD 按鈕,選擇這張剛插入的存儲卡后徙鱼,點擊 WRITE 按鈕,并等待寫入完成厌衙。
寫入完成后婶希,撥下 TF 卡蓬衡,退出 Imager。
配置網絡連接
重新將寫好鏡像的 TF 卡插入電腦狰晚,找到根目錄中的 network-config 文件壁晒,用記事本工具打開。
- 如果你的樹莓派是有線連接網絡谬晕,則修改 ethernets 段的內容反镇,例如:
# ...
ethernets:
eth0:
dhcp4: false
optional: true
addresses: [192.168.31.33/24]
gateway4: 192.168.31.1
nameservers:
addresses: [192.168.31.1, 211.137.96.205, 8.8.8.8]
- 如果你的樹莓派是無線連接網絡歹茶,則修改 wifis 段的內容,例如:
wifis:
wlan0:
dhcp4: false
optional: true
access-points:
"my home wifi":
password: "12345678"
addresses: [192.168.31.33/24]
gateway4: 192.168.31.1
nameservers:
addresses: [192.168.31.1, 211.137.96.205, 8.8.8.8]
其中:
- dhcp4:是否獲取動態(tài)分配的 IP 功能燎孟,為了后續(xù)連接方便揩页,我建議配置固定 IP 地址烹俗,所以設置為 false。
- access-points
- "<wifi network name>":將其中的 "my home wifi" 變更為你的 wifi 網絡名稱(名稱中有空格兔仰,需要加上引號)乎赴;
- password: "<wifi password>",將"12345678" 變更為你的 wifi 密碼饿序。
- addresses:樹莓派的固定 IP 地址羹蚣。
- gateway4:路由器網關地址度宦。
- nameservers
- addresses:DNS 服務器 IP,可以配置所在城市的 DNS 服務器地址,我參考網上資料后专,分別配置了路由器戚哎、城市和國際相關的3個 IP 地址。注意:中間那個城市的 IP丈冬,自己在網上搜索并更換為自己所在城市寬帶運營商的 DNS 服務器 IP甘畅。
另外疏唾,如果后續(xù)要安裝 microk8s 或 k3s 等 kubernetes 工具,可能需要在 cmdline.txt 追加 cgroup 相關參數(shù)(遇到問題時再加吧)喉童。
cgroup_enable=memory cgroup_memory=1
備注:有的 Linux 系統(tǒng)的啟動參數(shù)是在 nobtcmd.txt 文件堂氯。
配置完后牌废,就可以將 TF 卡插入到樹莓派設備中,并將移動硬盤插入藍色的 USB3.0 接口上局扶,然后上電開機。
注意:如果你的樹莓派是通過 wifi 連接畜埋,而沒有使用有線連接悠鞍,需要在首次開機模燥,也就是 Ubuntu 成功運行后(大約半分鐘左右)蔫骂,再重啟一下樹莓派,才能正常連接 wifi浩嫌。
如果已正常連接網絡的話补胚,我們就應該可以在電腦上通過 MAC 地址查詢到樹莓派的 IP 地址溶其。
- Ubuntu and macOS 上,使用命令:
arp -na | grep -i "dc:a6:32"
- Windows 上束铭,使用命令:
arp -a | findstr dc-a6-32
如果是老一代的樹莓派纯露,請將查詢關鍵詞替換為 "b8:27:eb" 或 "b8-27-eb" 代芜。
如果連接還是遇到問題,你可能需要重新排查你前面步驟的參數(shù)是否配置正確钞速,或者找臺 HDMI 顯示器和 USB 鍵盤嫡秕,接上樹莓派來開機,檢查問題出在哪里昆咽。
首次成功連接網絡并開機后,就可以通過 ssh 工具登錄到樹莓派的 Ubuntu 系統(tǒng)了窟哺。默認的登錄賬號和密碼均為 ubuntu技肩。
sudo ssh ubuntu@192.168.31.33
如果你沒有用過 Linux 或其它類 UNIX 系統(tǒng)虚婿,要提權執(zhí)行命令的話,記得在執(zhí)行的命令前加 sudo至朗;或者是通過 sudo su 命令直接用 root 用戶來操作剧浸。
首次登錄 Ubuntu 成功后辛蚊,會提示你重新設置新的密碼真仲,按要求操作即可。
如果后續(xù)還需要調整相關的啟動配置虑凛,可以到 /boot/firmware/ 目錄下進行相關的修改桑谍,然后用 reboot 命令重啟一下 Ubuntu 即可祸挪。
系統(tǒng)默認的主機名為 ubuntu贿条,我通常為了好識別,都改為樹莓派的簡稱:raspi胧辽,使用 vi 工具來編輯一下即可邑商。
sudo vi /etc/hostname
如果你沒有用過 vi 工具摄咆,進入后請按鍵盤上的字母 i 進入 INSERT 模式,才能進行編輯人断,編輯好后按 ESC 退出編輯模式吭从。然后,再按 :wq 來保存并退出 vi含鳞。
掛載移動硬盤
我們插入到樹莓派設備上的 USB 移動硬盤影锈,不像在桌面電腦上那樣會自動識別并掛載,而是需要自己來操作的蝉绷。下面就介紹一下對新買的移動硬盤進行分區(qū)鸭廷、格式化和掛載的操作。
先查看一下磁盤列表:
sudo fdisk -lu
可以看到還沒有掛載的 1TB 的移動硬盤設備 /dev/sda熔吗。
首先我們對磁盤進行分區(qū)。如果你已在其它電腦上對移動硬盤分區(qū)格式化了桅狠,就跳過以下部分讼载,直接看最后的掛載操作。
通常來說中跌,為了方便以后存儲咨堤,做成 1個分區(qū)就行了。執(zhí)行命令漩符,根據(jù)提示輸入:n p 1 再加一路回車一喘,Y,然后 w 保存即可
sudo fdisk /dev/sda
Command (m for help): n
# ...
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
安裝 exfat-utils嗜暴,將分區(qū)格式化為 exfat 格式凸克。
推薦使用 exfat 分區(qū)格式來格式化移動硬盤,這些方便以后 Ubuntu, Windows, macOS 幾大桌面系統(tǒng)都可以使用闷沥。
sudo apt install exfat-utils
sudo mkfs.exfat /dev/sda1
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
接下來萎战,創(chuàng)建掛載目錄,并將移動硬盤在 Ubuntu 系統(tǒng)啟動時就掛載上舆逃。這需要在 /etc/fstab 文件中配置掛載參數(shù)蚂维。
fstab 文件中 mount 硬盤時,盡量使用 UUID颖侄,而不應該使用 /dev/sda1 這樣的驅動文件鸟雏。 因為,每次重啟時览祖,驅動都會更新這個文件對應的硬盤分區(qū)孝鹊。如果你使用 /dev/sda1 這樣的格式,那么在你的樹莓派上再插入優(yōu)盤展蒂、其它移動硬盤等重啟時又活,有可能就會 mount 錯誤的分區(qū)苔咪,就尷尬了。
這里需要注意的是柳骄,因為后面的云盤同步軟件訪問移動硬盤會出現(xiàn)無權限問題团赏,所以需要為當前用戶 ubuntu 設置大一點的權限耐薯。
先查看各個分區(qū)對應的 UUID舔清。
ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 15 Oct 23 16:13 483efb12-d682-4daf-9b34-6e2f774b56f7 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 10 Apr 1 2020 5F8A-B54A -> ../../sda1
lrwxrwxrwx 1 root root 15 Apr 1 2020 B726-57E2 -> ../../mmcblk0p1
可以看到我的 sda1 的 UUID 是 5F8A-B54A。
再查看一下登錄賬號 ubuntu 的信息(用戶 UID 和 組 GID):
cat /etc/passwd
# ...
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
可以看到 UID 和 GID 都是 1000曲初。
那么我就在掛載的時候体谒,使用 UUID,并且權限 777 賦予賬號 ubuntu臼婆。
sudo mkdir -p /volumes/mydisk
sudo su
echo UUID=5F8A-B54A /volumes/mydisk exfat defaults,nls=utf8,umask=000,uid=1000,gid=1000 0 0 >> /etc/fstab
exit
注意
- 其中的 UUID=XXXX-XXXX抒痒,就更換為你自己的。
- 采用 UUID 方式掛載exfat 分區(qū)格式的盤時颁褂,必須安裝 exfat-utils 工具故响。
- umask 配置為 000,代表權限就是 777 了(全部權限)颁独。
刷新一下所有掛載彩届。
sudo mount -a
查看最新的掛載情況:
df -lh
如果想取消啟動時掛載,請 vi 編輯 /etc/fstab 文件誓酒,將相應的配置行刪除即可惨缆。
對于其它需要臨時掛載一下的優(yōu)盤,可以使用以下命令來進行丰捷。
sudo mkdir -p /volumes/udisk
sudo mount -t exfat /dev/sdb1 /volumes/udisk
用完之后 ,取消掛載即可寂汇。
sudo umount /volumes/udisk
配置其它
配置 NTP 網絡時間服務器
為了確保樹莓派的系統(tǒng)時間更準確病往,可使用國內自己的網絡時間服務器。修改相關的配置文件 /etc/systemd/timesyncd.conf 中的 NTP 服務器骄瓣。
NTP=ntp.ntsc.ac.cn cn.ntp.org.cn
配置時區(qū)
設置自己的時區(qū)停巷,以便更方便地查看系統(tǒng)時間:
sudo timedatectl set-timezone 'Asia/Shanghai'
# 查看當前時間,也就是按國內標準時間 CST 顯示了榕栏。
date
配置定時清理緩存
樹莓派的內存資源有限畔勤,系統(tǒng)不會自己清理,我們可每天定時清理一下扒磁。
先創(chuàng)建一個 /root/script/cleancache.sh 腳本文件:
sync && echo 1 > /proc/sys/vm/drop_caches && echo 2 > /proc/sys/vm/drop_caches && echo 3 > /proc/sys/vm/drop_caches
然后創(chuàng)建定時任務:
sudo crontab -e
選擇 1) nano 編輯文檔庆揪,在文件末尾增加下面的任務項:
* 0 * * * /root/script/cleancache.sh
然后按 Ctrl + X 退出并保持文件,再回車即可妨托。
補充1
很多程序的運行都依賴隨機數(shù)生成缸榛,比如 hash吝羞、加密解密等過程。申請隨機數(shù)就會消耗系統(tǒng)的 entropy(熵)内颗,當 entropy 低到一定閾值钧排,程序就運行緩慢,等待隨機數(shù)種子均澳。比如恨溜,日志輸出緩慢,排查 entropy找前,發(fā)現(xiàn)可用值非常低糟袁,低到會阻塞程序運行(通常小于 1000 程序就會卡住)纸厉。
cat /proc/sys/kernel/random/entropy_avail
一般來說系吭,kernel 可以從硬件運行信息中收集噪聲來補充 entropy,但樹莓派畢竟硬件能力有限颗品,無法從硬件層面快速生成 entropy肯尺,可以安裝 haveged 軟件提供模擬算法進行補充:
sudo apt install haveged
sudo systemctl enable haveged
sudo systemctl start haveged
補充2
如果安裝 apt 軟件包時,出現(xiàn) Could not get lock /var/lib/dpkg/lock-frontend躯枢,說明之前使用apt時出現(xiàn)異常则吟,沒有正常關閉,需要手動 kill锄蹂。
先使用ps 和 grep 查找 apt 的 pid氓仲,根據(jù)查詢返回的編號,使用 kill 命令干掉得糜,例如:
ps afx|grep apt
kill 16215
或者敬扛,手動刪除。
sudo rm -rf /var/lib/dpkg/lock-frontend
如果出現(xiàn) Could not get lock /var/lib/dpkg/lock朝抖,類似處理啥箭。
sudo rm -rf /var/lib/dpkg/lock
恭喜您,樹莓派的基礎工作就準備完了治宣,您可以根據(jù)需要繼續(xù)閱讀后續(xù)篇急侥。
我是幾昆蟲,一個追求終身成長的努力者侮邀。感謝您完整閱讀這篇文章坏怪,期待與你的思想相遇。