1. 编译内核后不能启动.GRUB提示Error 13

尝试重编了2,3次,也修改了一些配置,最后发现还是不行.虽然2.6.18-8的内核不需要make bzImage,只需要make然后就可以

make modules_install了,但是实际上还是要生成bzImage的...仍然是在arch/i386/boot下..

但是我编译并没有产生bzImage...产生的另一个文件虽然make install之后也叫vmlinuzxxx但是不能作为

内核启动,所以GRUB会提示Error 13..所以这个问题,首先不是GRUB的问题,其次也不是Kernel config的问题.

而是没有bzImage的问题.今天终于成功编译了一个能用的内核,其他过程大同小异.最大的变动在于我将硬盘从

SATA1插到SATA0了,然后在make的最后终于看到bzImage is ready...

没有再多试一次确定硬盘插的位置就是主要原因..但是应该差不多.因为在bzImage产生时,打印出一些信息显示

boot disk之类的东西,估计是bzImage需要确定这些东西才行,如果插在SATA1而不是SATA0的话,可能就不行了,

可能也和MBR master boot region有关系.

make install之后grub.conf文件是会自动改变的,不需要手动去改

2. SATA硬盘不能打开DMA.

这个问题也很麻烦,硬盘速度太慢了 hdparm -tT是1000+M/s 和3M/s,因为IDE驱动是特殊的.在编译前已经patch,

而且已经将对应模块config了.但是还是不能hdparm -d1,提示

not permitted..

最后是修改bios,将IDE还是什么设置成ACHI模式,硬盘变成sda之后就快很多了..1000+和70+

3. 从网络读写数据会死机.

找不到原因,后来CPU多加了点散热胶就OK了....ft

虽然这些问题都很奇怪,而且不太好解决,网上的资料也不多,但是在过程中还是学到很多东西,在有很多因素和问题有关,而且

不能确定的时候,最好的办法就是一个一个排除这些因素,然后缩小范围,并适当扩展可能性...

没有思路的乱想/试一气是没有效率的

顺便贴点资料参考:

hdparm 开启 dma 出现 HDIO_SET_DMA failed: Operation not permitted 错误的解决方法

以 intel 芯片主板为例,在内核中将 "general/default IDE chipset support" 和 "Intel PIIXn chipsets support" 编译成模块

然后在  /etc/modules.autoload.d/kernel-2.6 中将 "piix" 模块放在最前。

FAQ:如果硬盘设备名称变更进不去系统该怎么办?

#在 grub 启动 gentoo 的 kernel 项尾添加 init=/bin/sh,进入单用户模式  mount -o remount,rw / mount /boot  #修改 /etc/fstab 和 /boot/grub/grub.conf装完系统后,第一次打开应用程序总是特别的慢,而且从windows分区拷贝文件也是特别慢,同一台机器装的magiclinux就没有这个问题。怀疑是硬盘的DMA没有设置好,而记得当初编译2.6.6内核的时候选择了默认打开硬盘的DMA模式,尝试解决这个问题: 从网上搜索相关发现有hdparm命令可以用,用法如下: #hdparm -i /dev/hda 查看硬盘的物理参数和支持的工作模式 #hdparm -v /dev/hda 查看当前硬盘的工作模式 #hdparm -Tt /dev/hda 测试一下优化前和优化后的硬盘读写速率 测试了自己的硬盘: Timing buffered disk reads: 64 MB in 24 seconds = 2.5 MB/sec 只有可怜的2.5MB,肯定了自己的猜测。 那就接着根据网上搜到的命令用hdparm命令来把它调好: #hdparm -d1 -c3 -X66 -m16 /dev/hda 可是出现了以下字符: /dev/hda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not permitted using_dma = 0 (off) 然后测试硬盘速度还是可怜的2.5MB,尝试失败。 于是仔细研究这些参数的意义: # /sbin/hdparm -x66 -d1 -u1 -m16 -c3 /dev/hda 选项说明: ① c3 :就是把硬盘的16位格式转换为32位模式(32-bit mode w/sync)。控制数据如何从pci总线传递到控制器。 ② m16 :改变硬盘的多路扇区的读功能,-m16可以使得硬盘在一次i/o中断中读入16个扇区的数据。但是不是所有的硬盘都支持这个功能。使用hdparm -i /dev/hda 可以察看您的硬盘最大能读写的扇区数目。 ③ d1:打开DMA模式。 ④ x66 :在支持UDMA-capable的硬盘中,这个参数可以支持双DMA通道的数据传输模式。X34 在支持DMA-capable的硬盘中,这个参数可以支持双DMA通道的数据传输模式。支持 ATA33 可以加上 -X66 这个参数,ATA66则是 -X68,-X69是mode 5(ATA100), -X68是mode 4(ATA66)可用于光驱。 ⑤ u1 :Linux在处理磁盘中断时,可以unmask其他的中断或者响应其他中断相关的任务。 于是不断的拿X66.X68.X69等参数来实验后立即用#hdparm -tT /dev/hda来测试性能,仍然不成功。再找网上的方法,有如下: 1./etc/rc.d/rc.local 最后面加上一行 /sbin/hdparm -d1 -c3 -X66 -m16 -q /dev/hda 建议加上-q参数,因为man里面说的,这样可以开机即是DMA模式,不用手动设定,但此方法和命令其实是一样的,解决不了我的问题。 2.修改/etc/sysconfig/harddisks也可以打开DMA模式 我的slackware9.1没有这个文件,不行。 3.要靠手工在/etc/conf.d/hdparm里面写好,然后rc-update add hdparm default。 和方法1目的一样,对我没有。 4.编辑/etc/conf.d/local.start加入 hdparm -d1 -c1 -X69 /dev/hda 重启即可,也类似方法3 5.#hdparm -d1 -c1 -X69 -k1 -K1 /dev/hda 直接命令设定,比较简单,但对偶还是没用。 再搜,有人说要重新编译内核才行,我只好重新编译,幸亏有原来编译备份的.config文件,在相关的地方好像是IDE chipset support根据感觉选了一通,重新生成bzImage,重启电脑,还是失败,,,,, 不甘心,继续努力在网上找答案,来到linuxsir.org用搜索功能的只搜主题选项,搜索“硬盘DMA”,把所有的结果仔细看了一遍,发现解决办法还是要编译内核,但之前要运行#lspci命令来确定自己电脑的IDE控制芯片是什么。 运行#lspci,结果如下: 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) 找到答案,我编译内核凭的是模糊的记忆,没有真正按照自己的硬件来编译,结果造成IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B PIPC Bus Master IDE 没有编译进支持,导致DMA不可用。接下来就好办了,重新编译内核,重启电脑,测试结果如下: #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内核是自动开机即运行,默认开启DMA,所以不用做任何设置了。

