當前位置:首頁 » 網頁前端 » 樹莓派4b腳本構建
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

樹莓派4b腳本構建

發布時間: 2023-07-04 06:20:18

A. 樹莓派4b-卸載python2.7,設置python3.7為默認

在樹莓派目錄(/usr/local/lib)可見3個目錄(pypy2.7、python2.7、python3.7),
卸載python2.7和pypy後橘雀旦,目錄(pypy2.7、python2.7)會同時被刪除

1、樹莓派4b-卸載python2.7,設置python3.7為默認
https://www.sibida.vip/article/98119
https://blog.csdn.net/weixin_43897032/article/details/115982781

2、卸載pypy及其依賴

pypy是一種python的解釋器,比標準的cPython要快很多。圓擾但是並不支持所有的cPython庫,有一些特殊的包用不了
我的項目歲伍對性能要求不高,所以使用python自帶的cPython解析器即可。

B. 使用樹莓派打造一個私人NAS+博客(2)——硬體篇

title: 樹莓派NAS_硬體篇
date: 2021-01-27 8:36:00
tags:
- 樹莓派
- NAS
- 硬體
blog_home: http://www.smcbaq.top:8081/

我的計劃是使用樹莓派搭建一個 個人頌拿野博客+NAS 的組合,一開始使用的是 樹莓派3b+ ,已經做到了搭建基於 hexo 的個人博客,但是之前因為條件原因在電源,接線等問題上做出了各種妥協,最後導致有一定的問題,這次我重新使用 樹莓派4b 部署一次,並且記錄下這次的搭建過程留個記錄,如果有人發現了這個系列文章,有興趣可以試試,畢竟我也不知道這野喊個可能能有多少人看。

這篇文章承接 上文 的網路篇,主要描述硬體的選取和理由,方便閱讀者摸清自己的需求,並且排除一些硬體上的坑點。

首先列舉一些我的需求:

可以看到基本上還是很簡單的,但是這就牽扯到兩個細節:

由於我家內網里埋的是1000M的超五類線(雖然不是萬兆但還是感謝爸媽當時裝修有相當的前瞻性),所以對於這個 NAS 我列出了如下清單:

之前由於造樹莓派3b+被坑過一次這次我選擇格外小心,但是還是列舉出坑點:

其實組裝就是按照想要的組裝就好了,要求不高只接線都行,但是我還是買了微積木(最近很火的用來diy便攜顯示器的那種敏態)來裝一個我覺得還行的外殼:

這個積木是8mm的,可以支持卡一半的位置,也就是精度4mm,挺靈活的,充分利用這個性質

先做硬碟架的殼:

然後做樹莓派的殼:

然後做整體的殼,先底座,再前蓋,最後支撐,由於3000個有點少就支撐少做點,記得留出樹莓派的介面位置:

最後把樹莓派和路由器接好就完事了。

之後還可以在前面加個開關講究點,但是由於這個要長期在線就暫時這樣吧。

最後提一嘴本文 靈感來源 ,重點感謝!!!

C. 樹莓派wireshark(tshark)抓包實驗

    本文在樹莓派4b上測試wireshark網路抓包。安裝圖形界面wireshark,sudo apt-get install wireshark 。安裝完成後後,在圖形界面沒有顯示介面,比如筆者的waln0就沒有顯示,在命令行輸入mpcap -h 查看具體的命令格式,mp -i wlan0實時捕捉時顯示沒有許可權,這個需要sudo chmod +x  /usr/bin/mpcap  添加許可權即可。當然,圖形界面和windows一樣的,抓包以及查看數據包沒啥好說的,重點說說wireshark命令行工具tshark。因為wireshark軟體不能在命令行從文件分析數據包,只能抓包。生成的記錄文件在shell命令行more命令打開後亂碼狀態。

    筆者在刪除wireshark軟體時遇到一個問題,卸載並清除配置apt-get remove --purge wireshark後顯示正在刪除,可是發現wireshark軟體依然存在,也可以正常拉起進程,後來發現是wireshark依賴的很多軟體包沒有刪除,apt-get autoremove wireshark:卸載軟體及其依賴的安裝,解決問題。

    查找tshark的源是有的,console version。sudo apt-get install tshark。安裝後一樣的,需要配置許可權。

    tshark -h可查看命令幫助信息。  那就來測試一下,tshark -i wlan0直接在終端上顯示捕捉到的網路包列表

。 tshark -i wlan0 -w capture.pcap 用網卡wlan0捕捉數據包寫入capture.pcap文件。

tshark -i wlan0 -r capture.pcap,讀取capture.pcap文件內容。

D. 樹莓派設置開機啟動腳本

由於北郵校內網需要Drcom撥號,每次用curl命令很麻煩,所以開始了這次寫開機啟動腳本的過程。

init 進程讀取 /etc/inittab文件中的信息,並進入預設的運行級別。

Debian中的運行級別

