本文更新於2018-08-11
同步至github:
定製樹莓派核心原始碼, 通過樹莓派spi介面載入並訪問tpm2.0裝置
所需硬體: x86主機一台, 樹莓派3-b型號開發板一塊, 大容量micro-sd卡+usb讀卡器乙個, 英飛凌tpm2.0評估板一套
所需軟體: 任意版本樹莓派韌體(推薦使用最新版本), ubuntu linux 虛擬機器, gcc-arm-linux-gnueabihf 交叉編譯器, ncurses.h
sudo apt-get update
sudo apt-get install -y libncurses5-dev
sudo apt-get install -y gcc-arm-linux-gnueabihf binutils-arm-linux-gnueabihf
sudo apt-get install -y git-core
git clone --depth=1 --branch rpi-4.9.y-devel2
cd linux
make arch=arm bcm2709_defconfig
make arch=arm menuconfig
make arch=arm cross_compile=arm-linux-gnueabihf- zimage dtbs modules -j$(nproc)
取出樹莓派的sd卡, 通過讀卡器插入 ubuntu 主機或將讀卡器 usb 裝置接入 vmware 虛擬機器。ubuntu 預設自動將 u 盤掛載到/media/$user/boot
和/media/$user/【根檔案系統分割槽】
ls /media/$user
(以下為覆蓋式安裝, 如果不放心請自行備份sd卡上的原有核心及模組檔案)
scripts/mkknlimg arch/arm/boot/zimage /media/$user/boot/kernel7.img
cp arch/arm/boot/dts/*.dtb /media/$user/boot/
cp arch/arm/boot/dts/overlays/*.dtb* /media/$user/boot/overlays/
sudo make arch=arm cross_compile=arm-linux-gnueabihf- modules_install install_mod_path=/media/$user/【根檔案系統分割槽】
sudo raspi-config
選中5. inte***cing options
---p4 spi(啟用/禁用spi串列埠)
重啟樹莓派,開機後檢查/dev/tpm0裝置檔案是否已經載入就緒
ls -l /dev/tpm0
sudo dmesg | grep tpm
ls /lib/modules/`uname -r`/kernel/drivers/char/tpm
tpm.ko tpm_tis_core.ko tpm_tis_spi.ko
git clone -b 1.x tpm2.0-tss
pushd tpm2.0-tss
wget
tar xjf autoconf-archive-2017.09.28.tar.xz
cp autoconf-archive-2017.09.28/m4/ax_code_coverage.m4 m4/
nproc=4
./bootstrap && ./configure && make -j$(nproc)
make install destdir=$home/my-tpm2-tss-installation-dir
popd
樹莓派 Linux 核心編譯
5.1配置config arch arm cross compile arm linux gnueabihf kernel kernel7 make bcm2709 defconfig 5.2 編譯 arch arm cross compile arm linux gnueabihf kernel ...
樹莓派 Linux 核心驅動編譯
寫好驅動 pin4module.c include include include include include include include include static struct class pin4 class 建立乙個類 static struct device pin4 class...
樹莓派Linux核心配置 編譯
4929703.html驅動 的編譯需要乙個提前編譯好的核心,編譯核心就必須配置,配置的最終目標會生成 config檔案,該檔案指導makefile去把有用東西組織成核心。第一種方式 make menuconfig 一項項配置 arch arm cross compile arm linux gnu...