linux 系统调试工具,Linux 系统调试...
1. 編譯內(nèi)核后不能啟動(dòng).GRUB提示Error 13
嘗試重編了2,3次,也修改了一些配置,最后發(fā)現(xiàn)還是不行.雖然2.6.18-8的內(nèi)核不需要make bzImage,只需要make然后就可以
make modules_install了,但是實(shí)際上還是要生成bzImage的...仍然是在arch/i386/boot下..
但是我編譯并沒有產(chǎn)生bzImage...產(chǎn)生的另一個(gè)文件雖然make install之后也叫vmlinuzxxx但是不能作為
內(nèi)核啟動(dòng),所以GRUB會(huì)提示Error 13..所以這個(gè)問題,首先不是GRUB的問題,其次也不是Kernel config的問題.
而是沒有bzImage的問題.今天終于成功編譯了一個(gè)能用的內(nèi)核,其他過(guò)程大同小異.最大的變動(dòng)在于我將硬盤從
SATA1插到SATA0了,然后在make的最后終于看到bzImage is ready...
沒有再多試一次確定硬盤插的位置就是主要原因..但是應(yīng)該差不多.因?yàn)樵赽zImage產(chǎn)生時(shí),打印出一些信息顯示
boot disk之類的東西,估計(jì)是bzImage需要確定這些東西才行,如果插在SATA1而不是SATA0的話,可能就不行了,
可能也和MBR master boot region有關(guān)系.
make install之后grub.conf文件是會(huì)自動(dòng)改變的,不需要手動(dòng)去改
2. SATA硬盤不能打開DMA.
這個(gè)問題也很麻煩,硬盤速度太慢了 hdparm -tT是1000+M/s 和3M/s,因?yàn)镮DE驅(qū)動(dòng)是特殊的.在編譯前已經(jīng)patch,
而且已經(jīng)將對(duì)應(yīng)模塊config了.但是還是不能hdparm -d1,提示
not permitted..
最后是修改bios,將IDE還是什么設(shè)置成ACHI模式,硬盤變成sda之后就快很多了..1000+和70+
3. 從網(wǎng)絡(luò)讀寫數(shù)據(jù)會(huì)死機(jī).
找不到原因,后來(lái)CPU多加了點(diǎn)散熱膠就OK了....ft
雖然這些問題都很奇怪,而且不太好解決,網(wǎng)上的資料也不多,但是在過(guò)程中還是學(xué)到很多東西,在有很多因素和問題有關(guān),而且
不能確定的時(shí)候,最好的辦法就是一個(gè)一個(gè)排除這些因素,然后縮小范圍,并適當(dāng)擴(kuò)展可能性...
沒有思路的亂想/試一氣是沒有效率的
順便貼點(diǎn)資料參考:
hdparm 開啟 dma 出現(xiàn) HDIO_SET_DMA failed: Operation not permitted 錯(cuò)誤的解決方法
以 intel 芯片主板為例,在內(nèi)核中將 "general/default IDE chipset support" 和 "Intel PIIXn chipsets support" 編譯成模塊
然后在? /etc/modules.autoload.d/kernel-2.6 中將 "piix" 模塊放在最前。
FAQ:如果硬盤設(shè)備名稱變更進(jìn)不去系統(tǒng)該怎么辦?
#在 grub 啟動(dòng) gentoo 的 kernel 項(xiàng)尾添加 init=/bin/sh,進(jìn)入單用戶模式? mount -o remount,rw / mount /boot? #修改 /etc/fstab 和 /boot/grub/grub.conf裝完系統(tǒng)后,第一次打開應(yīng)用程序總是特別的慢,而且從windows分區(qū)拷貝文件也是特別慢,同一臺(tái)機(jī)器裝的magiclinux就沒有這個(gè)問題。懷疑是硬盤的DMA沒有設(shè)置好,而記得當(dāng)初編譯2.6.6內(nèi)核的時(shí)候選擇了默認(rèn)打開硬盤的DMA模式,嘗試解決這個(gè)問題: 從網(wǎng)上搜索相關(guān)發(fā)現(xiàn)有hdparm命令可以用,用法如下: #hdparm -i /dev/hda 查看硬盤的物理參數(shù)和支持的工作模式 #hdparm -v /dev/hda 查看當(dāng)前硬盤的工作模式 #hdparm -Tt /dev/hda 測(cè)試一下優(yōu)化前和優(yōu)化后的硬盤讀寫速率 測(cè)試了自己的硬盤: Timing buffered disk reads: 64 MB in 24 seconds = 2.5 MB/sec 只有可憐的2.5MB,肯定了自己的猜測(cè)。 那就接著根據(jù)網(wǎng)上搜到的命令用hdparm命令來(lái)把它調(diào)好: #hdparm -d1 -c3 -X66 -m16 /dev/hda 可是出現(xiàn)了以下字符: /dev/hda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not permitted using_dma = 0 (off) 然后測(cè)試硬盤速度還是可憐的2.5MB,嘗試失敗。 于是仔細(xì)研究這些參數(shù)的意義: # /sbin/hdparm -x66 -d1 -u1 -m16 -c3 /dev/hda 選項(xiàng)說(shuō)明: ① c3 :就是把硬盤的16位格式轉(zhuǎn)換為32位模式(32-bit mode w/sync)。控制數(shù)據(jù)如何從pci總線傳遞到控制器。 ② m16 :改變硬盤的多路扇區(qū)的讀功能,-m16可以使得硬盤在一次i/o中斷中讀入16個(gè)扇區(qū)的數(shù)據(jù)。但是不是所有的硬盤都支持這個(gè)功能。使用hdparm -i /dev/hda 可以察看您的硬盤最大能讀寫的扇區(qū)數(shù)目。 ③ d1:打開DMA模式。 ④ x66 :在支持UDMA-capable的硬盤中,這個(gè)參數(shù)可以支持雙DMA通道的數(shù)據(jù)傳輸模式。X34 在支持DMA-capable的硬盤中,這個(gè)參數(shù)可以支持雙DMA通道的數(shù)據(jù)傳輸模式。支持 ATA33 可以加上 -X66 這個(gè)參數(shù),ATA66則是 -X68,-X69是mode 5(ATA100), -X68是mode 4(ATA66)可用于光驅(qū)。 ⑤ u1 :Linux在處理磁盤中斷時(shí),可以u(píng)nmask其他的中斷或者響應(yīng)其他中斷相關(guān)的任務(wù)。 于是不斷的拿X66.X68.X69等參數(shù)來(lái)實(shí)驗(yàn)后立即用#hdparm -tT /dev/hda來(lái)測(cè)試性能,仍然不成功。再找網(wǎng)上的方法,有如下: 1./etc/rc.d/rc.local 最后面加上一行 /sbin/hdparm -d1 -c3 -X66 -m16 -q /dev/hda 建議加上-q參數(shù),因?yàn)閙an里面說(shuō)的,這樣可以開機(jī)即是DMA模式,不用手動(dòng)設(shè)定,但此方法和命令其實(shí)是一樣的,解決不了我的問題。 2.修改/etc/sysconfig/harddisks也可以打開DMA模式 我的slackware9.1沒有這個(gè)文件,不行。 3.要靠手工在/etc/conf.d/hdparm里面寫好,然后rc-update add hdparm default。 和方法1目的一樣,對(duì)我沒有。 4.編輯/etc/conf.d/local.start加入 hdparm -d1 -c1 -X69 /dev/hda 重啟即可,也類似方法3 5.#hdparm -d1 -c1 -X69 -k1 -K1 /dev/hda 直接命令設(shè)定,比較簡(jiǎn)單,但對(duì)偶還是沒用。 再搜,有人說(shuō)要重新編譯內(nèi)核才行,我只好重新編譯,幸虧有原來(lái)編譯備份的.config文件,在相關(guān)的地方好像是IDE chipset support根據(jù)感覺選了一通,重新生成bzImage,重啟電腦,還是失敗,,,,, 不甘心,繼續(xù)努力在網(wǎng)上找答案,來(lái)到linuxsir.org用搜索功能的只搜主題選項(xiàng),搜索“硬盤DMA”,把所有的結(jié)果仔細(xì)看了一遍,發(fā)現(xiàn)解決辦法還是要編譯內(nèi)核,但之前要運(yùn)行#lspci命令來(lái)確定自己電腦的IDE控制芯片是什么。 運(yùn)行#lspci,結(jié)果如下: 00:00.0 Host bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] System Controller (rev 13) 00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] AGP Bridge 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B PIPC Bus Master IDE (rev 06) 00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 1a) 00:07.3 USB Controller: VIA Technologies, Inc. USB (rev 1a) 00:07.4 SMBus: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) 00:09.0 Multimedia audio controller: C-Media Electronics Inc CM8338A (rev 10) 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 00:13.0 Unknown mass storage controller: Triones Technologies, Inc. HPT366/368/370/370A/372 (rev 04) 01:05.0 VGA compatible controller: nVidia Corporation NV20 [GeForce3 Ti 200] (rev a3) 找到答案,我編譯內(nèi)核憑的是模糊的記憶,沒有真正按照自己的硬件來(lái)編譯,結(jié)果造成IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B PIPC Bus Master IDE 沒有編譯進(jìn)支持,導(dǎo)致DMA不可用。接下來(lái)就好辦了,重新編譯內(nèi)核,重啟電腦,測(cè)試結(jié)果如下: #hdparm -tT /dev/hda /dev/hda: Timing buffer-cache reads: 128 MB in 0.57 seconds =225.78 MB/sec Timing buffered disk reads: 64 MB in 1.74 seconds = 36.81 MB/sec 終于搞定,而且2.6內(nèi)核是自動(dòng)開機(jī)即運(yùn)行,默認(rèn)開啟DMA,所以不用做任何設(shè)置了。
總結(jié)
以上是生活随笔為你收集整理的linux 系统调试工具,Linux 系统调试...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python下载pyhive包:
- 下一篇: [置顶] 高效前端优化工具