자...리눅스 커널을 빌드해라~!


왜냐고? 그냥~~

이유는 없다…


Just do it~!

그냥 하는거다…

그냥 하는 것이 이유다…

아니 난 리눅스 천재니까~~!!

흐~


리눅스 이~녀석~~~




  1. 우선 커널 소스를 받아온다.

  2. .config 파일을 복사한다.

  3. make 한다. (2시간정도 걸림)

  4. make modules 를 한다.

  5. make modules_install 을 한다.

대충 말하면 이렇게 한다…

자세한 정보는 다음 이곳들을 보며 대충알 수 있습니다.

귀찮아서리~~~

아주 친절하게 설명할 에너지가 없네유~~


http://emzei.tistory.com/m/post/153

http://blog-wk.blogspot.kr/2010/08/blog-post_29.html

http://blog.daum.net/bagjunggyu/138


제가 헤맨것만 설명을 드리면..

성공하기까지..몇일이 걸렸습니다. 이런;;;


.config 파일의 중요성을 몰랐어요..

.config 파일의 커널구셩내용이 적혀 있는데.

현재 작동중인 커널 구성에서 크게 달라지면 큰일 납니다.

부팅이 안되니까요…


.config를 대충만들면...결국 이 화면을 보게 될것 입니다. 저처럼 ㅋㅋㅋㅋ

.config 를 무시하지 마세요~~!!


요령은 현재 잘 작동중인 커널의 .config 을 사용하라..

이것은 구굴링하면 설명은 찾을 수 있어요…


아니 설명해 드릴꼐요..

https://help.ubuntu.com/community/Kernel/Compile ← 아주 잘 설명하고 있내요~~영어로~~ㅋㅋ



cp -vi /boot/config-`uname -r` .config

이게 제가 볼텐 커널 빌드시 핵심중의 핵심이라고 생각합니데이~~


일단 카피해놓고

이 구성중에서 변경을 해야쥐~

쌩짜(new)에서 구성하는 것은

저 같은 쪼가 리눅서에게는

불가능한일입니뎅~~


암튼 .config만 잘 되어 있으면

이제 빌드하면 됩니데이~~


참고로 밑의 그림은.말입니다.

제가 테스트한 페로라의 현재 /boot 디렉토리 밑에 있는

현재 커널의 .config 파일입니다.

빨간박스 안이 말입니다.~~~~~~



암튼 그러고 나서

그냥

바로~


make

해버리면 됩니다.


그리고 2시간 정도 기다립니다.


그리고 나서..다음 명령을 실행시켜주면...

  • make modules

  • make modules_install

  • make install


되는것입니다.



[root@localhost linux]# make modules

 CHK     include/config/kernel.release

 CHK     include/generated/uapi/linux/version.h

 CHK     include/generated/utsrelease.h

 CHK     include/generated/bounds.h

 CHK     include/generated/timeconst.h

 CHK     include/generated/asm-offsets.h

 CALL    scripts/checksyscalls.sh

 Building modules, stage 2.

 MODPOST 2878 modules


위 화면은 말입니다…

make modules

실행 결과입니다.


2878개...모듈...이 있더구만요~~





바뀌었다…

커널 버전이 바뀐것입니다.

위 화면은 제가 새로 만든 커널로 부팅한 결과화면입니다~


좀더 더~~

친절하고 꼼꼼하게

설명했어야 하는디~

죄송합니다~~




[참고]

http://emzei.tistory.com/m/post/153

http://blog-wk.blogspot.kr/2010/08/blog-post_29.html

http://blog.daum.net/bagjunggyu/138

https://help.ubuntu.com/community/Kernel/Compile



[결론]

결론은…

글을 꼼꼼히 읽자이종~~;;;;;;

다 설명에 있었습니다.


.config 복사해서 하라고

그 문장을 제가 과감하게 무시했습니다.


할렐루야~~



좌충우돌 미친감자의 이것저것 개발 이야기

^_______항상웃어_______^


C++ 이야기

struct  

class

차이점


“struct가 함수를 가질 수 있다고~!”



오늘도 강백호 같은 미친감자는

농구천재 서태웅과 같은 C++천재에게

가다간다…


C++천재에게..미친감자는 이렇게 물어본다.

도대체 객체지향은 뭐야?”


“객체지향?”

“객체지향을 그렇게 알고 싶어? 미친백호?ㅎ~”

“그럼 class와 struct의 차이점을 이야기 해봐 백호~”





“C++에서 구조체 struct클래스 class의 차이가 뭐가 있는지 말해봐~~~~~~~”


농구천재 아니 C++천재 서태웅은

강백호에게 물어보았다.


단순무식한 강백호…

이렇게 대답한다…


“글자가 다르지~~!!”


이런 바보~~!!!!;;

바보 강백호~!


struct도...함수 메소드(method)를 가질 수 있다고..

class도 메소드를 가질 수 있고~!

몰랐어 강백호~~!!


struct는 무조건 public속성으로 변수와 method가 생성되고

class는 무조건 private속성으로 변수와 method가 생성되는거야~~!!




struct Test

{

int a;

void f()

{

printf("struct test ");

}

};


이렇게 만들면~~

sturct에 변수와 함수(method)만들면

기본 속성이 public으로 만들어 지는 것입니다.

다음과 같이 생성되는 거죠~~!!


struct Test

{

public:

int a;

void f()

{

printf("struct test ");

}

};





반대로 class에 변수와 함수를 만들면...


class Test2

{

int a;

void f()

{

printf("class test ");

}

};


struct와 반대로… private로 만들어지는 것입니다.

즉, 기본적으로는 외부에서 class의 어떤 멤버에게도 접근을 할 수 없어요~~~~~~

굉장히 철학적이죠~~~

class라는 녀석~~~

모든것을 감추는 녀석이죠………

직접 public: 이라는 명시를 해주지 않는한…

모든 멤버 변수 멤버함수다 접근할 수가 없죠~~!

몰랐죠? 몰랐죠?

ㅋㅋㅋ



class Test2

{

private:

int a;

void f()

{

printf("class test ");

}

};


그렇습니다. class라는녀석은 기본으로 만들어지는 변수와 함수는 외부에서

접근할 수 없는 private로 만들어지는 것입니다.


알겠어?

강백호~~!!


무식쟁이 강백호~~!!

이런것은 기본이야~~!


니 팔뚝 굵다…

서태웅~



오늘은 여기까지..

음..이런이야기를 해고 싶어서 이 글이 만들어고 지고 있다.

struct라는 녀석 때문인것이다.


C언어만 하던 친구들은 struct가 class와 동일하고

method~ 즉, 함수를 가실 수 있다는 사실조차도 모르는 경우가 너무 많다….


“아니 struct가 함수를 가질 수 있다고~!”

라고 하며

놀란다…



하지만, C++에서 struct라는 녀석은 기본요소의 속성이 public이라는것 말고는

class와 그냥 동일하다는 것이다.





version 0.0.1 : 20151030 : 처음 작성

version 0.0.2 : 20151030 : 업그레이드 시도흐~





+ Recent posts