Linux/Ubuntu2010. 9. 18. 11:24
저번에 yaffs2 넣는다고 컴파일 했다가 시스템 날려먹고
겨우겨우 grub 메뉴로 들어가 복구는 했는데.. 이유를 오늘에서야 찾아보게 되었다.
(아.. 직딩의 한이란 ㅠ.ㅠ)

Shift 누르고 GRUB2 메뉴로 들어가서 기존의 커널로 부팅!
아마 update-grub시 1번 메뉴(=기본 선택 부팅)은 시간을 비교해서 최신의 것으로 바뀌는 것으로 추측된다.

안전모드로 부팅해서 죽을때의 메시지.
0.618952 초에 나온 이후의 메시지가 관건이다. sda1 응? "root=" boot option?

그래서 다른 부팅메시지와 비교를 해봤더니
커널 설정 부분의 root= 뒤에 UUID가 들어가냐, 아니면 device 이름이 들어가냐의 차이로 부팅이 안된게 아닐까 추측이 된다.
그리고, initrd가 빠져있었는데 음.. 귀찮은데 다른 버전의 것을 그냥 써줘도 되려나?
menuentry 'Ubuntu, 그리고 Linux 2.6.32.15+drm33.5' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 1e3d003c-6547-40c8-8f7f-32c0156b7ac8
        linux   /boot/vmlinuz-2.6.32.15+drm33.5 root=/dev/sda1 ro   quiet splash
}
}
menuentry 'Ubuntu, 그리고 Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 1e3d003c-6547-40c8-8f7f-32c0156b7ac8
        linux   /boot/vmlinuz-2.6.32-24-generic root=UUID=1e3d003c-6547-40c8-8f7f-32c0156b7ac8 ro   quiet splash
        initrd  /boot/initrd.img-2.6.32-24-generic


UUID는 전세계적으로 유일한 확인자 라는 의미라고 한다.
 Universally unique identifier
