네트웍 구조가 아래와 같을때, 


 Internet <-> [ eth0(10.200.0.41) ---- eth1(192.168.0.254) ] <-> Host PC(192.168.0.100)


아래와 같이 설정한다. 


 $ > iptables -t nat -A POSTROUTING -s 192.168.0.0./24 -j SNAT --to 10.200.0.41


'development' 카테고리의 다른 글

[gcc] __attribute__((......)) 키워드  (0) 2016.01.06
openwrt  (0) 2015.02.24
[linux] debug fs 사용법  (0) 2015.01.07
[driver] ipTime N150UA-4dBi  (8) 2014.09.16
[program] unused variable 문제  (0) 2013.08.02
블로그 이미지

김유석0

,

debugfs?

  /proc/  밑에 리눅스 커널과 직접 통신이 가능한 file 형태의 인터페이스를 만들어 쓰듯이, debugfs 라는 가상의 메모리 타입 파일 시스템에 디버깅용 인터페이스를 만들어 사용하는 것을 말합니다. 


마운트 방법

$ > mount -t debugfs none /sys/kernel/debug/


 위와 같이 마운트 한후, /sys/kernel/debug/ 디렉토리에 들어가 보면, 리눅스 커널에서 만들어 놓은 디버깅용 인터페이스 파일들을 확인할 수 있습니다. 


example

/ > mount -t debugfs none /sys/kernel/debug


/ > cd /sys/kernel/debug


/sys/kernel/debug > ls

at91_clk        gpio            memblock        wakeup_sources

at91_gpio       hid             mmc0

bdi             ieee80211       usb


/sys/kernel/debug/ > cat at91_gpio

Pin     PIOA            PIOB            PIOC            PIOD


0:      A               A               GPIO:1          A

1:      A               A               GPIO:1          A

2:      GPIO:1          A               GPIO:1          A

3:      GPIO:1          A               GPIO:1          A

4:      GPIO:1          A               GPIO:1          GPIO:1

5:      GPIO:1          A               GPIO:1          GPIO:1

6:      GPIO:1          A               GPIO:1          A

7:      B               A               GPIO:1          A

8:      GPIO:1          GPIO:1          GPIO:1          A

9:      A               A               GPIO:1          A

10:     A               A               GPIO:1          A

11:     A               GPIO:1          GPIO:1          A

12:     A               GPIO:1          GPIO:1          A

13:     A               GPIO:1          GPIO:1          A

14:     GPIO:1          GPIO:1          GPIO:1          GPIO:1

15:     A               GPIO:1          GPIO:1          IRQ:edge-both

16:     A               GPIO:1          GPIO:0          A

17:     A               GPIO:1          GPIO:1          A

18:     A               GPIO:1          GPIO:1          A

19:     A               A               GPIO:1          GPIO:0

20:     A               A               GPIO:0          GPIO:0

21:     GPIO:1          A               GPIO:0          GPIO:1

22:     GPIO:1          A               GPIO:1          A

23:     GPIO:1          A               GPIO:1          A

24:     B               A               GPIO:1          A

25:     B               A               GPIO:1          A

26:     B               A               GPIO:1          A

27:     B               A               GPIO:1          A

28:     B               A               GPIO:0          A

29:     B               A               GPIO:1          A

30:     GPIO:1          A               GPIO:1          A

31:     GPIO:1          A               GPIO:1          A


/sys/kernel/debug/ > cd mmc0


/sys/kernel/debug/mmc0 > ls

clock             ios               pending_events    req

completed_events  mmc0:b368         regs              state


/sys/kernel/debug/mmc0 > cat clock 

50000000



API

 debug fs 를 만드는 api 는 kernel source 검색을 통해 확인 할 수 있습니다. 

대표적인 api 는 아래와 같으며, 이 api 를 시작으로 분석하면 쉽게 익힐 수 있습니다.


fs/debugfs/inode.c

struct dentry *debugfs_create_file(const char *name, mode_t mode, struct dentry *parent, void *data, const struct file_operations *fops);


'development' 카테고리의 다른 글

openwrt  (0) 2015.02.24
[network] nat 설정법  (0) 2015.01.15
[driver] ipTime N150UA-4dBi  (8) 2014.09.16
[program] unused variable 문제  (0) 2013.08.02
[program] 32bit CPU 에서 64bit 변수 사용 문제  (0) 2013.07.25
블로그 이미지

김유석0

