IPod在Linux下的實戰

剛收到一個朋友送的Ipod,經過研究今天我爲大家分享一點在Linux系統下使用的經驗。AppleiPod它炫目時尚,超薄還可以俘儲大量歌曲,這使得iPod十分流行。但流行的同時也帶來了一些問題, 在Windows系統下可以下載安裝iTunes使用,但比較突出的是Linux中使用的問題。其實,只要方法得當,Linux中也能很好地使用iPod,而且方法不只一種呢!

雖然Linux 並不正式支持iPod,但除了一些並不重要的警告外,iPod還是可以和Linux很好兼容。如果使用的是Linux2.6內核, 那麼在計算機上使用iPod將會非常方便。只需把iPod與計算機連接, 然後在http://www.gtkpod.org/downloads.html網站下載對應Linux發行版本的Gtkpod安裝文件,最新版本爲V0.99.14。此程序可實現Linux下對iPod的操作,如下載歌曲、播放目錄等操作當然調試過程也比較複雜一些。事實上,如果非常喜歡AppleiTunes,還可以嘗試一下CodeWeaverCrossOverOffice最新版本7.0, 可以到http://www.codeweavers.com/products/download_trial/下載試用版。該軟件可以輕鬆地在Linux上運行Windows版的iTunes。這種方法我在這裏就不做詳細介紹。

1.新內核使用iPod方法

目前的linux發行版都是使用2.6Kernel,所以,當插入iPod時,總是報告無法安裝該設備,此時計算機上會顯示如下信息:

sda:end_request I/O error.dev sda,secor 129063016

Buffer I/O error on device sda,logical block 16882877

End-request: I/O eror,dev sda,sector 129063016

End-request:I/O error,dev sda,sector 129063016

Buffer I/O error on device sda,logical block 16882877

對於Linux來說,iPod就像一個移動硬盤設備, 無論使用USB接口,還是Firewire(火線)接口將iPod 與計算機相連,Linux總是採用SCSI仿真來處理它。出現不識別問題首先在於iPod有多於實際數目的扇區。當然,僅僅如此並不會引起上述錯誤,但如果計算飢試圖識別任何一個介於實際扇區 數目與檢測扇區數目之間的扇區時,則iPod總是拒絕所有附的附加I/O請求,出現計算機由於識別了一個iPod的錯誤報告自動鎖定。爲了重新設置iPod,就必須斷開iPod與計算機的連接。爲什麼只有基於2.6.X的內核會受到這種影響呢? 問題就在於當計算機上安裝iPod裝置時,Linux的內核總是試圖找到iPod的分區表。對於大多數文件系統來說,分區表都處十分區的第一部分。但是,基於2.6.X內核所支持的一種叫EFI的新型的分區卻處於分區的最後幾部分中,而這幾部分恰恰是一旦被觸及就自動上鎖的部分。最簡單的處理辦法是,去除由內核所支持的EFIExtensible Firmware Interface)分區。直接選擇“CONFIG_EFI_PARTITION”選項(File systems,Partition types,EFI GUID Partition support,然後重新編譯內核。一旦完成這項工作,就可以盡情享受使用iPod的樂趣。下面以RHEL 5爲例詳細爲大家介紹一下。

步驟:

 1. cd /usr/src/kernels/2.6.18-92.el5-i686

2. make mrproper  ;確定系統中沒有.*.o文件,假如以前編譯過內核,會產生上述文件,將會造成編譯的失敗

3. make menuconfig ;傳統的文本內核編譯模式

選擇:File systems,回車。

選擇Partition types回車

選中EFI GUID Partition support,退出。

Yes保存設置。

4. make 編譯內核模塊,編譯內核,時間比較長,大概花了40分鐘

5. make modules_install;安裝編譯完的內核模塊

6. make install

7. depmod -a ;創建模塊鏈接

8Reboot;編譯成功後系統啓動菜單grub.conf會被修改,在機器啓動時會有新舊兩個內核版本可以選擇

等重新啓動完系統後可以用dmesg命令查看到信息:

new high speed USB device using ehci_hcd and address 11

configuration #1 chosen from 3 choices

New USB device found, idVendor=05ac, idProduct=1293

New USB device strings: Mfr=1, Product=2, SerialNumber=3

Product: iPod

Manufacturer: Apple Inc.

SerialNumber: a7fa2d...

這就說明系統認到了iPod,這下大功告成啦。

儘管重新編譯基於26X的內核會有些不方便, 但做這些工作是絕對值得的, 因爲一解決這個小問題,就可以在Linux上自由自在地享受iPod帶來的音樂樂趣。

另外,如果讀者覺得編譯內核太負責那麼我再爲大家在介紹一個不用編譯內核就能使用iPod的方法,那就是去網上下載Floola,下載地址:http://www.floola.com/Floola是一個跨平臺的免費程序,大小7MB,它可以工作在Linux, Mac OS XWindows(支持Windows 7),可以識別你的iPod和摩托羅拉手機(只要是支持iTunes的設備)隨意交換數據,這樣再也不用擔心iTunes"有去無回"了。

好了,講了這麼多,是不是心裏都癢癢了,快去你的機器前是實踐把。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章