기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요

udev를 Cross Compile하려고 하는데 생각보다 어렵네요...

 

* configure 생성

 # CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi prefix=/root/udev./c/install/175

   --with-usb-ids-path=no --with-pci-ids-path=no.

 

* glib는 Arm용으로 CrossCompile해두었고, PKG_CONFIG_PATH에 Arm용 glib을 등록해 놓은 상태입니다.

 

* CrossCompile은 Sourcery CodeBench Lite 2011.09-70이고, Cobuntu 11.10에서 작업중입니다.

   컴파일러는 이전버전을 사용하면 컴파일할때 변수 define이 없다고 뜨면서 컴파일이 안됩니다.

 

 

두가지 버젼으로 시도하고 있습니다.

1) u-dev 182

일단 u-dev 176이상버젼은 configure을 실행하면

 

configure: error: Package requirements (blkid >= 2.20) were not met:

Requested 'blkid >= 2.20' but version of blkid is 2.19.0

오류가 발생합니다. blkid 버젼이 낮다는의미인데

도대체 Ubuntu에서 blkid는 2.19가 최신버젼인데 2.20 이상으로 어떻게 업데이트 하는지를 모르겠네요..

 

2)u-dev 175

./configure까지는 실행이 잘됩니다.

컴파일하면

 

GEN    extras/gudev/gudevmarshal.h
  GEN    extras/gudev/gudevmarshal.c
  GEN    extras/gudev/gudevenumtypes.h
  GEN    extras/gudev/gudevenumtypes.c
  GEN    extras/keymap/keys.txt
  GEN    extras/keymap/keys-from-name.gperf
  GEN    extras/keymap/keys-from-name.h
  GEN    extras/keymap/keys-to-name.h
make --no-print-directory all-recursive
Making all in .
  CC     libudev/libudev.lo
  CC     libudev/libudev-list.lo
  CC     libudev/libudev-util.lo
  CC     libudev/libudev-device.lo
  CC     libudev/libudev-enumerate.lo
  CC     libudev/libudev-monitor.lo
  CC     libudev/libudev-queue.lo
  CCLD   libudev/libudev.la
  CC     extras/gudev/extras_gudev_libgudev_1_0_la-gudevclient.lo
  CC     extras/gudev/extras_gudev_libgudev_1_0_la-gudevdevice.lo
  CC     extras/gudev/extras_gudev_libgudev_1_0_la-gudevenumerator.lo
  CC     extras/gudev/extras_gudev_libgudev_1_0_la-gudevmarshal.lo
  CC     extras/gudev/extras_gudev_libgudev_1_0_la-gudevenumtypes.lo
  CCLD   extras/gudev/libgudev-1.0.la
  CC     libudev/libudev-util-private.lo
  CC     libudev/libudev-device-private.lo
  CC     libudev/libudev-queue-private.lo
  CCLD   libudev/libudev-private.la
  CC     udev/udev-event.o
  CC     udev/udev-watch.o
  CC     udev/udev-node.o
  CC     udev/udev-rules.o
  CC     udev/udev-ctrl.o
  CC     udev/udev-builtin.o
  CC     udev/udev-builtin-path_id.o
  CC     udev/udev-builtin-usb_id.o
  CC     udev/udev-builtin-input_id.o
  CC     udev/udevd.o
  CC     udev/sd-daemon.o
  CCLD   udev/udevd
  CC     extras/firmware/extras_firmware_firmware-firmware.o
  CCLD   extras/firmware/firmware
  CC     extras/ata_id/ata_id.o
  CCLD   extras/ata_id/ata_id
  CC     extras/cdrom_id/cdrom_id.o
  CCLD   extras/cdrom_id/cdrom_id
  CC     extras/collect/collect.o
  CCLD   extras/collect/collect
  CC     extras/scsi_id/scsi_id.o
  CC     extras/scsi_id/scsi_serial.o
  CCLD   extras/scsi_id/scsi_id
  CC     extras/v4l_id/v4l_id.o
  CCLD   extras/v4l_id/v4l_id
  CC     extras/accelerometer/accelerometer.o
  CCLD   extras/accelerometer/accelerometer
  CC     extras/usb-db/extras_usb_db_usb_db-usb-db.o
  CCLD   extras/usb-db/usb-db
  CC     extras/usb-db/extras_usb_db_pci_db-usb-db.o
  CCLD   extras/usb-db/pci-db
  CC     extras/keymap/extras_keymap_keymap-keymap.o
  CCLD   extras/keymap/keymap
  CC     extras/mtd_probe/extras_mtd_probe_mtd_probe-mtd_probe.o
  CC     extras/mtd_probe/extras_mtd_probe_mtd_probe-probe_smartmedia.o
  CCLD   extras/mtd_probe/mtd_probe
  CC     udev/udevadm.o
  CC     udev/udevadm-info.o
  CC     udev/udevadm-control.o
  CC     udev/udevadm-monitor.o
  CC     udev/udevadm-settle.o
  CC     udev/udevadm-trigger.o
  CC     udev/udevadm-test.o
  CC     udev/udevadm-test-builtin.o
  CCLD   udev/udevadm
  GEN    extras/gudev/GUdev-1.0.gir
