■ 제가 만든 오드로이드 xubuntu 13.10에 usb 터치 모니터가 적용된 이미지입니다.

DD를 이용하여 간단하게 SD카드로 올리시면 되겠습니다.

(This image is mimo 720s usb touch monitor ported on odroid x2 image, so you just do flash and use this image on your sd card by dd or winDiskImager.)


Image link : http://goo.gl/l1kU3Q




Posted by 시크한공돌이
,



ㄱ. 목표

1. mimo의 USB 터치 모니터인 720s를 odroid에서 사용하도록 커널을 수정한다.

2. 우분투 HOST PC를 기준으로 설명한다.

3. 우분투에 http://odroid.in/ubuntu-u2-u3/xubuntu-13.10-desktop-armhf_odroidx2_20140209.img.xz 해당 링크의 이미지를 퓨징해 놓은 상태로 작업을 진행한다.


ㄴ. 내용

1.커널 컴파일 부분

- 먼저 usb 모니터를 사용하기 위해서는 udl 드라이버가 필요한데 오드로이드에서 지원하는 커널은 3.0.x와 근래에 지원을 시작한 3.8.x가 있다.

 이 가운데 udl 드라이버는 3.8.x 버전에서 정상 작동한다. 그러므로 우리는 3.8.x 버전의 이미지와 커널을 받도록 한다.

- 아래의 명령어를 통해 소스를 받을 수 있다. git이 설치되어 있지 않다면 git을 먼저 설치하도록 한다.

※ git 설치 명령어 : sudo apt-get install git

 git clone --depth 0 https://github.com/hardkernel/liunx.git -b odroid-3.8.y linux-odroid-3.8.y

cd linux-odroid-3.8.y

make odroidx2_defconfig

make menuconfig


2. make menuconfig

 ※ menuconfig를 위한 ncurses 패키지 설치 명령어 : 

     sudo apt-get install libncurses5-dev

 ‘Device Drivers’ > ‘Graphics Support’ > ‘Support for Framebuffer support’

‘Displaylink USB Framebuffer support’ 항목 ‘*’ 로 포함시킴

Drivers > Input device support > Touchscreens > USB Touchscreen Driver > e2i Touchscreen controller

e2i Tocuhscreen controller 항목 '*'로 커널에 포함시킴

  위 설정을 마친 후 esc를 누르다보면 '저장하고 끝내시겠습니까?' 라는 질문이 나오는데 확인을 누르고 나오면 된다.


3. 커널 재컴파일

 다음으로 커널을 컴파일하고 zImage를 만들어야한다.

 make zImage

  후에 에러 없이 완성이 되면 USB 리더를 통해 이미지가 install 되어있는 sd카드를 삽입한다.

mv /media/BOOT/zImage /media/BOOT/zImage-old

  위 작업을 통해 zImage 원본을 백업한다. 

cp arch/arm/boot/zImage /media/BOOT/

새 이미지를 SD카드의 BOOT 섹터에 복사한다.


4. 모듈 재컴파일

  다음으로 모듈을 재컴파일하고 SD카드에 write 해야한다.

 make modules

  모듈 빌드

sudo make modules_install INSTALL_MOD_PATH=/media/rootfs ARCH=arm

  모듈 인스톨

모듈 인스톨이 성공하게 되면 log 맨 마지막에 'DEPMOD 3.8.x' 라고 뜨게 된다.

이를 잘 기억해 놓자.

sudo cp .config /media/rootfs/boot/config-3.0.x(아까 봤던 버전으로)


5. 초기 램 파일 시스템, initramfs 업데이트

  초기 램 파일 시스템을 업데이트 한다. 이를 위해 SD카드를 odroid x2에 삽입하고 부팅한다.

  다음은 Odroid x2 쉘에서 작업

 update-initramfs -c -k 3.8.x

 u-boot용 램디스크 이미지 생성 

mkimage -A arm -O linux -T ramdisk -C none -a 0 e 0 -n uInitrd -d /boot/initrd.img-3.8.x /boot/uInittrd-3.8.x

sudo reboot


6. Xorg.conf 파일 수정

   화면 출력을 위해 xorg.conf 파일을 수정하야 한다. 그 전에 usb monitor가 잘 잡혔는지 쉘을 통해 확인한다.

 dmesg | grep DisplayLink

명령을 하게 되면 다음과 같은 쉘 메시지에 /dev/fbx로 잡혀있는것을 볼 수 있다.

 [    4.082017] usb 1-2.1.2.2: Manufacturer: DisplayLink

[    4.083188] udlfb: DisplayLink mimo inc - serial #7030024

[    4.088894] hid-generic 0003:17E9:401A.0001: hiddev0,hidraw0: USB HID v1.10 Device [DisplayLink mimo inc] on usb-s5p-ehci-2.1.2.2/input1

[    4.174451] udlfb: DisplayLink USB device /dev/fb2 attached. 800x480 resolution. Using 1504K framebuffer memory 

 위의 /dev/fb2 를 기억해 놓도록 하자

mv /etc/X11/xorg.conf /etc/X11/xorg.conf-back

  기존 파일 벡업

vi /etc/X11/xorg.conf

  vi에디터로 편집


Section "Device"

Identifier "uga"

driver "fbdev"

Option "fbdev" "/dev/fb2"

Option "ShadowFB" "off"

EndSection


Section "Monitor"

Identifier "monitor"

EndSection

Section "Screen"

Identifier "screen"

Device "uga"

Monitor "monitor"

EndSection


Section "ServerLayout"

Identifier "default"

Screen 0 "screen" 0 0

InputDevice "touchscreen" "CorePointer"

Option "Xinerama" "Off"

EndSection


Section "InputDevice"

Identifier "touchscreen"

Driver "evdev"

Option "Device" "/dev/input/by-id/usb-e2i_Technology__Inc._USB_Touchpanel_L000000000-event-if00"

Option "DeviceName" "touchscreen"

Option "ReportingMode" "Raw"

Option "SendCoreEvents" "On"

Option "Calibrate" "1"

Option "Calibration" "630 32000 1100 31800"

Option "InvertY" "true"

Option "InvertX" "true"

Option "SwapAxes" "false"

EndSection

ESC키를 누르고 :wq 엔터

sudo reboot

위의 과정을 거치면 화면이 나오는 것을 볼 수 있다.


ㄷ. 결론

1. 위와 같은 방식으로 커널 디바이스 드라이버를 추가할 수 있다.

2. 이 후 mimo 720s usb로 연결 후 부팅하면 mimo에 녹색 화면이 나오면 일단 드라이버는 설정 성공이다.

3. 녹색화면 후 문제는 xorg.conf의 설정 문제이다.

Posted by 시크한공돌이
,