linux 系统调试工具,Linux 系统调试...相关推荐

  1. arm linux gdb调试工具,gdb+gdbserver调试arm-linux程序

    mmap作为struct file_operations的重要一个元素,mmap主要是实现物理内存到虚拟内存的映射关系,这样可以实现直接访问虚拟内存,而不用使用设备相关的read.write操作,mm ...

  2. linux 集成调试工具,linux下can调试工具canutils安装过程记录

    https://www.cnblogs.com/chenfulin5/p/6797756.html 一.下载源码 下载canutils和libsocketcan https://git.pengutr ...

  3. ccs7调试linux,【图片】【吧主帖】在LINUX(ubuntu)系统下装CCSv6方法(原创)【dsp吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先说下我的系统: 系统: Ubuntu14.04.1 (AMD64bit) 目标板:三兄弟嵌入式F28335旗舰板 仿真器:三兄弟嵌入式XDS100V3 ...

  4. 学习 Linux,101: 引导系统

    2019独角兽企业重金招聘Python工程师标准>>> 系列文章: http://www.ibm.com/developerworks/cn/views/linux/libraryv ...

  5. linux c c 常用的日志库,mslog: 一款超轻量级的C日志库,无需依赖额外的库,测试或移植过的系统有Linux(ubuntu,centos),Windows以及部分嵌入式设备;...

    mslog 1.综述 ​ 一款超轻量级的C日志库,无需依赖额外的库,库的设计目标为"简洁,可移植性强".测试或移植过的系统有Linux(ubuntu,centos),Windows ...

  6. linux 嵌入式 快照_Linux 系统之Systemd

    标签: 子贡问为仁.子曰:"工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者."--孔子(春秋)<论语·卫灵公> [工欲善其事,必先利其器] 掌握一门技术 ...

  7. linux能记录日志的终端,Linux上的日志系统

    Linux上的日志系统 1.syslog 2.syslog-ng 下一代升级版日志系统 红帽5使用syslog   6使用syslog-ng syslog 服务 syslogd : 系统,非内核产生的 ...

  8. linux的日志系统,Linux上的日志系统

    Linux上的日志系统 Linux上所用到的日志系统可以分为两种syslog和syslog-ng两种,syslog-ng是下一代升级版的日志系统.RedHat-5上用的是syslog,而RedHat- ...

  9. linux 项目同步,Linux项目系统,Linux控制台窗口,同步和附加到进程的Linux C ++工作负载改进...

    Linux项目系统,Linux控制台窗口,同步和附加到进程的Linux C ++工作负载改进 03/23/2018 4 minutes to read In this article [原文发表时间] ...

  10. YOCTO项目介绍:通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统

    目录 YOCTO项目介绍 配置内核 build配套 Yocto ,是一个开源社区.它通过提供模版.工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (3 ...

最新文章

  1. git学习——Git 基础要点【转】
  2. 2020年北大中文核心期刊目录_中文核心期刊目录汇总(2020年4月发布)
  3. Spring 事务用法示例与实现原理
  4. STL源码剖析---空间配置器
  5. (*长期更新)软考网络工程师学习笔记——Section 2 数字传输系统
  6. bzoj3589 动态树 求链并 容斥
  7. kubernetes-Deployment部署无状态服务的原理详解(七)
  8. 【英语学习】【Level 07】U04 Rest and Relaxation L5 An inn by the lake
  9. 2016年百度面试题
  10. 中国大学MOOC“Python程序设计基础”第4次开课
  11. Python程序设计学习笔记-概述
  12. tomcat 8安装 linux,linux下tomcat8安装详解(附图解步骤)
  13. WINDOW端口查看命令
  14. Python爬取网易云音乐歌手歌曲和歌单!推荐好听的歌吗?
  15. 大白菜无法打开计算机硬盘,大白菜u盘启动盘出现问题及解决办法(上)
  16. Zabbix如何配置告警短信?(预警短信通知设置流程)
  17. 实验六——存储过程实验
  18. Android开发之UI线程和非UI线程
  19. csv 文件读写乱码问题的一个简单解决方法
  20. 小说作者推荐:浅墨飞语合集

热门文章

  1. lfw人脸识别数据集
  2. C#Socket客户端
  3. 公式经纬度换算度分秒,度分秒换算经纬度
  4. 流畅的 Python
  5. 《集成电路先进光刻技术与版图设计优化》课程分享之一:典型显微系统的光学成像原理
  6. 线性代数(六)正交性
  7. SpringBoot+Querydsl 框架,大大简化复杂查询操作
  8. python爬虫qq付费音乐_Python 应用爬虫下载QQ音乐
  9. ni数据采集卡C语言API接口,NI数据采集卡
  10. EndnoteX9修改风格