태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


크리에이티브 커먼즈 라이선스
Creative Commons License



우분투 9.04 (Jaunty Jackalope) 커널 컴파일하기



-. 원문: http://blog.avirtualhome.com/2009/04/29/how-to-compile-a-kernel-for-ubuntu-jaunty/

-. 내용은 최대한 원문을 유지하려고 하였으며, 몇가지 개인적으로 필요하다고 생각되는 내용을 추가하여 포함시켰습니다.

-. 컴파일 환경: VirtualBox 3.04 + Ubuntu 9.04 + Core2 Duo 3.2G + 896MB RAM

-. 컴파일 할 커널 버전: 2.6.28-15-51

 

  • 준비

sudo su -

apt-get update

apt-get install fakeroot build-essential

apt-get install crash kexec-tools makedumpfile

apt-get build-dep linux

apt-get install git-core libncurses5 libncurses5-dev

apt-get install initramfs-tools coreutils module-init-tools wireless-crda





커널 소스를 다운 받고 컴파일 작업을 할 디렉토리를 원하는곳에 만듭니다.
여기서는 /d1/packaging/kernel/jaunty 이 디렉토리로 정했네요..

mkdir -p /d1/packaging/kernel/jaunty

 

 

  • 커널 소스 받기
     
cd /d1/packaging/kernel/jaunty
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-jaunty.git source

소스를 다 받으면 source 디렉토리에 저장됩니다.


 


 

  • 새 브랜치 만들기

처음에는 branch가 master로 되있습니다. 이 브랜치는 유지하면서 앞으로 수정 작업을 할 브랜치를 새로 만들겁니다.

우선 최신 버전을 확인합니다.

cd source
cat debian.master/changelog|more



다음과 같은 내용을 확인 할 수 있습니다.
UNRELEASED라고 적힌 버전 아래에 있는 버전을 컴파일 할 겁니다.
여기서는 2.6.28-15.51이 되겠네요. 버전은 이것과 다를 수 있습니다.

linux (2.6.28-15.52) UNRELEASED; urgency=low

  CHANGELOG: Do not edit directly. Autogenerated at release.
  CHANGELOG: Use the printchanges target to see the curent changes.
  CHANGELOG: Use the insertchanges target to create the final log.

 -- Stefan Bader <stefan.bader@canonical.com>  Thu, 27 Aug 2009 15:09:06 +0200

linux (2.6.28-15.51) jaunty-proposed; urgency=low

  [ Colin Ian King ]

  * SAUCE: wireless: hostap, fix oops due to early probing interrupt
    - LP: #254837


 

git checkout Ubuntu-2.6.28-15.51 -b core2

이 명령을 실행하면 core2라는 branch가 생성됩니다.

 

git branch

이제 작업 브랜치가  *core2로 설정된것을 확인 할 수 있습니다.


 

  • config 파일 만들기

cp debian.master/config/i386/config .config
cat debian.master/config/i386/config.generic >> .config



컴파일 설정을 변경합니다. 설정 변경 안하고 그냥 하려면 그냥 "Exit"를 선택하여 빠져나옵니다. (종료시 save 여부를 물어본다면 "yes"를 선택하세요)

make menuconfig

 

만들어진 config 파일을 백업합니다.

mv .config ../config.core2

 

git 트리를 정리합니다.

git reset --hard

git clean -xdf

 

  • 컴파일 준비

기본으로 들어있는 generic flavour를 보존하기 위해, 이것을 복사하여 새 flavour (여기서는core2)를 만듭니다.

ls debian.master/abi



지금 컴파일 하려고 하는 버전인 2.6.28-15.51의 이전 버전인 2.6.28-15.50이라는 디렉토리가 있는것을 확인합니다.
디렉토리명은 버전 마다 다를 수 있으니 본인의 환경에 맞게 수정하면됩니다.

cp debian.master/abi/2.6.28-15.50/i386/generic debian.master/abi/2.6.28-15.50/i386/core2
cp debian.master/abi/2.6.28-15.50/i386/generic.modules debian.master/abi/2.6.28-15.50/i386/core2.modules

cp ../config.core2 debian.master/config/i386/



파일 몇개를 수정해야합니다.

vi debian.master/scripts/misc/getabis

거의 마지막 부분에 있는...

getall i386 generic server

이 라인을 찾아 이렇게 수정...

getall i386 generic server core2



 

vi debian.master/rules.d/i386.mk

이 부분을 찾아서...

flavours        = generic server


이렇게 수정...

flavours        = generic server core2


 

그 외....


vi debian.master/control.d/flavour-control.stub

 파일을 열어서...

