2013년 8월 6일 화요일

unexpected error while launching program Error while running ps7_init method:



xilinx SDK를 사용 및 jtag을 이용한 프로그램을 보드에 올리려는 중 다음과 같은 에러가 발생됐다.
상기 에러의 발생 원인은 다양한 것이 있지만 본인이 해결했던 방법 한가지를 적을까 한다.
보통 다른 사람이 해놓은 프로젝트를 들고와서 쓰다보면 경로의 문제가 많이 발생하게 된다.
이 문제 또한 경로의 문제였다. 즉 ps7_init.tcl파일의 경로가 잘못되어 있었기에 문제가 발생했던 것이다.
이떄는 다음과 같이 문제를 해결해보면 된다.

1. project explorer->해당프로젝트 (오른쪽 클릭)->Run As->RunConfigurations를 누르면 다음과 같은 화면이 나온다.


2. 그림의 오른쪽 화면을 보면 Device Initialization탭이 있다. 클릭!
이제 화면을 유심히 보면 Path to initialization TCL file 이라고 적히고 아래에 경로가 적혀있는것을 볼 수 있을 것이다.
자세히 보면 현재 프로젝트의 경로와 틀린 점을 발견할 수 있을것이다.
이 경로를 현재 프로젝트의 tcl파일이 있는 경로로 바꿔주면 된다.


2013년 7월 25일 목요일

The system is running in low-graphics mode 에러

virtualbox를 사용해서 ubuntu linux를 설치하면 제목과 같은 오류가 발생하는 문제에 봉착하는 경우가 종종 있다.
이때 해결책에 대해 언급해본다.

먼저 당면한 문제의 이미지에서 ctrl + art + F1을 누른다.
그러면 terminal 창에 로그인 화면이 뜬다.
로그인 후
다음과 같이 치면 파일 설치가 되고.
그 후 리붓을 시키면 된다.

$sudo apt-get install fglrx
$sudo reboot


2013년 7월 14일 일요일

Xilinx ZedBoard u-boot를 해보자 2탄

앞에서 각각의 필요한 파일들에 대한 빌드를 했었다.
이번에는 hostpc에서 필요한 셋팅을 해본다.

1. tftp셋팅.
    /etc/xinetd.d/ 폴더로 이동한다.
    terminal 입력: vim tftp
    아래의 내용을 추가해서 적어넣는다.

     Service tftp
{
           socket_type = dgram
           protocol = udp
           wait = yes
           user = root
           server = /usr/sbin/in.tftpd
           server_args = -s /tftpboot
           disable = no
     }

       terminal 입력: mkdir /tftpboot

        tftp에 사용할 파일들이 들어갈 폴더를 만든다.
        이전에 빌드해 놓은 파일들을 이 폴더에 저장한다.

       terminal 입력: /etc/init.d/xinetd restart

2. dhcp 셋팅
     /etc/dhcp3폴더로 이동.
     terminal 입력: vim dhcpd.conf
     아래 내용 추가.

subnet (해당아이피에따라) netmask (해당하는것에 따라) {
           host targetboard {
                     fixed-address (해당 아이피);
                     hardware ethernet (해당 mac주소);
                     option root-path “/full/path/to/rfs”;
                     filename “해당파일이름”;
           }
}


terminal 입력: service dhcp3-server restart





본 정보는 부정확하다. 수정한 내용에 대해서 추후 올리도록 하겠따.

Xilinx ZedBoard u-boot를 해보자

xilinx zedboard를 이용한 u-boot를 해보도록 한다.
기존의 부팅들은 모두 sd카드를 이용했었는데 부족한 실력이지만 많은 삽질을 통해
u-boot를 성공시켰다.
u-boot를 하는데 필요했던 것들 그리고 방법에 대해 개략적으로 적어본다.

기본적으로 필요한 것들은 다음과 같다.

