问题标签 [opensolaris]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
solaris - OracleSolaris 11.2——要使用的工具链
有两个选项 - SunStudio 或 gcc 工具链。开发驱动程序时要遵循的常见做法是什么——确保它使用 32 位和 64 位模式的两种编译器构建,或者选择一个编译器并坚持使用它?
谢谢。
multithreading - OracleSolaris 11.2 -- getinfo 入口点和多线程访问
我正在开始实现第一个 Solaris 设备驱动程序。在实现getinfo
入口点例程时,我们是否必须关心它可以被不同的内核线程调用?通常这个函数更新每个实例的软状态数据结构,并且在多线程访问的情况下,该结构必须由互斥锁保护。
所以我的问题是getinfo
回调是否可以由系统的多个线程调用,或者操作系统保证只有一个线程调用它?这个man getinfo
不是很清楚。
谢谢。
solaris - OracleSolaris 11.2 -- 向系统添加驱动程序,连接失败
我正在学习 Solaris 并编写一个简单的驱动程序;目前我实现了基本的入口点,即_init
, _info
, _finit
, *attach
, *detach
. 它编译和链接没有问题,然后我将它复制到/usr/kernel/drv/amd64/
并调用:
目前我在 _attach 例程中所做的是:
ddi_get_instance ddi_soft_state_zalloc ddi_get_soft_state
并返回 DDI_SUCCESS
不多,但可能当驱动程序加载到内存中时,系统(devfsadm)期望在devfs中创建一些条目,但是我的驱动程序没有注册任何字符设备节点,结果失败了?
solaris - OracleSolaris 11.2——PCI 是否需要 /usr/kernel/drv/driver.conf?
我正在为学术目的实现一个小型 PCI 驱动程序,我不清楚我们是否真的必须提供一件事driver.conf
?我阅读的不同材料(包括http://blog.csdn.net/hotsolaris/article/details/1763716)说,对于 PCI,驱动程序配置文件是可选的,但在我的情况下,似乎pci_config_setup()
只有驱动程序才能成功。 conf提供:
然后我做:
它添加到系统中,没有警告或错误消息。所以我假设 PCI 设备的某些属性不能由系统自动派生,例如父总线?
如果有人能对此有所了解,我将不胜感激。谢谢。
solaris - OracleSolaris 11.2 -- /dev/* 中的字符设备
通常在 Linux 中,PCI 驱动程序可以通过字符设备向用户区公开控制接口,例如/dev/drv_ctl
,用户应用程序可以使用ioctl()
打开的文件描述符读取/写入 I/O 控制命令。
在 Linux 中,我们使用register_chrdev()
内核 API 创建它。
我希望在 Solaris 上具有相同或相似的机制和行为,但似乎在 Solaris 上它的工作方式略有不同;DDI 例程ddi_create_minor_node()
需要一个节点类型来指示音频、块、网络等设备,这对我来说看起来很模糊,例如加密 PCI 设备属于什么类型?
另外,似乎在下面而不是在下面ddi_create_minor_node()
创建一个节点/devices/*
/dev/*
如果有人能澄清我的疑问并指出正确的方向,我将不胜感激。
谢谢。
file-io - OracleSolaris 11.2 -- 简单文件 I/O、cc 警告
现在我构建它:
它确实执行得很好,但是警告是什么?
solaris - OracleSolaris 11.2 - PCI 设备的定位功能
我需要 linuxpci_find_capability
内核函数的 solaris 模拟。我/usr/src/
寻找了一些相似之处,但没有找到任何接近它的东西。pci/pcie 驱动程序通常使用什么来查找设备支持的功能?谢谢。
crash - OracleSolaris 11.2 在引导时崩溃
作为 PCI 驱动程序开发实验的结果,我的内核崩溃了。现在我处于操作系统启动并再次崩溃的情况,因为它试图加载我的错误驱动程序。修复它的方法是什么,可能避免启动我的驱动程序,以便我可以在“安全”模式下登录系统,然后修复我的驱动程序或至少从系统中卸载?
更新阅读http://docs.oracle.com/cd/E36784_01/pdf/E36801.pdf和其他文档后,似乎步骤如下:
1) 从 solaris CD 引导
2)选择壳牌
3)zpool import -R /a rpool
4)zfs mount rpool/ROOT/zfsBE
5)cd /a
并从/usr/kernel/drv/
不完全确定,我不想再搞砸系统,所以想从 Solaris 大师那里得到确认。
UPDATE2所以上面的修复方案几乎对我有用,也就是说我能够导入rpool并且它自动安装/export/home
在下面,这让我可以删除我的错误驱动程序,因为早些时候我从;/a
建立了一个软链接到它。/usr/kernel/drv
基本上我能够重新启动并启动 solaris,没有任何问题,也没有错误消息,所以我什至没有运行fsck
. 但是对我不起作用的是zfs mount rpool/ROOT/solaris
哪个是根 FS,因为我想从/usr/kernel/drv
. 错误消息说我应该用mount
.
顺便说一句,现在我复制我的驱动程序/tmp
并创建一个链接/usr/kernel/drv/amf64/mydrv
,所以如果发生崩溃,系统会重新启动并清理 /tmp 分区。稍后我将需要在 beadm 上投入一些时间。
谢谢。
solaris - OracleSolaris 11.2 - ctags 和 vi
在新安装的 OracleSolaris 上,我有base-developer-utilities
包中的 ctags。它不支持递归,所以我生成标签如下:
生成了标签,但由于某种原因 vim 无法理解它,即它只是没有看到任何标签,尽管我添加了它们set tags
,而是报告错误E426: tag not found
。
标签在标签文件中。
有人知道它可能有什么问题吗?谢谢。
bit-manipulation - OracleSolaris 11.2 和位操作
是否有任何可用的标准位操作例程/宏,例如 SETBIT、CLEARBIT 之类的。我在 中找到了原子位操作man -s9f atomic_bits
,还有别的吗?
谢谢。