Package: linux-image-PKGVER-ABINUM-FLAVOUR
Architecture: ARCH
Section: base
Priority: optional
Pre-Depends: dpkg (>= 1.10.24)
Provides: linux-image, linux-image-2.6, fuse-module, =PROVIDES=
Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda
Conflicts: hotplug (<< 0.0.20040105-1)
Recommends: BOOTLOADER
Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER
Description: Linux kernel image for version PKGVER on DESC
 This package contains the Linux kernel image for version PKGVER on
 DESC.
 .
 Also includes the corresponding System.map file, the modules built by the
 packager, and scripts that try to ensure that the system is not left in an
 unbootable state after an update.
 .
 Supports SUPPORTED processors.
 .
 TARGET
 .
 You likely do not want to install this package directly. Instead, install
 the linux-FLAVOUR meta-package, which will ensure that upgrades work
 correctly, and that supporting packages are also installed.


Package: linux-headers-PKGVER-ABINUM-FLAVOUR
Architecture: ARCH
Section: devel
Priority: optional
Depends: coreutils | fileutils (>= 4.0), SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-2.6
Description: Linux kernel headers for version PKGVER on DESC
 This package provides kernel header files for version PKGVER on
 DESC.
 .
 This is for sites that want the latest kernel headers.  Please read
 /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details.


Package: linux-image-debug-PKGVER-ABINUM-FLAVOUR
Architecture: ARCH
Section: devel
Priority: optional
Provides: linux-debug
Description: Linux kernel debug image for version PKGVER on DESC
 This package provides a kernel debug image for version PKGVER on
 DESC.
 .
 This is for sites that wish to debug the kernel.
 .
 The kernel image contained in this package is NOT meant to boot from. It
 is uncompressed, and unstripped. This package also includes the
 unstripped modules.


위 세가지 Package (linux-image..., linux-headers..., linux-image-debug...)에 대한 내용을 모두 복사해서...

vi debian.master/control.stub.in

이 파일의 마지막 부분에 추가하여 붙여 넣고 다음과 같이 수정합니다. (반드시 각 Package 문단 사이에 공백 한 줄을 넣어 띄어야 합니다.)
파일안에 나타나는 모든 부분에 대해 변경해야 합니다. 빼먹으면 컴파일하다 멈추니까 정확히 수정하세용.

FLAVOUR                             => core2로 변경
ARCH                                  => i386
BOOTLOADER                       => grub
=PROVIDES=                         => 삭제
DESC, SUPPORTED, TARGET   => 패키지 설명하는 부분인데 수정하지 않아도 상관없습니다.
PKGVER                               = > 2.6.28
ABINUM                               => 15          # 컴파일 할 버전인 2.6.28-11에서 11에 해당하는 번호
SRCPKGNAME                       => linux



debian 폴더에 심볼릭 링크를 생성합니다. (현재 디렉토리가 /d1/packaging/kernel/jaunty/source 인 상태에서 진행)

ln -sf ../debian.master/changelog debian/changelog
ln -sf ../debian.master/control.stub.in debian/control
ln -sf ../debian.master/control.stub.in debian/control.stub

 


지금까지 수정한 내용을 git 저장소에 올립니다.

git add .
git commit -a -m "Core2 modifications"

-m 뒤에는 적당한 코멘트 문자열을 적어주면 됩니다.




 

  • 이제 컴파일을 합시다!

CONCURRENCY_LEVEL=2 NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-core2

CONCURRENYCY_LEVEL을 cpu의 코어 개수로 설정하여 컴파일을 좀 빠르게 해봅시다. 듀얼 코어인 경우 2로 적으면 됩니다.



 

  • 설치

커널이 제대로 컴파일 되었으면 현재 디렉토리인 source의 상위 디렉토리에 deb 파일이 생성 됩니다.
이제 이 파일들을 설치합니다. 역시 이번에도 파일명은 본인의 버전에 맞는걸루....

원문에서는 deb 파일이 세개 생성된거 같은데 제가 했을 땐 linux-image~.deb랑 linux-headers~i386.deb 두개만 생겼습니다. 그냥 있는거 다 설치하면 되겠습니다.

cd ..
apt-get install linux-headers-2.6.28-15
dpkg -i linux-image-2.6.28-15-core2_2.6.28-15.51_i386.deb
dpkg -i linux-headers-2.6.28-15-core2_2.6.28-15.51_i386.deb 




설치가 정상적으로 완료 되었다면 /boot 디렉토리에 다음과 같은 파일들이 생성됩니다.

vmlinuz-2.6.28-15-core2
config-2.6.28-15-core2
abi-2.6.28-15-core2
System.map-2.6.28-15-core2
initrd.img-2.6.28-15-core2
vmcoreinfo-2.6.28-15-core2



