성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Roll A Lisp In C - Reading ; https...
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>닷넷 개발자가 컴파일해 본 리눅스</h1> <p> 어찌 보면, 윈도우 개발자에게 있어 리눅스는 또 다른 매력일 수 있습니다. 소스 코드가 공개된 운영체제라니... ^^ (음... 커널 만질 실력도 안되면서.)<br /> <br /> 암튼, 현재로서는 도움이 될지 안될지 알 수 없으나... 저도 리눅스를 바닥부터 빌드해 보기로 했습니다. 다행히, 커널 컴파일에 대해서 찾아 보니 다음과 같이 잘 공개된 사이트가 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 임베디드 시스템 엔지니어를 위한 리눅스 커널 분석 ; <a target='tab' href='http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/chap01.html'>http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/chap01.html</a> </pre> <br /> 이 글은 위의 방법을 따라한 실습의 기록입니다. ^^<br /> <br /> <hr style='width: 50%' /><br /> <br /> 우선, 리눅스 커널 소스 코드를 다음의 사이트에서 구할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > The Linux Kernel Archives ; <a target='tab' href='http://www.kernel.org/'>http://www.kernel.org/</a> </pre> <br /> 오늘 날짜 기준으로 stable 버전이 3.4.7인데요. <br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Kernel 3.4.7 ; <a target='tab' href='http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.7.tar.bz2'>http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.7.tar.bz2</a> </pre> <br /> 빌드를 윈도우 운영체제에서 하기보다는 Linux 위에서 하는 것이 편할 것 같아서 일단 Ubuntu 서버 12를 설치했습니다. 로그인 후, "sudo -s" 명령어를 이용해서 root 권한으로 돌리고, wget 명령어를 이용해서 압축 파일을 다운로드 받았습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo -s cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.7.tar.bz2 </pre> <br /> /usr/src 폴더에서 압축을 풀면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > tar xvjf linux-3.4.7.tar.bz2 </pre> <br /> 현재 폴더에 linux-3.4.7이라는 폴더 명이 생기고 그 아래에 압축이 풀립니다. <a target='tab' href='http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/unpack-kernel-source-code.html'>1.4. 소스 코드 풀기</a> 글에 보니까, 편의상 그 폴더를 그대로 쓰지 않고 "linux"라는 폴더를 만든 후 그것을 linux-3.4.7에 링크하는 것이 좋다고 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ln -s linux-3.4.7 linux </pre> <br /> 여기까지 해서, 최종적으로 제 Ubuntu 서버 12의 /usr/src 폴더는 다음과 같은 구조로 되었습니다.<br /> <br /> <img alt='linux_compile_1.png' src='/SysWebRes/bbs/linux_compile_1.png' /><br /> <br /> <hr style='width: 50%' /><br /> <br /> 이제 다음의 글에 따를 차례입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 1.5. 컴파일 준비 ; <a target='tab' href='http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/prepare-compile.html'>http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/prepare-compile.html</a> </pre> <br /> 컴파일 하기 위해 필요한 툴들을 /usr/src/linux/Documentation 폴더에서 "vi Changes" 명령어로 확인하라고 하는데요. 제 경우에는 다음과 같이 출력되었습니다. (일부 윈도우 개발자들은 vi가 무척 낯설어서 거부감이 들 수 있을 텐데요. 기본적인 방향키/PageUp-Down 키들은 동일하게 동작하기 때문에 기본적인 기능 정도는 쉽게 다가설 수 있습니다. ^^ 그 외 vi 기능키들은 <a target='tab' href='http://hea-www.harvard.edu/~fine/Tech/vi.html'>http://hea-www.harvard.edu/~fine/Tech/vi.html</a>에서 확인할 수 있습니다.)<br /> <br /> <img alt='linux_compile_2.png' src='/SysWebRes/bbs/linux_compile_2.png' /><br /> <br /> 위의 목록 중에서 oprofile을 제외하고는 모두 정상적으로 다음의 명령어로 설치가 완료되었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential sudo apt-get install jfsutils sudo apt-get install reiserfsprogs sudo apt-get install xfsprogs sudo apt-get install squashfs-tools sudo apt-get install btrfs-tools sudo apt-get install pcmciautils sudo apt-get install quota sudo apt-get install isdnutils-base sudo apt-get install nfs-common sudo apt-get install mcelog </pre> <br /> oprofile의 경우에는 "sudo apt-get install oprofile"로 설치가 가능하다고 웹에 나와 있는데요. 실제로 해보니 오류가 발생했습니다. 검색 결과, 보안 문제로 인해서 삭제된 듯한데, 어쩔 수 없이 수작업으로 아래의 글을 읽고 직접 다운로드해서 설치를 해주었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > oprofile 설치 in ubuntu 8.04 LTS Linux (Ubuntu) ; <a target='tab' href='http://holypsycho.egloos.com/2909516'>http://holypsycho.egloos.com/2909516</a> </pre> <br /> 제 경우에는 아래와 같이 진행을 했는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo apt-get install libpopt-dev sudo apt-get install binutils-dev wget http://prdownloads.sourceforge.net/oprofile/oprofile-0.9.6.tar.gz tar xvfz oprofile-0.9.6.tar.gz cd oprofile-0.9.6 sudo ./configure --with-kernel-support sudo make install </pre> <br /> "sudo ./configure --with-kernel-support" 단계에서 마지막에 2개의 WARNING이 있었는데 살짝 무시하고 지나갈 수 있었지만, "sudo make install"에서의 빌드 오류는 난감했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > format_output.h:94:22: error: reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive] </pre> <br /> 이번에도 검색을 해봤는데, 다행히 답이 나왔습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Issue 22003: can't make android: external/oprofile/libpp... ; <a target='tab' href='http://code.google.com/p/android/issues/detail?id=22003'>http://code.google.com/p/android/issues/detail?id=22003</a> </pre> <br /> 어쩔 수 없군요. ^^ 익숙치 않은 vi 에디터를 이용해서 format_output.h 파일에서 mutable 키워드를 삭제해 주고 다시 빌드했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > cd libpp vi format_output.h // 94라인의 코드 "mutable counts_t & counts;"에서 mutable 키워드를 삭제한 후, // :w 명령어로 저장하고, :q 명령어로 vi 에디터 탈출 cd .. sudo make install </pre> <br /> 결국, 최종적으로 다음와 같은 환경 구성을 완료했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Gnu C: 4.6.3 Gnu make: 3.81 binutils: 2.22 util-linux: 2.20.1 module-init-tools: 3.16 e2fsprogs: 1.42 jfsutils: 1.1.15 reiserfsprogs: 3.6.21 xfsprogs: 3.1.7 squashfs-tools: 4.2 btrfs-progs: 0.19 pcmciautils: 018 quota-tools: 4.00 PPP: 2.4.5 isdn4k-utils: 3.12 nfs-utils: 1.2.5 procps: 3.2.8 oprofile: 0.9.6 udev: 175 grub: 1.99 mcelog: 1.0pre iptables: 1.4.12 </pre> <br /> 자... ^^ 다시 본문으로 돌아가서, Visual Studio같은 "Clean" 작업을 해주는 것이 좋다고 써 있는데요. 그래서 다음과 같이 명령을 내려주었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > cd /usr/src/linux make mrproper </pre> <br /> <hr style='width: 50%' /><br /> <br /> 이제 다음 장으로 넘어 갑니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 1.6. 커널 설정 ; <a target='tab' href='http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/kernel-configuration.html'>http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/kernel-configuration.html</a> </pre> <br /> 커널 설정은 3가지 명령어(make config, make menuconfig, make xconfig)로 가능하다고 하는데요. 자세한 것은 다음의 문서에 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 리눅스 커널 가이드 ; <a target='tab' href='http://wiki.kldp.org/KoreanDoc/html/Kernel-KLDP/'>http://wiki.kldp.org/KoreanDoc/html/Kernel-KLDP/</a> </pre> <br /> 저는 위의 글에 나온 "make menuconfig"을 이용해서 설정을 했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo apt-get install libncurses5-dev make menuconfig </pre> <br /> 하지만... 솔직히 ^^; 어떤 설정을 변경해야 할지 모르겠더군요. 그래서 그냥 기본 설정 그대로 저장만 하고 나왔습니다.<br /> <br /> 설정된 사항은 "vi .config" 명령어로 천천히 확인할 수 있습니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 자... 드디어 컴파일을 해봅니다. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 1.7. 커널 컴파일 ; <a target='tab' href='http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/kernel-compile.html'>http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/kernel-compile.html</a> </pre> <br /> 위의 문서에서는 "make dep" 단계가 나오는데, 실제로 실행시켜 보면 이제는 필요없다는 메시지가 나옵니다. 따라서 다음과 같이만 차례대로 실행시켜 주면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > make modules make bzImage make modules_install </pre> <br /> make bzImage 빌드가 끝나고 나면 마지막에 다음과 같은 식의 메시지가 출력됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Setup is 16800 bytes (padded to 16896 bytes). System is 4853 KB CRC 69932938 Kernel: <span style='color: blue; font-weight: bold'>arch/x86/boot/bzImage</span> is ready (#2) </pre> <br /> 나중에 bzImage 파일을 복사할 것이기 때문에 위의 경로를 기억해 두시고... 빌드가 완료되고 나면, /lib/modules/3.4.7 폴더가 생성됩니다.<br /> <br /> <img alt='linux_compile_3.png' src='/SysWebRes/bbs/linux_compile_3.png' /><br /> <br /> <hr style='width: 50%' /><br /> <br /> 드디어 마지막 단계입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 1.8. 커널 테스트 및 설치 ; <a target='tab' href='http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/kernel-install-test.html'>http://wiki.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/kernel-install-test.html</a> </pre> <br /> 그런데, 위의 글은 현재 ubuntu에서 통하지 않습니다. 저도 잘은 모르겠지만, ubuntu 최신 버전은 LILO가 아니라 GNU GRUB2로 바뀌어서 그런 것 같습니다. 따라서 grub2를 설치하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo apt-get install grub2-common </pre> <br /> 빌드된 bzImage 파일을 boot 폴더에 복사합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > cp /usr/src/linux/.config /boot/config-3.4.7 cp /usr/src/linux/arch/x86/boot/bzImage /boot/vmlinuz-3.4.7 cp /usr/src/linux/System.map /boot/System.map-3.4.7 </pre> <br /> 아직 리눅스에 대해서 잘은 모르겠지만, bzImage 파일의 경우 위와 같이 vmlinuz-{version}과 같은 형식으로 복사되어야 합니다. 다른 파일들도 마찬가지이고.<br /> <br /> 그다음 비상시를 위한 Ram Disk 이미지 파일을 만드는 작업이라고 하는데요. 역시 동일한 파일 포맷으로 아래와 같이 실행해 주어야 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > mkinitramfs -o /boot/initrd.img-3.4.7 3.4.7 </pre> <br /> 마지막으로, 새롭게 추가된 커널을 grub.cfg 파일에 반영시켜 주는 명령어를 내립니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > update-grub2 Generating grub.cfg ... <span style='color: blue; font-weight: bold'>Found linux image: /boot/vmlinuz-3.4.7 Found initrd image: /boot/initrd.img-3.4.7</span> Found linux image: /boot/vmlinuz-3.2.0-27-generic-pae Found initrd image: /boot/initrd.img-3.2.0-27-generic-pae Found linux image: /boot/vmlinuz-3.2.0-23-generic-pae Found initrd image: /boot/initrd.img-3.2.0-23-generic-pae Found memtest86+ image: /memtest86+.bin done </pre> <br /> 이렇게 해서 새로 빌드된 커널이 시스템에서 부팅항목으로 선택되었는데, 실제로 grub.cfg 파일을 열어 보면 vmlinuz-3.4.7에 대한 항목을 확인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > vi /boot/grub/grub.cfg </pre> <br /> 자... 그럼 두근거리는 마음으로 ^^ 정상적으로 동작하는지 알아보기 위해 리눅스를 재시작합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > shutdown -r now </pre> <br /> 정상적으로 부팅이 되었으면 "uname -a" 명령어로 확인했을 때 다음과 같이 새롭게 빌드된 커널 버전이 나옵니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > uname -a <span style='color: blue; font-weight: bold'>Linux ubuntu 3.4.7</span> #1 SMP Thu Aug 2 11:15:30 KST 2012 i686 i686 i386 GNU/Linux </pre> <br /> <hr style='width: 50%' /><br /> <br /> 위의 테스트를 처음에는 Hyper-V에서 진행을 했었는데 실패를 했습니다. 웬일인지 Hyper-V에 설치되어 있던 Ubuntu에서는 부팅 도중에 멈춰 버렸는데요. 구체적인 부팅 단계를 확인하기 위해 리눅스 부팅 시에 키보드에서 'p'키를 눌러서 윈도우처럼 부팅 메뉴 선택 화면으로 진입했습니다.<br /> <br /> <img alt='linux_compile_4.png' src='/SysWebRes/bbs/linux_compile_4.png' /><br /> <br /> 여기에서 "Ubuntu, with Linux 3.4.7 (recovery mode)"를 선택했고, 부팅 과정 중의 문제가 있는 부분을 확인했습니다.<br /> <br /> <img alt='linux_compile_5.png' src='/SysWebRes/bbs/linux_compile_5.png' /><br /> <br /> 에이... ^^; 모르겠습니다. 암튼 Hyper-V에서는 동작하지 않았습니다. 아마도 "make menuconfig" 단계에서 어떤 설정을 추가해 주거나 한다면 될지도 모르겠지만, 거기까지 파헤치기에는 제가 리눅스에 대한 지식이 없습니다.<br /> <br /> 위의 결과는 Ubuntu 12의 서버 x86/x64 버전 및 데스크톱 x86 버전을 Hyper-V에서 테스트 해보고 얻은 결과입니다.<br /> <br /> 결국, 혹시나 싶어서 물리 PC에 설치된 Ubuntu 12 데스크톱 x86 버전에서 재시도를 해보았고 거기서는 정상적으로 커널이 바뀐 것을 확인했습니다. 음... 대신 그렇게 재부팅된 Ubuntu 12 GUI 화면에서는 마우스가 동작하지 않았습니다. 이것도 아마 "make menuconfig"으로 해결할 수 있는 부분인지는 잘 모르겠습니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> Hyper-V에서의 부팅 실패 문제가 발생하면 어떻게 원복할 수 있을까요? 역시 부팅 시에 'p' 키를 눌러서 부팅 메뉴 선택 화면으로 진입한 후 "Previous Linux versions" 항목으로 들어가면 됩니다.<br /> <br /> 재부팅이 된 후에는 grub.cfg 파일의 내용을 이전으로 돌려놓으면 되는데요. 다음과 같이 3.4.7 관련 파일들을 지우고 cfg 파일을 업데이트 시켜주면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo -s cd /boot rm vmlinuz-3.4.7 rm config-3.4.7 rm initrd.img-3.4.7 rm System.map-3.4.7 update-grub2 </pre> <br /> <hr style='width: 50%' /><br /> <br /> 지난번 글에서, Linux의 Hyper-V에 대한 지원이 추가되었다고 했는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Ubuntu 리눅스의 Hyper-V 지원 (마우스, 네트워크) ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/1322'>http://www.sysnet.pe.kr/2/0/1322</a> </pre> <br /> "make menuconfig" 화면을 통해서 이에 대해 확인이 가능한데요. "Device Drivers" 하위 범주에서 다음과 같이 Hyper-V에 대한 항목을 찾을 수 있었습니다.<br /> <br /> <img alt='linux_compile_6.png' src='/SysWebRes/bbs/linux_compile_6.png' /><br /> <br /> 이를 선택하고 들어가면 "Microsoft Hyper-V client drivers" / "Microsoft Hyper-V Utilities driver" 세부 항목이 "M(odularizes features)"로 선택된 것을 볼 수 있습니다.<br /> <br /> 리눅스 커널 자체에 포함되었으니, 기타 리눅스 배포본들이 해당 커널을 채택하면 Hyper-V에서 마우스와 네트워크를 매끄럽게 사용할 수 있습니다. (Ubuntu 12가 그 중 하나의 배포본이고.)<br /> <br /> <hr style='width: 50%' /><br /> <br /> 끝입니다. ^^ 이렇게 커널 컴파일을 한번 하고 나니... 왠지 ^^ 리눅스에 대한 전문가가 된 것 같은 착각이 드는군요. 맛보기에 불과하지만, 그래도 하나의 경험을 쌓은 데 의미가 있을 것 같습니다. ^^<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1388
(왼쪽의 숫자를 입력해야 합니다.)