반응형




 7월쯤 갔는데 너무 더웠습니다. 가능하면 선선한 날씨에 가길 추천해드립니다. 7월쯤 가실때에는 수영복을 챙겨서 언제든 물에 들어가실 수 있게 준비하시길 추천합니다. 썬크림은 반드시 준비하시고 물을 현지에서 사실 생각은 하지 마시고 COOP이라는 슈퍼마켓에 미리 들려 1L짜리 물을 구매하시고 시원하게 해서 들고 다니실 것을 추천드립니다. 현지에선 너무 물이 비싸요.


 가능하면 직접 계획을 짜서 돌아다니기 보다는 현지 한국인 가이드를 이용하시는게 유용한데 저는 유로자전거나라를 미리 예약해서 투어를 했습니다. 유로자전거나라가 가격은 조금 높지만 현지 여행이 상당히 알차고 유용합니다.

































반응형
반응형



 C++에서 2D Array를 Double Pointer로 받아서 Array형식같이 쓰려고 하니 에러가 났다. 

 Vector로 이용하여 2D Array같이 사용할 수 있다 해서 아래와 같이 테스트 코드를 작성해봤다.


#include <iostream>

#include <stdio.h>

#include <string.h>

#include <vector>


using namespace std;


typedef vector< vector<int> > DoubleVector;


class TestClass

{

public:

    int return_test(void);

    int set_test(int i, int j, int val);

    DoubleVector get_test(void);

    int show_test(void);


private:

    DoubleVector test;


public:

    TestClass() : test(3, vector<int>(3))

    {

    }

    ~TestClass() 

    {

    }


};


int TestClass::set_test(int i, int j, int val)

{

    test[i][j]=val;

}


DoubleVector TestClass::get_test(void)

{

    return test;

}


int TestClass::show_test(void)

{

    for ( int i=0; i<3; i++ )

    {

        for ( int j=0; j<3;j++ )

        {

            printf("test[%d][%d] : %d\n",i,j,  test[i][j]);

        }

    }

}


int main()

{

    TestClass Test;

    DoubleVector tmp;


    printf("============= SET =================\n");

    for ( int i=0; i<3; i++ )

    {

        for ( int j=0; j<3;j++ )

        {

            Test.set_test(i, j, (i*3)+j);

        }

    }


    printf("============= SHOW ================\n");

    Test.show_test();


    printf("============= GET ================\n");

    tmp.clear();

    tmp = Test.get_test();


    printf("============= SHOW2 ================\n");

    for ( int i=0; i<3; i++ )

    {

        for ( int j=0; j<3;j++ )

        {

            printf("tmp[%d][%d] : %d\n", i, j, tmp[i][j]);

        }

    }

}



반응형
반응형



현재(2016년 09월)에는 minidlna의 rpm이 smi이 지원되는 버전의 패키지가 없어서 설치가 안된다(1.1.3).


현재 코드의 최신버전인 minidlna인 1.1.5를 설치해보았다.




압축 해제

tar xvf ./minidlna-1.1.5.tar.gz



필요 rpm 설치

# sudo apt-get install libavformat-dev libavutil-dev libavcodec-dev libflac-dev libvorbis-dev libid3tag0-dev libexif-dev libjpeg-dev libsqlite3-dev libogg-dev autopoint automake autoconf gettext checkinstall


컴파일

# ./configure

# ./autogen.sh

# make

# checkinstall



아래와 같은 구문이 나올경우 설치가 정상적으로 완료됨.


**********************************************************************


 Done. The new package has been installed and saved to


 /<path>/minidlna_src/minidlna-1.1.5/minidlna_1.1.5-1_armhf.deb


 You can remove it from your system anytime using:


      dpkg -r minidlna


**********************************************************************



버전 확인

# minidlnad -V


출력

Version 1.1.5



만약 service가 정상적으로 실행되지 않을 경우 src/linux에 있는 minidlna.init.d.script.tmpl 파일을 /etc/init.d/minidlna로 이동시킨 후 실행권한을 주고 아래와 같이 실행한다.

# cp ./src//linux/minidlna.init.d.script.tmpl /etc/init.d/minidlna

# chmod +x /etc/init.d/minidlna

# systemctl enable minidlna

# systemctl start minidlna


참조 출처 : http://xenolife.tistory.com/