,

퍼펙트샤인 소낙스 브릴리언트 샤인 디테일러 체험단 사용 후기입니다.


퍼샤에 올라온 소낙스 브릴리언트 샤인 디테일러 제품 체험단 이벤트에 응모하였습니다. 


응모엔 떨어졌었는데, 추가 선정이 되었습니다. 


감사합니다. 




외양은 이렇습니다. 


좀 싸구려 느낌이 나는 팩키지입니다. 





물기 말리기 전입니다. 


고체 왁스 사용한지 한달 된 상태인데, 비딩은 거의 없습니다. 탈지 수준정도네요. 




물기 다 말리고, 브릴리언트 샤인 디테일러 사용전입니다. 




자. 요놈을 샥샥 뿌려 주시고

샥샥 문지러 주시고


생각외로 뻑뻑하네요.






결과물입니다. 


광이 반딱반딱 하네요. 


디테일러는 처음 사용해 본 거라, 다른 제품과 어떤 차이점이 있는지는 잘 모르겠습니다. 


결과물은 만족합니다. 


정리하면,


1. 약간 뻑뻑한 느낌이 난다. 

2. 결과물은 좋다

3. 제품 케이스는 싸구려틱하다.



입니다. 


다시 말씀드리지만, 퍼펙트샤인 소낙스 브릴리언트 샤인 디테일러 체험단 사용 후기입니다.

'일상사' 카테고리의 다른 글

How to create the AUX on LS430  (0) 2015.11.23
[카메이트] 무스원 사용기  (0) 2015.02.22
[글로스브로] 버블밤 후기  (0) 2014.10.19
놀러 가는거  (0) 2014.08.12
면도기 샀음  (0) 2012.07.17
블로그 이미지

김유석0

,

퍼펙트샤인 글로스브로 버블밤 체험단 사용 후기입니다.


퍼샤에 올라온 글로스브로 제품 체험단 이벤트에 응모하였습니다. 


여러 제품군을 대상으로 한 체험단 모집이었는데, 전 그 중에 버블밤 카샴프에 응모를 하였습니다. 


굳이 카샴프 제품을 선택한 것은, 아직까지 카샴프를 써 본 적이 없어서입니다. 





다른 회사의 세차 용품과 비슷한 분위기라 매장 진열대에 놓여 있으면 크게 눈에 띌것 같지는 않습니다. 




적정 사용량에 대한 정보가 없어서, 우선 뚜껑으로 4컵 사용했습니다. 


생각외로 굉장히 찐득찐득했고, 연한 사과향이 나더군요. 




한달간 실외주차 되어 있던터라 아주 깨끗합니다.




폰카라, 흰색 배경에선 촛점이 잘 안잡힙니다.


세차장 빨래터에서 물을 받아다가 섞어 주고, 멋모르고 고압수를 한번 쐈다가 거품 다 뒤집어 썼습니다. 


생각외로 거품은 많이 나지 않았습니다. 물론, 카샴프를 너무 적게 사용했을 수도 있습니다. 





문대는 느낌은, 쫀득쪽득하다고 할까요? 마치 실리콘 장난감을 만지는 느낌이었습니다. 


물론 카샴프를 처음 써 보는 거라 


이게 버블밤의 느낌인지, 

아니면 도장면의 느낌인지, 

아니면 극세사 장갑의 느낌인지는 


구분 못하겠습니다. 






고압수 샤워후 모습인데 좀 이상하네요. 


사용중인 고체 왁스가 저렴한 블스표 왁스이고 왁스칠한지 한달만에 하는 세차라고는 하지만,


비딩이 거의 없네요. 이런 경우는 처음인듯. 가끔 퍼펙트샤인에 올라오는 탈지 사진과 비슷한 부위도 여럿 눈에 띄었습니다. 


오늘은, 결혼식 참석때문에 시간이 없어서 고체 왁스칠을 안 할 생각인데, 이런 상황이라면 좀 걱정되기는 합니다. 


이 역시, 버블밤을 써서 그런 것인지, 아닌지는 모르겠습니다. 



카샴프를 처음 경험해 본 거라 머라 평가를 내리기는 어렵습니다.

이번 체험단에 응모하기 직전에 맥과이어스 NXT 카샴프를 구매하였으니 번갈아 가며 사용해 보고 판단해 보아야 할 것 같습니다. 


