|
|
我机器本来是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
|