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

안녕하세요

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
번호 제목 글쓴이 날짜 조회 수
5348 tv-out이 되지 않습니다. file [1] jclab 2012-05-13 1396
5347 WinCE 상에서 SoftAP(HostAP) [3] 신현호 2012-05-10 1505
5346 리눅스 UART RX 수신 관련 문의 [8] 조현호 2012-05-08 1917
5345 LCD Flicker 현상에 대응법 [2] 훌러덩 2012-05-08 2094
5344 C110 Full HD 인코딩 [3] people2 2012-05-08 1917
5343 최종 signing 이 궁금합니다. 동전귀신 2012-05-06 909
» udev Arm cross compile 문의 드립니다. [6] Supsupi 2012-05-05 3084
5341 BUG: soft lockup detected on CPU#0! <== 이 오류 발생하는 ... [1] 문철민 2012-05-04 2280
5340 라이센스 문의(GPLv2) [1] 다콩 2012-05-03 1456
5339 제 u-boot의 config.mk파일의 시작은 TEXT_BASE = 0x23f00000 입... file [3] 혜민아빠 2012-05-03 1898
5338 u-boot가 동작하는 sdram영역 설정은 어디서 해야 하나요? 혜민아빠 2012-05-03 878
5337 S3C24XX USB OHCI Driver kingdomy 2012-05-03 1069
5336 S3C6410 Test Firmware 사용법 [1] jclab 2012-05-01 1759
5335 Open Source Media P layer에 대해서… [1] 김경식 2012-05-01 1364
5334 안드로이드 해상도 변경방법은?? [2] 블루스카이 2012-05-01 3653
5333 6410보드에서 cam 동영상 저장법 질문 [2] 53% 2012-04-30 1066
5332 임베디드 리눅스를 포팅도 잘 된거 같은데 사용하는 것도 잘되고요.... [4] 혜민아빠 2012-04-26 2485
5331 s3c6410보드에서 k9f2g08u0b로 낸드부트를 하는데 부팅모드관련문의 [2] 문철민 2012-04-26 1692
5330 qt 종료후 segmentation fault, Illegal instruction 오류. Supsupi 2012-04-26 1489
5329 uboot 1.3.40을 쓰고 있는데요..파일시스템 40MB정도를 tftp를 통해... [3] 혜민아빠 2012-04-26 1656

사용자 로그인