免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8900 | 回复: 2
打印 上一主题 下一主题

[原创]DIY install livecd 解决 gentoo 无法在 LSI 1068E SAS RAID 安装的问题。 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-02-13 06:20:00
1 [报告]
发表于 2010-03-01 12:25 |只看该作者
现在来说说我对内核驱动修改的地方:


PHP 代码:
# cd /usr/src/linux/drivers/message/fusion/lsi  

修改mpi_cnfg.h,找到0x0058这行,在下面加入:


PHP 代码:
#define MPI_MANUFACTPAGE_DEVID_SAS1068EXLP          (0x0059)  

然后:


PHP 代码:
# cd ..  

修改mptsas.c,找到static struct pci_device_id mptsas_pci_table这行,在{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068E, PCI_ANY_ID, PCI_ANY_ID }后面加入:
{ PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068EXLP, PCI_ANY_ID, PCI_ANY_ID }

搞定!

5) 我没有执行:find / -type l ! -xtype f ! -xtype d -ok rm -f {} \; 这一步,因为一个一个确认,会很累人,呵呵。

6) 在配置grub的步骤,你如果按照原文做,你会死掉的,嘿嘿,下面是我的


PHP 代码:
grub.conf  (注释:记得cp成为menu.lst,不要用menu.lst的符号链接):
default 0
timeout 5
splashimage=/boot/grub/splash.xpm.gz

title LiveCD
        root (cd)  (注释:我喜欢这样做,原文没有,但是我在这里确认用cd)
        kernel /boot/vmlinuz root=/dev/loop0 real_root=/dev/loop0 looptype=squashfs loop=/livecd.squashfs vga=ask initrd udev nodevfs cdroot dodmraid  (注释:原文没有root=/dev/loop0,这是不对滴)
        initrd /boot/initrd

title LiveCD NO-FB
        root (cd)
        kernel /boot/vmlinuz root=/dev/loop0 real_root=/dev/loop0 looptype=squashfs loop=/livecd.squashfs initrd udev nodevfs cdroot dodmraid
        initrd /boot/initrd

title Memtest86+
        root (cd)
        kernel /boot/memtest86plus/memtest.bin  

7) 我安装了一些常见的工具:


PHP 代码:
# emerge dmraid megamgr megacli megactl megarc mdadm mpt-status
# rc-update add mdadm boot; rc-update add mdraid boot;  

网卡配置这块,由于我是有开启了dhcp的内部路由器,所以:


PHP 代码:
# emerge dhcpcd
# rc-update dhcpcd default
# echo config_eth0=("dhcpd" > /etc/conf.d/net
# echo config_eth1=("dhcpd" > /etc/conf.d/net    (注释:双网卡)  

9) 到了同步的步骤,我写了一个脚本,首先在rsync的时候就做了一些exclude,rsync的脚本如下(在livecd目录下执行):


PHP 代码:
#!/bin/bash

echo "syncing boot files..."
rsync --delete-after --archive --hard-links --verbose ./source/boot ./target/

echo ""

echo "syncing source files..."
rsync --delete-after --archive --progress --verbose --exclude "var/tmp/*"
      --exclude "var/cache/*" --exclude "*.h" --exclude "usr/portage"
      --exclude "var/run/*" --exclude "var/log/*" --exclude "tmp/*"  
      --exclude "*.a" --exclude "root/*"
      --exclude "etc/portage" --exclude "usr/share/doc" --exclude "usr/src"
      ./source/ ./target/files/source/

echo "syncing finished."  

10) 如果你有兴趣在livecd中包含stage3和snapshot的portage包,可以直接放在source下面的某个目录下,例如可以建一个目录叫做stage,然后统统放进去。当livecd挂载之后,可以在/mnt/livecd下面找到。
到此为止,livecd做好,把iso烧录到光盘上,我做好的iso差不多170MB大小。

3. 最终效果

废话不多说,只贴dmesg:


