国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
在vmware上建立kgdb調(diào)試linux kernel源碼的平臺(tái)-1
環(huán)境介紹:
名稱
版本信息
下載地址
Vmware
5.5.1

Redhat linux9
2.4.20-8(linux 內(nèi)核版本)

Gcc
3.4.6

Glibc
2.3.4

Linux調(diào)試版本
linux-2.6.15.5.tar.bz2
www.kernel.org
Kgdb
linux-2.6.15.5-kgdb-2.4.tar.tar
http://kgdb.linsyssoft.com/downloads.htm
Gdb
gdbmod-2.4.bz2(gdb6.4)
http://kgdb.linsyssoft.com/downloads.htm

Kgdb調(diào)試的一般性原理介紹:
     需要兩臺(tái)pc ,都運(yùn)行l(wèi)inux ,一個(gè)是target ,一個(gè)是host 。 target就是運(yùn)行打了kgdb patch的linux kernel , host端就是運(yùn)行g(shù)db的一端 。兩臺(tái)pc 能用串口線相連。 target端kernel 停止到某個(gè)斷點(diǎn)上,等待著gdb連上來下指令。我們能用vmvare 虛擬出兩臺(tái)linux ,這樣就省下了串口線。 具體設(shè)置參考下面的圖。

Vmware建立調(diào)試環(huán)境:
    vmware 虛擬兩臺(tái)linux , 目前我們已有了一個(gè)虛擬的redhat9.0的linux 了,只需要用vmvare自帶的clone的功能,再clone一個(gè)就能了。
Clone之前,要關(guān)閉虛擬的linux ,然后執(zhí)行 VM->clone ,只需點(diǎn)擊下一步就能了。
Clone之后,還必須對兩臺(tái)機(jī)子的串口進(jìn)行設(shè)置如下:
Host:


       Target:

   


   在 target端 執(zhí)行 cat /dev/ttyS0
在 host 端 執(zhí)行: echo 12345 > /dev/ttyS0
轉(zhuǎn)換到target端, 看是否能看到 12345 ,看到了就說明串口連接沒有問題。

