embeded/raspberry pi2021. 6. 9. 13:48

rpiboot for windows

[링크 : https://github.com/raspberrypi/usbboot/raw/master/win32/rpiboot_setup.exe]

 

Compute Module 4

Ensure the Compute Module is fitted correctly installed on the IO board. It should lie flat on the IO board.
  • Make sure that nRPI_BOOT which is J2 (disable eMMC Boot) on the IO board is set to the 'EN' position.
  • Use a micro USB cable to connect the micro USB slave port J11 on IO board to the host device.
  • Do not power up yet.

[링크 : https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md]

 

CAM0 / DISP0 사용하려면 J6 점퍼를 세로로 두개 달아야 한다는데

SCL1/SDA1이 연결되는걸 봐서는 i2c-1을 점유하게 되는 듯?

CAM1 / DISP1은 i2c-0 인 듯.

[링크 : https://datasheets.raspberrypi.org/cm4io/cm4io-datasheet.pdf]

 

cm4

J2 disable eMMC Boot 점퍼 연결(중앙 산단의 점퍼)

usb slave 와 pc 연결(하단 우측 1/4 지점)

 

rpiboot ready 실행하고

 

cm4 전원을 켜면 이런저런 펌웨어 올리고 USB 메모리 스틱처럼 인식된다.

 

포맷하라는걸 봐서는 ext인가 싶긴한데 나중에 다른 모듈을  리눅스에서 연결은 해봐야 할 듯..

 

그럼 이제 이미지를 굽굽!

 

아니 왜.. uSD 보다 느리죠!?

 

아무튼 굽고 나서 다시 인식되면 boot 파티션이 인식되는데

dt-blob-dualcam.bin을 받아서 dt-blob.bin 으로 저장을 하면 dual CSI/DSI 쓸 준비 끝!

sudo wget https://raw.githubusercontent.com/raspberrypi/documentation/master/hardware/computemodule/dt-blob-dualcam.bin -O /boot/dt-blob.bin

[링크 : https://www.raspberrypi.org/documentation/hardware/computemodule/cmio-camera.md]

 

켜보니 USB가 인식 안된다 (야이 그지 깽깽이들아!!!)

dt-blob.bin을 받으면서 config.txt 가장 끝에 이걸 추가해는 걸 추천!

dtoverlay=dwc2,dr_mode=host

[링크 : https://www.jeffgeerling.com/.../usb-20-ports-not-working-on-compute-module-4-check-your-overlays]

 

눼.. 메뉴얼 정독 안한 제 잘못입니다 ㅠㅠ

[링크 : https://datasheets.raspberrypi.org/cm4io/cm4io-datasheet.pdf]

 

부팅하고 나서 파티션을 보니 /dev/mmcblk0 으로 연결이 똭!

$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0 29.1G  0 disk
├─mmcblk0p1  179:1    0  256M  0 part /boot
└─mmcblk0p2  179:2    0 28.9G  0 part /
mmcblk0boot0 179:32   0    4M  1 disk
mmcblk0boot1 179:64   0    4M  1 disk

 

$ mount | grep mmc
/dev/mmcblk0p2 on / type ext4 (rw,noatime)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)

 

raspi-config 에서 camera on , i2c on 켠 상태면 아래와 같이 설정된다.

USB host를 사용하기 위한 dtoverlay와

CM4 보드에 장착된 RTC 및 팬 컨트롤러를 쓰기 위한 dtparam 설정은 파란색 으로 수동 추가해야 함.

$ cat /boot/config.txt
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
#dtoverlay=vc4-fkms-v3d
dtoverlay=dwc2,dr_mode=host
start_x=1
gpu_mem=128
dtparam=i2c_vc=on

 

 

일단 정상부팅되고 i2c도 다 올라왔나 보는데  i2c-0/1 뿐만 아니라 10/11이 추가되어있다.

pi@raspberrypi:~ $ i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cdetect -y 10
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- 0c -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 2f
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cdetect -y 11
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- 0c -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 2f
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ ls -al /dev/i2c*
crw-rw---- 1 root i2c 89,  0 Jun  9 18:27 /dev/i2c-0
crw-rw---- 1 root i2c 89,  1 Jun  9 18:27 /dev/i2c-1
crw-rw---- 1 root i2c 89, 10 Jun  9 18:27 /dev/i2c-10
crw-rw---- 1 root i2c 89, 11 Jun  9 18:27 /dev/i2c-11

 

+

0x0C 는 누구냐... -_-?

To enable the I2C bus to the RTC you will need dtparam=i2c_vc=on set in config.txt . The RTC then will be on i2c-10 address 0x51 ( 7bit address)
To enable the I2C bus to the fan controller you will need dtparam=i2c_vc=on set in config.txt . The fan controller then will be on i2c-10 address 0x2f ( 7bit address)

[링크 : https://datasheets.raspberrypi.org/cm4io/cm4io-datasheet.pdf]

[링크 : https://datasheets.raspberrypi.org/cm4/cm4-datasheet.pdf]

 

 

+

2021.06.10

리눅스에서 해봄

libusb의 경우 이전에 RTL-SDR 한다고 설치되어 있어서 설치 안하고 된 듯.

2GB RAM / 8GB eMMC 모델인데

마운트 하려고 시도해보니 파티션도 없고 빈 eMMC 인것 같은데

도대체 라즈베리 4에서 전원 넣으면 뜨는 GUI 부트로더는 어디에 들어있는거냐?!?!

$ sudo apt install libusb-1.0-0-dev
$ git clone https://github.com/raspberrypi/usbboot
$ cd usbboot

$ sudo ./rpiboot
Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Second stage boot server
Loading embedded: start4.elf
File read: start4.elf
Second stage boot server done

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb      8:16   1   7.3G  0 disk

$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 7.29 GiB, 7818182656 bytes, 15269888 sectors
Disk model: 0001
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

$ sudo mount /dev/sdb /mnt/
NTFS signature is missing.
Failed to mount '/dev/sdb': 부적절한 인수
The device '/dev/sdb' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

 

+

rpi4는 SPI EEPROM 512KB(4Mbit) 짜리 달려있고 거기에 bootcode.bin이 들어있다고

다만 SD에 있을 경우 내장 bootcode.bin은 무시되는 듯.

[링크 : https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md]

'embeded > raspberry pi' 카테고리의 다른 글

bmp280  (0) 2021.06.09
어?! 지름 망 ㅋㅋㅋ  (0) 2021.06.09
cm4 io board / rpiboot  (2) 2021.06.09
라즈베리 Zero용 CSI FPCB 케이블 도착  (0) 2021.06.08
라즈베리 i2c 센서 작동 확인  (0) 2021.06.05
센서 스펙  (0) 2021.06.05
Posted by 구차니

댓글을 달아 주세요

  1. 이원익

    혹시 CM4모듈을 파실수 있나요?
    플레시 있는타입인지요?
    개발중 보드가 죽어서 급한데 바로 구할수가 없어서요.
    010-5848-7980 입니다

    2021.11.17 13:11 [ ADDR : EDIT/ DEL : REPLY ]
    • 개인것이 아니라 회사꺼라 마음대로 처분할 수 없습니다.
      죄송합니다.

      2021.11.17 14:34 신고 [ ADDR : EDIT/ DEL ]