mikesung99
asked on
How do I disable device drivers in x86 Solaris 10
Hi,
We currently have a Sun Ultra 24 System preloaded with Solaris 10 (x86). The default operating mode is set to 64-bit but we would like to boot into 32-bit mode to test some software (that we've tried in 64-bit mode but just doesn't load as expected).
I've modified the boot-file parameter to boot-file=kernel/unix and then rebooted but everytime on load up it reports an error with the 32-bit nVidia video driver:-
/kernel/drv/nvidia
undefinied symbol '_nv013847rm'
WARNING mod_load : Cannot find module 'nvidia'
WARNING consconfig : No Screen found
Can't Find Driver for Console framebuffer
Whilst in 64-bit mode, I've used kdmconfig to change to Xsun and then the video device from nVidia to "XF86-VGA VGA-compatible video cards". However, when I then try to boot into 32-bit mode (expecting it to load up the VGA driver, it still reports the error with the nVidia.
As such, we were thinking if there a way to modify the device drivers that the kernel references to check and then possibly disable the referencing of the nvida driver and for it to explicitly reference the VGA driver? Or is there something else that we can try?
Thanks
Michael
We currently have a Sun Ultra 24 System preloaded with Solaris 10 (x86). The default operating mode is set to 64-bit but we would like to boot into 32-bit mode to test some software (that we've tried in 64-bit mode but just doesn't load as expected).
I've modified the boot-file parameter to boot-file=kernel/unix and then rebooted but everytime on load up it reports an error with the 32-bit nVidia video driver:-
/kernel/drv/nvidia
undefinied symbol '_nv013847rm'
WARNING mod_load : Cannot find module 'nvidia'
WARNING consconfig : No Screen found
Can't Find Driver for Console framebuffer
Whilst in 64-bit mode, I've used kdmconfig to change to Xsun and then the video device from nVidia to "XF86-VGA VGA-compatible video cards". However, when I then try to boot into 32-bit mode (expecting it to load up the VGA driver, it still reports the error with the nVidia.
As such, we were thinking if there a way to modify the device drivers that the kernel references to check and then possibly disable the referencing of the nvida driver and for it to explicitly reference the VGA driver? Or is there something else that we can try?
Thanks
Michael
ASKER
Hi Saranyakkali,
I mkade the modfications to the grub menu file and to the boot-file parameter and then rebooted into Grub. However, when I attempt to select the Solaris 32bit Entry from the menu, I get the following error:-
Booting 'Solaris 10 08/07 slox_u4wos_rbx86-32 bit
kernel /platform/i86pc/kernel /unix
Error 13 Invalid or unsupported executable format
Press any key to continue
I've attached the current state of my menu.lst.
Thanks
Michael
I mkade the modfications to the grub menu file and to the boot-file parameter and then rebooted into Grub. However, when I attempt to select the Solaris 32bit Entry from the menu, I get the following error:-
Booting 'Solaris 10 08/07 slox_u4wos_rbx86-32 bit
kernel /platform/i86pc/kernel /unix
Error 13 Invalid or unsupported executable format
Press any key to continue
I've attached the current state of my menu.lst.
Thanks
Michael
#
# default menu entry to boot
default 0
#
# menu timeout in second before default OS is booted
# set to -1 to wait for user input
timeout 10
#
# To enable grub serial console to ttya uncomment the following lines
# and comment out the splashimage line below
# WARNING: don't enable grub serial console when BIOS console serial
# redirection is active!!!
# serial --unit=0 --speed=9600
# terminal serial
#
# Uncomment the following line to enable GRUB splashimage on console
splashimage /boot/grub/splash.xpm.gz
#
# To chainload another OS
#
# title Another OS
# root (hd<disk no>,<partition no>)
# chainloader +1
#
# To chainload a Solaris release not based on grub
#
# title Solaris 9
# root (hd<disk no>,<partition no>)
# chainloader +1
# makeactive
#
# To load a Solaris instance based on grub
#
# title Solaris <version>
# root (hd<disk no>,<partition no>,x) --x = Solaris root slice
# kernel /platform/i86pc/multiboot
# module /platform/i86pc/boot_archive
#
# To override Solaris boot args (see kernel(1M)), console device and
# properties set via eeprom(1M) edit the "kernel" line to:
#
# kernel /platform/i86pc/multiboot <boot-args> -B prop1=val1,prop2=val2,...
#
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris 10 08/07 s10x_u4wos_12b X86
root (hd0,1,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------
#--------------------
title Solaris 32 Bit
kernel /platform/i86pc/kernel/unix
module /platform/i86pc/boot_archive
#-----------------------------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris failsafe
root (hd0,1,a)
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
#---------------------END BOOTADM--------------------
Can you please add bellow..
#---------------------END BOOTADM------------------- -
title Diagnostic Partition
rootnoverify (hd0,0)
chainloader +1
#---------------------END BOOTADM-------------------
title Diagnostic Partition
rootnoverify (hd0,0)
chainloader +1
ASKER
I've Added the suggested config to the menu.lst and still with the boot-fileparameterset to kernel/unix rebooted the system into grub. Selected the diagnostic Partition option but got the follwing messages:-
Invalid system disk
Replace the disk and then press any key
<I pressed the return key>
Intel (R) Booot Agent Ge v1.2.70
CLIENT MAC ADDR : xx xx xx xx xx xx GUID xxxxxxxxxx
PXE-E53: No boot filename received
PXE-M0FL Exiting Intel Boot Agent
Reboot and select proper Boot device or insert Boot media in selected Boot device and press a key
< pressed return and then that took me back to grub>
Thanks
Michael
Invalid system disk
Replace the disk and then press any key
<I pressed the return key>
Intel (R) Booot Agent Ge v1.2.70
CLIENT MAC ADDR : xx xx xx xx xx xx GUID xxxxxxxxxx
PXE-E53: No boot filename received
PXE-M0FL Exiting Intel Boot Agent
Reboot and select proper Boot device or insert Boot media in selected Boot device and press a key
< pressed return and then that took me back to grub>
Thanks
Michael
Michel,
I think you need to change from (hd0,0) to bellow.
rootnoverify (hd0,1,a)
so that it ll read.
Thanks.
Saran
I think you need to change from (hd0,0) to bellow.
rootnoverify (hd0,1,a)
so that it ll read.
Thanks.
Saran
ASKER
Hi Saran,
I've changed it to rootnoverify(hd0,1,a) but it returns back with the following error:-
Invalid or unsupported executabe format.
Is there anything else I need to add or change in the menu.lst?
Thanks
Michael
I've changed it to rootnoverify(hd0,1,a) but it returns back with the following error:-
Invalid or unsupported executabe format.
Is there anything else I need to add or change in the menu.lst?
Thanks
Michael
Here is all of boot into 32-bit kernel on 64-bit platform
Sometimes you need to boot into the 32-bit kernel on a 64-bit platform. Perhaps you have an application that is 32-bit only. Or perhaps you have developed a device driver for the Solaris OS. In general, Solaris device drivers must work both in 32-bit mode and in 64-bit mode.
To boot into the 32-bit kernel on a 64-bit platform, edit the GRUB menu. Either edit the file /boot/grub/menu.lst and reboot, or reboot and enter e at the grub menu.
For Solaris 10, the lines in the menu.lst file look something like this:
title Solaris 10 11/06 s10x_u3wos_10 X86
root (hd0,2,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archi ve
Change the kernel line to this:
kernel /platform/i86pc/kernel/uni x
For Solaris Express (nevada, SXDE, SXCE, OpenSolaris), the lines in the menu.lst file look something like this:
title Solaris Express Community Edition snv_79 X86
kernel$ /platform/i86pc/kernel/$IS ADIR/unix
module$ /platform/i86pc/$ISADIR/bo ot_archive
Change the kernel and module lines to this:
kernel$ /platform/i86pc/kernel/uni x
module$ /platform/i86pc/boot_archi ve
Save and reboot
To make this change persistent across reboots, become the root user and make this change using
eeprom boot-file="kernel/unix"
========================== ========== ========== ========== ========== =====
And i just tryed on my local X86 solaris 10 box.. it works for me..
Please reply me the error of you faced agan..
Please refer some more references..
http://blogs.sun.com/souvik/entry/workaround_for_vmware_fusion_hanging
http://www.gnu.org/software/grub/manual/grub.html#Interface
Thanks
Saran
Sometimes you need to boot into the 32-bit kernel on a 64-bit platform. Perhaps you have an application that is 32-bit only. Or perhaps you have developed a device driver for the Solaris OS. In general, Solaris device drivers must work both in 32-bit mode and in 64-bit mode.
To boot into the 32-bit kernel on a 64-bit platform, edit the GRUB menu. Either edit the file /boot/grub/menu.lst and reboot, or reboot and enter e at the grub menu.
For Solaris 10, the lines in the menu.lst file look something like this:
title Solaris 10 11/06 s10x_u3wos_10 X86
root (hd0,2,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archi
Change the kernel line to this:
kernel /platform/i86pc/kernel/uni
For Solaris Express (nevada, SXDE, SXCE, OpenSolaris), the lines in the menu.lst file look something like this:
title Solaris Express Community Edition snv_79 X86
kernel$ /platform/i86pc/kernel/$IS
module$ /platform/i86pc/$ISADIR/bo
Change the kernel and module lines to this:
kernel$ /platform/i86pc/kernel/uni
module$ /platform/i86pc/boot_archi
Save and reboot
To make this change persistent across reboots, become the root user and make this change using
eeprom boot-file="kernel/unix"
==========================
And i just tryed on my local X86 solaris 10 box.. it works for me..
Please reply me the error of you faced agan..
Please refer some more references..
http://blogs.sun.com/souvik/entry/workaround_for_vmware_fusion_hanging
http://www.gnu.org/software/grub/manual/grub.html#Interface
Thanks
Saran
ASKER
I've moved a little bit further with this problem - I've changed the kernel line to:-
kernel /platform/i86pc/multiboot kernel/unix [I think this is specific to my version of solaris]
and it now attempts to boot into 32-bit mode , WHen it starts up, it shows Sun Os Release 5.10 Version Generais 127112-10 32-bit - however, I still get my original issue of the nvidia error being reported:-
/kernel/drv/nvidia
undefinied symbol '_nv013847rm'
WARNING mod_load : Cannot find module 'nvidia'
WARNING consconfig : No Screen found
Can't Find Driver for Console framebuffer
After this error - the system reboots itself everytime. Is there a way to prevent the loading of the nvidia driver or someway to prevent the consconfig : No Screen found error. I've had a look at the various forums but there doesn't seem to be anything that helps.
Thanks
Michael
kernel /platform/i86pc/multiboot kernel/unix [I think this is specific to my version of solaris]
and it now attempts to boot into 32-bit mode , WHen it starts up, it shows Sun Os Release 5.10 Version Generais 127112-10 32-bit - however, I still get my original issue of the nvidia error being reported:-
/kernel/drv/nvidia
undefinied symbol '_nv013847rm'
WARNING mod_load : Cannot find module 'nvidia'
WARNING consconfig : No Screen found
Can't Find Driver for Console framebuffer
After this error - the system reboots itself everytime. Is there a way to prevent the loading of the nvidia driver or someway to prevent the consconfig : No Screen found error. I've had a look at the various forums but there doesn't seem to be anything that helps.
Thanks
Michael
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Unfortunately, I still can't resolve my original issue of disabling the driver. but thanks for sharing info on editing grub. I just want to get rid of the WARNING consconfig : No Screen found error by just trying to use the standard VGA display (as per my original request)
I think I'll re-post another question specifically asking for help in resolving the framebuffer issue by seeing if it's possible to bypass the Nvidia driver and use the VGA driver instead.
Cheers
Michael
I think I'll re-post another question specifically asking for help in resolving the framebuffer issue by seeing if it's possible to bypass the Nvidia driver and use the VGA driver instead.
Cheers
Michael
Edit '/boot/grub/menu.lst' ,add a 32-bit entry something like this :
#-------------------------
title Solaris 32 Bit
kernel /platform/i86pc/kernel/uni
module /platform/i86pc/boot_archi
#-------------------------
==========================
For some applications that will not run in 64-bit this can be useful.
Logged in as root type:
/usr/sbin/eeprom boot-file=kernel/unix
==========================
Please check above and let me know if you need any more..
thanks