라즈베리파이를 이용하여 소프트웨어를 개발할 때 해당 프로그램에서 사용하는 하드웨어 설정들을 부팅때 마다 적용하고 싶을 때가 있다.
AIoT 보드에서는 2가지 또는 3가지 항목을 포함하면 편리하게 사용할 수 있다.
필자는 AIoT 보드를 설정할 때 I2C Expander (0x73)을 Enable 하여 하위의 채널에 연결된 I2C 장치를 부팅되면서
설정되도록 하기 위해서 그리고 CAN 장치를 활성화 하는 목적으로 설정하였다.
can은 ip 명령을 이용하여 등록하고, i2c는 i2cset을 이용하여 설정한다.
따라서 해당 바이너리가 어디에 있는지 부터 확인한다.
whereis 명령으로 어디에 실행파일이 있는지 다음과 같이 확인할 수 있다.
1. 실행파일 위치 확인
pi@raspberrypi:~ $ whereis ip ip: /usr/bin/ip /usr/sbin/ip /usr/share/man/man7/ip.7.gz /usr/share/man/man8/ip.8.gz pi@raspberrypi:~ $ whereis i2cset i2cset: /usr/sbin/i2cset /usr/share/man/man8/i2cset.8.gz pi@raspberrypi:~ $ |
적용할 바이너리가 어디있는지 확인했다면, 스크립트를 수정한다. rc.local 파일을 확인해보면 root 사용자가 생성한
파일임을 확인할 수 있다. 따라서 sudo 명령을 통해 nano 또는 vim 에디터를 이용한다.
2. rc.local 파일 정보확인
pi@raspberrypi:~ $ ls -al /etc/rc.local -rwxr-xr-x 1 root root 420 Nov 21 23:35 /etc/rc.local pi@raspberrypi:~ $ vim /etc/rc.local |
3. 스크립트 내용 추가
다음과 같이 내용을 입력하고 저장하고 나온다음 리부팅한다.
# Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # I2C Expansion chip enable for AIoT KIT sudo /usr/sbin/i2cset -y 1 0x73 0xf # CAN port enable for AIoT KIT sudo /usr/bin/ip link set can0 up type can bitrate 1000000 exit 0 |
4. 결과 확인
정상적으로 설정되었는지 확인하기 위해서 AIoT키트에서 i2cdetect -y 1을 입력하여 I2C 채널에 연결된 장치 리스트를 확인한다. 그리고 ifconfig 명을 이용하여 can 장치가 표시되는지 확인하자. 아래의 그림과 같이 표시되었다면 이제 편하게 장치를 사용하면된다.
rc.local 수정 끝.
최근댓글