nvram 特殊檔案

用途

可讓您存取平台專用的永久 RAM ,用於系統開機、配置及嚴重錯誤資訊。 此存取是透過機器 I/O 裝置驅動程式來達成。

說明

/dev/nvram 字元特殊檔案可讓您存取 機器裝置驅動程式 ,以存取或修改機器特定的永久 RAM。 需要適當的專用權才能開啟 nvram 特殊檔案。 機器特定的配置程式會使用 nvram 特殊檔案,利用機器上提供的永久 RAM 或 ROM 來儲存或擷取配置及開機資訊。 nvram 特殊檔案支援 open、close、read 及 ioctl 作業。

附註: 應用程式不應該存取永久 RAM。 由於永久 RAM 是平台專用的,任何對其存在和實作的依賴都會對使用應用程式造成可攜性限制。 此外,存取永久 RAM 可能會導致系統啟動及配置資訊遺失。 這類損失可能需要系統管理或維護作業工作才能重建或回復。

用法考量

當搭配使用子常式與 nvram 特殊檔案時,請考量下列項目。

開啟及關閉子常式

機器裝置驅動程式支援 nvram 特殊檔案作為多工字元特殊檔案。

特殊通道名稱 基礎 可用來讀取儲存在開機記錄中的基本自訂資訊。 nvram 特殊檔案必須以基本通道名稱開啟,如下所示:

/dev/nvram/base

特殊檔案 /dev/nvram/base 只能開啟一次。 當它在開機之後第一次關閉時,包含基本自訂資訊的緩衝區是免費的。 後續開啟會傳回 ENOENT 錯誤碼。

read、write 及 lseek 子常式

順利開啟通道名稱為 基礎nvram 特殊檔案之後,支援 子常式。 作業會在與基本自訂作業資訊相關聯的位置開始傳送資料,並使用偏移值指定的偏移值,該偏移值與子常式上使用的檔案指標相關聯。

子常式上,如果在達到傳送計數之前達到資料區結尾,則會傳回在達到資料區結尾之前讀取的位元組數。 如果在資料區結束之後開始讀取,則驅動程式會傳回錯誤 ENXIO

lseek 子常式可用來變更與基本自訂作業資訊相關聯之資料區內的起始讀取偏移。 此通道不支援 子常式,因此會導致錯誤傳回 ENODEV

ioctl 子常式

在順利開啟 /dev/nvram 特殊檔案之後,可以對機器裝置驅動程式發出 ioctl 指令。 IOCINFO 參數會傳回呼叫者的 devinfo 結構中的機器裝置驅動程式資訊,由 阿爾格 參數指向 ioctl 子常式。 此結構定義在 /usr/include/sys/devinfo.h 檔案中。 此裝置驅動程式的裝置類型為 DD_PSEU

錯誤碼

使用 nvram 特殊檔名存取機器裝置驅動程式時,可能會傳回下列錯誤狀況:

項目 說明
EFAULT ioctl 子常式呼叫上,呼叫程式指定的緩衝區無效。
ENXIO 嘗試讀取作業超過通道指定的資料區結尾。
ENODEV 已嘗試寫入作業。
ENOMEM 使用使用者提供的緩衝區所提出的要求對所要求的資料而言太小。

安全

嘗試開啟 nvram 特殊檔案的程式需要適當的專用權。

檔案

項目 說明
/dev/nvram/base 容許讀取儲存在開機記錄中的基本自訂資訊。