LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 831|回复: 0

光盘安装10.0的遭遇,供情况相似兄弟借鉴

[复制链接]
发表于 2006-8-25 00:22:35 | 显示全部楼层 |阅读模式
我机器本来是kt600+8237的主板,装了suse10.0,现在换成了pt880+8237A,于是原先的suse进不去,遂重新装系统。

硬件:cpu:双核(貌似这样linux安装的就是smp的,不是default,不知道对软件有什么影响没有)
      主板:pt880+8237A
         硬盘:hda,酷鱼40G,hda6格式化为linux分区,hda7划为swap。hda1装有win98
                  hdb,wd120G,装一winxp
                  sda,sm120G sata,装一winxp。bios中设为非raid模式。

软件:suse10.0 DVD

8237A南桥在安装的时候会提示找不到安装光盘,8237南桥无此问题,相信8237plus、8237R应该也类似吧。之前以为是光驱主从盘的问题,后来在via的一个磁盘补丁里面看到,8237A(包括8251等)南桥安装的时候要加一个参数"insmod=ide-generic"(引号内部分),否则就会出现这个问题。
加了参数后可以认出两块ide硬盘,并可以安装系统,但是无法打开dma。
安装完成后grub无法引导系统,表现为提示file missing。lilo则提示找不到hda6和hda7(我的linux分区和swap分区)。用安装光盘-installation-引导系统可以进入系统,但是无法mount ide硬盘的fat分区,也无法检测出sata硬盘。按照via的说明,打上补丁(补丁见附件,内容我看不懂,patch -p1命令也没有什么反应。我是照着它的内容自己在所涉及的几个文件里面添加了几条,不知道正确做法应该是什么,请高手指教):
--- linux-2.6.13-15/include/linux/pci_ids.h        2006-02-09 10:52:38.000000000 +0800
+++ linux-2.6.13-15/include/linux/pci_ids.h        2006-02-09 10:55:18.000000000 +0800
@@ -1421,6 +1421,10 @@
#define PCI_DEVICE_ID_VIA_8378_0        0x3205
#define PCI_DEVICE_ID_VIA_8783_0        0x3208
#define PCI_DEVICE_ID_VIA_P4M400        0x3209
+#define PCI_DEVICE_ID_VIA_8251                0x3287
+#define PCI_DEVICE_ID_VIA_8237A                0x3337
+#define PCI_DEVICE_ID_VIA_CX700                0x8324
+#define PCI_DEVICE_ID_VIA_SATA_EIDE        0x0581
#define PCI_DEVICE_ID_VIA_8237                0x3227
#define PCI_DEVICE_ID_VIA_3296_0        0x0296
#define PCI_DEVICE_ID_VIA_86C100A        0x6100
--- linux-2.6.13-15/drivers/ide/pci/via82cxxx.c        2006-02-09 10:52:53.000000000 +0800
+++ linux-2.6.13-15/drivers/ide/pci/via82cxxx.c        2006-02-09 10:54:23.000000000 +0800
@@ -79,6 +79,9 @@
        u8 rev_max;
        u16 flags;
} via_isa_bridges[] = {
+        { "cx700",        PCI_DEVICE_ID_VIA_CX700,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
+        { "vt8251",        PCI_DEVICE_ID_VIA_8251,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
+        { "vt8237a",        PCI_DEVICE_ID_VIA_8237A,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
        { "vt8237",        PCI_DEVICE_ID_VIA_8237,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
        { "vt8235",        PCI_DEVICE_ID_VIA_8235,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
        { "vt8233a",        PCI_DEVICE_ID_VIA_8233A,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
@@ -634,6 +637,7 @@
static struct pci_device_id via_pci_tbl[] = {
        { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
        { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+        { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_SATA_EIDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
        { 0, },
};
MODULE_DEVICE_TABLE(pci, via_pci_tbl);


下面是编译内核了:
# cd /usr/src/linux
# patch -p1 < <atch_DIR>/<OS>/<OS>_<Kernel Version>.patch
# cp /boot/config-<Kernel Version> .config

# cd linux-<Kernel Version>
# cp /boot/config-<Kernel Version> .config
#make menuconfig (config or  xconfig)
# make
# make modules_install
# mkinitrd /boot/test.img <Kernel Version>-test
# cp arch/i386/boot/bzImage /boot/vmlinuz-test
然后编辑grub
For the GRUB boot loader, add the following two lines to the
   /boot/grub/menu.lst file. Then modify the "hda1" according to
   the actual system settings.

      Title linux-test
      kernel /boot/vmlinuz-test ro root=/dev/hda1 acpi=off
      initrd /boot/test.img       

重启后选择linux-test就可以了

比较怪的事是我按这个步骤走到mkinitrd这一步就提示出错了,我也就没有往下做下面的步骤。但是当我抱着试试看的心理重启的时候,启动菜单里面居然出现了一个linux-2.6.13-15-smp的选项,并且可以正常的启动suse,dma也打开了,只是sda还是没有被检测到。

以上就是我装suse10.0的经过了,希望对有需要的兄弟们有所帮助。下面是我在过程中存在的几点疑惑,希望高手能够解答一下:
1:刚开始grub不能启动系统是因为系统没有装上8237A的驱动,不认硬盘所导致的么?
2:我打补丁的方法对么?我看国外的论坛上面在补丁前面还有一个diff 什么的命令,这是什么意思?
3:为什么我没有将编译内核的步骤做完,grub启动菜单就已经添加了一个新的启动选项?
4:为什么总是不认我的sata硬盘?怎么办?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表