mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	Merge pull request #356 from zet809/fs_bmcsetup
IBM Power S822LC machine support bmcsetup, build genesis based on Fedora 22 ppc64
This commit is contained in:
		| @@ -4,6 +4,20 @@ | ||||
| # Option 2:  untar the root file system of the distro you want to use and then chroot into it and copy | ||||
| #            this whole dir into it somewhere (like /tmp). | ||||
| # Then run this script.  The optional 1st arg should be mcp if you are building against mcp. | ||||
|  | ||||
| # Currently, *Fedora 22* is the only OS supported to build genesis-base for ppc64, and Centos 6.5 for x86_64 | ||||
|  | ||||
|  | ||||
| # For building genesis-base based on Fedora 22 ppc64, the following steps are also needed before running this script | ||||
| # | ||||
| # 1. The Fedora 22 ppc64 can be installed either on pkvm VM or IBM Power S822LC machine. | ||||
| # 2. Install ipmitool with yum install ipmitool. It will install the default ipmitool-1.8.13. | ||||
| # 3. Download ipmitool-1.8.15 tar ball from https://sourceforge.net/projects/ipmitool/files/latest/download. | ||||
| # 4. Install gcc | ||||
| # 5. untar ipmitool-1.8.15 tar ball, cd into the top directory, then ./configure, make. | ||||
| #    The ipmitool-1.8.15 binary will be under ./src/. | ||||
| # 6, replace /usr/bin/ipmitool with ./src/ipmitool | ||||
|  | ||||
| HOSTOS="$1" | ||||
| DIR=`dirname $0` | ||||
| #DIR=`realpath $DIR` | ||||
| @@ -96,17 +110,23 @@ elif [ $BUILDARCH = "ppc64" ]; then | ||||
|         sed -i 's/\/lib\/libgcc_s.so.1/\/lib64\/libgcc_s.so.1/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/libtinfo.so.5.7/\/lib64\/libtinfo.so.5.7/' $DRACUTMODDIR/install | ||||
|         # following changes are required on Fedora 20 ppc64 | ||||
|         sed -i 's/\/lib64\/libnss_dns-2.12.so/\/lib64\/libnss_dns-2.18.so/' $DRACUTMODDIR/install | ||||
|         # sed -i 's/\/lib64\/libnss_dns-2.12.so/\/lib64\/libnss_dns-2.18.so/' $DRACUTMODDIR/install | ||||
|         # following changes are required on Fedora 22 ppc64 | ||||
|         sed -i 's/\/lib64\/libnss_dns-2.12.so/\/lib64\/libnss_dns-2.21.so/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/libc.so.6/\/lib64\/libc.so.6/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/ld-linux.so.2/\/lib64\/ld-2.18.so/' $DRACUTMODDIR/install | ||||
|         # following changes are required on Fedora 22 ppc64 | ||||
|         #sed -i 's/\/lib\/ld-linux.so.2/\/lib64\/ld-2.18.so/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/ld-linux.so.2/\/lib64\/ld-2.21.so/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/libdl.so.2/\/lib64\/libdl.so.2/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/libm.so.6/\/lib64\/libm.so.6/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/libpthread.so.0/\/lib64\/libpthread.so.0/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib64\/libncurses.so.5.7/\/lib64\/libncurses.so.5.9/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/usr\/lib64\/libstdc++.so.6.0.13/\/usr\/lib64\/libstdc++.so.6.0.19/' $DRACUTMODDIR/install | ||||
|         # following changes are required on Fedora 22 ppc64 | ||||
|         #sed -i 's/\/usr\/lib64\/libstdc++.so.6.0.13/\/usr\/lib64\/libstdc++.so.6.0.19/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/usr\/lib64\/libstdc++.so.6.0.13/\/usr\/lib64\/libstdc++.so.6.0.21/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib64\/libtinfo.so.5.7/\/lib64\/libtinfo.so.5.9/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/usr\/lib64\/libsasl2.so.2/\/usr\/lib64\/libsasl2.so.3/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib64\/libnss_dns-2.12.so/\/lib64\/libnss_dns-2.18.so/' $DRACUTMODDIR/install | ||||
|         #sed -i 's/\/lib64\/libnss_dns-2.12.so/\/lib64\/libnss_dns-2.18.so/' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/terminfo\/l\/linux/\/usr\/share\/terminfo\/l\/linux/g' $DRACUTMODDIR/install | ||||
|         sed -i 's/\/lib\/terminfo\/v\/vt100/\/usr\/share\/terminfo\/v\/vt100/g' $DRACUTMODDIR/install | ||||
| fi | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| #!/bin/bash | ||||
| instmods nfs sunrpc | ||||
| instmods e1000 e1000e virtio_net virtio_pci igb ines sfc mlx4_en cxgb3 cxgb4 tg3 bnx2 bnx2x bna ixgb ixgbe qlge mptsas mpt2sas mpt3sas ata_piix megaraid_sas virtio_blk ahci ibmaem xhci-hcd sd_mod pmcraid be2net vfat ext3 ext4 btrfs reiserfs usb_storage scsi_wait_scan kvm kvm-intel kvm-amd ipmi_si ipmi_devintf qlcnic xfs | ||||
| instmods e1000 e1000e virtio_net virtio_pci igb ines sfc mlx4_en cxgb3 cxgb4 tg3 bnx2 bnx2x bna ixgb ixgbe qlge mptsas mpt2sas mpt3sas ata_piix megaraid_sas virtio_blk ahci ibmaem xhci-hcd sd_mod pmcraid be2net vfat ext3 ext4 btrfs reiserfs usb_storage scsi_wait_scan kvm kvm-intel kvm-amd ipmi_powernv ipmi_si ipmi_devintf qlcnic xfs | ||||
| instmods macvlan macvtap 8021q bridge bonding vmxnet3 cpufreq_ondemand acpi-cpufreq powernow-k8 cdc_ether | ||||
| instmods mptctl #LSI firmware management requires this | ||||
| instmods mlx4_ib ib_umad #make the mellanox ib available enough to examine /sys | ||||
|   | ||||
| @@ -15,8 +15,6 @@ | ||||
| allowcred.awk & | ||||
| CREDPID=$! | ||||
| sleep 5 | ||||
| modprobe ipmi_si | ||||
| modprobe ipmi_devintf | ||||
| IPCFGMETHOD=static | ||||
| while [ -z "$BMCIP" -a $IPCFGMETHOD="static" ]; do | ||||
|     while ! getipmi | ||||
| @@ -374,22 +372,25 @@ if [ ! "$IPMIVER" == "1.5"  ]; then | ||||
|         if [ $TRIES -gt $TIMEOUT ]; then break; fi | ||||
|     done | ||||
|     if [ $TRIES -gt $TIMEOUT ]; then echo "ERROR"; else echo "OK"; fi | ||||
|     echo -n "Putting SOL on channel $LANCHAN:" | ||||
|     while ! OUTPUT=`ipmitool -d $idev raw 0xc 0x21 $LANCHAN 7 $LANCHAN 2>&1 > /dev/null`; do | ||||
| 	if echo $OUTPUT|grep "Unknown (0x80)" > /dev/null; then | ||||
| 		echo "Not Needed" | ||||
| 		break | ||||
|         fi | ||||
|         sleep 1 | ||||
|         let TRIES=TRIES+1 | ||||
|         if [ $TRIES -gt $TIMEOUT ]; then break; fi | ||||
|     done | ||||
|     if [ $TRIES -gt $TIMEOUT ]; then echo "ERROR"; else echo "OK"; fi | ||||
|      | ||||
|     # 0xc 0x21 with data 7 is used to set payload channel, it is readonly in the ipmiv2.0 doc, so comment this section out. | ||||
|     #echo -n "Putting SOL on channel $LANCHAN:" | ||||
|     #while ! OUTPUT=`ipmitool -d $idev raw 0xc 0x21 $LANCHAN 7 $LANCHAN 2>&1 > /dev/null`; do | ||||
|     #	if echo $OUTPUT|grep "Unknown (0x80)" > /dev/null; then | ||||
|     #		echo "Not Needed" | ||||
|     #		break | ||||
|     #    fi | ||||
|     #    sleep 1 | ||||
|     #    let TRIES=TRIES+1 | ||||
|     #    if [ $TRIES -gt $TIMEOUT ]; then break; fi | ||||
|     #done | ||||
|     #if [ $TRIES -gt $TIMEOUT ]; then echo "ERROR"; else echo "OK"; fi | ||||
| fi | ||||
|  | ||||
| # Reset the BMC for the x3755 M4 (8722), otherwise the BMC will not be pingable after running of bmcsetup | ||||
| XPROD=`ipmitool mc info|grep "^Product ID"|awk '{print $4}'` | ||||
| if [ "$XPROD" = "309" ] ; then | ||||
| # Product ID with 43707 is for IBM Power S822LC and S812LC machine | ||||
| if [ "$XPROD" = "309" -o "$XPROD" = "43707" ] ; then | ||||
|     echo "Resetting BMC ..." | ||||
|     ipmitool mc reset cold | ||||
|     echo "Waiting for the BMC to appear ..." | ||||
|   | ||||
| @@ -219,19 +219,21 @@ ntpd -g -x | ||||
| # rv 0 state does not work with the new ntp versions | ||||
| #(while ! ntpq -c "rv 0 state"|grep 'state=4' > /dev/null; do sleep 1; done; hwclock --systohc) & | ||||
| (while [ "`ntpq -c \"rv 0 offset\" | grep \"offset=\" | awk -F \"=\" '{print $2}' | awk -F \".\" '{print $1}' | sed s/-//`" -ge 1000 ]; do sleep 1; done; hwclock --systohc) & | ||||
| IPMI_ERROR=`ipmitool mc info` | ||||
| IPMI_RC=$? | ||||
|  | ||||
| HOST_ARCH=`uname -m` | ||||
| if echo $HOST_ARCH | grep "ppc64"; then | ||||
|     modprobe ipmi_powernv | ||||
| else | ||||
|     modprobe ipmi_si | ||||
| fi | ||||
| modprobe ipmi_devintf | ||||
|  | ||||
| IPMI_RC=`ipmitool mc info >/dev/null 2>&1; echo $?` | ||||
| IPMI_SUPPORT=1 | ||||
| if [ $IPMI_RC -ne 0 ]; then | ||||
|     IPMI_SUPPORT=0 | ||||
| fi | ||||
|  | ||||
| if [ -f "/usr/sbin/dmidecode" ]; then | ||||
|     if dmidecode|grep IPMI > /dev/null; then | ||||
|         modprobe ipmi_si | ||||
|         modprobe ipmi_devintf | ||||
|     fi | ||||
| fi | ||||
| DEVICE=$bootnic | ||||
| export DEVICE | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user