PHP 代码:
GDT-HA: Storage RAID Controller Driver. Version: 3.05
imm: Version 2.05 (for Linux 2.4.0)
Fusion MPT base driver 3.04.13
Copyright (c) 1999-2008 LSI Corporation
Fusion MPT SPI Host driver 3.04.13
Fusion MPT FC Host driver 3.04.13
Fusion MPT SAS Host driver 3.04.13
mptsas 0000:02:00.0: PCI INT A -> GSI 24 (level, low) -> IRQ 24
mptbase: ioc0: Initiating bringup
ioc0: : Capabilities={Initiator}
mptsas 0000:02:00.0: setting latency timer to 64
scsi4 : ioc0: , FwRev=011a0000h, Ports=1, MaxQ=478, IRQ=24
mptsas: ioc0: attaching ssp device: fw_channel 0, fw_id 0, phy 0, sas_addr 0x5000c500170623f1
scsi 4:0:0:0: Direct-Access     SEAGATE  ST3300656SS      HS09 PQ: 0 ANSI: 5
sd 4:0:0:0: Attached scsi generic sg0 type 0
sd 4:0:0:0: [sda] 585937500 512-byte logical blocks: (300 GB/279 GiB)
mptsas: ioc0: attaching ssp device: fw_channel 0, fw_id 1, phy 1, sas_addr 0x5000c50017062b99
scsi 4:0:1:0: Direct-Access     SEAGATE  ST3300656SS      HS09 PQ: 0 ANSI: 5
sd 4:0:0:0: [sda] Write Protect is off
sd 4:0:0:0: [sda] Mode Sense: b3 00 10 08
sd 4:0:1:0: Attached scsi generic sg1 type 0
sd 4:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
sd 4:0:1:0: [sdb] 585937500 512-byte logical blocks: (300 GB/279 GiB)
sd 4:0:1:0: [sdb] Write Protect is off
sd 4:0:1:0: [sdb] Mode Sense: b3 00 10 08
sda:
sd 4:0:1:0: [sdb] Write cache: enabled, read cache: enabled, supports DPO and FUA
sdb: sda1 sda2 sda3 < sda5 sdb1 sdb2 sdb3 < sdb5 sda6 sdb6 sda7 sdb7 sda8 >
sdb8 >
sd 4:0:0:0: [sda] Attached SCSI disk
sd 4:0:1:0: [sdb] Attached SCSI disk
megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 EST 2006)
megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 2006)
megasas: 00.00.04.12-rc1 Thu Sep. 17 11:41:51 PST 2009
.......
    sl811: driver sl811-hcd, 19 May 2005
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.16.0-ioctl (2009-11-05) initialised: dm-devel@redhat.com
md: raid0 personality registered for level 0
usb 2-2: new high speed USB device using ehci_hcd and address 2
md: raid1 personality registered for level 1
md: raid10 personality registered for level 10  

然后 ls /dev/mapper -la,就会出现:


PHP 代码:
total 0
drwxr-xr-x  2 root root     200 Mar  1 08:58 .
drwxr-xr-x 14 root root   13980 Mar  1 08:58 ..
crw-rw----  1 root root  10, 56 Mar  1 08:58 control
brw-rw----  1 root disk 253,  0 Mar  1 08:58 ddf1_4c53492020202020100000550000000038bcdb5b00001450  

这个设备名够长吧?哈哈哈,幸亏bash有tab自动完成功能。

然后就可以


PHP 代码:
# cfdisk /dev/mapper/ddf1_4c53492020202020100000550000000038bcdb5b00001450  

来安装系统咯,和用普通的硬盘设备没啥区别了。

在分区写入之后,可能需要重新启动一下系统来识别新的分区表。另外,如果不确认,也可以用一下dmsetup mknodes。


接下来,就不用多说了吧。

论坛徽章:
0
2 [报告]
发表于 2010-03-01 17:48 |只看该作者
相当佩服 LZ   
也用过LSI 配置阵列
先看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP