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이라 적힌부분을 바꾸면 된다.