1. ubuntu 10.04.
2. ISE webpack 14.4
3. arm-xilinx-linux-gnueabi 크로스 컴파일러
4. tftp, dhcp, nfs

u-boot를 위해 본인이 참조한 사이트는 아래와 같다.
http://www.wiki.xilinx.com/Fetch+Sources
여기에보면 각각의 단계별로 페이지가 있으니 자세한것은 참조하면 된다.


먼저 uImage를 만들기 위해 uboot-mkimage를 설치한다.
이것이 없으면 추후 커널을 uImage로 만들때 에러가 뜨더라.

1. linux-kernel 다운받기.
  terminal 입력: git clone git://github.com/Xilinx/linux-xlnx.git

2. uImage 빌드.
  terminal 입력: make ARCH=arm Xilinx_zynq_defconfig
  terminal 입력: make ARCH=arm menuconfig
   -> 뭐하는 곳인지는 알것이라 생각.
  terminal 입력: make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage

3. u-boot 다운.
   terminal 입력: git clone git://github.com/Xilinx/u-boot-xlnx.git

4. u-boot 빌드.
   terminal 입력: make zynq_zed_config
    (만약 zc702, zc706보드를 쓴다면 config폴더 내에서 해당하는것을 찾아 적으면 된다.)
   terminal 입력: make

생성된 u-boot파일을 이용해 BOOT.bin파일을 만들어야 한다. 이것은 xilinx프로그램을 사용해서fsbl파일 만들기의 방법을 적용하면 됨.

5. devicetree 빌드
   우선 linux-kernel 폴더로 이동.
    terminal 입력: make ARCH=arm dtbs
    terminal 입력: make ARCH=arm <devicetree name>.dtb
     (경로: /linux-xlnx/arch/arm/boot/dts/<devicetree name>.dtb

6. RamDisk빌드.
    상위 URL에서 ramdisk 쪽으로 들어가면 미리 빌드된 이미지가 있다.
    이것을 사용하자.
        http://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs
     이곳에서 다운받고 리눅스 상에 폴더하나 만들어서 넣어놓자.
     terminal 입력: mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz

여기까지가 필요한 파일들의 빌드상황이다.



당 내용은 부정확하다. 수정된 내용에대해 추후 업데이트하는것으로 하겠다.


2013년 6월 18일 화요일

ncurses 설치

zedboard를 위한 petalinux를 설치하려니 또 ncurses를 설치하라고 나왔다.
이에 ncurses가 뭔지 위키를 봐봤다.
ncurses는 프로그래머가 텍스트 사용자 인터페이스를 터미널 독립방식으로 기록할 수 있도록 API를 제공하는 프로그래밍 라이브러리. 라고 위키피디아 한글판에 나와있다.
아래는 해당 URL
http://http://ko.wikipedia.org/wiki/Ncurses

ncurses의 설치는 간단하다.
처음 5.9버전을 설치하려 했더니 이런저런 에러가 계속 발생되 그냥 5.7로 설치.

먼저 터미널을 열고
$ sudo wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz
이것은 ftp에서 ncurses-5.7.tar.gz를 다운받으라는 명령.
$ sudo tar zxf ncurses-5.7.tar.gz
압축풀기.
$ cd ncurses-5.7
$ sudo ./configure
$ sudo make
$ sudo make install

이러면 설치 완료.

2014.01.16 추가.
요래요래 해도 되더라.
1. sudo apt-get install build-essential
2. sudo apt-get install libncurses5-dev

참고합시다.


Zlib 설치

Zlib는 C로 작성된 데이터 압축라이브러리.
ZedBoard의 petalinux를 설치하려면 필요하다.
Zlib를 설치하기 위해서는 gcc & make가 필요.
$ sudo apt-get install gcc
$ sudo apt-get install make

단, Ubuntu의 경우 이미 gcc & make가 설치되어 있으므로 설치할 필요없음.
명령 실행해도 이미 최신의 버전이 설치되어 있다고 나옴.

Zlib 설치 과정.
다음의 URL에서 다운받기.
URL: http://zlib.net
필자는 파폭을 이용해 다운받았더니 /home/유저명/Downloads 폴더에 있더군.

Terminal 에서
$ cd /home/유저명/Downloads
$ cp zlib-1.2.8.tar.gz /작업디렉토리명/
$ cd /작업디렉토리명/
$ tar zxf zlib-1.2.8.tar.gz
$ cd zlib-1.2.8
$ sudo ./configure -s
$ sudo make
$ sudo ./configure
$ sudo make test
이것을 하면 test결과가 터미널 창에 나옴.
$ sudo make install
인스톨 됨.
이제 기존 파일 대체하기.
$ ls -al libz.so*
$ cp libz.so* /usr/local/lib
$ cd /usr/local/lib
$ ls -al libz.so*
$ sudo rm -rf libz.so
$ sudo rm -rf libz.so.1
$ sudo ln -s libz.so.1.2.8 libz.so
$ sudo ln -s libz.so.1.2.8 libz.so.1
기존의 파일을 새로운 zlib파일로 대체.
이제 설정정보를 추가한다.
$ cd /etc
$ sudo vim ld.so.conf

/usr/local/lib 를 삽입

#sudo ldconfig

ZedBoard Linux HostPC 연결.

ZedBoard의 Linux HostPC와 연결을 해보자.

우선 본인은 ISE Webpack과 vivado를 설치해 놓은 후 진행했다.
아마도 상위의 것들을 설치하지 않아도 ZedBoard에 SD카드를 꽂고 연결 한다면 될것으로 생각된다.

1. Ubuntu 10.04 설치.
2. minicom 설치.
3. ZedBoard연결.
  1) usb to uart는 Cypress의 CY7C64225 칩을 사용하는데 윈도우 같은경우 설치파일로 드라이버를 설치해줘야하지만 Linux에서는 특별히 설치할 필요를 못 느낌.
  2) SD카드 꽂기.
  3) 전원연결 켜기.

4. terminal 열기.
  1) $ dmesg | grep tty 입력
     상위 명령을 입력하면 보드의 usb to uart가 연결된 것을 볼 수 있다.

  2) $ minicom -D /dev/ttyACM0 -b 115200 -8 -o
     상위 명령으로 미니컴을 실행시킨다.
     아래 그림과 같이 zynq> 대기화면이 나오면 된다.


5. 이렇게까지만 해도 일단 host linux와 zedboard의 연결은 된 것임.



VirtualBox 화면 크기조정 및 hostkey

VirtualBox를 쓰다보면 호스트키(hostkey)의 사용이 간혹 필요할때가 있다.
화면 설정이나 등등에 이때 호스트키어쩌고저쩌고 내용이 나오긴 하는데
간혹 노트북을 쓰다보면 안먹을 때가 있다.
이런때는 호스트키를 F가 붙은 펑션키 같은것으로 바꾸고 쓰면 편하다.
다음은 호스트키를 사용 조합해 쓰는 기능을 간략히 나타낸다.

1. 전체화면모드: hostkey + F
2. 심리스모드: hostkey + L
3. 크기조정보드: hostkey + C
4. 게스트 디스플레이 크기 자동조절: hostkey + G
5. 창 크기조정: hostkey + A

그럼 hostkey는 어떻게 설정하고 변경하는가?
아래 그림을 보도록.
빨간 두번째 그림 빨간 박스친곳에 Right Control이라 적힌부분을 바꾸면 된다.



2013년 6월 17일 월요일

VirtualBox 공유폴더설정

VirtualBox Ubuntu 사용 공유폴더 설정에 대해 적어본다.
공유폴더 설정을 위해서는 먼저 게스트 확장이 필요하다.

1. 그림과 같이 Ubuntu가 실행되는 창에서 게스트 확장을 누른다.


    게스트 확장을 누른 후 터미널에 들어가서 다음과같이 치면된다.
    
    $ cd /
    $ cd media
    $ cd 게스트확장을 눌렀을때 생긴 CD명
    $ ./VBoxLinuxAdditions.run 


2.Window 상에서 공유폴더로 쓸 폴더를 하나 생성한다.
  ex) win7 내컴퓨터-> 새로만들기->새폴더 (name: Shared)

3. VirtualBox 장치->공유폴더 선택.
4. 머신폴더에서 경로설정 이때 자동마운트, 항상사용하기 체크.
    * 폴더 이름은 자동으로 생성된다.

5. Ubuntu 터미널 실행.
6. 공유폴더에 엮을 폴더하나 생성.
   ex) 본인의 경우 /mnt/Shared폴더를 사용.
         $mkdir /mnt/Shared

7. 폴더마운트
   $sudo mount -t vboxsf Share( 이곳은 2번에서 자동으로 설정된 이름을 쓴다.) /mnt/Shared (엮어줄 폴더경로를 쓴다.)

8. 간혹 vboxsf가 없다는 오류가 발생되는데 이때는 vbox Addtion을 설치하면 된다.

Xilinx Zynq ZedBoard Linux 개발환경 셋팅

참조 URL: http://www.wiki.xilinx.com/Getting+Started

1. PetaLinux
   PetaLinux에 포함된 것 들.
    1) pre-configured binary bootable images.
    2) fully customizable Linux for the Xilinx device.
    3) tools that automate the configuration, build and deployment process.
 
   PetaLinux 제공.
    1) Quick-start LInux images.
    2) Board Support Packages.
    3) Host Development Tools.

2. PetaLinux 다운.
    1) http://www.xilinx.com/support/download/index.htm 에서 다운.
    2) ISE Design Tools 버전 선택 및 다운받을 파일 선택.
      (1) PetaLinux 12.12 installation archive for Zynq, Microblaze and PPC440.
      (2) PetaLinux 12.12 Board Support Package for Avnet ZedBoard.

3. PetaLinux 최소 사양.
    1) 2GB RAM (recommended minimum for Xilinx tools)
    2) Pentium 4 2GHz CPU clock or equivalent
    3) 5GB free HDD space
    4) Recommended OS: CentOS RHEL 5 (32-bit), or Ubuntu 10.04 (32-bit or 64-bit)

4. Extract the PetaLinux Package
    $ tar zxf petalinux-v12.12-final-full.tar.gz
    petalinux-v12.12-final-full 폴더로 설치됨.
    일반적으로 /home/user/petalinux-v12.12-final-full에 설치됨.
    경로는 옮길 수 있음.

5. Setup PetaLinux Working Environment
    1) PetaLinux 설치 폴더로 이동.
       ex) $ cd /home/user/petalinux-v12.12-final-full
    2) Source the appropriate PetaLinux setup script by running this command on the command console
       For Bash:
        $ source settings.sh

       For C Shell:
        $ . settings.csh

6. 보드 bsp설치.
        $ petalinux-install-bsp <Path-to-BSP>

설치 완료되면 마지막에
INFO: BSP successfully iinstalled.
라고 나옴.


처음 할 때 라이센스의 문제였었는지 5번까지는 잘 됐는데 6번에서 계속 오류가 발생했었음.
라이센스새로 받아서 다시 하니까 됨.
이럴수가...

*중요.
1. Only run one of these scripts - whichever is appropriate for your command shell.
2. You must run the settings script each time you open a new terminal window or shell. PetaLinux SDK will not operate correctly otherwise.
3. You must be within the PetaLinux root directory (e.g. /home/user/petalinux-v12.12-final-full) to source the settings files.



2013년 6월 9일 일요일

Xilinx Design Tools 14.4 오류 해결 문제 (Cannot compile ARM application on Windows 7 64bit)

