fuser 這指令, 乍看之下都會讓人解讀為 "fuse --保險絲 " , 但在Linux中, 應該是解釋為 File using
什麼時後會用到fuser這指令呢, 大體是你想知道有那一個程序 , 正使用著系統的某些接口. 像是那一個網路介面 , 或是那一個檔案系統掛載等.  由其是當我們想卸載某一檔案系統 , 如 umount /dev/win_d ,  卻一直出現 "Device is Busy" 的訊息, 就可以使用 fuser , 把正佔住該資源的程序給找出來.
例如
#fuser -m -v /mnt/win_d       會出現
 
                      USER       PID    .... COMMAND
/mnt/win_d    root        4154       bash
也就是說 ,  有一隻編號4154的bash 程序 , 正在access著/mnt/win_d
其中下的參數 :
-m 參數顯示所有使用指定文件系統的進程,後面可以跟掛載點,或是dev設備( Thanks lisir :),-v參數給出詳細的輸出
當然啦 , 問題一定是要解決的 , 如果是剛好有程序在使用 , 可以關掉就算了. 偏偏有的是錯誤的程序 , 卻關不掉. 這時就得把它給kill 了, fuser裏也安排了這樣的參數命令
fuser -m -k /mnt/win_D

jslinux 發表在 痞客邦 留言(0) 人氣()

常用 Windows的user 一定很習慣 , 當系統出現藍色之死時 , 我們會同時按 " Alt" + "Ctrl " +"Del " , 來起動工作管理員 ,好來看看倒底是那一隻程式當掉了,  或著是死命的佔住系統資源. 然後點選刪除或停用.
這樣的問題 , 在Linux上也是會發生 , 當系統因為某些程序 crash時 , 會出現系統無法釋放資源等現像, 例如我們要umount /dev/win_d , 但老是出現 Device is busy這檔事. 我們就可以使永 "ps " 這指令 , 來好好的觀察到底是那一隻process , 偷偷的在內層搞鬼.
#ps         可以列出目前user 所執行的程式

jslinux 發表在 痞客邦 留言(0) 人氣()


        玩 Linux 似乎很難避掉 Server 這一塊 , 由其當我們要利用cross platform , 讓在i686系統上編譯出來的核心檔案 , 能夠直接透過網路 , 讓 target board 運作 , 就很難避掉這一塊.
        在O'reilly 的 Building Embedded Linux Sytem 一書的 bootloader 章節中 , 一共提到了DHCP , NFS , TFTP等幾個相關的Server  , 既然如此 , 我們就一個個的來實作一下吧.

jslinux 發表在 痞客邦 留言(0) 人氣()


         最近開始著手在 Linux 2.6的plarform 上 , 撰寫一些產品的Device driver.  結果當然一開始必定是摔個一踏糊塗. 有很多時後連怎麼死的都不曉得. 這要是在兩年前 , 那時剛碰linux的我來說  , 必定是束手無測 , 壓根不曉得從那下手. 但畢竟練功不是練假的啦....在經過一段時間的學習 , 慢慢的對linux的系統開竅了 , 就比較容易有些珠絲馬跡可尋 , 這就像是在玩 "TOMB Rider" 一樣 , 在前面的訓練關卡熟練後 , 後面就很自然的會去找一些 , 可能的線索 , 然後再不斷的 try % error , 找尋可能的解答.

        不過 , 在反覆try 的過程中, 很有可能不斷的敲著同樣的指令 , 這時linux 有一個指令 , 就會派的上用場 ---   alias

jslinux 發表在 痞客邦 留言(0) 人氣()

        我想 , 乍看到這樣的主題時 , 大概多數人一定或摸不清楚 , 這是在說什麼吧. 其實, 我自己要下這標題也是挺爭扎的. 想了很久 , 最後還是以這樣的標題為名.
        問題的起源是 , 在Embedded Linux上 , 在製作核心後 , 開發PC 必須想辦法把Kernel image 給燒到Target Board上的儲存資料區 , 這可以是硬碟 , DOC(Disk on chip) , 也可以是在flash ic上 . 但不管那一種 , 只要核心一動 , 就得再弄一次 , 總讓人覺得 , 有那麼點的曠日費時.  但這一個問題早在Linux的前輩中想到了法子. 在Linux上 , 存有一個nfs server的架構. nfs 故名思義就是 network filesystem.

jslinux 發表在 痞客邦 留言(0) 人氣()


        tar ball是Linux的學習中相當重要的一環 , 當你取得open source時 , 通常是被包裝或是壓縮過的檔案 , 這是你就必須使用tar的command來將它解包裝或是解壓縮了. 雖然比較新版的winrar 似乎也看的懂Linux系統下壓縮的格式 , 像是bz2 . gz . tar 等格式 , 但我不能確定 , 利用winrar解壓縮 , 是否不會發生任何的問題.

接下來 , 我們來看一些相關的打包(tar ball)用法. 

jslinux 發表在 痞客邦 留言(0) 人氣()


        在一般的應用程式 , 或是系統編譯時 , 我們都常會遇到 , 需要新增一些路徑到我們原本系統存在的$PATH中 , 但總不能老是在bash下 , 敲export $PATH加上新增的path這一長串的指令吧 , 而且重新開機後 , 路徑也就消失不見了 , 所以就必須把新增了路徑 , 嵌在系統中 ,  假定我們新增的path 為 /usr/local/arm/gcc-2.95.3/bin 則有下列幾個方法
 
        1. 修改 /etc/profile , 變成 " PATH=/usr/local/arm/gcc-2.95.3/bin:$PATH " , 這個方法為導致整個系統 , 都會同時新增了你加入的路徑 , 這並不是很理想. 除非你希望每個人都會使用到.
        2. 修改 /etc/profile , 在manipulation章節中 , 新增/usr/local/arm/gcc-2.95.3/bin(一定要擺在原本的一些路徑設定的前頭喔). 這個作法 ,  只會影響你設定的user帳號 , 而不會是所有帳號都會受影響的.
        3.修改 /ect/bashrc , 變成 export  PATH=/usr/local/arm/gcc-2.95.3/bin:$PATH , 這個方法只限於目前使用者的權限. 
        **新增路徑與原始路徑-$PATH , 是以冒號( : )來連結 , 而不是分號( ; ) , 這點可要留意喔.

        以上兩種方法 , 都有其限制. 可依照不同需求來應用. 而當修改完後 , 可以使用 echo $PATH 的命令 , 將現在的路徑給show出來.

jslinux 發表在 痞客邦 留言(2) 人氣()


          root是系統的最高權限帳號 , 當系統有些設定時, 多會以root帳號登入 , 然後再行修改.  但有時後 , 我們以root權限在運作時 , 不小心修改了某些東西 ,而發生開機無法進入系統的窘境..   整個系統就卡在那動也不動 , 而Linux又沒有像windows , 在重新開機後 , 按F8 , 然後選擇上一次良好設定 , 就可以重新進入. 
         難道還要重灌一次嗎? 當然不是!!!  看看下面是怎麼做的吧~

jslinux 發表在 痞客邦 留言(0) 人氣()


        有鑑於現今的儲存媒體 , 像是硬碟或是隨身碟的儲存媒體越來越大. 所以大多會將媒體格式化為NTFS的格式. 或許在套件核心中已經將ntfs 套件built in , 但如果在編譯核心時 , 未將其勾選時 , 就會像是現在許多套件一樣 , 裏面大多都能直接mount上vfat , 也就是FAT32格式的檔案系統 , 但卻不支援NTFS的格式. 

有鑑於此 , 我們可以follow下面的步驟 , 雖然無法將資料寫入該儲存媒體 , 但至少可以將資料讀出來是沒有問題的.
        rpm -ivh  kernel-ntfs-2.4.20.8.i686.rpm 

    
在安裝完套件後 , 你可以選擇下列兩種方式 , 將NTFS磁碟 mount 在系統中    
       1.  mount -t ntfs /dev/hda1 /mnt/win_c  
    
       2. 在/etc/fstab 中, 將這段式子寫入
            /dev/hda1  /mnt/wi_c ntfs  defaults            

jslinux 發表在 痞客邦 留言(0) 人氣()

1
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。