extras/gudev/gudev.h:24: Warning: GUdev: symbol='_GUDEV_INSIDE_GUDEV_H': Unknown namespace for symbol 'GUDEV_INSIDE_GUDEV_H'
g-ir-scanner: compile: gcc -Wall -pthread -I/usr/local/glib_arm/include/glib-2.0 -I/usr/local/glib_arm/lib/glib-2.0/include -I./extras -I./extras -I/usr/local/glib_arm/include/glib-2.0 -I/usr/local/glib_arm/lib/glib-2.0/include -c -o /root/udev/source/udev-175/tmp-introspectNBLZ1J/GUdev-1.0.o /root/udev/source/udev-175/tmp-introspectNBLZ1J/GUdev-1.0.c
g-ir-scanner: link: libtool --mode=link --tag=CC gcc -o /root/udev/source/udev-175/tmp-introspectNBLZ1J/GUdev-1.0 -export-dynamic -L. -lgudev-1.0 -L./libudev -L./extras/gudev -pthread -L/usr/local/glib_arm/lib -lgio-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 /root/udev/source/udev-175/tmp-introspectNBLZ1J/GUdev-1.0.o
libtool: link: gcc -o /root/udev/source/udev-175/tmp-introspectNBLZ1J/.libs/GUdev-1.0 -pthread /root/udev/source/udev-175/tmp-introspectNBLZ1J/GUdev-1.0.o -Wl,--export-dynamic  -L. /root/udev/source/udev-175/extras/gudev/.libs/libgudev-1.0.so -L./libudev -L./extras/gudev -L/usr/local/glib_arm/lib /usr/local/glib_arm/lib/libgio-2.0.so /usr/local/glib_arm/lib/libgmodule-2.0.so /usr/local/glib_arm/lib/libgobject-2.0.so /usr/local/glib_arm/lib/libgthread-2.0.so /usr/local/glib_arm/lib/libglib-2.0.so -pthread -Wl,-rpath -Wl,/root/udev./c/install/175/lib -Wl,-rpath -Wl,/usr/local/glib_arm/lib
/root/udev/source/udev-175/extras/gudev/.libs/libgudev-1.0.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
linking of temporary binary failed: Command '['libtool', '--mode=link', '--tag=CC', 'gcc', '-o', '/root/udev/source/udev-175/tmp-introspectNBLZ1J/GUdev-1.0', '-export-dynamic', '-L.', '-lgudev-1.0', '-L./libudev', '-L./extras/gudev', '-pthread', '-L/usr/local/glib_arm/lib', '-lgio-2.0', '-lgmodule-2.0', '-lgobject-2.0', '-lgthread-2.0', '-lglib-2.0', '/root/udev/source/udev-175/tmp-introspectNBLZ1J/GUdev-1.0.o']' returned non-zero exit status 1
make[2]: *** [extras/gudev/GUdev-1.0.gir] 오류 1
make[1]: *** [all-recursive] 오류 1
make: *** [all] 오류 2

식으로 libgudev-1.0.so의 Symbol을 읽을수가 없다는데...

왜이러는지 모르겠네요.

libgudev-1.0은 udev source에 포함되있는 라이브러리인데

Cross Compile이 안되서 저러 오류가 나타나느걸가요?

 

조언 부탁드립니다.


블루스카이

2012.05.07 08:30:13
*.54.174.151

로그 내용을 보니 extras/gudev/GUdev-1.0.gir 이거 컴파일 할 때 그냥 gcc가 호출 되었군요. corss-compiler가 아닌 그러니 이미 cross-compiler로 compile된 libgudev-1.0.so 을 link 못하는 것으로 보입니다.

그런데 최신 버전를 사용하셔야 하는 지 의문입니다. 저의 경우 udev140를 사용하고 있습니다. arm board 에서 udev145나  udev150으로 업그레이드 하려다고 부팅도 안되고 실패한 경험이 있어서 udev 버전업에는 현재 신경 쓰지 않고 있습니다.