반응형
반응형


아래의 방법은 라즈비안 기준입니다. 

centos rpi 3에서는 코드를 직접 다운받아서 설치하셔야 하며, 모든 dependency를 직접 설치하셔야 하고,

centos rpi 3의 repository에 없는 패키지는 직접 소스를 다운받아 설치하셔야 합니다.



패키지 리스트 업데이트 후 패키지 업그레이드

# sudo apt-get update

# sudo apt-get upgrade


minidlna 설치

# sudo apt-get install minidlna



dlna으로 접근할 경로 생성 및 전체 권한설정

# mkdir -p /media/Video

# mkdir -p /media/Music

# mkdir -p /media/Image

# chmod -R 777 /media


설정(/etc/minidlna.conf)에 미디어 경로 설정(format. media_dir=<V|A|P>,<Path>)

....

media_dir=V,/media/Video

media_dir=A,/media/Music

media_dir=P,/media/Image

...


설정(/etc/minidlna.conf)에 dlna server 이름 설정

...

friendly_name=MINIDLNA_SERVER

...


dlna 서비스 등록 및 서비스 재시작

# systemctl enable minidlna

# systemctl restart minidlna


LG TV에서 "외부 입력"에서 위에 설정한 friendly_name의 이름이 보여야 한다.

주의사항 : 다른 TV도 그런지 모르겠지만 LG TV에서는 같은 대역대에 있어야 제 기능을 하는 것 같다.

              (예. TV IP : 192.168.0.2/24일 경우 192.168.0.X IP만 검색이 되어진다)



반응형
반응형




ntp 패키지 설치

# yum search ntp

# yum install -y ntp


ntp.conf에 time.bora.net 추가

# vi /etc/ntp.conf


#server 0.centos.pool.ntp.org 

#server 1.centos.pool.ntp.org 

#server 2.centos.pool.ntp.org 

server -4 time.bora.net


zone 파일 교체

# cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime


systemctl 에 ntp 활성화 및 시작

# systemctl enable ntpd

# systemctl start ntpd


시간 확인

# date




반응형
반응형




기본 Redhat 계열을 선호하는 지극히 개인적인 이유로 CentOS를 설치했다.

64GB SD카드를 꽂았으니 그에 맞게 Resize를 할 필요가 있는데 CentOS를 설치할 경우 "/root/' 경로에 "README"파일이 있는데아래와 같이 할 경우 automatically resize partition을 한다고 나와잇다.


touch /.rootfs-repartition

systemctl reboot



systemctl reboot을 하는 순간 이미지를 새로 설치를 해야 하는 상황이 오는데 

예전같았으면 이거 왜이래 하고 성질을 내겠지만 일을 하다보니 "automatic"이란 단어를 지원하기 위한것이 얼마나 어려운지 알게 된다. 저 파일을 바라보는 놈이 어떤놈인지 나중에 한번 뒤져봐야겠다.


parted를 통해 마지막 파티션을 삭제하고 남은 용량을 사용하게 하여 다시 64GB를 모두 인식하도록 수정하였다.


# parted /dev/mmcblk0

# p                                         확인

# rm 3                                     마지막 파티션 삭제

# p                                        확인

# mkpart primary 852 61.9G            파티션 2부터 남은 용량으로 새 파티션 생성

# p                                        확인

# quit                                     종료



# reboot                                  시스템 재시작



# df -h                                  확장 안됨 확인

# fdisk -l /dev/mmcblk0               fdisk로 변경한 파티션 생성 확인

# resize2fs /dev/mmcblk0p3          resize2fs로 파일시스템 확장

# df -h                                  정상 확장 정보 확인



반응형
반응형




NTP를 설치하고 ntpd를 아무리 재시작하고 기다려도 계속 새벽 시간에서 변경이 되지 않는다. 

ntp.conf에 다른 설정을 모두 지워도 시간이 변경되지 않아 ntpq -q로 query를 주어보아도 Pear List를 확인해봐도 bora.time.net으로 아래와 같이 설정이 잘 되어 있는 것을 확인했다.


     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*time.bora.net   90.1.14.51       2 u   66   64    1    4.468  -10.283   0.001


