In 'IPL A80', what is A80? (Starting a mainframe operating system) - mainframe

Just toying around with IBM mainframe emulation using Hercules. To launch zOS, the command command: ipl a80 is entered. IPL means initial program load. But I couldn't figure out the meaning of the parameter a80. What does it mean?

A80 refers to the unit address of the device you are IPLing. In the case of Hercules, it is a reference to a virtual device that contains a volume. This volume contains the RES pack or system residence volume. Effectively the boot disk.
As pointed out, the version of the operating system your attempting to IPL needs to be one that is considered open source to avoid legal issues. At some point MVS SP went from open to closed and this point is referred to as the transition to Object Code Only (OCO). Any version that is OCO requires a license from IBM and other vendors potentially to use it in an ambulatory.
Note, other operating systems like Linux can be used so you need to very the OS license to ensure your compliant legally.
Good luck and welcome to the mainframe!

Note that you can use IBM z Development and Test (zD&T), which is now the commercial version of the old Hercules systems, and is supported by IBM under software maintenence.
When you boot with the IPL A80 under zD&T, just as the one above mentioned, it refers to a local volume, which you map with a mapping file. Here is an exerpt of the device map for my zD&T system:
[manager]
name awsckd 0001
device 0A80 3390 3390 /z/A3RES1
device 0A81 3390 3390 /z/A3RES2
device 0A82 3390 3390 /z/A3SYS1
device 0A83 3390 3390 /z/A3BLZ1
device 0A84 3390 3390 /z/A3PAGA
device 0A85 3390 3390 /z/A3PAGB
device 0A86 3390 3390 /z/A3PAGC
device 0A87 3390 3390 /z/A3PRD1
device 0A88 3390 3390 /z/A3PRD2
device 0A89 3390 3390 /z/A3PRD3
device 0A8A 3390 3390 /z/A3USR1
device 0A8B 3390 3390 /z/A3USS1
device 0A8C 3390 3390 /z/A3USS2
The file /z/A3RES1 is the bootable volume on my system. You can find more information in the knowledge center: https://www.ibm.com/support/knowledgecenter/SSTQBD_12.0.0/com.ibm.zdt.nav.doc/topics/product_family_welcome.html

Related

Joystick Constant Disconnecting Problems Linux

I'm trying to get a joystick to work but my device is having problems seeing it. I will plug in the joystick, it will show up under /dev/input/ but it will disappear after a few seconds, then reappear, and repeat. Also, I installed the joystick package but js0 never shows up.
When it does show up this is the info I get:
Bus 001 Device 079: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 064: ID 068e:0105 CH Products, Inc.
(This 064 number listed in the last device on this list increments over time since it keeps disconnecting over and over)
root#pc-zed:/dev/input# ls
by-id by-path event0 event1 mice mouse0
root#pc-zed:/dev/input/by-path# ls
platform-xusbps-ehci.0-usb-0:1.2:1.0-event-joystick
platform-xusbps-ehci.0-usb-0:1.2:1.1-event-mouse
platform-xusbps-ehci.0-usb-0:1.2:1.1-mouse
root#pc-zed:/dev/input/by-id# ls
usb-CH_Products_APEM_HF_Joystick-event-joystick
usb-CH_Products_APEM_HF_Joystick-event-mouse
usb-CH_Products_APEM_HF_Joystick-if01-event-mouse
usb-CH_Products_APEM_HF_Joystick-if01-mouse
usb-CH_Products_APEM_HF_Joystick-mouse
The piece of hardware I'm running this on is a ZedBoard with a 3.12.0-xillinux-1.3 kernel
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
I've tried this with a USB hub to ensure this isn't a power issue.
If anyone has any ideas please let me know! Thank you.

GSM modem not attached as ttyUSB on Tomato firmware

Want to connect gsm modem (Huawei E160G) to router ASUS RT-N18U under Advanced Tomato firmware. But dont know what usb device specify in dongle configuration file dongle.conf. Which use Asterisk for connection to modem.
Modem recognized on my laptop with CentOS as three devices in /dev/ttyUSB0-2. But when i plug this modem into router ttyUSB* devices are not recognized.
After attaching, see in /var/log/message
May 27 10:23:00 unknown kern.info kernel: usb 2-2: new high speed USB device using ehci_hcd and address 4
May 27 10:23:00 unknown user.debug hotplug[5829]: Attached USB device 2-2:1.0 [INTERFACE=255/255/255 PRODUCT=12d1/1001/0]
May 27 10:23:00 unknown user.debug hotplug[5835]: Attached USB device 2-2:1.1 [INTERFACE=255/255/255 PRODUCT=12d1/1001/0]
May 27 10:23:00 unknown user.debug hotplug[5836]: Attached USB device 2-2:1.2 [INTERFACE=255/255/255 PRODUCT=12d1/1001/0]
See the new characted device in /dev:
crw-rw-rw- 1 root root 189, 131 May 27 10:23 usbdev2.4
But it is the one and asterisk cant connect to it.
[May 27 07:33:06] WARNING[6233]: chan_dongle.c:235 opentty: tcgetattr() failed for /dev/usbdev2.4: Inappropriate ioctl for device
What the is problem?
I think the drivers are missing. On my laptop, where modem work ok i see in cat /proc/bus/usb/devices Driver=option, but on router output cat /proc/bus/usb/devices show that the Driver=(none) but it is on the
/lib/modules/2.6.36.4brcmarm/kernel/drivers/usb/option.ko
The solution is enable on WAN mode 3g/modem then /dev/ttyUSB devices became available. But i dont want to use internet from 3g modem. I configured 2 WAN interfaces. First use for real WAN (PPPoE) and second for 3g which will be unusable as inet gateway. 3g can be enbale only by manual (see settings in web).
There is the way for have gsm modem available after rebooting or even after shutdown the router.
Thank for all)