다시 말씀드리지만, 이 포스팅은 퍼펙트샤인 글로스브로 버블밤 체험단 사용 후기입니다.


'일상사' 카테고리의 다른 글

[카메이트] 무스원 사용기  (0) 2015.02.22
[소낙스] 브릴리언트 샤인 디테일러  (0) 2014.10.19
놀러 가는거  (0) 2014.08.12
면도기 샀음  (0) 2012.07.17
애기 이름 공모중  (14) 2012.02.17
블로그 이미지

김유석0

,

ipTime N150UA-4dBi


환경

chip set : ralink MT7601STA

os : ubuntu 14.04


driver

DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2



준비

tar jxvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2


소스 수정

cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913

vi os/linux/rt_linux.c


아래와 같이 소스 수정


1111 static inline void __RtmpOSFSInfoChange(OS_FS_INFO * pOSFSInfo, BOOLEAN bSet)

1112 {

1113   if (bSet) {

1114     /* Save uid and gid used for filesystem access. */

1115     /* Set user and group to 0 (root) */

1116 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)

1117     pOSFSInfo->fsuid = current->fsuid;

1118     pOSFSInfo->fsgid = current->fsgid;

1119     current->fsuid = current->fsgid = 0;

1120 #else

1121     pOSFSInfo->fsuid = current_fsuid().val;

1122     pOSFSInfo->fsgid = current_fsgid().val;

1123 #endif

1124     pOSFSInfo->fs = get_fs();

1125     set_fs(KERNEL_DS);

1126   } else {

1127     set_fs(pOSFSInfo->fs);

1128 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)

1129     current->fsuid = pOSFSInfo->fsuid;

1130     current->fsgid = pOSFSInfo->fsgid;

1131 #endif

1132   }

1133 }


빌드

make

sudo make install


로딩

sudo modprobe mt7601Usta.ko


확인

$ > iwconfig

ra0       Ralink STA  ESSID:"11n-AP"  Nickname:"MT7601STA"

          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   

          Bit Rate:1 Mb/s   

          RTS thr:off   Fragment thr:off

          Link Quality=10/100  Signal level:0 dBm  Noise level:0 dBm

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


eth0      no wireless extensions.


eth1      no wireless extensions.


eth2      no wireless extensions.


eth3      no wireless extensions.


lo        no wireless extensions.





'development' 카테고리의 다른 글

[network] nat 설정법  (0) 2015.01.15
[linux] debug fs 사용법  (0) 2015.01.07
[program] unused variable 문제  (0) 2013.08.02
[program] 32bit CPU 에서 64bit 변수 사용 문제  (0) 2013.07.25
[u-boot] RPC : sendmsg returned error 101  (0) 2013.07.19
블로그 이미지

김유석0

,

놀러 가는거

일상사 2014. 8. 12. 16:50
2015.02.28 만정좌대 낚시
맴버 : 총10명
  얼반님, 얼반님 조카 1, 얼반님 조카 2
  겸
  승우
  장규, 정대표님, 정대표님 Ver2.0 3명, 

장소 : 만정좌대낚시
  신주소 : 인천광역시 중구 영종순환로 281
  구주소 : 인천광역시 중구 중산동 1853 번지
 

회비 : 총 50만원(인당 10만원, 얼반님 조카님들은 5만원)
  - 독좌대 대여 : 30만원
  - 낚시대 대여 및 미끼 : 7만원
  - 음식 및 기타 잡비 : 13만원

준비물
  공통
    고기 담아갈 비닐봉다리나 김치통 같은거
  장규
    - 김치
    - 밥(밥통째 들고 오면 됨. 현장에서 취사는 안됨)
    - 부르스타와 부탄가스
    - 냄비
    - 퐁퐁과 수세미
    - 두루마리 휴지 3개

  얼반
    - 소주 6병, 맥주 10병
    - 과자
    - 음료수
    - 일회용 식기
    - 라면
    - 매운탕 준비

  승우
    - 여자

  무겸
    - 잘생긴 얼굴

차량 운행
  얼반님 8시 반 목동 출발 -> 김주혁 픽업 -> 승우 픽업 -> 얼반님 조카 픽업 ->  영종도행
  장규는 알아서 출발



바다 낚시


