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

안녕하십니까


질문이 있어서


글을 남기게 되었습니다.


다름이 아니라 쉘 스크립트를 이용한 디바이스 제어를 


하려고 하는데


어떤 팁 같은게 있는지 궁금합니다.


저의 상황은 이러합니다.


root@localhost#]ifconfig eth0 1.1.1.1


이 메시지를 스크립트에 넣어서 


nor-flash 의 특정 어드레스 영역을 읽어서


조절 하고 싶습니다.


root@localhost#] ifconfig eth0 $r1.$r2.$r3.$r4 // 이 부분에서 r1,r2... 은 플래쉬에 읽은 주소 값입니다.


위의 예와 마찬가지로 


nor-flash 의 특정 어드레스의 값을 읽어서


ifconfig eth0 < 읽은 값 >


을 넣어서 IP 를 할당하고 싶습니다.


이 부분에서 다른 방법으로는


system() 함수를 사용하여 어플단에서


불러오는 방법도 있겠지만


system 함수를 저런식으로 많이 사용해도 되는지 의문입니다.


/etc/init.d/profile 같은곳에 넣고 싶은데 


system 함수를 사용하여 어플리케이션을 실행하게끔 해줘야 되는데


system 를 이용하는게 맞는것인지


쉘 스크립트를 이용하는게 맞는것인지


궁금합니다.

그럼 조언 부탁 드리겠습니다.




Happycpu

2011.08.02 22:23:15
*.137.10.239

u-boot를 사용하신다면

u-boot안의 tools/env/fw_printenv 를 이용하심이 어떠실지..

그럼 u-boot의 parameter를 linux 에서 읽고쓰기가 가능하니 별도로 filesystem내에 저장파일을 만들지않고도

할수있지않을까요?

님이 사용하고자 하는는방법으로도 사용가능하겠죠.

setenv는 fw_printenv를 fw_setenv로 symbolic link걸면 됩니다.

많은 환경변수를 저런식으로하면 u-boot의 env내용이 너무 지저분해지니 ip류 정도만 하심이..

funmoney

2011.08.02 22:32:26
*.169.251.167

Q. rom 에 IP 를 저장하고 이것을 shell 에서 읽어서 ifconfig 를 이용하여 ethx 의 IP 를 설정하는 방법?

A: 우선 IP 를 저장할 mtdblock 을 만듭니다. 크기는 erase 할수있는 단위블럭 크기로하여 1개의 block 만을 잡습니다.

      이제 예를 들어 mtdblock7 을 크기 2048Byte 로잡았다고 가정할 경우에 대하여 생각해 봅니다.

      mtdblock7 에 문자열로 "192.168.22.34" 라는 문구를 저장합니다.

 

      이제 이것을 shell 명령으로 읽어서 eth0 의 IP 를 192.168.22.34 로 설정하고자 한다면

 

       IPADDR = `cat /dev/mtd7`  -----> 주의 : 따옴표는 키보드의 좌측 최상단의 '~' 키와 같이 있는 것을 사용해야함.

       ifconfig eth0 $IPADDR

 

       이런 setup-ip.sh 라는 파일을 만들고 실행합니다.

 

참고 : system 함수는 clone 을 사용하여 system 함수를 call 한 process 의 쌍동이를 생성한 후에 실행되고 이후 종료 됩니다.

           따라서, memory 를 많이 잡아 먹는 thread 나 shared memory 를 많이 사용하는 process 에서 system 함수를 사용하면

           순간적으로 가용메모리를 많이 필요하게 됩니다. memory 의 여분이 충분하다면 system 함수를 사용하는 것은

           전혀 문제가 되지않지만 embeded 에서는 memory 가 제약사항이죠 .... 참고로 이런 경우는 매우 단순한 process 를

           하나 생성하고 이  process  에서 message Q 를 통하여 다른 process 로부터 필요한 system 명령을 문자열로 받아서

           대신 실행해주면 메모리문제는 해결됩니다.

고도리

2011.08.03 11:55:17
*.121.139.134

실행 permission만 주어진다면 system 명령어도 상관없습니다.


아니면 exec 계열의 system call을 호출하셔도 됩니다.

List of Articles
번호 제목 글쓴이 날짜sort 조회 수
1568 커널패닉 발생시 GPIO 상태를 읽을수 있나요? [1] k0cool 2011-07-26 842
1567 userdata.img를 ext2용으로 만들때 genext2fs 사용법 질문 드립니다. 텡구 2011-07-28 1140
1566 gingerbread init.rc실행중 서비스 시작을 못하고 있습니다. [2] 해삣곰탱이 2011-07-28 1143
1565 현재 PC에서 사용하는 linux kernel 컴파일 할때 config 옵션이 ... [1] 시안 2011-07-28 593
1564 android pwm backlight 밝기 제어 [4] 김태영 2011-07-28 56712
1563 Origenboard (S5PV310) cpuboard 크기 알려주심 감사하겠습니다. [1] 가니 2011-07-28 650
1562 aesop6410 커널 패닉 [2] 천천히 2011-07-28 719
1561 android sound [1] 나도봤어 2011-07-29 802
1560 V310관련 질문 [1] 훌러덩 2011-07-29 633
1559 갤럭시S를 이용하여 USB 통신을 하고싶은데요.. [2] 마우스22 2011-07-30 1026
1558 V310보드 드라이버는 어디서 구하나요? [2] 훌러덩 2011-07-31 1044
1557 V310 datasheet...?? [2] 김창엽 2011-07-31 982
1556 커널 로그 저장 [1] 애플파이 2011-08-02 1310
1555 [해결] NAND bad block 관련 질문 [1] 박영기1 2011-08-02 1522
1554 안드로이드 소스코드보면 뒤에 Locked 붙은 함수 있잖아요 얼사마 2011-08-02 615
» 쉘 스크립트를 이용한 디바이스 제어 (읽기) [3] 조현호 2011-08-02 1043
1552 S5PC110 WM8960 sound bypass (LINPUT3 => Speaker) 처리 file [2] hotpjs 2011-08-02 1579
1551 S5PV210 Power Management [1] 아틸라 2011-08-02 1375
1550 TI 다빈치상에서 콤파일 오류... [1] blue0sky 2011-08-02 802
1549 리눅스 커널에서 idle time 찾는 방법 [1] 만봉부인 2011-08-02 848

사용자 로그인