DSI CSI
配置文件
CSI 和 DSI默認是關閉的,使用攝像頭和DSI的時候會占用I2C-10、I2C-11、I2C-0 三個I2C設備
開機執行如下:
wget https://www.waveshare.net/w/upload/7/75/CM4_dt_blob_Source.zip
unzip -o CM4_dt_blob_Source.zip -d ./CM4_dt_blob_Source
sudo chmod 777 -R CM4_dt_blob_Source
cd CM4_dt_blob_Source/ #如果使用兩個攝像頭和DSI0 執行 sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts #如果使用兩個攝像頭和DSI1 執行 sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp1-double_cam.dts #在使用任意DSI時,HDMI1沒有圖像輸出,哪怕你沒有連接DSI屏幕只要編譯的對應的文件,那HDMI1就沒有輸出了 #如果需要恢復,刪除對應的dt-blob.bin 即可: sudo rm -rf /boot/dt-blob.bin #執行完畢 關閉電源 重啟CM4
錄播測試
再連接攝像頭和DSI屏幕:
1: 確保斷電狀態下連接
2: 連接電源
3: 等待幾秒后屏幕啟動
4: 如果無法啟動,檢查/boot/dt-blob.bin 是否存在,如果存在再次重啟即可。
舊版本(Buster)
攝像頭需要運行raspi-config,選擇Interfacing Options->Camera->Yes->Finish-Yes,reboot系統,打開enable camera,然后重啟即可保存修改。
測試樹莓派攝像頭
查看接入的第一個攝像頭畫面:
sudo raspivid -t 0 -cs 0
查看接入的第二個攝像頭畫面:
sudo raspivid -t 0 -cs 1
新版本(Bullseye)
如果使用最新的樹莓派OS(Bullseye):
#新系統使用雙攝像頭 #在config.txt中移除camera_auto_detect=1 #camera_auto_detect=1 #添加 dtoverlay=imx219,cam1
dtoverlay=imx219,cam0 #其中imx219是攝像頭傳感器型號,還有支持其他傳感器 dtoverlay=ov5647,cam0
dtoverlay=imx219,cam0
dtoverlay=ov9281,cam0
dtoverlay=imx477,cam0
dtoverlay=imx519,cam0 #然后重啟 reboot #打開攝像頭 libcamera-hello -t 0 或者
libcamera-hello #其他部分指令: #檢查攝像頭是否被檢測到 libcamera-hello --list-cameras #打開對應的攝像頭,預覽5秒 libcamera-hello --camera 1 libcamera-hello --camera 0 #拍攝照片 libcamera-jpeg -o test.jpg #拍攝視頻 libcamera-vid -t 10000 -o test.h264 #可以添加 --camera 來指定攝像頭 #-t <duration> 選項允許用戶選擇窗口顯示多長時間,單位毫秒
更多指令點擊我
- 注意:如果使用 DSI 接口顯示將會有一個HDMI是禁用的,即使只是編譯相應的文件而不連接 DSI 屏幕。
- 兩個HDMI任意連接一個是可以輸出圖像,不限于那個HDMI,如果連接的兩個HDMI屏幕那么只有HDMI0有圖像輸出
- 如果要啟用 兩個HDMI,請使用以下命令刪除 dt-blob.bin 文件:
sudo rm -rf /boot/dt-blob.bin
- 然后重啟即可