원흥2호 제원및특징 
출조해역 : 서해안
주출조포인트 : 덕적근해 풍도근해 선미도 이작도(종일배입니다)
출항시간 : 오전하절4시30분 동절5시30분
입항시간 : 오후5시~6시
주 출조지역까지 소요시간 : 약2시간
어획어종 : 우럭 광어 놀래미 
톤수 : 19톤
속도 : 20노트
선장및가이드 제외한 탑승인원 : 40명
개인출조시 최소출항인원 : 10명
단체주중 : 1,500,000원
단체주말 : 2,500,000원
개인주중 : 60,000원
개인주말 : 60,000원
출항지 주소 : 인천 중구 항동7가 27-113앵카B 원흥유선 원흥2호 
보유장비: 전동릴전기공급장치 해수쿨러 어군탐지기 프루터 무전기 여름철그늘막 안내방송장비 화장실 수세식화장실 레이더 자동항법장치 구명부환 구명조끼 낚시객보험
특기사항: 선상매운탕중식제공 가이드승선 회떠드림 아침제공 안내방송 낚시대유료대여 


인천연안부두바다낚시 보스호 제원및특징 
출조해역 : 서해안
주출조포인트 : 울도,각흘도,선갑도,덕적도
출항시간 : 오전04:30
입항시간 : 오후06;00
주 출조지역까지 소요시간 : 2시간
어획어종 : 우럭,광어,놀래미.장대,농어,장어...
톤수 : 9.77톤
속도 : 20노트
선장및가이드 제외한 탑승인원 : 20명
개인출조시 최소출항인원 : 10명
단체주중 : 1,200,000원
단체주말 : 1,400,000원
개인주중 : 70,000원
개인주말 : 70,000원
출항지 주소 : 인천 중구 항동7가 27-32호 
보유장비: 전동릴전기공급장치 해수쿨러 어군탐지기 프루터 무전기 여름철그늘막 안내방송장비 화장실 수세식화장실 레이더 자동항법장치 구명부환 구명조끼 낚시객보험 
특기사항: 선상매운탕중식제공 가이드승선 회떠드림 아침제공 안내방송 낚시대유료대여 
보스호 : 조식+중식 먹거리일체제공,미끼제공 낚싯대1만원대여



출발 

  각자 알아서 출발 6 시쯤 출발하면 길 안막힐 것 같음. 



아침 식사

  전주 한정식뷔페

    031-585-2107

    도로명 주소 : 경기 가평군 청평면 경춘로 266

    지번 주소 : 가평군 청평면 대성리 344-18 


   http://map.daum.net/?panoid=1019387286&pan=61.8&tilt=-7.4&zoom=-1&map_type=TYPE_MAP&map_attribute=ROADVIEW&q=%EA%B2%BD%EA%B8%B0+%EA%B0%80%ED%8F%89%EA%B5%B0+%EC%B2%AD%ED%8F%89%EB%A9%B4+%EA%B2%BD%EC%B6%98%EB%A1%9C+266&urlX=584857&urlY=1166635&urlLevel=3


   

놀곳

  1. 쁘띠 프랑스

      http://www.pfcamp.com/

      경기도 가평군 청평면 고성리 616

  2. 아침고요 수목원

      http://www.morningcalm.co.kr/

  3. 남이섬

     https://www.namisum.com/



숙소

  모짜르트 펜션

  http://www.mozzart.co.kr/

  경기도 가평군 가평읍 두밀리 351 번지







'일상사' 카테고리의 다른 글

[소낙스] 브릴리언트 샤인 디테일러  (0) 2014.10.19
[글로스브로] 버블밤 후기  (0) 2014.10.19
면도기 샀음  (0) 2012.07.17
애기 이름 공모중  (14) 2012.02.17
우리 제이 돌잔치  (0) 2011.11.06
블로그 이미지

김유석0

,

아래 코드를 빌드하면

 
#include <stdio.h>
#include <sys/types.h>


int main(int argc, char *argv[])
{
    u_int64_t value1;
    
    value1 = 0xffffffffffffffff;
    
     return 0;
}


아래와 같이 빌드 에러 발생하게 됩니다.  


cc -Wall -Werror -Werror -std=gnu99 -c -o unused.o unused.c 
unused.c: In function ‘main’ 
unused.c:7:6: error: unused variable ‘value’ [-Werror=unused-variable] 
cc1: all warnings being treated as errors make: *** [unused.o] Error 1


이유는 ,  사용하지도 않으면서 value1 이라는 변수를 선언해 놓았기 때문인데, 보통은 Warnning 만 발생하지만 -Werror 옵션을 사용하면 기존의 Warnning 들을 모두 error 로 인식하기 때문입니다. 


