비글본 블랙 TFTP 부팅하기

이 프로젝트는 비글본 블랙 보드를 TFTP 부팅하는 방법을 서술하였다.

보드랑 PC랑 인터넷 케이블로 연결하고, TFTP로 부팅하는 과정을 서술한다.

PC는 192.168.7.1로 임의로 설정하고 보드는 192.168.7.2로 임의로 설정한다.

비글본 블랙을 TFTP로 전송할 수 있는 이미지와, SD카드에 넣어야 하는 파일들

맨처음으로 할 일은 SD카드로 부팅을 하고, SD카드에서 UBOOT까지 부팅을 한다. 그 이후, uEnv로 환경 변수를 설정하고 커널 이미지랑 DTB(Device Tree Blob)파일등을 업로드 한다.

먼저 서버 PC에서 tftp를 설치해야한다.

sudo apt-get install xinetd tftp tftpd

아래의 디렉토리에 파일을 하나 만들고 코드를 입력한다

sudo vi /etc/xinetd.d/tftp

code

service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /var/lib/tftpboot -s
disable = no
}

아래와 같이 디렉토리를 생성하고 권한을 설정하고, 재시작하자

sudo mkdir /var/lib/tftpboot

sudo chmod -R 777 /var/lib/tftpboot

sudo chown -R nobody /var/lib/tftpboot

sudo /etc/init.d/xinetd restart

비글본 강의에 대한 github 링크는 아래와 같다.

https://github.com/niekiran/EmbeddedLinuxBBB

이제 미리 빌드된 이미지파일을 /var/lib/tftpboot로 복사한다.

uboot에서 입력해야할 내용은 아래와 같다.

setenv serverip 192.168.27.1
setenv ipaddr 192.168.27.2
ping 192.168.27.1

tftpboot 0x82000000 uImage
tftpboot 0x88080000 initramfs
tftpboot 0x88000000 am335x-boneblack.dtb

setenv bootargs console=ttyO0,115200n8 root=/dev/ram0 rw initrd=88080000

bootm 0x82000000 0x88080000 0x88000000

나중에 uEnv.txt파일로 수정해서 자동으로 부팅되게 설정한다면 아래와 같다

console=ttyO0,115200n8
ipaddr=192.168.7.2
serverip=192.168.7.1
loadaddr=0x82000000
fdtaddr=0x88000000
ramfsaddr=0x88080000
loadtftp=tftpboot 0x82000000 uImage; tftpboot 0x88080000 initramfs; tftpboot 0x88000000 am335x-boneblack.dtb
tftpbootargs = bootargs console=${console} root=/dev/ram0 rw initrd=${ramfsaddr}

uenvcmd=setenv autoload no; run loadtftp; run tftpbootargs; bootm ${loadaddr} ${fdtaddr} ${ramfsaddr}

위 과정을 정상적으로 마쳤다면, 비글본 블랙 보드는 TFTP 부팅을 할 수 있을 것이다.

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.