[링크 : http://en.wikipedia.org/wiki/Universally_unique_identifier]

귀찮아서 initrd 를 2.6.32.24 걸로 끌어다 썻더니 부팅은 시도하지만
커널과 관련된 파일들이 없어서 부팅이 진행되지는 않는다.

그래서 검색을 해보니, make modules_install 을 해주거나 depmod 를 해주면 되는 것으로 추측된다.
cd linux-2.6.30/drivers/gpu/drm/i915/
patch i915_drv.c /tmp/patch # make any modification you need here
make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules
sudo make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules_install
sudo depmod -a

[링크 : https://wiki.ubuntu.com/KernelCustomBuild]
[링크 : http://linux.die.net/man/8/depmod]

$ make modules_install
  ...
  INSTALL /lib/firmware/yam/9600.bin
  DEPMOD  2.6.32.15+drm33.5


여전히 initramfs 에서 못넘어 간다. 이래저래 initrd.img를 생성해야 할듯 하다.

머 생성해도 달라지는건 별로 없군 ㄱ- busybox 에서 못 넘어 간다 (안해!!!! ㅆㅂ)


다른것들 보다는.. 도대체 왜
 FATAL: Could not load /lib/modules/... : No such file or directory
라는 에러가 발생을 하는지 모르겠다.


---
/dev/sda1 대신 /dev/hda1을 바꾸면 될까 했는데.. 역시나 안되고 -_-
(sda1은 SATA 하드 hda1은 IDE용 하드의 식별자이다)

혹시나 해서 initrd의 내용을 열어보니
conf/conf.d/resume 파일의 내용중 UUID의 값이 /boot/grub/grub.cfg 의 내용과 다르게 들어있었다.
그리고 이 내용은
/etc/initramfs-tools/conf.d/resume에 들어있던 내용이고
mkinitramfs 에 의해 이 내용이 들어간 것으로 보인다.

Extracting initrd image
Initrd image is just cpio-gzip archive. So to extract it:

$ mkdir initrd
$ cd initrd
$ gzip -dc /boot/initrd-2.6.16-026test014.4-smp.cpio | cpio

[링크 : http://wiki.openvz.org/Modifying_initrd_image]

바꾸어서 해보니 안되는건 차이가 없다.
그래서 위의 방법대로 되는 버전의 initrd 와 내가 만든 initrd를 비교해보니
initrd 내부의 /lib/modules/ 에 modules.dep 파일이 빠져있었다 ㄱ-
미네랄!



2010.09.19
문서를 찾아봐도 mkinitramfs 라는 녀석이 끝판왕인데
나의 경우에는 우분투에서 받은 소스의 설치 경로가 달라서인지 제대로 된 initrd.img가 생성되지 않았다.

아무튼 이러한 경로를 참조해서 생성하도록 [version] 값을 넣어주어야 한다.
(-o 옵션 뒤의 값은 생성할 파일의 이름이고, 그 뒤의 이름은 /lib/modules에 존재하는 디렉토리의 이름이다)
 $ ls -al /lib/modules/[version]
 $ mkinitramfs -o initrd.img-[version] [version]


Posted by 구차니
Linux/Ubuntu2010. 9. 18. 11:13
이것저것 깔아놓다 보면 업데이트시 다운로드 용량에 한번 놀라고!
업데이트 주기에 한번 더 놀라고!
업데이스 시간에 한번 더 놀란다 -_-

아무리 공부용/테스트용 우분투 이지만.. 이렇게 많이 깔아 놓다니 후회중 ㅠ.ㅠ

'Linux > Ubuntu' 카테고리의 다른 글

Ubuntu Kernel Compile 버전 정보  (0) 2010.09.21
grub.cfg 설정 + VFS 패닉  (4) 2010.09.18
grub2 메뉴 들어가기  (0) 2010.09.16
grub menu.lst 넌 어디야?!  (0) 2010.09.15
yaffs2 하려는데 왜케 빡시누  (0) 2010.09.14
Posted by 구차니
Linux/Ubuntu2010. 9. 16. 08:51
커널 바꾸고 VFS 패닉나는 관계로.. 복구를 해야 하는데
당췌 우분투 10.04 에서 지원하는 부트로더의 메뉴로 들어가는 법을 찾지 못하고 있었는데..

grub 의 경우 esc
grub2의 경우 shift를 누르고 부팅을 하면 메뉴로 들어간다고 한다.
(USB 로 부팅해서 복구하기 귀찮아서 이러는건 절대 아닐지도 -_-)

부팅되는 동안 시스템이 쉬프트 키(SHIFT key)의 상태를 점검하는데, 만약 결정하지 못했다면, 이에스시 키(ESC key)를 누름으로써 메뉴를 보이게 할 수도 있습니다

[링크 : http://www.xpressengine.com/18965688]

[링크 : http://www.gnu.org/software/grub/]
[링크 : http://www.dedoimedo.com/computers/grub-2.html]
[링크 : http://ubuntuforums.org/showthread.php?t=1195275]


집에와서 해보니, BIOS 에서 부터 Shift를 누르는것은 들어가지지 않고,
BIOS 에서 Bootloader로 넘어가는 시점에서 부터 Shift 키를 누르고 있어야 GRUB loader menu로 진입하였다.
눌렀다 뗐다 하는것도 안되고, 계속 메뉴가 뜰때까지 누르고 있어야 하는데 음.. 이건 촘 아니라는 느낌..

'Linux > Ubuntu' 카테고리의 다른 글

grub.cfg 설정 + VFS 패닉  (4) 2010.09.18
ubuntu 업데이트 시스템의 불편함  (0) 2010.09.18
grub menu.lst 넌 어디야?!  (0) 2010.09.15
yaffs2 하려는데 왜케 빡시누  (0) 2010.09.14
ubuntu 에서 X window 종료시키기  (0) 2010.08.23
Posted by 구차니
Linux/Ubuntu2010. 9. 15. 14:01
/boot/grub/menu.lst 에서 (grub)
/boot/grub/grub.conf 로 (grub2) 변경되었다고 한다.
[링크 : http://www.ubuntu.or.kr/viewtopic.php?p=53681]

어쩐지 커널 컴파일 하고 변화가 없더라 -_-
update-grub (grub)
update-grub2 (grub2) 라는걸 사용하라는데
음.. 개인이 직접 컴파일 한 녀석은 어떻게 갱신해야 하려나...
[링크 : http://ubuntu.or.kr/viewtopic.php?p=52374]



Posted by 구차니
Linux/Ubuntu2010. 9. 14. 22:47
커널 컴파일을 하려는데 이런 에러가 발생한다.
솔찍히 건드린건 하나도 없고, 그냥 yaffs2만 추가했는데 ㅠ.ㅠ

ld: /ubuntu/omnibook/sections.lds: No such file: No such file or directory

[링크 : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/505420]

이넘이. HP 노트북 omnibook용 추가 모듈(?)로 인해 발생하는 에러인것 같지만..
잘은 모르겠는데 흐아.. 리눅스 머신이 싱글코어 1.8기가 인가 그런데 언제 또 다시 컴파일 돌리나 ㅠ.ㅠ
[링크 : http://sourceforge.net/projects/omke/]



make menuconfig 에서 / 로 omnibook을 검색하니
아래와 같이 나온다. 이녀석이 기본으로 켜져있어서 omnibook 오류가 난듯 하다.

최상위에서 부터                      Ubuntu Supplied Third-Party Device Drivers
그리고 그 메뉴의 가장 아래에        Kernel module for HP and Toshiba laptops

Posted by 구차니
Linux2010. 9. 12. 22:57
top을 하면 아래와 같은 결과들이 나온다.

대개 cpu를 100% 돌리고 있어도 1을 겨우겨우 넘기는 편이라
load average 라는 부분이 멀 의미하는건가 고민이 들어 찾아 보게 되었는데..
혼자 쓸때는 컴파일 속도가 느려지는게 느껴져서 한번에 하나이상돌리지 않아 이 값이 1이상 나오기가 좀 힘들긴하다.
결론은.. 머 알아서? ㅋㅋ

시스템의 최근 1분, 5분, 15분에 대한 각각의 평균 부하율(load average: 0.03, 0.05, 0.05)
Load average: 작업의 대기시간. 값이 1이 나왔다면 1분 동안 평균 1개 정도의 프로세서가 대기상태에 있다는 것이다.
서버마다 차이가 있긴 하지만 5 정도면 서버가 부하를 받는 다고 생각한다. 과부하는 10 ~ 15이상이면 과부하라고 본다.

[링크 : http://phiz.kr/linuxtip/169350]

결론은 이거였다.
CPU 1개당 2까지의 로드까진 정상으로 본다.
이게 무슨말인가? 현재의 대부분에 쓰이고 있는 요즘의 평균적인 제온 시스템이라면 CPU당 2까지의 로드까진 문제없는것으로 본다는것이다.
그렇다면 듀얼코어같이 HT(Hyper Threading)을 지원하는 CPU는 어떻게 계산하는지 물어보았다.
HT의 경우 CPU 2개로 친다는것이다. 쿼드코어의 경우에는 CPU4개로 친다는것이다.
고로 듀얼코어 CPU를 2개 꼽은 서버라고 하면 4 CPU x 2 = 8 의 로드까진 괜찮다는것으로 친다는것이 결론이었다.

[링크 : http://www.ysy2080.com/uribury/...document_srl=207]

[링크 : http://linux.die.net/man/1/top]

'Linux' 카테고리의 다른 글

bash - 이전 디렉토리로 이동하기 move to previoud directory  (2) 2010.09.19
mkinitramfs  (0) 2010.09.19
curl  (0) 2010.09.11
verbose가 모야?  (4) 2010.07.29
쉘스크립트의 stdout / stderr 리다이렉션(redirection c)  (0) 2010.07.07
Posted by 구차니
Linux2010. 9. 11. 22:49
android platform을 받는데 쓰인녀석인데..

curl is a tool to transfer data from or to a server, using one of the supported protocols (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP or FILE). The command is designed to work without user interaction.

curl offers a busload of useful tricks like proxy support, user authentication, ftp upload, HTTP post, SSL (https:) connections, cookies, file transfer resume and more. As you will see below, the amount of features will make your head spin!

[링크 : http://linux.die.net/man/1/curl]
[링크 : http://curl.haxx.se/]

일단 curl은 wget이 지원하는 모든 프로토콜을 지원하므로
기능상으로는 wget과 유사한 느낌이지만, 조금더 막강해진 녀석이다.

GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP , HTTPS , and FTP protocols, as well as retrieval through HTTP proxies.

[링크 : http://linux.die.net/man/1/wget]

'Linux' 카테고리의 다른 글

mkinitramfs  (0) 2010.09.19
top (1) - load average ?  (4) 2010.09.12
verbose가 모야?  (4) 2010.07.29
쉘스크립트의 stdout / stderr 리다이렉션(redirection c)  (0) 2010.07.07
bash 쉘 스크립트 에서 파일이 존재하지 않을 경우  (0) 2010.06.24
Posted by 구차니
Linux/Ubuntu2010. 8. 23. 10:11
우분투 desktop은 X 윈도우가 죽으면 자동적으로 respawn 시킨다.
아무리 kill 을 해도 계속 살아난다. (이런 좀비 같은넘!)

아래의 공식 릴리즈 내용대로, ctrl-alt-bksp 를 이용해서 X를 종료할수는 있으나, 역시나 respawn 된다 ㄱ-

Enabling Ctrl-Alt-Backspace for Ubuntu

  • Select "System"->"Preferences"->"Keyboard"

  • Select the "Layouts" tab and click on the "Layout Options" button.
  • Select "Key sequence to kill the X server" and enable "Control + Alt + Backspace".

[링크 : https://wiki.ubuntu.com/LucidLynx/ReleaseNotes]



X를 종료하려면 아래와 같이 gdm 자체를 종료하면 된다.
If you are using GNOME:
sudo /etc/init.d/gdm stop

[링크 : http://theos.in/news/ubuntu-linux-shutdown-the-x-server/]

$ sudo /etc/init.d/gdm stop
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service gdm stop

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) utility, e.g. stop gdm
친절하게도(!) init 스크립트를 건드리지 말고, service로 죽이랜다.


top - 10:37:01 up 1 min,  2 users,  load average: 1.15, 0.44, 0.16
Tasks: 180 total,   1 running, 179 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.7%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1026088k total,   475344k used,   550744k free,    54392k buffers
Swap:  3005432k total,        0k used,  3005432k free,   200732k cached
top - 10:37:49 up 2 min,  1 user,  load average: 0.75, 0.45, 0.17
Tasks: 130 total,   1 running, 129 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.7%sy,  0.3%ni, 97.7%id,  1.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1026088k total,   360952k used,   665136k free,    54780k buffers
Swap:  3005432k total,        0k used,  3005432k free,   214328k cached
gdm을 종료하니, 114392k(113M) 가 확보된다 -ㅁ-!
Posted by 구차니
Linux2010. 7. 29. 09:59
ver·bose [vǝːrbóus] ɑ.
말이 많은, 다변의, 용장(冗長)한, 용만(冗漫)한, 장황한.


음.. 리눅스에서 --v 옵션으로
상세내용을 보곤하는데 무슨 의미인가 찾아보았더니 "말이 많은" 모드였군 ㄱ-
Posted by 구차니
Linux2010. 7. 7. 16:30
글들을 찾아보면
comand > logfile 2>&1
이라고 하면 command를 실행하면서 생기는 출력(stdout)과 에러(stderr)을 logfile로 저장한다고 한다.

하지만, 막상 저장해보면 순서가 뒤죽박죽 되는것으로 보인다.
$ v4l-info /dev/video0 2> v4l.dev0 1>&2
### video4linux device info [/dev/video0] ###
general info
    VIDIOCGCAP
        name                    : "DC10plus[0]"
        type                    : 0x29 [CAPTURE,OVERLAY,CLIPPING]
        channels                : 3
        audios                  : 0
        maxwidth                : 640
        maxheight               : 480
        minwidth                : 48
        minheight ioctl VIDIOCGTUNER: Invalid argument
ioctl VIDIOCGAUDIO: Invalid argument
              : 32

channels
    VIDIOCGCHAN(0)
        channel                 : 0
        name                    : "Composite"
        tuners                  : 0
        flags                   : 0x0 []
        type                    : CAMERA
        norm                    : 1
    VIDIOCGCHAN(1)
        channel                 : 1
        name                    : "S-Video"
        tuners                  : 0
        flags                   : 0x0 []
        type                    : CAMERA
        norm                    : 1
    VIDIOCGCHAN(2)
        channel                 : 2
        name                    : "Internal/comp"
        tuners                  : 0
        flags                   : 0x0 []
        type                    : CAMERA
        norm                    : 1

tuner

audio

picture
    VIDIOCGPICT
        brightness              : 32896
        hue                     : 32896
        colour                  : 33026
        contrast                : 33026
        whiteness               : 0
        depth                   : 16
        palette                 : YUYV

buffer
    VIDIOCGFBUF
        base                    : (nil)
        height                  : 768
        width                   : 1024
        depth                   : 32
        bytesperline            : 4096

window
    VIDIOCGWIN
        x                       : 0
        y                       : 0
        width                   : 0
        height                  : 0
        chromakey               : 0
        flags                   : 0

$ v4l-info /dev/video0
### video4linux device info [/dev/video0] ###
general info
    VIDIOCGCAP
    name                    : "DC10plus[0]"
    type                    : 0x29 [CAPTURE,OVERLAY,CLIPPING]
    channels                : 3
    audios                  : 0
    maxwidth                : 640
    maxheight               : 480
    minwidth                : 48
    minheight               : 32

channels
    VIDIOCGCHAN(0)
    channel                 : 0
    name                    : "Composite"
    tuners                  : 0
    flags                   : 0x0 []
    type                    : CAMERA
    norm                    : 1
    VIDIOCGCHAN(1)
    channel                 : 1
    name                    : "S-Video"
    tuners                  : 0
    flags                   : 0x0 []
    type                    : CAMERA
    norm                    : 1
    VIDIOCGCHAN(2)
    channel                 : 2
    name                    : "Internal/comp"
    tuners                  : 0
    flags                   : 0x0 []
    type                    : CAMERA
    norm                    : 1

tuner
ioctl VIDIOCGTUNER: Invalid argument

audio
ioctl VIDIOCGAUDIO: Invalid argument

picture
    VIDIOCGPICT
    brightness              : 32896
    hue                     : 32896
    colour                  : 33026
    contrast                : 33026
    whiteness               : 0
    depth                   : 16
    palette                 : YUYV

buffer
    VIDIOCGFBUF
    base                    : (nil)
    height                  : 768
    width                   : 1024
    depth                   : 32
    bytesperline            : 4096

window
    VIDIOCGWIN
    x                       : 0
    y                       : 0
    width                   : 0
    height                  : 0
    chromakey               : 0
    flags                   : 0

두가지를 다 리다이렉션은 하지만, 버퍼로 인해서 밀리는건가.. 아니면 다른 명령어가 있는걸까?
Posted by 구차니