패키지 설치시 grub의 내용를 변경하게 되는데, 혹시 제대로 변경되지 않았다면 직접 수정합니다.

vi /boot/grub/menu.lst

 

title Ubuntu 9.04, kernel 2.6.28-15-generic
uuid afc6f9fa-3333-449b-8f02-e7f517cacf21
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=afc6f9fa-3333-449b-8f02-e7f517cacf21 ro find_preseed=/preseed.cfg automatic-ubiquity noprompt crashkernel=384M-2G:64M@16M,2G-:128M@16M
initrd  /boot/initrd.img-2.6.28-15-generic

위와 같이 menu.lst 파일의 마지막 부분에 보면 기존 커널 버전의 메뉴 옵션이 있는데 그대로 복사한 다음에 색이 칠해진 부분만 지금 컴파일하여 설치한 파일 이름으로 수정합니다.



이제 재부팅을 하고 부팅 메뉴에서 새로 추가한 커널 버전을 선택해여 해당 버전으로 부팅합니다.

uname -r
2.6.28-11-core2

새로 컴파일한 커널로 바뀌었습니다!





저작자 표시 비영리 동일 조건 변경 허락
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by morcavon

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.


크리에이티브 커먼즈 라이선스
Creative Commons License
-. ubuntu 9.04
-. /etc/pam.d/common-password 수정
password     [succecc=1 default=ignore]   pam_unix.so nullok obscure min=4 max=8 sha512



-. 참고: http://ubuntuforums.org/showthread.php?t=347827

저작자 표시 비영리 변경 금지
Posted by morcavon

크리에이티브 커먼즈 라이선스
Creative Commons License


-. 실행 환경

XNOTE T1

Ubuntu 8.10 + VMware Workstation 6.5.1 + Windows XP (as guest O/S)


-. 문제
위 환경에서 윈도우 설치를 시도하였으나 키보드 입력이 전혀 되지 않음.


-. 해결 방법

setxkbmap -rules xorg -layout "gb"

원문에서는 "gb"를 사용했는데 이건 영국에 해당하는 키보드 레이아웃값임. /usr/share/X11/xkb/ruels/에서 레이아웃 리스트를 확인할 수 있는데, "kr" (대한민국)로 해도 상관없는듯...


-. 원문
원문 스레드에서는 풀스크린 사용시 문제가 생긴다는거 같은데, 내 경우에는 풀스크린과는 상관없이 키 입력이 되지 않았다..
http://communities.vmware.com/thread/114018
저작자 표시 비영리 변경 금지
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by morcavon

크리에이티브 커먼즈 라이선스
Creative Commons License
1. ubuntu install cd를 사용하는 방법

열기..



2. ubuntu install cd를 사용하여 windows 부트로더를 덮어 씌우는 방법

열기..



3. ubuntu live cd를 이용하여 윈도우 부트로더를 유지하는 방법

열기..



4. ubuntu live cd를 이용하여 윈도우 부트로더를 덮어 씌우는 방법

열기..



출처: https://wiki.ubuntu.com/RecoveringGrub
해석은...차차...=_=;;
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by morcavon

크리에이티브 커먼즈 라이선스
Creative Commons License
아직 작업중.

자세한(?) 내용은 우분투 위키에..


현재까지의 내용
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by morcavon

크리에이티브 커먼즈 라이선스
Creative Commons License
중절모만 몇번 써보다가 우분투로 오니 여러모로 적응이 안된다=_=

삼바를 설정은 처음 해보는거라 이런저렁 설정을 해보았지만 윈도우 네트워크에는 나타나지만 접근하려고 하면 리소스에 접근 권한이 없다는 안타까운 메시지를 뱉어냈다=_=

여러군데 알아본바 iptables로 몇개의 포트를 열어주면 된다고 했으나 그건 내부에서 외부로 나갈경우에 필요한 설정이라고 알고있었던지라 다른 방법을 찾아봤다.

알고보니 매우 단순한 나의 실수!
삼바 서버를 설정만 해놓고 유저등록을 해놓지 않았던 것! 우오오오!!!
smbpasswd -a userid 로 삼바서버를 사용할 id를 등록해 놨어야 하는것이다=_=
아, 물론 smb.conf에서 security=user 설정을 잊으면 안되겠다...

흠..지금 깔아놓은 패키지가 적어서 그런지 모르겠지만 페도라나 레드햇보다는 가볍다는 느낌이 확연하군..
배울게 너무 많다@_@
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by morcavon
이전버튼 1 이전버튼