최신 device가 있는 것도 아니고 새로운 기능이 필요한 것도 아니라서... 순전히 개인의 경험입니다.

Supsupi

2012.05.08 08:31:25
*.9.118.77

댓글 감사드립니다.

저도 log에 gcc가 튀어나오길래.. 이것저것 configure 옵션을 바꿔봤었는데도

같은 현상이 일어나더라구요. 그래서 저건 cross compile과 관계없이 gcc로 컴파일되나했습니다.

libgudev-1.0.so는 udev Source에 포함된 라이브러리라서요 ㅎ

조언 감사드립니다.

Supsupi

2012.05.09 01:28:44
*.9.118.77

컴파일은 됬는데 뭔가 잘 작동을 안하네요.

사실 mdev를 쓰다가

sdcard hotplug가 필요해서 udev를 사용하려고하는데... 뭔가 어렵네요

udev 140도 sdcard hotplugin을 잘 지원하나요? ㅎㅎ

김상범

2012.05.07 21:51:45
*.254.165.247

제가 175 버전으로 다음과 같이 configure option 주고 실행했었습니다.

잘 되실지는 모르겠지만, 참고가 되시길 바랍니다.

사용한 Ubuntu 버전은 정확하게 기억나지는 않지만, 10.04 아니면 11.10 입니다. 

그리고, CROSS_COMPILER_PREFIX는 설정해 주셔야 합니다.

./configure \
        --host=$CROSS_COMPILER_PREFIX \
        --prefix=/usr \
        --sysconfdir=/etc \
        --sbindir=/sbin \
        --libdir=/usr/lib \
        --with-rootlibdir=/lib \
        --libexecdir=/lib/udev \
        --disable-keymap \
        --disable-gudev \
        --disable-introspection \
        --without-pci-ids-path \
        --without-usb-ids-path

Supsupi

2012.05.08 08:39:53
*.9.118.77

감사드립니다.

내일 컴파일해봐야겠네요ㅎ

 

조언 감사드립니다. ㅎ

Supsupi

2012.05.08 23:06:25
*.9.118.77

--disable-gudev  옵션을 주니 컴파일이 되네요~! 감사합니다 ㅎ

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6208 [잡담] 공제보드 [3] 한영민 2007-05-30 3121
6207 [질문]LCD TV 로 연결시 해상도를 높일수 있나요?[완료] [2] 조준동 2007-05-09 3119
6206 ODROID-T의 App. Heap Memory 부족 문제 #2 file [2] 최가이버 2010-07-09 3111
6205 [질문] 전원은 12V 평균 몇mA나 먹는지요? 혹시 테스트하신 분들,... [2] 임장욱 2007-05-09 3108
6204 Bios에 관해서... [4] 박찬규 2007-12-10 3106
6203 무선 아시는 분.. RT73 USB WiFi 관련 문의. 윈도우나 우분투 ... 공정표 2009-08-09 3087
» udev Arm cross compile 문의 드립니다. [6] Supsupi 2012-05-05 3084
6201 wpa_supplicant문의 드립니다. [1] 테크 2013-06-05 3079
6200 [질문] 동영상 재생시 너무 느립니다. [4] 강덕하 2007-05-21 3078
6199 [완료]usb유선랜... [4] 이태간 2007-06-01 3059
6198 nfs: server 192.168.0.77 not responding, still trying [10] 오태호 2009-03-29 3054
6197 [완료] 화면이 하얗게 되네요... [1] 임은향 2007-05-15 3053
6196 바이오스 개발에 대한 공부는 어디서 부터 해야할까요? [2] 문윤석 2008-04-10 3045
6195 [질문] 윈도우 XP설치시 정품여부.. [4] 김영곤 2007-05-10 3035
6194 Mplayer을 6410에 올리려고 libmad를 컴파일 하는데 에러 발생 [4] 윤인성 2009-02-27 3034
6193 라즈베리파이간 GPIO로 UART 통신을 하고 싶습니다. [1] Supsupi 2013-09-06 3025
6192 aESOP S3C6410에 적용된 CPU와 mDDR 간의 PCB LAYOUT을 알수... [6] 김상일 2009-02-17 3020
6191 [질문] 양산시의 Nand 퓨징에 관해서... [6] 이재훈 2006-06-24 3020
6190 aesop6410 Android NFS 포팅관련 질문드립니다. [4] 서리 2009-07-12 3013
6189 i2c 디바이스 드라이버 사용법 문의. file [1] 암내 2010-02-25 2978

사용자 로그인