왜 이럴까 하다고 혹시 지역 설정이 제대로 안되면 다른 지역의 설정을 가져오는 거 아닐까 해서 시간으로 확인을 해보니 정확하게 뉴욕 워싱턴과 일치 했다. 한국으로 설정이 되어있지 않고 워싱턴으로 설정 되어있으니 얘는 제대로 동작했는데 나만 왜안되지 이러고 있었구나...


매번 지역은 GUI로 설치하면서 그냥 클릭하고 넘어가서 제대로 몰랐는데 이번엔 GUI를 사용하지 않았으니 이런 실수가 있었나보다. 제대로 서울로 설정해주자.


/etc/localtime을 backup으로 보관해두자.

# mv /etc/localtime /etc/localtime.bak


/usr/share/zoneinfo 위치에 지역별 폴더가 있고 그 지역 폴더 안에 도시 정보가 있다. 

서울로 설정하니 Seoul이 정상적으로 있는지 확인한 후 이 파일을 /etc/localtime으로 변경해준다.

# cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime


재 적용하여 ntp를 다시 적용하기 위해 ntpd를 restart해준다.

# service ntpd restart


date 명령어로 제대로 현재 시간으로 설정되었는지 확인한다.

# date


반응형
반응형




아래와 같은 명령어로 dwarf 정보를 확인할 수 있다.


# readelf --debug-dump=info <binary> | grep -A 2 'Compilation Unit @'


실행 결과 :  


--

  Compilation Unit @ offset 0xccfed:

   Length:        0xc1fd (32-bit)

   Version:       4

--

  Compilation Unit @ offset 0xd91ee:

   Length:        0x43e (32-bit)

   Version:       4

--

  Compilation Unit @ offset 0xd9630:

   Length:        0x50a7 (32-bit)

   Version:       4

--

  Compilation Unit @ offset 0xde6db:

   Length:        0x348e (32-bit)

   Version:       4


반응형
반응형




아래의 포스팅에 이어지는 부분인다. LCD 드라이버 인식을 못한 사람은 아래의 포스팅을 참고하기 바란다.

[라즈베리파이] 3.5 inch TFT LCD 인식시키기...http://onestepcloser.tistory.com/123



 1. Calibration을 위한 패키지 설치 및 xinput_calibrator 설치


 Calibration을 하기 위해 아래의 패키지 들이 필요하다. X를 실행시키면서 별도의 Calibration을 실행해서 해줘야 할 것 같았는데, 아래의 방법대로 끝내면 Pi를 재 시작할 때에 Calibration 화면을 통해 설정 할 수 있다.


pi@raspberrypi ~ $ sudo apt-get install libtool libx11-dev xinput autoconf libx11-dev libxi-dev x11proto-input-dev -y
pi@raspberrypi ~ $ git clone https://github.com/tias/xinput_calibrator
pi@raspberrypi ~ $ cd xinput_calibrator/
pi@raspberrypi ~ $ ./autogen.sh
pi@raspberrypi ~ $ make
pi@raspberrypi ~ $ sudo make install



 2. Calibration Script Download 및 Setup


pi@raspberrypi ~ $ cd ~
pi@raspberrypi ~ $ wget http://ozzmaker.com/piscreen/xinput_calibrator_pointercal.sh
pi@raspberrypi ~ $ sudo cp ~/xinput_calibrator_pointercal.sh /etc/X11/Xsession.d/xinput_calibrator_pointercal.sh
pi@raspberrypi ~ $ sudo vi /etc/xdg/lxsession/LXDE/autostart


 3. X Window 실행 


 아래와 같이 X Window를 실행 시키면 LCD에 Pi X가 실행된 것을 확인 할 수 있다ㅣ.

 아래와 같이 X가 실행되지 않을 경우 "99-fbturbo.conf"을 확인해 본다.


pi@raspberrypi ~ $ FRAMEBUFFER=/dev/fb1 startx



 4. Boot시 자동적으로 PiScreen로 X Window를 실행할 수 있도록 설정


 간단히 rc.local에 starx를 실행하게끔 실행하면 끝!


pi@raspberrypi ~ $ sudo nano /etc/rc.local


 rc.local에 아래 문장을 exit 하기 전에 실행하게끔 추가해 준다.


 su -l pi -c "env FRAMEBUFFER=/dev/fb1 startx &"


 5. Calibration


 Pi를 Reboot하면 Calibration을 할 수 있다. Calibration을 하지 않으면 좌표가 정확하지 않을 뿐더러 드래그의 방향성 또한 제대로 설정되지 않아 엉망이다. Reboot하여 Calibration을 마친뒤 정상적으로 동작하는 X를 확인할 수 있다.




