[t:/]$ 지식_

MV6410 USB2SER 쓰기.

2008/12/10

6410이라고 다를 바는 없다.

USB -> UART (SERIAL) 을 쓰고 싶다면 다음과 같이 한다.

make menuconfig 들어가서
device driver -> USB .. -> USB Serial ... 에서 적당한 것을 커널에 임베딩.

흔한 CP2101의 경우 걍 클릭하고 빌드하니까 된다.

제조사에서 구한 소스를 구한 경우 다음과 같이 한다.
모든 커널 모듈 빌드시에 비슷한 절차를 거친다.

보통 크로스 빌드, 임베디드 커널을 빌드할 때 항상 실수하는 것으로 호스트 커널 소스를 참조가 있다.
전통적으로 호스트 커널 소스는 다음 경로에 위치한다.

/usr/src/ ...

우분투 등에서 커널 헤더를 설치해야 커널 모듈 빌드가 된다.
설치했다면 다음과 같이 경로가 보인다.

/usr/src/linux-header-2.6.24.21

설치하려면

apt-get install kernel-package

물론 다 설치 되는 것이 아니고 헤더 및 경로만 설치한다.
추가적으로 ncurse 등이 없으면 make menuconfig 도 안 된다.
커널 빌드를 몇 번 해 본 사람들은 당연히 알겠지만..

자 이제 cp210x 드라이버 크로스 빌드를 해보자.
디렉토리를 다음 위치까지 만든다.

/home/dawnsea/exam/lib/modules/2.6.21/

이제 커널 소스 위치를 나타내는 심볼릭 링크를 만들자.
위 경로까지 들어간 후 크로스 빌드할 커널 소스가 설치된 곳에 링크를 건다.

ln -s /home/dawnsea/exam/kernel/s3c-linux-2.6.21 build

cp210x 드라이버 경로로 들어간 후.

./configure
cp Makefile26 Makefile
vim defaults.mk -> 각 경로를 크로스빌드 위치로 수정.

make -> 기존 커널 소스에서 빌드했던 이력에 따라 크로스 컴파일러로 빌드 됨.

이제 타겟머신으로 이동하여 기동해보자.

insmod cp210x.ko

잘 올라왔나 확인해보자.

cat /proc/tty/driver/usbserial

동작 확인을 하자.

cat /dev/ttyUSB0

자 이제 빌드놀이는 집어치고 개발을 해봅시다;;

팁!!! 이름도 몰라요 성도 몰라 USB로 제공하는 디바이스 이름을 모를때는 걍 PC에 한 번 꽂아보면 됨 -_-;









[t:/] is not "technology - root". dawnsea, rss