가장 쉬운 해결 방법은, value1 이라는 변수를 사용하지 않는 것인데 아래와 같은 상황에서는 그렇기도 어렵습니다. 


#include <stdio.h>
#include <sys/types.h>

#define HAVE_PRINT

int main(int argc, char *argv[])
{
    u_int64_t value1;
    
    value1 = 0xffffffffffffffff;

#ifdef HAVE_PRINT
    printf("OUT : %lld\n", (long long unsigned int)value1);
#endif    
     return 0;
}

위와 같은 코드일경우, HAVE_PRINT 선언 상태에 따라서, value1 을 사용할 수도, 안할 수도 있으므로 무작정 value1 을 삭제할 수는 없습니다. 


그래서 아래와 같이 value1 에 속성을 주어서 선언하면 이런 문제를 해결할 수 있습니다. 



#include <stdio.h>
#include <sys/types.h>

#define HAVE_PRINT

int main(int argc, char *argv[])
{
    u_int64_t value1 __attribute__((unused));
    
    value1 = 0xffffffffffffffff;

#ifdef HAVE_PRINT
    printf("OUT : %lld\n", (long long unsigned int)value1);
#endif    
     return 0;
}


이렇게 하면 unused value 빌드 에러를 피할 수 있습니다. 단, 이 방법은 gnu 확장 문법이므로 다른 컴파일러 사용시에는 주의를 하셔야 합니다. 


'development' 카테고리의 다른 글

[linux] debug fs 사용법  (0) 2015.01.07
[driver] ipTime N150UA-4dBi  (8) 2014.09.16
[program] 32bit CPU 에서 64bit 변수 사용 문제  (0) 2013.07.25
[u-boot] RPC : sendmsg returned error 101  (0) 2013.07.19
[Kernel] Kbuild system  (0) 2013.07.12
블로그 이미지

김유석0

,

32bit CPU 인 ARM 에서 개발하고 있을때, 


아래와 같이 64비트 변수를 사용하려고 u_int64_t 타입을 사용할 경우, 문제 없이 동작되기를 기대하겠지만 잘 안되는 경우가 많다. 

 
#include <stdio.h>
#include <sys/types.h>


int main(int argc, char *argv[])
{
    u_int64_t value1;
    
    value1 = 0xffffffffffffffff;
    
    printf("%lld\n", value1);
    return 0;
}


위 코드를 아래처럼 컴파일을 해 보면



$ arm-none-linux-gnueabi-gcc -Wall -Werror -o test test.c cc1: warnings being treated as errors test.c: In function 'main': test.c:9: error: integer constant is too large for 'long' type


위와 같이 에러가 발생한다. 물론 -Werror 옵션을 제거하면 Warring 은 뜨겠지만 빌드는 될 것이다. 


uint64_t 타입은 

#typedef unsigned long long int uint64_t 

 으로 만드는데 C90 표준은 아니고 C99 에서야 지원하기 시작한 상황이다.그래서 빌드시 어떤 표준을 사용할 것인지에 대해 명시해 주어야 한다.  



아래와 같이 C99 표준 지정하여 빌드하면 문제없이 처리된다. 

$ arm-none-linux-gnueabi-gcc -Wall -Werror  -std=gnu99 -o test test.c



ARM 쪽에서는 잘 빌드 되었는데, 이젠 X86_64 에서 printf 사용시 문제가 발생한다. 


위의 에러 메시지에서 볼 수 있듯이 


32bit 머신에서 uint64_t 는 unsinged long long int 인데,

64bit 머신에서 uint64_t 는 unsigned long int 이므로 


printf("out : %lld\n", value); /* 32bit 머신에서는 OK, 64bit 머신에서는 fail */

printf("out : %ld\n", value); /* 32bit 머신에서는 fail, 64bit 머신에서는 OK */

 

인 상황이 벌어지게 된다. 


우선 stdint.h 를 참조하여 코드를 아래와 같이 묶어 주었다. 




 
#include <stdio.h>
#include <sys/types.h>


int main(int argc, char *argv[])
{
    u_int64_t value1;
    
    value1 = 0xffffffffffffffff;
    
#if __WORDSIZE == 64
    printf("%ld\n", value1);
#else
    printf("%lld\n", value1);
#endif
    return 0;
}