Creating custom virtual usb device using usb-vhci

I am new to working on virtual USB device simulation in Linux. So far I have installed the virtual host control (vhci) libraries as per this tutorial (http://sourceforge.net/p/usb-vhci/wiki/Home/) and can see a virtual USB device being created which has some typical specifications that the library implements (Bus 05 in the image with the vendor and product IDs being "dead" and "beef" respectively).
However I want the created virtual device to have the specifications of a real device I have at hand (a mouse, for example).
So how to enumerate and initialize a virtual USB device with the same credentials as another device?
The kernel module (vhci-hcd) is only a (virtual) host controller that you can attach virtual devices to.
If you want to emulate eg a mouse you should get the libusb_vhci from the same source, and look into the examples. These are bare minimum starting points that does nothing except for the basic usb device handling. You'll have to extend this with all descriptors and protocol handling for a USB HID mouse or whatever you want to emulate.
http://www.usbmadesimple.co.uk/ums_5.htm should be a good starting point.
you can use lsusb and in particular lsusb -D to dump the descriptors of devices you have connected.

USB device detection on /dev directory on Linux

Using the lsusb command in Linux I have come to know about bus and device numbers, along with its name of newly attached USB devices.
But how can I know on which device directory (/dev/*) USB device get attached in Linux using command lines only?
It isn't a rule that every device has to show up directly under /dev/, but some device classes will be nested under sub-directories inside /dev/
USB device drivers are a bit different,
If you connect a valid USB device, USB HCI would read the VID:PID and will tell the usb-core that the device with VID:PID combination is connected.
If the usbcore detects any registered driver for the VID:PID combination, it will couple it with the device, and the device file creation would happen accordingly
The device will show in /dev/bus/usb/.., even if, the corresponding driver is not present, to indicate that the device was detected.
You need to have the device driver to have the device in action/operation.
You can verify whether a device driver is coupled to the device through
cat /sys/kernel/debug/usb/devices
Each detected USB device will have an entry here, and also shows the "Driver=" field, to show which driver is associated with your device.
Now, IFF there is a driver, that makes an entry in appropriate /dev tree, you will find the device there.
NOT every device will show up directly under /dev/ in the first level.
say, your mouse/keyboard will not show-up directly under /dev, but inside /dev/input/
Likewise, IF the connected USB device is a char/block device, it MAY show up there, that too have exceptions.
If your device is and ethernet/wifi device, the interface device will NOT show up under /dev/, cross-check with your existing eth0, wlan0, they will not appear directly under /dev/, but will in /proc/net/devices
sda/b/c shows up under /dev directly, because they are block devices and are managed by udev, as such.
Here is an example of lsusb output on my laptop:
Bus 004 Device 123: ID 2001:3c1b D-Link Corp. DWA-127 Wireless N 150 High-Gain Adapter(rev.A1) [Ralink RT3070]
It's the device 123 on the bus 004. /dev/bus/usb/004/123 is just the file for the interested device.
The path might vary on different kernels. The result above holds on kernel 3.15.2

USB 1.1 UHCI and root hub on Linux

I have got some very old computer which supports only usb 1.1. There is uhci controller onboard. As far as I know there is no usb-hub built in. The uhci controller has 2 physical usb ports.
But when the linux starts it shows that it recognized 2-ports usb virtual root hub. I'd like to know if this "root hub" is some kind of abstraction layer for usb-stack? How linux could recognize root hub while there is not such device onboard?
Is this virtual root hub some kind of mapping for those 2 usb ports just for make usb stack easier for programming?
Yes, you are on the right track with your thinking. There is no separate hub device.
With simplifications: USB architecture distinguishes Host and Device. Within Host there is Host Controller. Yours is of the type UHCI. Root hub is part of the host controller architecture. Succinct description is here. Full precise details may be found in USB 2.0 specs. It may be noted that the root hub abstraction is integral to USB Host specifications, it is not just the linux USB stack that uses this abstraction.
Software such as linux will know how to probe the host controller hardware, it will read registers giving necessary details e.g. how many ports are present.
Some additional good info in top answer here.

Resources