Hey there, At work, we have quite a few legacy environments that already have pre-built domU images that depend on /dev/sdX for block devices and /dev/tty1 for console access. The /dev/xvdX -> /dev/sdX change is trivial: diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index b8578bb..9c8aaa4 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -117,7 +117,7 @@ static DEFINE_SPINLOCK(blkif_io_lock); #define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED)) #define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED)) -#define DEV_NAME "xvd" /* name in /dev */ +#define DEV_NAME "sd" /* name in /dev */ static int get_id_from_freelist(struct blkfront_info *info) { However, I''m struggling with the hvc0 -> tty1 change. In short, I''m looking to bring up a domU that is pre-configured to use tty1 as its console. I understand that the virtual terminal drivers and hvc drivers are different and that the OS will see them differently as it boots. I made these adjustments in the hopes that something would work: diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 6aad99e..cd2888d 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -5,7 +5,7 @@ menu "Character devices" config VT - bool "Virtual terminal" if EMBEDDED + bool "Virtual terminal" depends on !S390 select INPUT default y diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c index a632f25..eff0900 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/char/hvc_console.c @@ -44,7 +44,7 @@ #include "hvc_console.h" #define HVC_MAJOR 229 -#define HVC_MINOR 0 +#define HVC_MINOR 1 /* * Wait this long per iteration while trying to push buffered data to the @@ -848,7 +848,7 @@ static int hvc_init(void) drv->owner = THIS_MODULE; drv->driver_name = "hvc"; - drv->name = "hvc"; + drv->name = "tty"; drv->major = HVC_MAJOR; drv->minor_start = HVC_MINOR; drv->type = TTY_DRIVER_TYPE_SYSTEM; I end up with tty''s when the domU boots, but when the domU boots, I see several of these messages in the console: /scripts/init-top/console_setup: 70: cannot create /dev/tty1: No such device or address However, the device is present when the domU finishes booting: pvops:~# ls -al /dev/tty1 crw-rw---- 1 root root 229, 2 May 11 17:48 /dev/tty1 pvops:~# file /dev/tty1 /dev/tty1: character special Has anyone tried this before? Any suggestions would be greatly appreciated. -- Major Hayden major@mhtx.net _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hey there, At work, we have quite a few legacy environments that already have pre-built domU images that depend on /dev/sdX for block devices and /dev/tty1 for console access. The /dev/xvdX -> /dev/sdX change is trivial: diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index b8578bb..9c8aaa4 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -117,7 +117,7 @@ static DEFINE_SPINLOCK(blkif_io_lock); #define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED)) #define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED)) -#define DEV_NAME "xvd" /* name in /dev */ +#define DEV_NAME "sd" /* name in /dev */ static int get_id_from_freelist(struct blkfront_info *info) { However, I''m struggling with the hvc0 -> tty1 change. In short, I''m looking to bring up a domU that is pre-configured to use tty1 as its console. I understand that the virtual terminal drivers and hvc drivers are different and that the OS will see them differently as it boots. I made these adjustments in the hopes that something would work: diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 6aad99e..cd2888d 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -5,7 +5,7 @@ menu "Character devices" config VT - bool "Virtual terminal" if EMBEDDED + bool "Virtual terminal" depends on !S390 select INPUT default y diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c index a632f25..eff0900 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/char/hvc_console.c @@ -44,7 +44,7 @@ #include "hvc_console.h" #define HVC_MAJOR 229 -#define HVC_MINOR 0 +#define HVC_MINOR 1 /* * Wait this long per iteration while trying to push buffered data to the @@ -848,7 +848,7 @@ static int hvc_init(void) drv->owner = THIS_MODULE; drv->driver_name = "hvc"; - drv->name = "hvc"; + drv->name = "tty"; drv->major = HVC_MAJOR; drv->minor_start = HVC_MINOR; drv->type = TTY_DRIVER_TYPE_SYSTEM; I end up with tty''s when the domU boots, but when the domU boots, I see several of these messages in the console: /scripts/init-top/console_setup: 70: cannot create /dev/tty1: No such device or address However, the device is present when the domU finishes booting: pvops:~# ls -al /dev/tty1 crw-rw---- 1 root root 229, 2 May 11 17:48 /dev/tty1 pvops:~# file /dev/tty1 /dev/tty1: character special Has anyone tried this before? Any suggestions would be greatly appreciated. -- Major Hayden major@mhtx.net _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hey there, We have quite a few legacy environments that already have pre-built domU images that depend on /dev/sdX for block devices and /dev/tty1 for console access. The /dev/xvdX -> /dev/sdX change is trivial: diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index b8578bb..9c8aaa4 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -117,7 +117,7 @@ static DEFINE_SPINLOCK(blkif_io_lock); #define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED)) #define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED)) -#define DEV_NAME "xvd" /* name in /dev */ +#define DEV_NAME "sd" /* name in /dev */ static int get_id_from_freelist(struct blkfront_info *info) { However, I''m struggling with the hvc0 -> tty1 change. In short, I''m looking to bring up a domU that is pre-configured to use tty1 as its console. I understand that the virtual terminal drivers and hvc drivers are different and that the OS will see them differently as it boots. I made these adjustments in the hopes that something would work: diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 6aad99e..cd2888d 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -5,7 +5,7 @@ menu "Character devices" config VT - bool "Virtual terminal" if EMBEDDED + bool "Virtual terminal" depends on !S390 select INPUT default y diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c index a632f25..eff0900 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/char/hvc_console.c @@ -44,7 +44,7 @@ #include "hvc_console.h" #define HVC_MAJOR 229 -#define HVC_MINOR 0 +#define HVC_MINOR 1 /* * Wait this long per iteration while trying to push buffered data to the @@ -848,7 +848,7 @@ static int hvc_init(void) drv->owner = THIS_MODULE; drv->driver_name = "hvc"; - drv->name = "hvc"; + drv->name = "tty"; drv->major = HVC_MAJOR; drv->minor_start = HVC_MINOR; drv->type = TTY_DRIVER_TYPE_SYSTEM; I end up with tty''s when the domU boots, but when the domU boots, I see several of these messages in the console: /scripts/init-top/console_setup: 70: cannot create /dev/tty1: No such device or address However, the device is present when the domU finishes booting: pvops:~# ls -al /dev/tty1 crw-rw---- 1 root root 229, 2 May 11 17:48 /dev/tty1 pvops:~# file /dev/tty1 /dev/tty1: character special Has anyone tried this before? Any suggestions would be greatly appreciated. -- Major Hayden _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hey there, We have quite a few legacy environments that already have pre-built domU images that depend on /dev/sdX for block devices and /dev/tty1 for console access. The /dev/xvdX -> /dev/sdX change is trivial: diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index b8578bb..9c8aaa4 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -117,7 +117,7 @@ static DEFINE_SPINLOCK(blkif_io_lock); #define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED)) #define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED)) -#define DEV_NAME "xvd" /* name in /dev */ +#define DEV_NAME "sd" /* name in /dev */ static int get_id_from_freelist(struct blkfront_info *info) { However, I''m struggling with the hvc0 -> tty1 change. In short, I''m looking to bring up a domU that is pre-configured to use tty1 as its console. I understand that the virtual terminal drivers and hvc drivers are different and that the OS will see them differently as it boots. I made these adjustments in the hopes that something would work: diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 6aad99e..cd2888d 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -5,7 +5,7 @@ menu "Character devices" config VT - bool "Virtual terminal" if EMBEDDED + bool "Virtual terminal" depends on !S390 select INPUT default y diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c index a632f25..eff0900 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/char/hvc_console.c @@ -44,7 +44,7 @@ #include "hvc_console.h" #define HVC_MAJOR 229 -#define HVC_MINOR 0 +#define HVC_MINOR 1 /* * Wait this long per iteration while trying to push buffered data to the @@ -848,7 +848,7 @@ static int hvc_init(void) drv->owner = THIS_MODULE; drv->driver_name = "hvc"; - drv->name = "hvc"; + drv->name = "tty"; drv->major = HVC_MAJOR; drv->minor_start = HVC_MINOR; drv->type = TTY_DRIVER_TYPE_SYSTEM; I end up with tty''s when the domU boots, but when the domU boots, I see several of these messages in the console: /scripts/init-top/console_setup: 70: cannot create /dev/tty1: No such device or address However, the device is present when the domU finishes booting: pvops:~# ls -al /dev/tty1 crw-rw---- 1 root root 229, 2 May 11 17:48 /dev/tty1 pvops:~# file /dev/tty1 /dev/tty1: character special Has anyone tried this before? Any suggestions would be greatly appreciated. -- Major Hayden _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2010-May-12 16:37 UTC
Re: [Xen-devel] Legacy tty1 support in pvops kernels
On 05/11/2010 05:42 PM, Major Hayden wrote:> Hey there, > > We have quite a few legacy environments that already have pre-built domU images that depend on /dev/sdX for block devices and /dev/tty1 for console access. The /dev/xvdX -> /dev/sdX change is trivial: > > diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c > index b8578bb..9c8aaa4 100644 > --- a/drivers/block/xen-blkfront.c > +++ b/drivers/block/xen-blkfront.c > @@ -117,7 +117,7 @@ static DEFINE_SPINLOCK(blkif_io_lock); > #define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED)) > #define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED)) > > -#define DEV_NAME "xvd" /* name in /dev */ > +#define DEV_NAME "sd" /* name in /dev */ > > static int get_id_from_freelist(struct blkfront_info *info) > { > > However, I''m struggling with the hvc0 -> tty1 change. In short, I''m looking to bring up a domU that is pre-configured to use tty1 as its console. I understand that the virtual terminal drivers and hvc drivers are different and that the OS will see them differently as it boots. I made these adjustments in the hopes that something would work: > > diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig > index 6aad99e..cd2888d 100644 > --- a/drivers/char/Kconfig > +++ b/drivers/char/Kconfig > @@ -5,7 +5,7 @@ > menu "Character devices" > > config VT > - bool "Virtual terminal" if EMBEDDED > + bool "Virtual terminal" > depends on !S390 > select INPUT > default y > > diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c > index a632f25..eff0900 100644 > --- a/drivers/char/hvc_console.c > +++ b/drivers/char/hvc_console.c > @@ -44,7 +44,7 @@ > #include "hvc_console.h" > > #define HVC_MAJOR 229 >Did you try changing the major to 4 as well? To match /dev/ttyX? J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hello Jeremy, I did switch around HVC_MAJOR to 4 earlier this morning and that works - except the console ends up on tty0. I spotted the following within hvc_init() (line 853 of drivers/char/hvc_console.c in vanilla 2.6.32.12): drv->minor_start = HVC_MINOR; I set HVC_MINOR at the top of hvc_console.c to 1 and recompiled, but the console still ended up on /dev/tty0. If I adjust the domU''s inittab to bring up a console on /dev/tty0, I can interact with the console as I normally could on /dev/hvc0. However, I''m trying to avoid making changes within the domU''s themselves as this would involve an enormous amount of work. Do you have any ideas on how to shift the first index of the hvc console to 1 rather than 0? I think that''d solve my problem. It''s so close I can feel it. ;-) My current diffs are attached. -- Major Hayden On May 12, 2010, at 11:37, Jeremy Fitzhardinge wrote:> On 05/11/2010 05:42 PM, Major Hayden wrote: >> Hey there, >> >> We have quite a few legacy environments that already have pre-built domU images that depend on /dev/sdX for block devices and /dev/tty1 for console access. The /dev/xvdX -> /dev/sdX change is trivial: >> >> diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c >> index b8578bb..9c8aaa4 100644 >> --- a/drivers/block/xen-blkfront.c >> +++ b/drivers/block/xen-blkfront.c >> @@ -117,7 +117,7 @@ static DEFINE_SPINLOCK(blkif_io_lock); >> #define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED)) >> #define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED)) >> >> -#define DEV_NAME "xvd" /* name in /dev */ >> +#define DEV_NAME "sd" /* name in /dev */ >> >> static int get_id_from_freelist(struct blkfront_info *info) >> { >> >> However, I''m struggling with the hvc0 -> tty1 change. In short, I''m looking to bring up a domU that is pre-configured to use tty1 as its console. I understand that the virtual terminal drivers and hvc drivers are different and that the OS will see them differently as it boots. I made these adjustments in the hopes that something would work: >> >> diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig >> index 6aad99e..cd2888d 100644 >> --- a/drivers/char/Kconfig >> +++ b/drivers/char/Kconfig >> @@ -5,7 +5,7 @@ >> menu "Character devices" >> >> config VT >> - bool "Virtual terminal" if EMBEDDED >> + bool "Virtual terminal" >> depends on !S390 >> select INPUT >> default y >> >> diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c >> index a632f25..eff0900 100644 >> --- a/drivers/char/hvc_console.c >> +++ b/drivers/char/hvc_console.c >> @@ -44,7 +44,7 @@ >> #include "hvc_console.h" >> >> #define HVC_MAJOR 229 >> > > Did you try changing the major to 4 as well? To match /dev/ttyX? > > J_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Am 12.05.2010 02:42, schrieb Major Hayden: Hello,> > We have quite a few legacy environments that already have pre-built domU images that depend on /dev/sdX for block devices and /dev/tty1 for console access. The /dev/xvdX -> /dev/sdX change is trivial: >I''m interested it this, too. But, i''d prefer to map xvda to the device which is configured in domU config file. Regards, Stefan Kuhne _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hello all, Thanks to quite a bit of assistance from Soren Hansen, we have a solution to provide legacy support for /dev/tty1 consoles as well as /dev/sdX block devices in domU''s. The diff is based on 2.6.32.12 from kernel.org. I built x86_64 and i386 kernels from it and it''s been tested in various domU''s running on Xen 3.0.3, 3.1.2, 3.3.0 and 3.4.2. The tested domU''s were running CentOS, Fedora, Ubuntu, Debian, Gentoo and Arch. I''m definitely new to making kernel patches and I''m not entirely sure that this is worth submitting upstream. I''m very much interested in any feedback the community might have. -- Major Hayden _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel