SLES 12 not able to access virtual devices defined

I need some assistance with my recent installation of SLES 12. I am trying to implement SLES 12 using the principles as found in IBM Redbook “The Virtualization Cookbook for IBM zVM 6.3, RHEL 6.4, and SLES 11 SP3” (there isn’t a Redbook for SLES 12 yet). I am tweaking the process as needed as some things don’t exists in SLES 12 (i.s. there is no /etc/zipl.conf file to edit any longer). The hypervisor is z/VM 6.3 (non-SSI).

Where I am stuck in the process is in section 15.4.9 ‘Install the cmsfs package’. I was able to install the cmsfs package successfully but am unable to test that it is functioning.

I can’t figure out why Linux is unable to ‘see’ all of the virtual devices that are defined to the guest. The only devices known to Linux are virtual devices 0100 and 0101. The PROFILE EXEC creates two virtual swap devices at 0300 and 0301 but they aren’t seen by Linux either.

Bus-ID     Status      Name      Device  Type  BlkSz  Size      Blocks
0.0.0100   active      dasda     94:0    ECKD  4096   7042MB    1802880
0.0.0101   active      dasdb     94:4    ECKD  4096   7042MB    1802880

Here is the output of a ‘q disk’ command that I issued after shutting down Linux, ipl’ed CMS, and responded ‘n’ to the prompt to IPL Linux.

LXM192 191  A   R/O   500 3390 4096        7       9009-10      80991      90000
LXSWAP 300  B   R/W    FB 9336  512        1     524288-99          0     524288
TCM592 592  C   R/O   140 3390 4096      858      12994-52      12206      25200
LXSWAP 301  D   R/W    FB 9336  512        1    1048576-99          0    1048576
MNT190 190  S   R/O   207 3390 4096      697      18288-49      18972      37260
MNT19E 19E  Y/S R/O   500 3390 4096     1131      30869-34      59131      90000

I am able to issue command ‘vmcp link maint630 191 f191 read’ in PuTTY whcih seems to work fine though I can’t find anything for device f191 in /dev or /udev/rules.d. When I issue ‘chccwdev -e 0.0.f191’ Linux returns ‘Device 0.0.f191 not found’.

Also, if I issue ‘swapon -s’ the output is only the physical swap disk that was created during the installation of Linux, it also doesn’t show the virtual swap disks, 0300 and 0301, for the guest.

Filename                                Type            Size    Used    Priority
/dev/dasda2                             partition       1015820 15792   -1

I’m thinking that the devices are possibly being masked by the double bootloader process now used on System z. SLES 12 uses zipl to load the grub2 bootloaded and grub2 loads Linux. I’ve searched Google and have not found anything that i could try. I have SLES 11 SP3 guests on this same lpar that do not exhibit this issue.

Does anyone have any ideas?


PROFILE LNXDFLTN                                           
 LOGONBY GMATTH HLINKE DCULLE                              
 COMMAND DEFINE NIC 1100 TYPE QDIO                         
 COMMAND COUPLE 1100 TO SYSTEM VSWITCH1                    
 IPL CMS PARM AUTOCR                                       
 CONSOLE 009 3215 T                                        
 SPOOL 00C 2540 READER *                                   
 SPOOL 00D 2540 PUNCH A                                    
 SPOOL 00E 1403 A                                          
 LINK MAINT 190 190 RR                                     
 LINK MAINT 19D 19D RR                                     
 LINK MAINT 19E 19E RR                                     
 LINK LNXMAINT 192 191 RR                                  
 LINK TCPMAINT 592 592 RR                                  
*  Linux section                                                       
USER LNXMAINT Q12WE34R 16M 128M ABCDEFG                                
 INCLUDE IBMDFLT                                                       
 MDISK 191 3390 7403 050 631W01 MR READ WRITE MULTIPLE                 
 MDISK 192 3390 0001 500 631W02 MR READ WRITE MULTIPLE                 
*  SLES 12                                                             
USER LNXADMIN Q12WE34R 256M 1G BG                                      
 INCLUDE LNXDFLTN                                                      
 MDISK 100 3390 0001 10016 LNX005 MR ALL SOME FEW                      
 MDISK 101 3390 0001 10016 LNX006 MR ALL SOME FEW      


/* PROFILE EXEC for Linux virtual servers */                   
'CP SET RUN ON'                                                
'CP SET PF11 RETRIEVE FORWARD'                                 
'CP SET PF12 RETRIEVE'                                         
'ACC 592 C'                                                    
'SWAPGEN 300 524288'  /* create 256M VDISK swap space at 300 */
'SWAPGEN 301 1048576' /* create 512M VDISK swap space at 301 */
'PIPE CP QUERY' userid() '| var user'                          
parse value user with id . dsc .                               
if (dsc = 'DSC') then /* user is disconnected */               
  'CP IPL 100'                                                 
else  /* user is interactive -> prompt */                      
  say 'Do you want to IPL Linux from minidisk 100? y/n'        
  parse upper pull answer .                                    
  if (answer = 'Y') then 'CP IPL 100'                          


Hi Harley,

oh, how I miss the times I was in a position to toy around with /370s and /390s… but since I had lost contact with those prior to “Linux on real servers” times ( :wink: ), I cannot help with the actual technical issue.

What I do recommend, though, is to get in touch with either Lydia or Berthold (see page xvi of the cookbook), I wouldn’t be surprised if they’re working on a new edition covering SLES12 :wink:


Thanks Jens, I will do that.

I found the solution with help from a listserver, LINUX-390@VM.MARIST.EDU.

The problem is that I allowed the installation to use a blacklist feature for devices. This prevents Linux from allocating resources at boot time (and when a new device is defined via the ‘vmcp link…’ command). All devices are blacklisted unless they appear in /proc/cio_ignore.

The workaround (in my case) was to issue ‘cio_ignore -r 0.0.vdev’ between issuing ‘vmcp link…’ and ‘chccwdev -e 0.0.vdev’.

vmcp link maint630 2cc 2cc read
cio_ignore -r 0.0.02cc
chccwdev -e 2cc
- access the disk as needed
chccwdev -d 2cc
vmcp det 2cc

The cio_ignore results are not persistent in that I rebooted after I accessed MAINT630’s 2cc disk and it was blacklisted again after the reboot. The way to make this persistent is to add the device to /boot/zipl/active_devices.txt. The change takes effect at the next boot without the zipl bootloader needing to be rebuilt.