试图让一个驱动程序(我们的一个)在 Solaris 10 / 11(这个盒子恰好是 Sol 10)上工作,使用 dev studio 12.3。它似乎已经构建完成,但是,由于 NULL 指针取消引用,它在加载时崩溃,并且盒子现在无休止地重新启动。
我找到了一种在 PC 键盘上获得 ok 提示符的方法(按住 Shift-Break),但我似乎找不到一种方法来启动盒子而不加载驱动程序!单用户模式也会加载它们!
我是否必须重新安装操作系统,或者有键盘战士的方法来解决这个问题吗?
答案1
您需要exclude
向 的副本添加一行/etc/system
,然后使用它来启动。
exclude
:<命名空间>/<模块名称>不允许加载列出的可加载内核模块。
exclude
命令是累积的;模块列表exclude
是通过组合文件exclude
中的每个条目来创建的system
。
/etc/system
在使用内核模块时,您可能应该创建一个故障安全文件。
看SPARC:如何交互式引导系统完整的进程,包括备用内核。这对于您的需求来说可能有点过分了。
这应该有效:
- 通过 CD/DVD 启动
- 挂载根文件系统
- 复印
/etc/system
:cp /a/etc/system /a/etc/system.failsafe
- 添加
exclude: your/driver
到故障安全副本。 - 交互式启动:
boot -a
- 当出现提示时
/etc/system
,输入/etc/system.failsafe
.
答案2
您是否尝试过从 CD/DVD 启动并安装根驱动器以删除禁用/驱动程序?
既然您提到了 Solaris 10,那么如果您使用 LU(实时升级),您是否尝试过引导到另一个 ABE(备用引导环境)?它还允许您安装主 BE(引导环境)并禁用/删除驱动程序。
您还可以尝试在 ok 提示符下查看引导设备上是否有任何定义:
boot <device> -L
如果成功,它会在设备上打印可引导的 BE - 内存还显示有关如何引导到该引导设备的语法。