編譯2.6內(nèi)核前的準(zhǔn)備
因?yàn)槲覀円{(diào)試的是2.6內(nèi)核,不過我們兩臺(tái)機(jī)子上跑的都是2.4內(nèi)核redhat。所以我們必須編譯我們的2.6內(nèi)核,并且還要打上相應(yīng)的kgdb的補(bǔ)丁。在做這些操作之前,我們還需要做的是升級系統(tǒng)的幾個(gè)工具軟件,升級的軟件及下載地址如下:
(1)下載module-init-tools-3.2.tar.bz2
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
(2)下載mkinitrd-4.1.18-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm
(3)下載lvm2-2.00.25-1.01.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm
(4)下載device-mapper-1.00.19-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm
   
下面我們就來安裝這幾個(gè)工具軟件:
1. 安裝module-init-tools工具
# tar jvxf module-init-tools-3.2.tar.bz2 (解壓module-init-tools)
# cd module-init-tools-3.2 (進(jìn)入module-init-tools目錄下)
#./configure --prefix=/
# make moveold
# make all install
#./generate-modprobe.conf /etc/modprobe.conf

2.安裝另外三個(gè)升級工具
依次執(zhí)行下列3個(gè)命令來安裝另外三個(gè)升級工具:
# rpm -ivh --nodeps  --replacefiles  mkinitrd-4.1.18-2.i386.rpm (注意,這里一定要加入 ?--nodeps --replacefiles參數(shù),下同)
# rpm -ivh ?nodeps --replacefiles lvm2-2.00.25-1.01.i386.rpm
# rpm -ivh --nodeps --replacefiles  device-mapper-1.00.19-2.i386.rpm
(關(guān)于RPM的知識(shí)能參考本人blog上轉(zhuǎn)載的文章:RPM的使用)
(注意:如果rpm包下載不完整,在安裝的時(shí)候會(huì)校驗(yàn)過不去,會(huì)出現(xiàn)類似下面的一些提示信息:
error: V3 DSA signature: BAD.)

編譯內(nèi)核
我們在安裝完前面的4個(gè)工具軟件之后,隨后要做的就是解壓內(nèi)核文件,打kgdb補(bǔ)丁文件,設(shè)置內(nèi)核及編譯工作了。
1.        解壓內(nèi)核文件
2.        解壓kgdb的補(bǔ)丁文件
3.        將kgdb解壓的目錄移入內(nèi)核文件的頂層目錄
4.        #make mrproper
5.        在頂層目錄打補(bǔ)?。僭O(shè)kgdb目錄為:linux-2.6.15.5-kgdb-2.4),打補(bǔ)丁前需要看一下補(bǔ)丁目錄下的README和series文件,這邊告訴我們該打那些補(bǔ)丁及打補(bǔ)丁的順序;
#patch ?p1 2.6.15.5-kgdb-2.4/core-lite.patch
#patch ?p1 2.6.15.5-kgdb-2.4/8250.patch
#patch ?p1 2.6.15.5-kgdb-2.4/netpoll_pass_skb_to_rx_hook.patch
#patch ?p1 2.6.15.5-kgdb-2.4/eth.patch
#patch ?p1 2.6.15.5-kgdb-2.4/i386-lite.patch
#patch ?p1 2.6.15.5-kgdb-2.4/core.patch
#patch ?p1 2.6.15.5-kgdb-2.4/i386.patch
6.        下面就是設(shè)置我們的內(nèi)核了,在設(shè)置內(nèi)核方面,有許多我們需要注意的:
Loadable Module support選項(xiàng)中,選上“Module unloading”和“Automatic kernel module loading”這兩項(xiàng);
Device Drivers--->Block Devices中選上“Loopback device support”;
Device Drivers--->Multi-device support(RAID and LVM)處要選上“device mapper support”;
Device Drivers--->Graphics support,一定要選上“ Support for frame buffer devices”; Device Drivers --->USB support --->選上“USB Mass Storage support”(如果是在實(shí)環(huán)境中,想要更多USB支持,就全選吧。我的是在虛擬機(jī)中,用不著了)
Device Drivers --->;Network device support --->Ethernet (10 or 100Mbit) ---> AMD
PCnet32 PCI support
    Device Drivers --->Character devices -à Serial derivers -à 8250/16650 and Compatiable serial support(這一項(xiàng)一定要選上,不然在kgdb選項(xiàng)打開后,編譯最后一直會(huì)報(bào)錯(cuò),提示信息如下:undefined reference to `serial8250_unregister_by_port’ ,這個(gè)問題我搞了好幾天,原來以為是gcc版本太低,所以把gcc從3.2.2版本升級成3.4.6版本,(關(guān)于GCC的升級,本人的blog也會(huì)有相關(guān)文章介紹的。)問題還是相同,最后才發(fā)現(xiàn)是這邊沒有選擇,網(wǎng)上關(guān)于這個(gè)問題也非常少提到,希望對大家有點(diǎn)幫助)
        File system--->(以下9個(gè)選項(xiàng)是關(guān)于ext2和ext3文件系統(tǒng)設(shè)置,全部選上)
       Second extended fs support
  Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels JBB (ext3) debugging
support File system--->DOS/FAT/NT Filesystems --->選上“NTFS file system support”;
ext2和ext3文件系統(tǒng)設(shè)置非常重要,也是必需的,如果對Ext3、Ext2文件的支持直接編譯進(jìn)內(nèi)核,在你reboot時(shí)機(jī)器就會(huì)當(dāng)?shù)簦霈F(xiàn)如下錯(cuò)誤信息:
kernel panic : no init found ,
try passing init = option to kernel.....
或是:
VFS:Cannot open root device "hdxy" or unknow-block(0,0)
Please append a correct "root=" boot option kernel panic:
VFS:Unable to mount root fs on unknown-block(0,0)
或是:
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc fail: 2
Freeing unused kernel memory: 244k freed Kernel panic ? not syncing: No init found. Try passing init = option to kernel
如果你在vmware下編譯內(nèi)核,硬盤用的是scsi的,以下三個(gè)選項(xiàng)必選:
Device Drivers --->SCSI device support (此項(xiàng)不選的話,下面兩項(xiàng)就選擇不上)
Device Drivers --->SCSI device support --->SCSI disk support
Device Drivers--->SCSI device support--->SCSI low-level drivers--->; BusLogic SCSI support
Kgdb選項(xiàng)的支持在下面進(jìn)行設(shè)置:
Kernel hacking -à
  • kernel debugging
  • compile the kernel with debug info
  • kgdb ,kernel debugging with remote kgdb
  • console messages through gdb
  • Simple selection of KGDB Serial Port
    (115200) debug serial baud rate
    (0)Serial port number for KGDB
          
          到這邊我們的內(nèi)核就算設(shè)置完畢了。呵呵,目前我們就能開始編譯了
          #make bzImage
          編譯成功后,/usr/src/linux/arch/i386/boot下生成bzImage文件,在頂層目錄下生成System.map文件。我們要做的是,將這兩個(gè)文件拷貝到target機(jī)子的/boot目錄下。并且命名如下:
       #make modules             編譯內(nèi)核模塊
          #make modules_install       在/lib/modules目錄生成2.6.15.5目錄,安裝模塊
          #make install    安裝內(nèi)核,在/boot目錄下生成Systemmap vmlinuz  initrd-2.6.15.5.img及相應(yīng)的符號鏈接
  • 本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
    打開APP,閱讀全文并永久保存 查看更多類似文章
    猜你喜歡
    類似文章
    redhat9.0如何升級內(nèi)核? - 紅聯(lián)Linux門戶 - 中國領(lǐng)先的Linux技術(shù)網(wǎng)站...
    Linux kernel內(nèi)核升級全過程,教你一次成功(2.4.20
    內(nèi)核移植(redhat 9 2.4.20
    升級Red Hat 9.0(Kernel 2.4.20-8) 至 Linux Kernel2.6.18
    linux 5.4 redhat 2.6.18 升級到 3.9.6
    Linux 系統(tǒng)內(nèi)核的調(diào)試
    更多類似文章 >>
    生活服務(wù)
    分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
    綁定賬號成功
    后續(xù)可登錄賬號暢享VIP特權(quán)!
    如果VIP功能使用有故障,
    可點(diǎn)擊這里聯(lián)系客服!

    聯(lián)系客服