Zynq를 가지고 Hello World를 띄우기위해 단계를 밟아가는 중 문제에 봉착했다.

문제의 발생은 하드웨어 메모리 설정 후 "PlanAhead의 "Design Sources 밑의 system"을 Create top HDL 하고나서 export할때 발생했다.
export를 시키면 Xilinx SDK 가 실행되는데 이때, 실행 후 "Board Support Package"를 만들고 나서 빌드할때 다음과 같은 오류가 발생되는 것이다.

Running libs - 'make -s libs "COMPILER=arm-xilinx-eabi-gcc"
"ARCHIVER=arm-xilinx-eabi-ar" "COMPILER_FLAGS= -O2 -c"
"EXTRA_COMPILER_FLAGS=-g"'.
"Compiling common"
process_begin: CreateProcess(NULL, arm-xilinx-eabi-gcc -O2 -c -g -I../../../include *.c, ...) failed.
make (e=2): The system cannot find the file specified.

이 문제의 해결법은 다음의 URL (http://www.xilinx.com/support/answers/53955.html) 에서 찾았다. 이미 알려진 이슈라고 이야기를 하며 몇가지 해결 옵션을 제공한다.

해결책을 보면.
1. SDK의 실행을 인스톨된 폴더에서 직접하라.
-> <install_dir>\14.4\ISDE_DS\EDK\bin\nt64\xdsk.exe
2. SDK를 바탕화면 바로가기 버튼을 사용하라.
3. SDK를 환경설정을 다시하고 나서 하라.
-> Command Prompt 열기.
-> <install_dir>\14.4\ISE_DS\settings64.bat
->xsdk 명령 사용해서 실행.
4. <install_dir>\14.4\ISE_DS\EDK\gnu\arm\nt 폴더를 복사 붙여넣기 한다.
이때, nt64폴더가 없다면 생성해서 붙여넣기 하면 된다.

필자의 경우 4번의 해결책으로 빌드를 성공시켰다.

끝.

2013년 5월 5일 일요일

스토리가 스펙을 이기다.

스토리가 스펙을 이긴다.

스펙에 치우치고, 스펙에 목매지 말라. 대신 자신의 스토리를 만들어라.
스펙으로 자신을 알리려 하지말고, 스토리라 자신을 어필하라.

누나의 추천으로 읽게된 "스토리가 스펙을 이긴다.".
책을 읽는 동안 지금 내 상황과 내 판단, 내가 결정을 내렸던 많은 것들에 대해 다시한번 생각해보도록 해주는 책이었다. 과연 나는 나만의 스토리를 가지고 있을까?를 생각해보게 된다.
짧지 않은 사회생활동안 이것은 나만의 이야기에요 라고 말할 수 있는 스토리를 획득하지 못한 느낌을 받은 나에게 이책은 앞으로 내가 살아가야할 방향? 혹은 방법? 생활의 변화?를 이야기 해주는 듯 했다.
책의 내용 중 이런말이 있었다. "업을 생각하고 쪽으면 직은 저절로 따라온다."라는 말 "역량을 키우라"라는 말 이런 말들이 내 마음속에 드리워진 수많은 구름들을 조금이나마 벗겨내어 햇볓이 들도록 해준것 같다. 또한 "행동해야한다. 내가 변해야 세상도 변한다."라는 구절은 항생 생각만으로 멈추고 변화를 주지 못하는 나에게 있어 행동으로의 변화를 시도하게 하는 자극제 같은 역할을 한다.

책을 읽고 이렇게 책에 대해 적어보는 것은 학창시절 숙제로 해본것 외엔 없다. 처음의 시작은 항상 미약하고 서툴테지만, 끊김없이 묵묵히 해나가다보면 책을 읽고 그 책의 내용을 간략하고 남들이 보기 쉽게 정리할 수 있는 글쓰기를 할수 있을것이라 믿으며, 오늘은 여기서 마쳐야 겠다.