임베디드 리눅스 실습 환경 설정 (vmware – Ubuntu8.10)
==== Windows XP, VMware, MEP2440 Board ====
타겟 보드에 부트로더 굽기: u-boot:
T32를 통한 u-boot-mep2440.bin이미지 굽기
flash_rebis_atmel.cmm T32스크립트 파일을 T32에서 로드 및 Do 실행
u-boot-mep2440.bin 파일 선택 및 굽기
Trace32 for ARM 을 이용해 u-boot.bin을 NOR 플래시에 굽는다.
- u-boot.bin 위치: CD/images/ u-boot-mep2440.bin
- T32 script 위치: CD/Scripts/ mep2440_nor_write.cmm
타겟 보드를 Reset시켜 TeraTerm으로 부트로더 메시지가 뜨는지 확인한다.
- 자동부트 카운터가 내려가기 전에 부트로더 쉘로 진입한다.
네트워크 설정 및 패키지 설치
1. 사용자 권한을 root 사용자로 변경한다.
root@mdsedu-desktop:/# su
password : mdsedu
2. /etc/network/interface 파일을 수정하여 IP Address를 설정한다.
root@mdsedu-desktop:/# vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.3
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1
3. /etc/resolv.conf 파일을 수정하여 DNS를 추가한다.
root@mdsedu-desktop:/# vim /etc/resolv.conf
nameserver 210.221.215.14
4. 설정한 이더넷 인터페이스를 활성화시킨다.
root@mdsedu-desktop:/# /etc/init.d/networking restart
5. apt-get 패키지를 업데이트하고 SSH, Samba 패키지를 설치한다.
root@mdsedu-desktop:/# apt-get update
root@mdsedu-desktop:/# apt-get install ssh
/etc/init.d/ssh restart 로 시작
root@mdsedu-desktop:/# apt-get install samba smbfs
6. 각종 서버들을 설치한다.
root@mdsedu-desktop:/# apt-get install nfs-kernel-server tftpd tftp dhcp3-server
7. ncurses 라이브러리를 설치한다.
root@mdsedu-desktop:/# apt-get install build-essential
root@mdsedu-desktop:/# apt-get install libncurses5-dev
8. ctags 사용를 위해 설치한다.
root@mdsedu-desktop:/# apt-get install exuberant-ctags
TFTP 설정
9. /etc/inetd.conf 파일에서 tftp 디렉터리명을 /tftpboot로 수정한다.
root@mdsedu-desktop:~# vim /etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
10. /tftpboot 디렉터리를 생성하고, 접근권한을 변경한다.
root@mdsedu-desktop:~# mkdir /tftpboot
root@mdsedu-desktop:~# chmod 777 /tftpboot
11. 데몬을 재시작시킨다.
root@mdsedu-desktop:~# /etc/init.d/openbsd-inetd restart
12. /tftpboot 디렉터리에 파일을 생성하고 아무 내용이나 기록한 후, tftp가 잘 동작하는지 확인한다.
root@mdsedu-desktop:~# vim /tftpboot/aa.txt
root@mdsedu-desktop:~# tftp localhost
tftp> get aa.txt
Received 13 bytes in 0.0 seconds
Note Target 보드와의 통신 테스트도 수행하여 동작을 확인한다.
13. Kernel 이미지 파일을 /tftpboot 디렉터리로 복사한다.
root@mdsedu-desktop:~# cp uImage-mep2440 /tftpboot
NFS 설정
14. Cross Toolchain과 루트 파일 시스템을 /opt 디렉터리에 압축을 해제한다.
root@mdsedu-desktop:/# cd /opt/
root@mdsedu-desktop:/opt# tar xfz 4.2.4-arm-toochain_and_rootfs.tar.gz
15. /etc/exports 파일에nfs로 마운트 할 디렉터리 설정을 추가한다.
root@mdsedu-desktop:~# vim /etc/exports
……
/opt/4.2.4-arm/arm-generic-linux-gnu/sys-root *(rw,sync,no_root_squash,no_all_squash)
16. nfs 데몬을 재시작한다.
root@mdsedu-desktop:~# /etc/init.d/nfs-kernel-server restart
* Stopping NFS kernel daemon
...done.
* Unexporting directories for NFS kernel daemon...
...done.
* Exporting directories for NFS kernel daemon...
exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/opt/rootfs".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
...done.
* Starting NFS kernel daemon
...done.
17. Target 보드에 nfs 부팅 설정을 하고, 보드 부팅을 확인한다.
Cross Toolchain Path 지정
18. /root/.bashrc 파일에 Cross Toolchain path 설정을 추가한다.
root@mdsedu-desktop:~# vim .bashrc
……
# cross toolchain path
export PATH=/opt/4.2.4-arm/bin:$PATH
Note root 계정이 아닌 일반 계정의 경우에는 사용자 계정 디렉터리의 .bashrc 파일에 추가하면 된다. 만약 사용자 계정이 mdsedu 라면 /home/mdsedu/.bashrc 파일을 수정하면 된다.
19. logout 후에 다시 login 하여 path를 적용시킨다.
20. Cross Toolchain 버전 정보를 확인한다.
root@mdsedu-desktop:~# arm-generic-linux-gnu-gcc -v
Figure 2-1 Cross Toolchain Version Information
Samba 설정
21. /etc/samba/smb.conf 파일을 다음과 같이 수정한다. (미리 설정된 파일을 복사해서 이용해도 된다.)
root@mdsedu-desktop:~# vim /etc/samba/smb.conf
……
workgroup = WORKGROUP 네트워크 그룹명
……
guest ok = yes
guest account = root
……
[root]
comment = root
path = /
writable = yes
browseable = yes
guest ok = yes
……
22. samba 서비스를 재시작 시킨다.
root@mdsedu-desktop:~# service samba restart
* Stopping Samba daemons
...done.
* Starting Samba daemons
...done.
23. Windows 탐색기에서 samba 서버를 연결한다. (도구 네트워크 드라이브 연결)
Figure 2-2 Connect of Samba Server
24. Windows 탐색기에서 samba 서버 연결을 확인한다.
Figure 2-3 Connected of Samba Server
□ u-boot의 설정
1) u-boot를 이용한 다운로드
printenv 환경확인
set ipaddr 192.168.10.4 타겟 보드의 IP 설정
set serverip 192.168.10.2 호스트 IP의 설정
set gatewayip 192.168.10.1 gateway IP 주소
set netmask 255.255.255.0 Netmask 값
set bootcmd 'tftpboot 32000000 uImage-mep2440; bootm 32000000' //go 와 동일한 의미
set bootargs 'root=/dev/nfs rw nfsroot=192.168.10.2:/opt/4.2.4-arm/arm-generic-linux-gnu/sys-root ip=192.168.10.4:192.168.10.2:192.168.0.1:255.255.255.0::eth0:off netmask=255.255.255.0 mem=49M console=ttySAC0,115200n81' u-boot 매개변수의 인자 전달하기
save Flash에 환경설정 기록하기
위의 u-boot 환경설정 후 타겟 보드를 껏다 켜면 다운로드가 된다.
매개변수 쓰기: set bootargs 'root=/dev/nfs rw nfsroot=호스트IP:NFS로사용할_루트_디렉토리 ip=타겟IP:호스트IP:게이트웨이IP:넷마스크::eth0:off netmask=넷마스크 mem =49M console=시리얼디바이스명, 115200n81'
vmware가 bridged로 설정되어 있는 경우 같은 네트워크ID 내에 있어야 한다.
2) hello world 프로그램 컴파일 해보기
Host Shell --
cd /work/rootfs_nfs/project ///opt/4.2.4-arm/arm-generic-linux-gnu/sys-root ls
vi hello.c
arm-linux-gcc hello.c –o hello_arm
Target Shell --
cd /project
./hello_arm
□ 부트로더 및 커널 컴파일
임베디드 시스템 개발 시 필요한 경우 부트로더나 커널을 수정하여 직접 컴파일 하도록 한다.
3) 커널 소스 및 u-boot 소스 풀기
# tar -xzf /work/linux-2.6.21.st_fin.tar.gz
# tar -xzf /work/u-boot-1.3.3.st_fin.tar.gz
압축 해제 후 커널 컴파일 및 u-boot 등을 수정할 수 있다.
4) u-boot 1.3.3 컴파일
BSP로 제공된 u-boot 1.3.3버전은 arm-generic-linux-gnu-gcc 4.2.4버전에서 컴파일 된다.
NOR flash 부팅으로 컴파일 하기
make distclean
make mep2440_config Makefile 규칙
make
u-boot 헤더를 커널 이미지에 붙이려면 컴파일 후 /tools/mkimage를 /usr/bin에 복사해 놓는다.
- uImage 를 만들기 위해 필요 하다.
cp tools/mkimage /usr/bin
5) 커널 컴파일
BSP로 제공된 포팅되어 미리 준비된 rebis용 커널을 사용할 수 있다.
cd /work/linux-2.6.21-mep2440 // linux-2.6.21.st_fin
make mep2440_defconfig (make menuconfig 관련 메뉴 설정 )
make uImage 커널이 컴파일 되어 mkimage 유틸리티에 의해 이미지에 u-boot 헤더를 포함한다.
cp ./arch/arm/boot/uImage /tftpboot/uImage-new 새 버전의 커널을 tftpboot 디렉터리에 복사
이후 부트커맨드를 수정하여 새 커널을 테스트 할 수 있다.
Target u-boot Prompt -----------
set bootcmd 'tftp 32000000 uImage-new; bootm 32000000'
피드 구독하기:
댓글 (Atom)
UPBIT is a South Korean company, and people died of suicide cause of coin investment.
UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...
-
연휴 마지막날 아침... 산책을 하다 한장 찍어보았다. 인생도 마찬가지로 길의 끝을 모른체 선택을 해야하는 경우가 발생한다. 나중에 그 기준이 바뀔수도 있지만. 지금 기준은 많은 사람이 함께 갈 수 있는 길을 선택하고 싶다.
-
□ native modifier 는 자바가 아닌 다른 언어로 작성된 코드를 자바에서 사용하기 위한 것 □ transient modifier 는 객체가 직렬 화되는 과정에서 해당 필드가 저장되지 않아야 한다는 것을 알리기 위해 사용 ...
-
제로보드 세팅. sudo apt-get install apache2 mysql-server libapache2-mod-php5 phpmyadmin ssh 패키지를 이용한 소프트웨어 설치 - APM세팅 및 ssh 설치 ...
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.