本文更新於2018-08-11
首發於, 文章鏈接 http://www.jianshu.com/p/174844b99716
同步至GitHub: https://github.com/liuqun/linux/wiki
定製樹莓派內核源碼, 通過樹莓派SPI介面載入並訪問TPM2.0設備
所需硬體: X86主機一台, 樹莓派3-B型號開發板一塊, 大容量Micro-SD卡+USB讀卡器一個, 英飛凌TPM2.0評估板一套
所需軟體: 任意版本樹莓派固件(推薦使用 最新版本 ), Ubuntu Linux 虛擬機, gcc-arm-linux-gnueabihf 交叉編譯器, libncurses5(編譯Linux內核配置菜單界面)
取出樹莓派的SD卡, 通過讀卡器插入 Ubuntu 主機或將讀卡器 USB 設備接入 VMware 虛擬機。Ubuntu 默認自動將 U 盤掛載到 /media/$USER/boot 和 /media/$USER/【根文件系統分區】
(以下為覆蓋式安裝, 如果不放心請自行備份SD卡上的原有內核及模塊文件)
選中 5. Interfacing Options --- P4 SPI(啟用/禁用SPI串口)
重啟樹莓派,開機後檢查/dev/tpm0設備文件是否已經載入就緒
2. 樹莓派3b+ 新手入門配置
樹莓派3的內存只有1G,在編譯一些源碼的時候,會出現內存被耗盡,編譯被中斷的情況,比如在編譯vim插件youcomplelteme時。
cd /var
sudo swapoff /var/swap
sudo dd if=/dev/zero of=swap bs=1M count=1024
sudo mkswap /var/swap
sudo swapon /var/swap
swapon -s
free -m
3. 怎麼用樹莓派編譯C語言程序
用樹莓派編譯C語言程序方法:
首先安裝Xshell軟體。
點擊New,新建一個ssh連接。
名字隨便起,這里我寫樹莓派。
ip地址,寫樹莓派的ip,我的樹莓派ip是192.168.1.222。
點擊OK。
這樣就建好ssh鏈接了,雙擊樹莓派。
填寫的用戶名,我是用的默認的pi。
點擊OK。
填寫密碼,默認的是raspberry
連接成功。
在命令行輸入vim test.c。
回車。
這時,無法輸入任何字元,按下i鍵,進入編輯模式,此時test.c會變成INSERT
,這時就可以輸入代碼了。
編輯好代碼。按ESC,進入命令行模式
輸入wq!回車
退出vim程序。
接下來在命令行中輸入gcc test.c -o test
回車,生成可執行文件test
./test即可看到運行結果hello world !
大功告成
4. 增加你的樹莓派GPU顯存
根據樹莓派型號的不同,你的內存可能是512MB或1GB。這些內存要用於Broadcom BCM2837上的中央處理器(CPU)和圖形處理器(GPU),因此要在兩者之間合理分配內存。默認情況下GPU佔64M,剩下全部用於CPU。在256MB和512MB的樹莓派上都是默認64MB顯存,如今內存已經升級為1GB,因此合理分配內存對性能的影響尤為重要。
如果你將你的樹莓派用作文件伺服器或Web伺服器,不需要使用視頻輸出,你可以減少分配給GPU的內存數量(最少為16MB)。如果你用它來瀏覽網頁,看B站甚至運行3D游戲,那麼你應該為GPU分配較大的內存,從而提高GPU性能,使其更好地渲染3D游戲畫面。如果你需要接入攝像頭,則至少要為要為GPU分配128MB顯存。在1GB內存的樹莓派3B上,如果你只是個初學者,那麼我建議為GPU分配256MB或512MB的顯存。
1.登入樹莓派,在終端輸入
sudo raspi-config
回車執行,選擇第七項 7 Advanced Options 進入高級選項菜單
2.選擇 A3 Memory Split
3.使用後退鍵刪除出現的數值,輸入你為GPU分配的顯存值
4.回車確認,退出raspi-config,重啟生效。
5. 樹莓派運行wine時出現錯誤代碼c0000018
樹莓派3B是卡片電腦,內存為1GB,一般運行Linux。Linux兩種主流的內存分配方法2G/2G和3G/1G,樹莓派系統後期優化性能,使用2G/2G。(注:樹莓派內核3.x仍舊採用3G/1G)
Wine提供Windows API,Winehq官網提供的Wine都是兼容3G/1G的Linux內核。這導致Wine在樹莓派3B上運行時會出現內存地址映射,用戶數據空間地址映射失敗。這些錯誤都是wine-preload發出的。
我提供兩種解決方案。
方法一,編譯新的Linux內核:(本地編譯,在樹莓派上操作)
1.更新軟體包:sudo apt-get update
2.安裝git(已經有的可以跳過):sudo apt-get install git
2.同步內核源碼:git clone --depth=1 https://github.com/raspberrypi/linux (注:此代碼只同步.git項目倉庫中的master分支)
然後,你可以睡一覺。真的,掛油管也沒用,下載很慢的。
3.生成配置文件:先進入clone下來的文件夾,然後執行 make bcm2709_defconfig 會在該目錄下生成.config配置文件。
4.執行命令: KERNEL=kernel7
5.修改.config文件:sudo nano .config查找# CONFIG_VMSPLIT_3G is not set 將其改為CONFIG_VMSPLIT_3G=y 再查找 CONFIG_VMSPLIT_2G=y 將其改為 # CONFIG_VMSPLIT_2G is not set 保存
6.執行命令:make -j4 zImage moles dtbs 此時你又可以再睡一覺,大約需要5個小時,注意散熱。
7.安裝:sudo make moles_install
sudo scripts/mkknlimg arch/arm/boot/zImage /boot/kernel3g.img
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
8.執行reboot重啟
方法二,舊版本的wine是沒有預載入器,可能使用舊版本就不會報錯了。
6. 樹莓派的各版本具體參數
樹莓派早期有A和B兩個型號,主要區別:A型:1個USB、無有線網路介面、功率2.5W,500mA、256MB RAM;B型:2個USB、支持有線網路、功率3.5W,700mA、512MB RAM。
2014年7月和11月樹莓派分別推出B+和A+兩個型號 ,主要區別:Model A沒有網路介面,將4個USB埠縮小到1個。另外,相對於Model B來講,Model A內存容量有所縮小,並具備了更小的尺寸設計。Model A可以說是Model B廉價版本。雖說是廉價版本,但新型號Model A也支持同Model B一樣的MicroSD卡讀卡器、40-pin的GPI連接埠、博通BCM2385 ARM11處理器、256MB的內存和HDMI輸出埠。
從配置上來說,model B+使用了和model B相同的BCM2835晶元和512MB內存,但和前代產品相比較,B+版本的功耗更低,介面也更豐富。model B+將通用輸入輸出引腳增加到了40個,USB介面也從B版本的2個增加到了4個,除此之外,model B+的功耗降低了約0.5W到1W,舊款的SD卡插槽被換成了更美觀的推入式microSD卡槽,音頻部分則採用了低噪供電。從外形上來看,USB介面被移到了主板的一邊,復合視頻移到了3.5mm音頻口的位置,此外還增加了四個獨立的安裝孔。 樹莓派A型內置256MB內存,帶一個USB埠,不帶有線網介面。
樹莓派B型內置512MB內存,帶兩個USB埠,帶100M有線網介面。
註:在2012年10月15日前發售的B型機器內存為256MB。 2014年7月,「樹莓派B+」版本發布,依然採用 BCM2835 處理器以及和上一代樹莓派相同的系統軟體。內存也依然是512MB;但是在以下幾處關鍵部件做了改進:
● 更多的 GPIO 針腳,40針!(老版本是26針)
● 更多的USB介面,比老版本多2個,4個!並且對熱插拔和過流保護做了改良。
● 用Micro SD插口替換了老的SD插口。
● 更低的功耗,降低了功耗0.5~1W。
● 音頻優化,音頻電路採用了專用的低噪音電源。
● 更簡潔的外形,B+版本將USB介面和電路板邊沿對齊了、移除AV介面,並在主板上做了4個固定孔,方便固定。 ● CPU 單線程速率為提升 1.5 倍(up by 1.5x)
● Sunspider 跑分提升 4 倍(4x faster)
● 基於 NEON 的多核視頻解碼速率提升 20 倍(20x faster)
● SysBench 整體多線程 CPU 分數為舊版的 6 倍(6x) ● 搭載900MHz 的四核處理器(900MHz quad-core ARM Cortex-A7 CPU ),預計性能6倍於之前的B+版本。
● 1GB LPDDR2 SDRAM,2倍於之前的B+版本。
● 與1代完全兼容。
由於CPU已經升級到 ARM Cortex-A7 系,所以樹莓派2將支持運行全系列的 ARM GNU/Linux 發行版。包括 Ubuntu 甚至 微軟的 Windows 10。 2016年2月,「樹莓派3B版本發布。
● 搭載1.2GHz 的64位四核處理器(ARM Cortex-A53 1.2GHz 64-bit quad-core ARMv8 CPU)。
● 增加802.11 b/g/n無線網卡。
● 增加低功耗藍牙4.1適配器。
● 最大驅動電流增加至2.5A。
7. 樹莓派pico擴內存
擴內存方法:
1、終端輸入 sudo raspi-cinfig 進入系統調試界面
2、選擇1 Expand Filesystem
3、點擊確定即可
4、打開文件查看內存卡容量會有驚喜。
8. 樹莓派修改GPU顯存
樹莓派上的內存是分一些給CPU用,分一些給GPU用的。GPU佔用的默認是64M。 如果我們不用樹莓派的桌面的話,沒必要分那麼多,可以把它降到最低:16M。 反過來,如果你用樹莓派做視頻播放、瀏覽網頁,那麼就要多分一點:最起碼256M或512M。 參考:增加你的樹莓派GPU顯存(raspi-config) 方法一:在SD卡上修改根目錄的配置文件 /boot/config.txt 方法二:運行 raspi-config : Advanced Options -> Memory Split -> 輸入GPU佔用顯存(如16M或512M) 修改後重啟就可以了。9. 樹莓派qbittorrent佔用高
是的,樹莓派qbittorrent最新版本4.40佔用高。
建議降級成4.3.9試試。4.4.0升級了libtorrent 2.0,磁碟延遲達到數百毫秒,最終用他人編譯的lib1.2+qbit4.4.0來替換了lib2.0編譯的程序,才恢復正常