1*4d2e26a3SMauro Carvalho Chehab=============================================================== 2*4d2e26a3SMauro Carvalho ChehabHVCS IBM "Hypervisor Virtual Console Server" Installation Guide 3*4d2e26a3SMauro Carvalho Chehab=============================================================== 4*4d2e26a3SMauro Carvalho Chehab 5*4d2e26a3SMauro Carvalho Chehabfor Linux Kernel 2.6.4+ 6*4d2e26a3SMauro Carvalho Chehab 7*4d2e26a3SMauro Carvalho ChehabCopyright (C) 2004 IBM Corporation 8*4d2e26a3SMauro Carvalho Chehab 9*4d2e26a3SMauro Carvalho Chehab.. =========================================================================== 10*4d2e26a3SMauro Carvalho Chehab.. NOTE:Eight space tabs are the optimum editor setting for reading this file. 11*4d2e26a3SMauro Carvalho Chehab.. =========================================================================== 12*4d2e26a3SMauro Carvalho Chehab 13*4d2e26a3SMauro Carvalho Chehab 14*4d2e26a3SMauro Carvalho ChehabAuthor(s): Ryan S. Arnold <rsa@us.ibm.com> 15*4d2e26a3SMauro Carvalho Chehab 16*4d2e26a3SMauro Carvalho ChehabDate Created: March, 02, 2004 17*4d2e26a3SMauro Carvalho ChehabLast Changed: August, 24, 2004 18*4d2e26a3SMauro Carvalho Chehab 19*4d2e26a3SMauro Carvalho Chehab.. Table of contents: 20*4d2e26a3SMauro Carvalho Chehab 21*4d2e26a3SMauro Carvalho Chehab 1. Driver Introduction: 22*4d2e26a3SMauro Carvalho Chehab 2. System Requirements 23*4d2e26a3SMauro Carvalho Chehab 3. Build Options: 24*4d2e26a3SMauro Carvalho Chehab 3.1 Built-in: 25*4d2e26a3SMauro Carvalho Chehab 3.2 Module: 26*4d2e26a3SMauro Carvalho Chehab 4. Installation: 27*4d2e26a3SMauro Carvalho Chehab 5. Connection: 28*4d2e26a3SMauro Carvalho Chehab 6. Disconnection: 29*4d2e26a3SMauro Carvalho Chehab 7. Configuration: 30*4d2e26a3SMauro Carvalho Chehab 8. Questions & Answers: 31*4d2e26a3SMauro Carvalho Chehab 9. Reporting Bugs: 32*4d2e26a3SMauro Carvalho Chehab 33*4d2e26a3SMauro Carvalho Chehab1. Driver Introduction: 34*4d2e26a3SMauro Carvalho Chehab======================= 35*4d2e26a3SMauro Carvalho Chehab 36*4d2e26a3SMauro Carvalho ChehabThis is the device driver for the IBM Hypervisor Virtual Console Server, 37*4d2e26a3SMauro Carvalho Chehab"hvcs". The IBM hvcs provides a tty driver interface to allow Linux user 38*4d2e26a3SMauro Carvalho Chehabspace applications access to the system consoles of logically partitioned 39*4d2e26a3SMauro Carvalho Chehaboperating systems (Linux and AIX) running on the same partitioned Power5 40*4d2e26a3SMauro Carvalho Chehabppc64 system. Physical hardware consoles per partition are not practical 41*4d2e26a3SMauro Carvalho Chehabon this hardware so system consoles are accessed by this driver using 42*4d2e26a3SMauro Carvalho Chehabfirmware interfaces to virtual terminal devices. 43*4d2e26a3SMauro Carvalho Chehab 44*4d2e26a3SMauro Carvalho Chehab2. System Requirements: 45*4d2e26a3SMauro Carvalho Chehab======================= 46*4d2e26a3SMauro Carvalho Chehab 47*4d2e26a3SMauro Carvalho ChehabThis device driver was written using 2.6.4 Linux kernel APIs and will only 48*4d2e26a3SMauro Carvalho Chehabbuild and run on kernels of this version or later. 49*4d2e26a3SMauro Carvalho Chehab 50*4d2e26a3SMauro Carvalho ChehabThis driver was written to operate solely on IBM Power5 ppc64 hardware 51*4d2e26a3SMauro Carvalho Chehabthough some care was taken to abstract the architecture dependent firmware 52*4d2e26a3SMauro Carvalho Chehabcalls from the driver code. 53*4d2e26a3SMauro Carvalho Chehab 54*4d2e26a3SMauro Carvalho ChehabSysfs must be mounted on the system so that the user can determine which 55*4d2e26a3SMauro Carvalho Chehabmajor and minor numbers are associated with each vty-server. Directions 56*4d2e26a3SMauro Carvalho Chehabfor sysfs mounting are outside the scope of this document. 57*4d2e26a3SMauro Carvalho Chehab 58*4d2e26a3SMauro Carvalho Chehab3. Build Options: 59*4d2e26a3SMauro Carvalho Chehab================= 60*4d2e26a3SMauro Carvalho Chehab 61*4d2e26a3SMauro Carvalho ChehabThe hvcs driver registers itself as a tty driver. The tty layer 62*4d2e26a3SMauro Carvalho Chehabdynamically allocates a block of major and minor numbers in a quantity 63*4d2e26a3SMauro Carvalho Chehabrequested by the registering driver. The hvcs driver asks the tty layer 64*4d2e26a3SMauro Carvalho Chehabfor 64 of these major/minor numbers by default to use for hvcs device node 65*4d2e26a3SMauro Carvalho Chehabentries. 66*4d2e26a3SMauro Carvalho Chehab 67*4d2e26a3SMauro Carvalho ChehabIf the default number of device entries is adequate then this driver can be 68*4d2e26a3SMauro Carvalho Chehabbuilt into the kernel. If not, the default can be over-ridden by inserting 69*4d2e26a3SMauro Carvalho Chehabthe driver as a module with insmod parameters. 70*4d2e26a3SMauro Carvalho Chehab 71*4d2e26a3SMauro Carvalho Chehab3.1 Built-in: 72*4d2e26a3SMauro Carvalho Chehab------------- 73*4d2e26a3SMauro Carvalho Chehab 74*4d2e26a3SMauro Carvalho ChehabThe following menuconfig example demonstrates selecting to build this 75*4d2e26a3SMauro Carvalho Chehabdriver into the kernel:: 76*4d2e26a3SMauro Carvalho Chehab 77*4d2e26a3SMauro Carvalho Chehab Device Drivers ---> 78*4d2e26a3SMauro Carvalho Chehab Character devices ---> 79*4d2e26a3SMauro Carvalho Chehab <*> IBM Hypervisor Virtual Console Server Support 80*4d2e26a3SMauro Carvalho Chehab 81*4d2e26a3SMauro Carvalho ChehabBegin the kernel make process. 82*4d2e26a3SMauro Carvalho Chehab 83*4d2e26a3SMauro Carvalho Chehab3.2 Module: 84*4d2e26a3SMauro Carvalho Chehab----------- 85*4d2e26a3SMauro Carvalho Chehab 86*4d2e26a3SMauro Carvalho ChehabThe following menuconfig example demonstrates selecting to build this 87*4d2e26a3SMauro Carvalho Chehabdriver as a kernel module:: 88*4d2e26a3SMauro Carvalho Chehab 89*4d2e26a3SMauro Carvalho Chehab Device Drivers ---> 90*4d2e26a3SMauro Carvalho Chehab Character devices ---> 91*4d2e26a3SMauro Carvalho Chehab <M> IBM Hypervisor Virtual Console Server Support 92*4d2e26a3SMauro Carvalho Chehab 93*4d2e26a3SMauro Carvalho ChehabThe make process will build the following kernel modules: 94*4d2e26a3SMauro Carvalho Chehab 95*4d2e26a3SMauro Carvalho Chehab - hvcs.ko 96*4d2e26a3SMauro Carvalho Chehab - hvcserver.ko 97*4d2e26a3SMauro Carvalho Chehab 98*4d2e26a3SMauro Carvalho ChehabTo insert the module with the default allocation execute the following 99*4d2e26a3SMauro Carvalho Chehabcommands in the order they appear:: 100*4d2e26a3SMauro Carvalho Chehab 101*4d2e26a3SMauro Carvalho Chehab insmod hvcserver.ko 102*4d2e26a3SMauro Carvalho Chehab insmod hvcs.ko 103*4d2e26a3SMauro Carvalho Chehab 104*4d2e26a3SMauro Carvalho ChehabThe hvcserver module contains architecture specific firmware calls and must 105*4d2e26a3SMauro Carvalho Chehabbe inserted first, otherwise the hvcs module will not find some of the 106*4d2e26a3SMauro Carvalho Chehabsymbols it expects. 107*4d2e26a3SMauro Carvalho Chehab 108*4d2e26a3SMauro Carvalho ChehabTo override the default use an insmod parameter as follows (requesting 4 109*4d2e26a3SMauro Carvalho Chehabtty devices as an example):: 110*4d2e26a3SMauro Carvalho Chehab 111*4d2e26a3SMauro Carvalho Chehab insmod hvcs.ko hvcs_parm_num_devs=4 112*4d2e26a3SMauro Carvalho Chehab 113*4d2e26a3SMauro Carvalho ChehabThere is a maximum number of dev entries that can be specified on insmod. 114*4d2e26a3SMauro Carvalho ChehabWe think that 1024 is currently a decent maximum number of server adapters 115*4d2e26a3SMauro Carvalho Chehabto allow. This can always be changed by modifying the constant in the 116*4d2e26a3SMauro Carvalho Chehabsource file before building. 117*4d2e26a3SMauro Carvalho Chehab 118*4d2e26a3SMauro Carvalho ChehabNOTE: The length of time it takes to insmod the driver seems to be related 119*4d2e26a3SMauro Carvalho Chehabto the number of tty interfaces the registering driver requests. 120*4d2e26a3SMauro Carvalho Chehab 121*4d2e26a3SMauro Carvalho ChehabIn order to remove the driver module execute the following command:: 122*4d2e26a3SMauro Carvalho Chehab 123*4d2e26a3SMauro Carvalho Chehab rmmod hvcs.ko 124*4d2e26a3SMauro Carvalho Chehab 125*4d2e26a3SMauro Carvalho ChehabThe recommended method for installing hvcs as a module is to use depmod to 126*4d2e26a3SMauro Carvalho Chehabbuild a current modules.dep file in /lib/modules/`uname -r` and then 127*4d2e26a3SMauro Carvalho Chehabexecute:: 128*4d2e26a3SMauro Carvalho Chehab 129*4d2e26a3SMauro Carvalho Chehab modprobe hvcs hvcs_parm_num_devs=4 130*4d2e26a3SMauro Carvalho Chehab 131*4d2e26a3SMauro Carvalho ChehabThe modules.dep file indicates that hvcserver.ko needs to be inserted 132*4d2e26a3SMauro Carvalho Chehabbefore hvcs.ko and modprobe uses this file to smartly insert the modules in 133*4d2e26a3SMauro Carvalho Chehabthe proper order. 134*4d2e26a3SMauro Carvalho Chehab 135*4d2e26a3SMauro Carvalho ChehabThe following modprobe command is used to remove hvcs and hvcserver in the 136*4d2e26a3SMauro Carvalho Chehabproper order:: 137*4d2e26a3SMauro Carvalho Chehab 138*4d2e26a3SMauro Carvalho Chehab modprobe -r hvcs 139*4d2e26a3SMauro Carvalho Chehab 140*4d2e26a3SMauro Carvalho Chehab4. Installation: 141*4d2e26a3SMauro Carvalho Chehab================ 142*4d2e26a3SMauro Carvalho Chehab 143*4d2e26a3SMauro Carvalho ChehabThe tty layer creates sysfs entries which contain the major and minor 144*4d2e26a3SMauro Carvalho Chehabnumbers allocated for the hvcs driver. The following snippet of "tree" 145*4d2e26a3SMauro Carvalho Chehaboutput of the sysfs directory shows where these numbers are presented:: 146*4d2e26a3SMauro Carvalho Chehab 147*4d2e26a3SMauro Carvalho Chehab sys/ 148*4d2e26a3SMauro Carvalho Chehab |-- *other sysfs base dirs* 149*4d2e26a3SMauro Carvalho Chehab | 150*4d2e26a3SMauro Carvalho Chehab |-- class 151*4d2e26a3SMauro Carvalho Chehab | |-- *other classes of devices* 152*4d2e26a3SMauro Carvalho Chehab | | 153*4d2e26a3SMauro Carvalho Chehab | `-- tty 154*4d2e26a3SMauro Carvalho Chehab | |-- *other tty devices* 155*4d2e26a3SMauro Carvalho Chehab | | 156*4d2e26a3SMauro Carvalho Chehab | |-- hvcs0 157*4d2e26a3SMauro Carvalho Chehab | | `-- dev 158*4d2e26a3SMauro Carvalho Chehab | |-- hvcs1 159*4d2e26a3SMauro Carvalho Chehab | | `-- dev 160*4d2e26a3SMauro Carvalho Chehab | |-- hvcs2 161*4d2e26a3SMauro Carvalho Chehab | | `-- dev 162*4d2e26a3SMauro Carvalho Chehab | |-- hvcs3 163*4d2e26a3SMauro Carvalho Chehab | | `-- dev 164*4d2e26a3SMauro Carvalho Chehab | | 165*4d2e26a3SMauro Carvalho Chehab | |-- *other tty devices* 166*4d2e26a3SMauro Carvalho Chehab | 167*4d2e26a3SMauro Carvalho Chehab |-- *other sysfs base dirs* 168*4d2e26a3SMauro Carvalho Chehab 169*4d2e26a3SMauro Carvalho ChehabFor the above examples the following output is a result of cat'ing the 170*4d2e26a3SMauro Carvalho Chehab"dev" entry in the hvcs directory:: 171*4d2e26a3SMauro Carvalho Chehab 172*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/class/tty/hvcs0/ # cat dev 173*4d2e26a3SMauro Carvalho Chehab 254:0 174*4d2e26a3SMauro Carvalho Chehab 175*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/class/tty/hvcs1/ # cat dev 176*4d2e26a3SMauro Carvalho Chehab 254:1 177*4d2e26a3SMauro Carvalho Chehab 178*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/class/tty/hvcs2/ # cat dev 179*4d2e26a3SMauro Carvalho Chehab 254:2 180*4d2e26a3SMauro Carvalho Chehab 181*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/class/tty/hvcs3/ # cat dev 182*4d2e26a3SMauro Carvalho Chehab 254:3 183*4d2e26a3SMauro Carvalho Chehab 184*4d2e26a3SMauro Carvalho ChehabThe output from reading the "dev" attribute is the char device major and 185*4d2e26a3SMauro Carvalho Chehabminor numbers that the tty layer has allocated for this driver's use. Most 186*4d2e26a3SMauro Carvalho Chehabsystems running hvcs will already have the device entries created or udev 187*4d2e26a3SMauro Carvalho Chehabwill do it automatically. 188*4d2e26a3SMauro Carvalho Chehab 189*4d2e26a3SMauro Carvalho ChehabGiven the example output above, to manually create a /dev/hvcs* node entry 190*4d2e26a3SMauro Carvalho Chehabmknod can be used as follows:: 191*4d2e26a3SMauro Carvalho Chehab 192*4d2e26a3SMauro Carvalho Chehab mknod /dev/hvcs0 c 254 0 193*4d2e26a3SMauro Carvalho Chehab mknod /dev/hvcs1 c 254 1 194*4d2e26a3SMauro Carvalho Chehab mknod /dev/hvcs2 c 254 2 195*4d2e26a3SMauro Carvalho Chehab mknod /dev/hvcs3 c 254 3 196*4d2e26a3SMauro Carvalho Chehab 197*4d2e26a3SMauro Carvalho ChehabUsing mknod to manually create the device entries makes these device nodes 198*4d2e26a3SMauro Carvalho Chehabpersistent. Once created they will exist prior to the driver insmod. 199*4d2e26a3SMauro Carvalho Chehab 200*4d2e26a3SMauro Carvalho ChehabAttempting to connect an application to /dev/hvcs* prior to insertion of 201*4d2e26a3SMauro Carvalho Chehabthe hvcs module will result in an error message similar to the following:: 202*4d2e26a3SMauro Carvalho Chehab 203*4d2e26a3SMauro Carvalho Chehab "/dev/hvcs*: No such device". 204*4d2e26a3SMauro Carvalho Chehab 205*4d2e26a3SMauro Carvalho ChehabNOTE: Just because there is a device node present doesn't mean that there 206*4d2e26a3SMauro Carvalho Chehabis a vty-server device configured for that node. 207*4d2e26a3SMauro Carvalho Chehab 208*4d2e26a3SMauro Carvalho Chehab5. Connection 209*4d2e26a3SMauro Carvalho Chehab============= 210*4d2e26a3SMauro Carvalho Chehab 211*4d2e26a3SMauro Carvalho ChehabSince this driver controls devices that provide a tty interface a user can 212*4d2e26a3SMauro Carvalho Chehabinteract with the device node entries using any standard tty-interactive 213*4d2e26a3SMauro Carvalho Chehabmethod (e.g. "cat", "dd", "echo"). The intent of this driver however, is 214*4d2e26a3SMauro Carvalho Chehabto provide real time console interaction with a Linux partition's console, 215*4d2e26a3SMauro Carvalho Chehabwhich requires the use of applications that provide bi-directional, 216*4d2e26a3SMauro Carvalho Chehabinteractive I/O with a tty device. 217*4d2e26a3SMauro Carvalho Chehab 218*4d2e26a3SMauro Carvalho ChehabApplications (e.g. "minicom" and "screen") that act as terminal emulators 219*4d2e26a3SMauro Carvalho Chehabor perform terminal type control sequence conversion on the data being 220*4d2e26a3SMauro Carvalho Chehabpassed through them are NOT acceptable for providing interactive console 221*4d2e26a3SMauro Carvalho ChehabI/O. These programs often emulate antiquated terminal types (vt100 and 222*4d2e26a3SMauro Carvalho ChehabANSI) and expect inbound data to take the form of one of these supported 223*4d2e26a3SMauro Carvalho Chehabterminal types but they either do not convert, or do not _adequately_ 224*4d2e26a3SMauro Carvalho Chehabconvert, outbound data into the terminal type of the terminal which invoked 225*4d2e26a3SMauro Carvalho Chehabthem (though screen makes an attempt and can apparently be configured with 226*4d2e26a3SMauro Carvalho Chehabmuch termcap wrestling.) 227*4d2e26a3SMauro Carvalho Chehab 228*4d2e26a3SMauro Carvalho ChehabFor this reason kermit and cu are two of the recommended applications for 229*4d2e26a3SMauro Carvalho Chehabinteracting with a Linux console via an hvcs device. These programs simply 230*4d2e26a3SMauro Carvalho Chehabact as a conduit for data transfer to and from the tty device. They do not 231*4d2e26a3SMauro Carvalho Chehabrequire inbound data to take the form of a particular terminal type, nor do 232*4d2e26a3SMauro Carvalho Chehabthey cook outbound data to a particular terminal type. 233*4d2e26a3SMauro Carvalho Chehab 234*4d2e26a3SMauro Carvalho ChehabIn order to ensure proper functioning of console applications one must make 235*4d2e26a3SMauro Carvalho Chehabsure that once connected to a /dev/hvcs console that the console's $TERM 236*4d2e26a3SMauro Carvalho Chehabenv variable is set to the exact terminal type of the terminal emulator 237*4d2e26a3SMauro Carvalho Chehabused to launch the interactive I/O application. If one is using xterm and 238*4d2e26a3SMauro Carvalho Chehabkermit to connect to /dev/hvcs0 when the console prompt becomes available 239*4d2e26a3SMauro Carvalho Chehabone should "export TERM=xterm" on the console. This tells ncurses 240*4d2e26a3SMauro Carvalho Chehabapplications that are invoked from the console that they should output 241*4d2e26a3SMauro Carvalho Chehabcontrol sequences that xterm can understand. 242*4d2e26a3SMauro Carvalho Chehab 243*4d2e26a3SMauro Carvalho ChehabAs a precautionary measure an hvcs user should always "exit" from their 244*4d2e26a3SMauro Carvalho Chehabsession before disconnecting an application such as kermit from the device 245*4d2e26a3SMauro Carvalho Chehabnode. If this is not done, the next user to connect to the console will 246*4d2e26a3SMauro Carvalho Chehabcontinue using the previous user's logged in session which includes 247*4d2e26a3SMauro Carvalho Chehabusing the $TERM variable that the previous user supplied. 248*4d2e26a3SMauro Carvalho Chehab 249*4d2e26a3SMauro Carvalho ChehabHotplug add and remove of vty-server adapters affects which /dev/hvcs* node 250*4d2e26a3SMauro Carvalho Chehabis used to connect to each vty-server adapter. In order to determine which 251*4d2e26a3SMauro Carvalho Chehabvty-server adapter is associated with which /dev/hvcs* node a special sysfs 252*4d2e26a3SMauro Carvalho Chehabattribute has been added to each vty-server sysfs entry. This entry is 253*4d2e26a3SMauro Carvalho Chehabcalled "index" and showing it reveals an integer that refers to the 254*4d2e26a3SMauro Carvalho Chehab/dev/hvcs* entry to use to connect to that device. For instance cating the 255*4d2e26a3SMauro Carvalho Chehabindex attribute of vty-server adapter 30000004 shows the following:: 256*4d2e26a3SMauro Carvalho Chehab 257*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat index 258*4d2e26a3SMauro Carvalho Chehab 2 259*4d2e26a3SMauro Carvalho Chehab 260*4d2e26a3SMauro Carvalho ChehabThis index of '2' means that in order to connect to vty-server adapter 261*4d2e26a3SMauro Carvalho Chehab30000004 the user should interact with /dev/hvcs2. 262*4d2e26a3SMauro Carvalho Chehab 263*4d2e26a3SMauro Carvalho ChehabIt should be noted that due to the system hotplug I/O capabilities of a 264*4d2e26a3SMauro Carvalho Chehabsystem the /dev/hvcs* entry that interacts with a particular vty-server 265*4d2e26a3SMauro Carvalho Chehabadapter is not guaranteed to remain the same across system reboots. Look 266*4d2e26a3SMauro Carvalho Chehabin the Q & A section for more on this issue. 267*4d2e26a3SMauro Carvalho Chehab 268*4d2e26a3SMauro Carvalho Chehab6. Disconnection 269*4d2e26a3SMauro Carvalho Chehab================ 270*4d2e26a3SMauro Carvalho Chehab 271*4d2e26a3SMauro Carvalho ChehabAs a security feature to prevent the delivery of stale data to an 272*4d2e26a3SMauro Carvalho Chehabunintended target the Power5 system firmware disables the fetching of data 273*4d2e26a3SMauro Carvalho Chehaband discards that data when a connection between a vty-server and a vty has 274*4d2e26a3SMauro Carvalho Chehabbeen severed. As an example, when a vty-server is immediately disconnected 275*4d2e26a3SMauro Carvalho Chehabfrom a vty following output of data to the vty the vty adapter may not have 276*4d2e26a3SMauro Carvalho Chehabenough time between when it received the data interrupt and when the 277*4d2e26a3SMauro Carvalho Chehabconnection was severed to fetch the data from firmware before the fetch is 278*4d2e26a3SMauro Carvalho Chehabdisabled by firmware. 279*4d2e26a3SMauro Carvalho Chehab 280*4d2e26a3SMauro Carvalho ChehabWhen hvcs is being used to serve consoles this behavior is not a huge issue 281*4d2e26a3SMauro Carvalho Chehabbecause the adapter stays connected for large amounts of time following 282*4d2e26a3SMauro Carvalho Chehabalmost all data writes. When hvcs is being used as a tty conduit to tunnel 283*4d2e26a3SMauro Carvalho Chehabdata between two partitions [see Q & A below] this is a huge problem 284*4d2e26a3SMauro Carvalho Chehabbecause the standard Linux behavior when cat'ing or dd'ing data to a device 285*4d2e26a3SMauro Carvalho Chehabis to open the tty, send the data, and then close the tty. If this driver 286*4d2e26a3SMauro Carvalho Chehabmanually terminated vty-server connections on tty close this would close 287*4d2e26a3SMauro Carvalho Chehabthe vty-server and vty connection before the target vty has had a chance to 288*4d2e26a3SMauro Carvalho Chehabfetch the data. 289*4d2e26a3SMauro Carvalho Chehab 290*4d2e26a3SMauro Carvalho ChehabAdditionally, disconnecting a vty-server and vty only on module removal or 291*4d2e26a3SMauro Carvalho Chehabadapter removal is impractical because other vty-servers in other 292*4d2e26a3SMauro Carvalho Chehabpartitions may require the usage of the target vty at any time. 293*4d2e26a3SMauro Carvalho Chehab 294*4d2e26a3SMauro Carvalho ChehabDue to this behavioral restriction disconnection of vty-servers from the 295*4d2e26a3SMauro Carvalho Chehabconnected vty is a manual procedure using a write to a sysfs attribute 296*4d2e26a3SMauro Carvalho Chehaboutlined below, on the other hand the initial vty-server connection to a 297*4d2e26a3SMauro Carvalho Chehabvty is established automatically by this driver. Manual vty-server 298*4d2e26a3SMauro Carvalho Chehabconnection is never required. 299*4d2e26a3SMauro Carvalho Chehab 300*4d2e26a3SMauro Carvalho ChehabIn order to terminate the connection between a vty-server and vty the 301*4d2e26a3SMauro Carvalho Chehab"vterm_state" sysfs attribute within each vty-server's sysfs entry is used. 302*4d2e26a3SMauro Carvalho ChehabReading this attribute reveals the current connection state of the 303*4d2e26a3SMauro Carvalho Chehabvty-server adapter. A zero means that the vty-server is not connected to a 304*4d2e26a3SMauro Carvalho Chehabvty. A one indicates that a connection is active. 305*4d2e26a3SMauro Carvalho Chehab 306*4d2e26a3SMauro Carvalho ChehabWriting a '0' (zero) to the vterm_state attribute will disconnect the VTERM 307*4d2e26a3SMauro Carvalho Chehabconnection between the vty-server and target vty ONLY if the vterm_state 308*4d2e26a3SMauro Carvalho Chehabpreviously read '1'. The write directive is ignored if the vterm_state 309*4d2e26a3SMauro Carvalho Chehabread '0' or if any value other than '0' was written to the vterm_state 310*4d2e26a3SMauro Carvalho Chehabattribute. The following example will show the method used for verifying 311*4d2e26a3SMauro Carvalho Chehabthe vty-server connection status and disconnecting a vty-server connection:: 312*4d2e26a3SMauro Carvalho Chehab 313*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat vterm_state 314*4d2e26a3SMauro Carvalho Chehab 1 315*4d2e26a3SMauro Carvalho Chehab 316*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # echo 0 > vterm_state 317*4d2e26a3SMauro Carvalho Chehab 318*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat vterm_state 319*4d2e26a3SMauro Carvalho Chehab 0 320*4d2e26a3SMauro Carvalho Chehab 321*4d2e26a3SMauro Carvalho ChehabAll vty-server connections are automatically terminated when the device is 322*4d2e26a3SMauro Carvalho Chehabhotplug removed and when the module is removed. 323*4d2e26a3SMauro Carvalho Chehab 324*4d2e26a3SMauro Carvalho Chehab7. Configuration 325*4d2e26a3SMauro Carvalho Chehab================ 326*4d2e26a3SMauro Carvalho Chehab 327*4d2e26a3SMauro Carvalho ChehabEach vty-server has a sysfs entry in the /sys/devices/vio directory, which 328*4d2e26a3SMauro Carvalho Chehabis symlinked in several other sysfs tree directories, notably under the 329*4d2e26a3SMauro Carvalho Chehabhvcs driver entry, which looks like the following example:: 330*4d2e26a3SMauro Carvalho Chehab 331*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs # ls 332*4d2e26a3SMauro Carvalho Chehab . .. 30000003 30000004 rescan 333*4d2e26a3SMauro Carvalho Chehab 334*4d2e26a3SMauro Carvalho ChehabBy design, firmware notifies the hvcs driver of vty-server lifetimes and 335*4d2e26a3SMauro Carvalho Chehabpartner vty removals but not the addition of partner vtys. Since an HMC 336*4d2e26a3SMauro Carvalho ChehabSuper Admin can add partner info dynamically we have provided the hvcs 337*4d2e26a3SMauro Carvalho Chehabdriver sysfs directory with the "rescan" update attribute which will query 338*4d2e26a3SMauro Carvalho Chehabfirmware and update the partner info for all the vty-servers that this 339*4d2e26a3SMauro Carvalho Chehabdriver manages. Writing a '1' to the attribute triggers the update. An 340*4d2e26a3SMauro Carvalho Chehabexplicit example follows: 341*4d2e26a3SMauro Carvalho Chehab 342*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs # echo 1 > rescan 343*4d2e26a3SMauro Carvalho Chehab 344*4d2e26a3SMauro Carvalho ChehabReading the attribute will indicate a state of '1' or '0'. A one indicates 345*4d2e26a3SMauro Carvalho Chehabthat an update is in process. A zero indicates that an update has 346*4d2e26a3SMauro Carvalho Chehabcompleted or was never executed. 347*4d2e26a3SMauro Carvalho Chehab 348*4d2e26a3SMauro Carvalho ChehabVty-server entries in this directory are a 32 bit partition unique unit 349*4d2e26a3SMauro Carvalho Chehabaddress that is created by firmware. An example vty-server sysfs entry 350*4d2e26a3SMauro Carvalho Chehablooks like the following:: 351*4d2e26a3SMauro Carvalho Chehab 352*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # ls 353*4d2e26a3SMauro Carvalho Chehab . current_vty devspec name partner_vtys 354*4d2e26a3SMauro Carvalho Chehab .. index partner_clcs vterm_state 355*4d2e26a3SMauro Carvalho Chehab 356*4d2e26a3SMauro Carvalho ChehabEach entry is provided, by default with a "name" attribute. Reading the 357*4d2e26a3SMauro Carvalho Chehab"name" attribute will reveal the device type as shown in the following 358*4d2e26a3SMauro Carvalho Chehabexample:: 359*4d2e26a3SMauro Carvalho Chehab 360*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000003 # cat name 361*4d2e26a3SMauro Carvalho Chehab vty-server 362*4d2e26a3SMauro Carvalho Chehab 363*4d2e26a3SMauro Carvalho ChehabEach entry is also provided, by default, with a "devspec" attribute which 364*4d2e26a3SMauro Carvalho Chehabreveals the full device specification when read, as shown in the following 365*4d2e26a3SMauro Carvalho Chehabexample:: 366*4d2e26a3SMauro Carvalho Chehab 367*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat devspec 368*4d2e26a3SMauro Carvalho Chehab /vdevice/vty-server@30000004 369*4d2e26a3SMauro Carvalho Chehab 370*4d2e26a3SMauro Carvalho ChehabEach vty-server sysfs dir is provided with two read-only attributes that 371*4d2e26a3SMauro Carvalho Chehabprovide lists of easily parsed partner vty data: "partner_vtys" and 372*4d2e26a3SMauro Carvalho Chehab"partner_clcs":: 373*4d2e26a3SMauro Carvalho Chehab 374*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat partner_vtys 375*4d2e26a3SMauro Carvalho Chehab 30000000 376*4d2e26a3SMauro Carvalho Chehab 30000001 377*4d2e26a3SMauro Carvalho Chehab 30000002 378*4d2e26a3SMauro Carvalho Chehab 30000000 379*4d2e26a3SMauro Carvalho Chehab 30000000 380*4d2e26a3SMauro Carvalho Chehab 381*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # cat partner_clcs 382*4d2e26a3SMauro Carvalho Chehab U5112.428.103048A-V3-C0 383*4d2e26a3SMauro Carvalho Chehab U5112.428.103048A-V3-C2 384*4d2e26a3SMauro Carvalho Chehab U5112.428.103048A-V3-C3 385*4d2e26a3SMauro Carvalho Chehab U5112.428.103048A-V4-C0 386*4d2e26a3SMauro Carvalho Chehab U5112.428.103048A-V5-C0 387*4d2e26a3SMauro Carvalho Chehab 388*4d2e26a3SMauro Carvalho ChehabReading partner_vtys returns a list of partner vtys. Vty unit address 389*4d2e26a3SMauro Carvalho Chehabnumbering is only per-partition-unique so entries will frequently repeat. 390*4d2e26a3SMauro Carvalho Chehab 391*4d2e26a3SMauro Carvalho ChehabReading partner_clcs returns a list of "converged location codes" which are 392*4d2e26a3SMauro Carvalho Chehabcomposed of a system serial number followed by "-V*", where the '*' is the 393*4d2e26a3SMauro Carvalho Chehabtarget partition number, and "-C*", where the '*' is the slot of the 394*4d2e26a3SMauro Carvalho Chehabadapter. The first vty partner corresponds to the first clc item, the 395*4d2e26a3SMauro Carvalho Chehabsecond vty partner to the second clc item, etc. 396*4d2e26a3SMauro Carvalho Chehab 397*4d2e26a3SMauro Carvalho ChehabA vty-server can only be connected to a single vty at a time. The entry, 398*4d2e26a3SMauro Carvalho Chehab"current_vty" prints the clc of the currently selected partner vty when 399*4d2e26a3SMauro Carvalho Chehabread. 400*4d2e26a3SMauro Carvalho Chehab 401*4d2e26a3SMauro Carvalho ChehabThe current_vty can be changed by writing a valid partner clc to the entry 402*4d2e26a3SMauro Carvalho Chehabas in the following example:: 403*4d2e26a3SMauro Carvalho Chehab 404*4d2e26a3SMauro Carvalho Chehab Pow5:/sys/bus/vio/drivers/hvcs/30000004 # echo U5112.428.10304 405*4d2e26a3SMauro Carvalho Chehab 8A-V4-C0 > current_vty 406*4d2e26a3SMauro Carvalho Chehab 407*4d2e26a3SMauro Carvalho ChehabChanging the current_vty when a vty-server is already connected to a vty 408*4d2e26a3SMauro Carvalho Chehabdoes not affect the current connection. The change takes effect when the 409*4d2e26a3SMauro Carvalho Chehabcurrently open connection is freed. 410*4d2e26a3SMauro Carvalho Chehab 411*4d2e26a3SMauro Carvalho ChehabInformation on the "vterm_state" attribute was covered earlier on the 412*4d2e26a3SMauro Carvalho Chehabchapter entitled "disconnection". 413*4d2e26a3SMauro Carvalho Chehab 414*4d2e26a3SMauro Carvalho Chehab8. Questions & Answers: 415*4d2e26a3SMauro Carvalho Chehab======================= 416*4d2e26a3SMauro Carvalho Chehab 417*4d2e26a3SMauro Carvalho ChehabQ: What are the security concerns involving hvcs? 418*4d2e26a3SMauro Carvalho Chehab 419*4d2e26a3SMauro Carvalho ChehabA: There are three main security concerns: 420*4d2e26a3SMauro Carvalho Chehab 421*4d2e26a3SMauro Carvalho Chehab 1. The creator of the /dev/hvcs* nodes has the ability to restrict 422*4d2e26a3SMauro Carvalho Chehab the access of the device entries to certain users or groups. It 423*4d2e26a3SMauro Carvalho Chehab may be best to create a special hvcs group privilege for providing 424*4d2e26a3SMauro Carvalho Chehab access to system consoles. 425*4d2e26a3SMauro Carvalho Chehab 426*4d2e26a3SMauro Carvalho Chehab 2. To provide network security when grabbing the console it is 427*4d2e26a3SMauro Carvalho Chehab suggested that the user connect to the console hosting partition 428*4d2e26a3SMauro Carvalho Chehab using a secure method, such as SSH or sit at a hardware console. 429*4d2e26a3SMauro Carvalho Chehab 430*4d2e26a3SMauro Carvalho Chehab 3. Make sure to exit the user session when done with a console or 431*4d2e26a3SMauro Carvalho Chehab the next vty-server connection (which may be from another 432*4d2e26a3SMauro Carvalho Chehab partition) will experience the previously logged in session. 433*4d2e26a3SMauro Carvalho Chehab 434*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 435*4d2e26a3SMauro Carvalho Chehab 436*4d2e26a3SMauro Carvalho ChehabQ: How do I multiplex a console that I grab through hvcs so that other 437*4d2e26a3SMauro Carvalho Chehabpeople can see it: 438*4d2e26a3SMauro Carvalho Chehab 439*4d2e26a3SMauro Carvalho ChehabA: You can use "screen" to directly connect to the /dev/hvcs* device and 440*4d2e26a3SMauro Carvalho Chehabsetup a session on your machine with the console group privileges. As 441*4d2e26a3SMauro Carvalho Chehabpointed out earlier by default screen doesn't provide the termcap settings 442*4d2e26a3SMauro Carvalho Chehabfor most terminal emulators to provide adequate character conversion from 443*4d2e26a3SMauro Carvalho Chehabterm type "screen" to others. This means that curses based programs may 444*4d2e26a3SMauro Carvalho Chehabnot display properly in screen sessions. 445*4d2e26a3SMauro Carvalho Chehab 446*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 447*4d2e26a3SMauro Carvalho Chehab 448*4d2e26a3SMauro Carvalho ChehabQ: Why are the colors all messed up? 449*4d2e26a3SMauro Carvalho ChehabQ: Why are the control characters acting strange or not working? 450*4d2e26a3SMauro Carvalho ChehabQ: Why is the console output all strange and unintelligible? 451*4d2e26a3SMauro Carvalho Chehab 452*4d2e26a3SMauro Carvalho ChehabA: Please see the preceding section on "Connection" for a discussion of how 453*4d2e26a3SMauro Carvalho Chehabapplications can affect the display of character control sequences. 454*4d2e26a3SMauro Carvalho ChehabAdditionally, just because you logged into the console using and xterm 455*4d2e26a3SMauro Carvalho Chehabdoesn't mean someone else didn't log into the console with the HMC console 456*4d2e26a3SMauro Carvalho Chehab(vt320) before you and leave the session logged in. The best thing to do 457*4d2e26a3SMauro Carvalho Chehabis to export TERM to the terminal type of your terminal emulator when you 458*4d2e26a3SMauro Carvalho Chehabget the console. Additionally make sure to "exit" the console before you 459*4d2e26a3SMauro Carvalho Chehabdisconnect from the console. This will ensure that the next user gets 460*4d2e26a3SMauro Carvalho Chehabtheir own TERM type set when they login. 461*4d2e26a3SMauro Carvalho Chehab 462*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 463*4d2e26a3SMauro Carvalho Chehab 464*4d2e26a3SMauro Carvalho ChehabQ: When I try to CONNECT kermit to an hvcs device I get: 465*4d2e26a3SMauro Carvalho Chehab"Sorry, can't open connection: /dev/hvcs*"What is happening? 466*4d2e26a3SMauro Carvalho Chehab 467*4d2e26a3SMauro Carvalho ChehabA: Some other Power5 console mechanism has a connection to the vty and 468*4d2e26a3SMauro Carvalho Chehabisn't giving it up. You can try to force disconnect the consoles from the 469*4d2e26a3SMauro Carvalho ChehabHMC by right clicking on the partition and then selecting "close terminal". 470*4d2e26a3SMauro Carvalho ChehabOtherwise you have to hunt down the people who have console authority. It 471*4d2e26a3SMauro Carvalho Chehabis possible that you already have the console open using another kermit 472*4d2e26a3SMauro Carvalho Chehabsession and just forgot about it. Please review the console options for 473*4d2e26a3SMauro Carvalho ChehabPower5 systems to determine the many ways a system console can be held. 474*4d2e26a3SMauro Carvalho Chehab 475*4d2e26a3SMauro Carvalho ChehabOR 476*4d2e26a3SMauro Carvalho Chehab 477*4d2e26a3SMauro Carvalho ChehabA: Another user may not have a connectivity method currently attached to a 478*4d2e26a3SMauro Carvalho Chehab/dev/hvcs device but the vterm_state may reveal that they still have the 479*4d2e26a3SMauro Carvalho Chehabvty-server connection established. They need to free this using the method 480*4d2e26a3SMauro Carvalho Chehaboutlined in the section on "Disconnection" in order for others to connect 481*4d2e26a3SMauro Carvalho Chehabto the target vty. 482*4d2e26a3SMauro Carvalho Chehab 483*4d2e26a3SMauro Carvalho ChehabOR 484*4d2e26a3SMauro Carvalho Chehab 485*4d2e26a3SMauro Carvalho ChehabA: The user profile you are using to execute kermit probably doesn't have 486*4d2e26a3SMauro Carvalho Chehabpermissions to use the /dev/hvcs* device. 487*4d2e26a3SMauro Carvalho Chehab 488*4d2e26a3SMauro Carvalho ChehabOR 489*4d2e26a3SMauro Carvalho Chehab 490*4d2e26a3SMauro Carvalho ChehabA: You probably haven't inserted the hvcs.ko module yet but the /dev/hvcs* 491*4d2e26a3SMauro Carvalho Chehabentry still exists (on systems without udev). 492*4d2e26a3SMauro Carvalho Chehab 493*4d2e26a3SMauro Carvalho ChehabOR 494*4d2e26a3SMauro Carvalho Chehab 495*4d2e26a3SMauro Carvalho ChehabA: There is not a corresponding vty-server device that maps to an existing 496*4d2e26a3SMauro Carvalho Chehab/dev/hvcs* entry. 497*4d2e26a3SMauro Carvalho Chehab 498*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 499*4d2e26a3SMauro Carvalho Chehab 500*4d2e26a3SMauro Carvalho ChehabQ: When I try to CONNECT kermit to an hvcs device I get: 501*4d2e26a3SMauro Carvalho Chehab"Sorry, write access to UUCP lockfile directory denied." 502*4d2e26a3SMauro Carvalho Chehab 503*4d2e26a3SMauro Carvalho ChehabA: The /dev/hvcs* entry you have specified doesn't exist where you said it 504*4d2e26a3SMauro Carvalho Chehabdoes? Maybe you haven't inserted the module (on systems with udev). 505*4d2e26a3SMauro Carvalho Chehab 506*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 507*4d2e26a3SMauro Carvalho Chehab 508*4d2e26a3SMauro Carvalho ChehabQ: If I already have one Linux partition installed can I use hvcs on said 509*4d2e26a3SMauro Carvalho Chehabpartition to provide the console for the install of a second Linux 510*4d2e26a3SMauro Carvalho Chehabpartition? 511*4d2e26a3SMauro Carvalho Chehab 512*4d2e26a3SMauro Carvalho ChehabA: Yes granted that your are connected to the /dev/hvcs* device using 513*4d2e26a3SMauro Carvalho Chehabkermit or cu or some other program that doesn't provide terminal emulation. 514*4d2e26a3SMauro Carvalho Chehab 515*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 516*4d2e26a3SMauro Carvalho Chehab 517*4d2e26a3SMauro Carvalho ChehabQ: Can I connect to more than one partition's console at a time using this 518*4d2e26a3SMauro Carvalho Chehabdriver? 519*4d2e26a3SMauro Carvalho Chehab 520*4d2e26a3SMauro Carvalho ChehabA: Yes. Of course this means that there must be more than one vty-server 521*4d2e26a3SMauro Carvalho Chehabconfigured for this partition and each must point to a disconnected vty. 522*4d2e26a3SMauro Carvalho Chehab 523*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 524*4d2e26a3SMauro Carvalho Chehab 525*4d2e26a3SMauro Carvalho ChehabQ: Does the hvcs driver support dynamic (hotplug) addition of devices? 526*4d2e26a3SMauro Carvalho Chehab 527*4d2e26a3SMauro Carvalho ChehabA: Yes, if you have dlpar and hotplug enabled for your system and it has 528*4d2e26a3SMauro Carvalho Chehabbeen built into the kernel the hvcs drivers is configured to dynamically 529*4d2e26a3SMauro Carvalho Chehabhandle additions of new devices and removals of unused devices. 530*4d2e26a3SMauro Carvalho Chehab 531*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 532*4d2e26a3SMauro Carvalho Chehab 533*4d2e26a3SMauro Carvalho ChehabQ: For some reason /dev/hvcs* doesn't map to the same vty-server adapter 534*4d2e26a3SMauro Carvalho Chehabafter a reboot. What happened? 535*4d2e26a3SMauro Carvalho Chehab 536*4d2e26a3SMauro Carvalho ChehabA: Assignment of vty-server adapters to /dev/hvcs* entries is always done 537*4d2e26a3SMauro Carvalho Chehabin the order that the adapters are exposed. Due to hotplug capabilities of 538*4d2e26a3SMauro Carvalho Chehabthis driver assignment of hotplug added vty-servers may be in a different 539*4d2e26a3SMauro Carvalho Chehaborder than how they would be exposed on module load. Rebooting or 540*4d2e26a3SMauro Carvalho Chehabreloading the module after dynamic addition may result in the /dev/hvcs* 541*4d2e26a3SMauro Carvalho Chehaband vty-server coupling changing if a vty-server adapter was added in a 542*4d2e26a3SMauro Carvalho Chehabslot between two other vty-server adapters. Refer to the section above 543*4d2e26a3SMauro Carvalho Chehabon how to determine which vty-server goes with which /dev/hvcs* node. 544*4d2e26a3SMauro Carvalho ChehabHint; look at the sysfs "index" attribute for the vty-server. 545*4d2e26a3SMauro Carvalho Chehab 546*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 547*4d2e26a3SMauro Carvalho Chehab 548*4d2e26a3SMauro Carvalho ChehabQ: Can I use /dev/hvcs* as a conduit to another partition and use a tty 549*4d2e26a3SMauro Carvalho Chehabdevice on that partition as the other end of the pipe? 550*4d2e26a3SMauro Carvalho Chehab 551*4d2e26a3SMauro Carvalho ChehabA: Yes, on Power5 platforms the hvc_console driver provides a tty interface 552*4d2e26a3SMauro Carvalho Chehabfor extra /dev/hvc* devices (where /dev/hvc0 is most likely the console). 553*4d2e26a3SMauro Carvalho ChehabIn order to get a tty conduit working between the two partitions the HMC 554*4d2e26a3SMauro Carvalho ChehabSuper Admin must create an additional "serial server" for the target 555*4d2e26a3SMauro Carvalho Chehabpartition with the HMC gui which will show up as /dev/hvc* when the target 556*4d2e26a3SMauro Carvalho Chehabpartition is rebooted. 557*4d2e26a3SMauro Carvalho Chehab 558*4d2e26a3SMauro Carvalho ChehabThe HMC Super Admin then creates an additional "serial client" for the 559*4d2e26a3SMauro Carvalho Chehabcurrent partition and points this at the target partition's newly created 560*4d2e26a3SMauro Carvalho Chehab"serial server" adapter (remember the slot). This shows up as an 561*4d2e26a3SMauro Carvalho Chehabadditional /dev/hvcs* device. 562*4d2e26a3SMauro Carvalho Chehab 563*4d2e26a3SMauro Carvalho ChehabNow a program on the target system can be configured to read or write to 564*4d2e26a3SMauro Carvalho Chehab/dev/hvc* and another program on the current partition can be configured to 565*4d2e26a3SMauro Carvalho Chehabread or write to /dev/hvcs*. Now you have a tty conduit between two 566*4d2e26a3SMauro Carvalho Chehabpartitions. 567*4d2e26a3SMauro Carvalho Chehab 568*4d2e26a3SMauro Carvalho Chehab--------------------------------------------------------------------------- 569*4d2e26a3SMauro Carvalho Chehab 570*4d2e26a3SMauro Carvalho Chehab9. Reporting Bugs: 571*4d2e26a3SMauro Carvalho Chehab================== 572*4d2e26a3SMauro Carvalho Chehab 573*4d2e26a3SMauro Carvalho ChehabThe proper channel for reporting bugs is either through the Linux OS 574*4d2e26a3SMauro Carvalho Chehabdistribution company that provided your OS or by posting issues to the 575*4d2e26a3SMauro Carvalho ChehabPowerPC development mailing list at: 576*4d2e26a3SMauro Carvalho Chehab 577*4d2e26a3SMauro Carvalho Chehablinuxppc-dev@lists.ozlabs.org 578*4d2e26a3SMauro Carvalho Chehab 579*4d2e26a3SMauro Carvalho ChehabThis request is to provide a documented and searchable public exchange 580*4d2e26a3SMauro Carvalho Chehabof the problems and solutions surrounding this driver for the benefit of 581*4d2e26a3SMauro Carvalho Chehaball users. 582