참고 출처 : http://ozzmaker.com/



반응형
반응형



 라즈베리파이를 구매하면서 매번 HDMI 케이블을 모니터에 연결하기 귀찮아서 LCD하나를 알리익스프레스에서 구매했다.

 

 가격은 $11.88


 구매는 했는데 드라이버 설치 방법 같은건 Description이나 Specification등에 없다.

 이제 막 라즈베리파이를 시작한 입장에서 멘붕만 온다 어떻게 해야 할지 모르겠다.

 5번의 이미지 초기화를 하다 보니 LCD에 X를 띄우는 것 까지 성공해서 설치 방법 정리해 놓는다.


 일단 구매한 3.5" TFT LCD의 Specification은 아래와 같다.

LCD Type TFT

LCD Interface SPI

Touch Screen Type Resistive

Touch Screen Controller XPT2046

Colors 65536

Backlight LED

Resolution 320*480 (Pixel)

Aspect Ratio 8:5

Power Consumption TBD

Backlight Current TBD

Operating Temp. (Centigrade) TBD

 

 일단 아래와 같은 방법을 설치를 완료 했다.

 

 1. Raspberry Pi 업데이트 및 패키지 없데이트


설치를 시작하기에 앞서 기본 패키지 및 Pi를 업데이트 한다.

 pi@raspberrypi:~ $ sudo rpi-update
 pi@raspberrypi:~ $ sudo reboot
 . . .  Updating . . . and Rebooting . . .
 pi@raspberrypi:~ $ sudo apt-get update
 pi@raspberrypi:~ $ sudo apt-get upgrade
 pi@raspberrypi:~ $ sudo reboot

 


 2. PiScreen Driver 활성화 및 Reboot


 라즈베리파이와 같은 embedded platform에는 BIOS가 없다. 다만 BIOS같은 설정값을 저장할 수 있는 config.txt.라는 파일이 있다. 이 파일은 Linux가 초기화 하기 전에 gpu에 의해 읽힌다. 그러므로 "bootcode.bin", "start.elf"와 함께 SD카드의 윗부분에 위치하게 된다. 이 config.txt.에 설정을 추가해준다.

 pi@raspberrypi:~ $ sudo vi /boot/config.txt


 맨 마지막 줄에 아래와 같이 삽입한다.

 dtoverlay=piscreen,speed=16000000,rotate=90

 이 부분은 테스트를 해보면서 점점 높게 설정 한다.

 

pi@raspberrypi:~ $ sudo reboot

 리붓 후에 Pi는 백색으로 켜져 있던게 검은색으로 바뀌어 있어야 한다.


 3. Quick Test

 

  아래와 같이 Quick Test를 시행해 본다.

pi@raspberrypi:~ $ sudo apt-get install fbi
pi@raspberrypi:~ $ wget http://ozzmaker.com/piscreen/image-test.gif
pi@raspberrypi:~ $ sudo fbi -noverbose -T 1 -a -d /dev/fb1 image-test.gif

 실행하면 아래와 같은 이미지가 출력되는 것을 확인한다.


 이미지가 정상적으로 출력되지 않을 경우 speed=16000000에서 8000000으로 조절하며 테스트 해본다.



 4. 기본 출력 변경

 

 기본적으로 Boot을 하게 되면 HDMI를 찾게 된다. HDMI가 아닌 SPI로 X를 출력하기 위해서 아래의 파일을 이용해서 설정을 변경해 준다.

pi@raspberrypi:~ $ sudo vi /usr/share/X11/xorg.conf.d/99-fbturbo.conf

 설정 파일에 나오는 fb는 "Frame Buffer"로 Buffer를 어디에 지정할 것인가를 설정한다. 설정 파일에서 fb0은 HDMI가 설정 되어 있다. fb0을 fb1로 변경해준 다음 reboot해준다.

# Option          "fbdev" "/dev/fb0"
Option          "fbdev" "/dev/fb1"


 

pi@raspberrypi:~ $ sudo reboot




참고 출처 : http://ozzmaker.com/

반응형

+ Recent posts