위와 같은 방식을 사용해도 되고 아래처럼 type casting 을 사용해도 된다. 아래 방식이 더욱 안정적으로 동작할 것이다. 



#include <stdio.h> #include <sys/types.h> int main(int argc, char *argv[]) { u_int64_t value1; value1 = 0xffffffffffffffff; printf("%lld\n", (long long unsigned int)value1); return 0; }



이런 문제는 특히, 멀티플랫폼을 지원하는 SW 개발시에 발생할 가능성이 크다. 처음부터 멀티 플랫폼 지원을 예상하여 작성하면  향후 알 수 없는 문제 발생을 줄일 수 있다. 




'development' 카테고리의 다른 글

[driver] ipTime N150UA-4dBi  (8) 2014.09.16
[program] unused variable 문제  (0) 2013.08.02
[u-boot] RPC : sendmsg returned error 101  (0) 2013.07.19
[Kernel] Kbuild system  (0) 2013.07.12
[kernel] __read_mostly?????  (0) 2013.05.08
블로그 이미지

김유석0

,

아래와 같은 환경에서


  - 부트로더 : u-boot

  - 커널 : Linux

  - root filesystem : nfs

  - 보드 IP : 192.168.1.100

  - Server IP : 192.168.1.10

  - nfs dir : /tftpboot/rootfs


 작업할 경우 "RPC : sendmsg returned error 101" 라는 메시지와 함께 root filesystem 마운트에 실패하는 경우가 있다. 


 이럴경우 kernel cmdline 으로 전달되는 bootargs 변수에 "nolock" 옵션을 붙여 주면 해결된다. 



 Marvell >> setenv bootargs 'console=ttyS0,115200 root=/dev/nfs init=/linuxrc rw nfsroot=192.168.1.10:/tftpboot/rootfs/,nolock ip=192.168.1.100'

Marvell >> tftpboot 0x400000 uImage

Marvell >> bootm 0x400000


 위의 예제처럼 nolock 옵션을 붙여주면 kernel/fs/nfs/nfsroot.c::static int __init root_nfs_parse() 에서 옵션을 인식해서 nolock 모드로 마운트를 할 수 있게 해준다. 



'development' 카테고리의 다른 글

[program] unused variable 문제  (0) 2013.08.02
[program] 32bit CPU 에서 64bit 변수 사용 문제  (0) 2013.07.25
[Kernel] Kbuild system  (0) 2013.07.12
[kernel] __read_mostly?????  (0) 2013.05.08
[etc] Reglar expressions  (0) 2012.09.19
블로그 이미지

김유석0

,

[Kernel] Kbuild system

development 2013. 7. 12. 19:54

Kbuild System



About Kbuild

 프로젝트 진행시 makefile 을 사용하면 빌드 과정을 단순화 시킬 수 있습니다. 하지만, 프로젝트의 규모가 커지면 makefile 도 그만큼 복잡해 지며 복잡해진 만큼 관리도 어려워 집니다.  

 Kbuild 는 이런 단점을 보안하기 위해 만든 makefile framework 이며, 규칙에 따라 간단하게 작성한 makefile 만으로도 복잡한 일을 수행할 수 있게 도와 줍니다. 


Kbuild 의 목적

  • 여러 플랫폼을 같은 방법으로 사용할 수 있게 할것.
  • 유연성있게 사용할 수 있어야 함. 
  • makefile 을 쉽게 만들수 있어야 하고 관리도 편해야 한다. 

 

Kbuild 가 지원하지 않는 기능

 Kbuild 는 빌드에 필요한 라이브러리나 헤더 등을 미리 확인해 주는 기능은 지원하지 않습니다. 

 이런 기능은 autoconfig tool(ex. configure..) 을 사용해야 합니다. 

 그렇다고 autoconfig tool 을 Kbuild 에서 사용할 수 없다는 건 아니므로 필요시 Kbuild 와 조합해서 사용하시면 됩니다. 


Kbuild 공식 사이트

 Kbuild 의 공식 사이트 주소는 아래와 같습니다.

 Kbuild 의 최신 버전이나 각종 정보를 얻을 수 있습니다. 


 http://svn.netlabs.org/kbuild


 최신버전 다운로드는 아래 주소를 클릭하시면 됩니다. (2013년 7월 12일 기준)

 

 http://svn.netlabs.org/kbuild/wiki/Download





Reference

http://svn.netlabs.org/kbuild/


블로그 이미지

김유석0

,