酷!學園

技術討論區 => Embedded 討論版 => 主題作者是: andrew 於 2008-06-17 17:19

主題: 開發 embedded system 時遇到的 mknod 權限問題
作者: andrew2008-06-17 17:19
我們在開發 embedded system 時遇到一個問題,
產生 firmware 的過成大約是這樣:
1. 產生 filesystem
2. 產生 kernel image
3. 整合 1 & 2 變成 firmware

但是1.的步驟需要用到 mknod 的指令建置 /dev 下的裝置檔.
一般的開發者都用自己的 Linux 環境, 所以自己是 root, 執行 mknod 沒有問題,
但是客戶要求我們可以用一般 user 的身份 build firmware,
這會使得產生 filesystem 的過程中發生 mknod 權限不符的錯誤.

請問各位有遇過這樣的問題嗎? 是如何解決的呢?

主題: 回覆: 開發 embedded system 時遇到的 mknod 權限問題
作者: kenduest2008-06-17 17:22
我們在開發 embedded system 時遇到一個問題,
產生 firmware 的過成大約是這樣:
1. 產生 filesystem
2. 產生 kernel image
3. 整合 1 & 2 變成 firmware

但是1.的步驟需要用到 mknod 的指令建置 /dev 下的裝置檔.
一般的開發者都用自己的 Linux 環境, 所以自己是 root, 執行 mknod 沒有問題,
但是客戶要求我們可以用一般 user 的身份 build firmware,
這會使得產生 filesystem 的過程中發生 mknod 權限不符的錯誤.
請問各位有遇過這樣的問題嗎? 是如何解決的呢?

投機取巧方式,把 mknod 改成 root-setuid 權限如何呢?

--
主題: 回覆: 開發 embedded system 時遇到的 mknod 權限問題
作者: andrew2008-06-17 17:35
我有想過這件事情耶.

不過~事實上, 他們希望我們把 code 上傳到他們的 server 進行遠端 build code 做驗證,
可以 build 出 firmware 我們才算完成任務. 所以才會遭遇這個問題~

如果要求他們在 server 上開啟 setuid, 我不確定他們會同意....(難道無解 :-[)

ps: 我嘗試過先用 root 建立好 /dev 下的檔案, tar 起來,
     但是一般 user 嘗試解壓縮它時, 一樣會遇到權限不符的問題喔.
主題: 回覆: 開發 embedded system 時遇到的 mknod 權限問題
作者: kenduest2008-06-17 17:41

然後呢 ?  既然不是你的系統,把問題丟給對方請對方給您解決方案就好了不是嗎 ?

--
主題: 回覆: 開發 embedded system 時遇到的 mknod 權限問題
作者: thyme2008-06-23 14:01
用 devfs ,在載入 kernel module 時才自動該 device ,這樣可以嗎?

embedded system 通常應該很少用 devfs or udev 的 :-)

--
主題: 回覆: 開發 embedded system 時遇到的 mknod 權限問題
作者: jserv2008-07-18 03:06
需要用到 mknod 的指令建置 /dev 下的裝置檔.
一般的開發者都用自己的 Linux 環境, 所以自己是 root, 執行 mknod 沒有問題,
但是客戶要求我們可以用一般 user 的身份 build firmware,
這會使得產生 filesystem 的過程中發生 mknod 權限不符的錯誤.

建議使用 Linux 2.6 hotplug + mdev (in busybox),已有簡潔明暸的 rules 可參考,效能好、彈性也夠。