查看系統當前運行級別使用 runlevel 命令,通常情況下 /etc/rcS.d/目錄下的啟動腳本首先被執行,然後是/etc/rcN.d/目錄,N為 /etc/inittab 中的initdefault。
/etc/rc2.d 中的部分文件如下:

有K開頭的文件,有S開頭的文件,K的意思是Kill,S為Start。K和S後面緊跟著的數字就是關閉和啟動的順序,數字越大關閉或啟動順序越靠後。
將自定義腳本放在 /etc/init.d 目錄下面,就可以使用 service yourshellname start|stop 當然需要腳本中寫好start,stop功能。但是不能開機自啟動。

使用update-rc.d函數將腳本設置為開機自啟動。
1)設置腳本啟動和關閉依賴$remote_fs,$syslog,並且啟動運行級別為2-5,關閉運行級別為0,1,6。
update-rc.d foobar defaults
上面一條命令就會在/etc/rc2.d rc3.d rc4.d rc5.d中創建軟鏈接 S03drcom -> ../init.d/drcom ,在rc0.d rc1.d rc6.d中創建軟鏈接 K01drcom -> ../init.d/drcom 。
2)設置腳本啟動關閉都為順序20,並且啟動運行級別為2-5,關閉運行級別為0,1,6。
update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 .
同理。

3)移除連接。
update-rc.d yourshellname remove

參考文獻:
[1] 開機自動執行腳本 與 update-rc.d
[2] 樹莓派開機自啟動腳本製作
[3] Debian init 開機啟動管理
[4] 樹莓派開機啟動程序及啟動腳本的製作

E. 樹莓派配置文件 config.txt - HDMI 熱插拔

關鍵詞:樹莓派、找不到config.txt、顯示器、HDMI熱插拔、hdmi_force_hotplug
如果移動端訪問不佳,請訪問–> GithubPage 版

快速預覽:

新到的樹莓派4B,安裝了帶桌面的 Ubuntu 系統,前期為了方便,通過 HDMI 線外接了顯示器,方便配置系統。但是配置完畢並拔掉顯示器之後發現一個問題:重啟樹莓派後,如果沒有外接顯示器,則無法正常進入系統,定位到是 HDMI 檢測機制的問題,它默認需要插上顯示器才能正常啟動。

查到資料需要開啟樹莓派的 HDMI 熱插拔才能不依賴外接顯示器。
於是需要我們:

修改 config.txt 有2大類方法

下面說下方法2:

通常 config.txt 的路徑是 /boot/config.txt ,但是 如果找不到 ,需要查看下磁碟分區,找到 啟動分區 所在的目錄。

添加如下2行到 config.txt 然後重啟樹莓派即可

參考資料:

如果有什麼建議或者問題可以隨時聯系我,共同探討學習:

F. 樹莓派Linux啟動過程簡介

    昨天在寫關於linux設置腳本開機啟動的文章時,有個疑問就是開機時怎麼確認運行級別,然後遍歷執行/etc/rcN.d/目錄下的所有服務程序。帶著疑問, 在前人的基礎上 學習總結一下linux系統初始化的工作的內容,現在樹莓派4B上展示出來。

1、載入內核

    當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬碟)來啟動。旅山操作系統接管硬體以後,首先讀入 /boot 目錄下的內核文件。樹莓派4B的內核是Raspbian GNU/Linux 10 (buster),基於Debian。

2、初始化進程init

    內核文件載入以後,運行第一個程序init,它的作用是初始化系統環境。init位於目錄/sbin,進程號PID為1,即1號進程,其他所有進程都由init衍生,是init的子進程。

    同時還有個0號進程,idle進程,在系統初始化時由內核kernel自身從無到有創建,通過調用kernel_thread創建一個內核線程去執行init函數,0號進程創建1號進程。

3、運行級別

    具體介紹請參考筆者的文章-Linux運行級別簡介  ,但是開機時是怎麼確定運行級別的呢?

    init進程首先讀取文件 /etc/inittab,它是運行級別的設置文件。但是各個發行版不太一樣,init的仔稿配置文件也不一樣,有可能使用/etc/event.d裡面的配置文件,最新版的改用為/etc/init目錄。

4、開機啟動程序

    具體詳情請參考文章-linux中/etc/init.d設置開機啟動 ,確定運行級別後,執行rcN.d目錄下的文件,這些鏈接文件是連接到init.d目錄下的程序。init進程逐一載入開機啟動程序,其實就是運行這個目錄里的啟動腳本。

    比如運行級別為5(圖形化多用戶)時啟動的程序:

5、用戶登錄

    開機啟動程序載入完畢以後用戶登錄。用戶的登錄方式有三種:

    命令行登錄:init進程調用getty程序。

    ssh登錄:init進程調用sshd程序。

    圖形界面登錄:init進程調用顯示管理器,Gnome圖形界面對應的顯示管理器為gdm。

6 、login shell

    默認shell時bash,命令行界面,讓念鎮孝用戶可以直接與操作系統對話。讀取環境變數,具體請參考筆者文章-Linux環境變數的設置。