Linux 的魅力: 讓古老的機器重獲新生

發表于:2007-05-25來源:作者:點擊數: 標簽:
這臺老機器:所有用到的只是一臺廢棄的膝上型電腦、Linux 系統以及每月 50 美元的預算 級別: 初級 Peter Seebach 自由作家 2005 年 6 月 27 日 人們說 Linux 使得老機器變得有用。這是真的嗎?在這個新系列中,Peter Seebach 使用了一臺廢棄的膝上型電腦,以
這臺老機器:所有用到的只是一臺廢棄的膝上型電腦、Linux 系統以及每月 50 美元的預算

級別: 初級

Peter Seebach
自由作家
2005 年 6 月 27 日

人們說 Linux™ 使得老機器變得有用。這是真的嗎?在這個新系列中,Peter Seebach 使用了一臺廢棄的膝上型電腦,以每月 50 美元的預算構建了一臺能夠真正做一些有意義的事情的家用電器。

編者注: 歡迎閱讀新系列專欄 -- Linux 的魅力 的第一篇文章。developerWorks 專欄作家 Peter Seebach 將研究運行在不同種類硬件上的 Linux —— PDA、嵌入式設備,或者是沒有人認為會有用的古老設備。本系列將依次研究具體的 Linux 設備,并向您詳細展示如何在過時的硬件上安裝設置 Linux。

當人們提及古老硬件上的 Linux 時,他們通常指的是已經使用了一兩年的硬件,那些材料仍然非常實用。所討論的硬件有良好的狀態,得到了合理的維護,而且具有相當好的規格 —— 或許它甚至是一臺古老的服務器。不過,對本系列而言,我們將著眼于配置稍低的機器。

第一號挑戰
進入舞臺左側,是一臺古老的網關箱(我絕對沒有對網關不敬的意思)。在 1997 年 10 月,我花了將近 3000 美元購買一臺當時頂級配置的膝上型電腦。它擁有 Pentium® 133 處理器,32 MB 高速 SDRAM,以及 800x600 TFT LCD 顯示器,還擁有 1.15 MB 的顯存 —— 對于在顯示 800x600 分辨率 16-位色來說剛好足夠。

我還記得這臺機器快得令人生畏,因為我原來使用的是 33 Mhz 的 68030 機器。

不過,那是八年前的事情了。幾年前,有一杯酒潑到了它上面。八十年代的低成本藝術電影迷們都會了解這種情況:它不會再恢復知覺了,所有它所需要的就是進行修理。不幸的是,CardBus 插槽永遠不能再恢復原狀,而且經常報錯。幾年前它又遭遇了一位 El-Al 的行李員,導致它的屏幕破碎,不能再使用。它惟一的優勢只是擁有額外的 64 MB 內存,那是在被酒澆到之前的那一年安裝上的。

依照當前的標準,這個機器就是個玩具。您可以從 Technologic 等公司購買嵌入式系統,這些系統有更好的基本規格以及內置 Ethernet 等另外的特性。婉轉地說,它甚至不再具備完整的功能。

所以,這里的挑戰是證明那臺機器仍然可以有一定用武之地。在本系列中,我將把它構建為一種實用的家用電器。

好,挑戰(就算是自愿承擔的挑戰)是需要規則的,而規則很簡單 —— 我為每個項目付出的開銷不超過 50 美元。由于要達到機器初始的價值得需要 60 個項目才夠,我將考慮使用“免費”硬件(至少使用了四年而且已經廢棄不用的硬件)。否則就得必須考慮開銷。對了,下載是免費的。

安裝硬件
顯然要考慮的是,機器所附帶的 2 GB 的磁盤可能有點小。幸運的是,我有一個閑置的 6 GB 的磁盤,它最初是 2000 年的 PowerBook G3 中的 —— 那是四年多前的了,所以它符合規則。安裝那個設備一點都不困難,盡管我第一次時做錯了;那個驅動器必須將跳線設置為從盤(對此做法我沒有任何概念)。解決了那個問題后,我就擁有了一臺磁盤為 6 GB 的機器,那個磁盤的最后一次格式化大約是在 2001 年左右,在 Mac 上進行的,因而顯然不能引導。

我有一臺 2001 年購買的 LCD 顯示器。它有點太新了,不應使用(根據規則),不過在安裝期間我可以“借用”它。在安裝的過程中顯示器是有用的,但系統建立并運行后我就計劃不再使用它了。機器有一個 BIOS 設置,用于決定使用外部顯示器、內部顯示器或者兩者皆用。令我感到好笑的是,外部顯示器的設置稱為“CRT”,就算是它并不是一個 CRT。

連接上顯示器和新的磁盤驅動器后,機器就可以引導了。在啟動時出現了一個問題 —— 驅動器的聲音很大,所以它可能會出故障。不過別忘了,它是免費的。而且它可能還可以運轉幾個月。

我們現在所需要的是一個操作系統。

下載 Linux
記住,免費的下載可以認為是不需要花費的。我原來計劃在此項目中使用我的 SUSE Linux 安裝光盤,不過我遇到了兩個問題。第一個問題是系統需要要有 128 MB 內存。第二個問題是我只有 DVD,而買一個新的光驅需要花費。

我決定采用廉價的方式:下載。進行了一些咨詢后,我得到的建議是使用一個名為 Slackware 的小的、輕量級的發行版本(distro)。

Slackware 的 Web presence 建議人們使用 16 MB 或者更少的內存。對我來說,這太好了。我下載了 BitTorrent(一款支持“協作發行(cooperative distribution)” 的工具,能為更熱門的下載減少帶寬開銷)并開始下載 Slackware 10.0 的發行版本 CD。第二天早上,我燒制了一些 CD。(實際上是其中的四張。我不久前獲得它們時,空白的 CD 是需要去花錢的,所以我說它們每張花費了 0.50 美元。)然后我發現,Slackware 10.1 剛剛發布?;?

我下載了 10.1 CD。一個重要的提示:當您完成下載時,不要馬上閉關 BitTorrent。協作網絡的要點就在于要為社區貢獻回一些東西。最起碼出于禮貌您也應該讓它繼續運行,直到上傳的數據數量至少與您下載的數量相當。

運行安裝
當新 Slackware 的第一張光盤開始可用時,我立即制造了一個副本,并開始安裝。這次我只燒制了兩張 CD,不包括源代碼 CD。改天再另外預算。

安裝器引導起來,在 /dev/hdb 找到一個磁盤驅動器。此時我發現我的驅動器是設置為從盤的。使用螺絲起子和小鉗子忙碌了幾分鐘后,我的工作開始步入正軌。

Slackware 安裝器是非常輕量級的。它不是一個圖形化的安裝器;它不使用幀緩存驅動器或者 X 或者其他任何東西。它在運行安裝器之前告訴您要對硬盤進行分區,然后給出一個登錄提示。

沒有關于選擇分區大小的太多提示;這有些不太方便。作為一個 BSD 老用戶,我喜歡將 root 文件系統和 /usr 分開。我還會為 /var 和 /home 建立單獨的分區,并劃分出一塊交換分區。我猜測的數字被證明是合理的;root 大約 128 MB(有足夠的額外空間用于測試內核),交換分區 256 MB, /var 最多 1 GB,/usr 2 GB,剩下的空間分配給 /home。

Slackware 將文件非常簡單地按頂級進行了劃分。我取消了所有基于 X 的部分,包括 GNOME 和 KDE,而安裝了所有其他部分。這臺機器不適于用作圖形工作站,所以那樣可以少占用很多空間。(方便的是,它還使得第二張安裝光盤變得幾乎無關緊要。我本來還能節約 0.50 美元!)

安裝過程中的意外
使用安裝器并不會完全不出問題。當我格式化完磁盤并開始進行安裝時,得到的信息是 LILO 沒有運行起來,我需要在重新引導之前去修復它。方便的是,當我處理掛載在 /mnt 的目標磁盤時,安裝器為我提供了一個 shell 命令提示符。瀏覽 /etc/lilo.conf 時發現了問題所在:

清單 1. 啊哈!罪魁禍首

            boot = (IN
            [...]
            root = (IN
            

我不知道這描述的是什么。我把它修改為看起來可能能生效的值:

清單 2. 好用的舊式參數值

            boot = /dev/hda
            [...]
            root = /dev/hda1
            

重新運行 LILO 沒有再出任何錯誤,所以我進行了重新引導。果真,機器完全正常地啟動起來。

那就是安裝出現問題的原因。(實際上,并非完全如此。我不得不重復分配掛載點的過程,因為第一次時我出現了打字錯誤,而我不能為此而抱怨 Slackware。)

瀏覽
既然系統已經安裝,我就可以驗證關于所得到的分區大小的猜測。

清單 3. 猜得不錯

            $ df -m
            Filesystem           1M-blocks      Used Available Use% Mounted on
            /dev/hda1                  130        55        69  45% /
            /dev/hda5                  950        31       871   4% /var
            /dev/hda6                 1900      1434       369  80% /usr
            /dev/hda7                 2326        37      2170   2% /home
            

還不算太壞。如果我想安裝很多另外的軟件,/usr 中的空間可能會不夠。當然沒有足夠的空間來安裝所有資源。令人高興的是, Web 頁的根(/var/www/htdocs)擁有足夠的空間,而且,如果我確實需要加載某些其他內容,我可以將一些文件移動到 /home 中并建立符號鏈接。

瀏覽 /usr 可以發現一些細節。在此,du -m 會有所幫助。不幸的是,除了單詞 HUMAN(表示使用易讀數字)以外,這個版本的 du 不能識別出 $BLOCKSIZE 中的其他值;另外,您可以將其設置為 1 M,然后令 dfdu 使用 1 MB 的塊。對 du 的輸出運行 sort -n,會得到 /usr 中以大小排序的頂級目錄列表:

清單 4. Ah,以大小排序的目錄

            86      ./lib/jre1.5.0_01
            92      ./src/linux-2.4.29/drivers
            112     ./bin
            146     ./doc
            173     ./share/texmf
            205     ./src
            205     ./src/linux-2.4.29
            384     ./lib
            428     ./share
            1402    .
            

簡言之,所安裝的最大的一些東西是 TeX 軟件和支持文件、內核源代碼以及 Java™ 運行時環境。在內存這樣少的機器上,Java 可能是沒有什么意義的,所以,如果我的空間不夠了,首選刪除它。內核源代碼可能會浪費了很多空間,并且 TeX 可能也是我能夠刪除的東西。所以,如果我需要幾百兆空間,我能夠得到。我高興地了解到,在擁有足夠空間的同時,所有我所希望的東西都已經安裝了。

現在做什么?
第一件事情是獲得一個以太網端口。不幸的是,我的具有以太網端口的老化的 USB 集線在連接時發生了莫名其妙的錯誤,所以我決定使用價格低廉的 Targus USB“dock”(一兩周前得到的)進行測試。它為我提供了 PS/2 鍵盤和鼠標端口(對我來說沒有用)、另一個串行端口、另一個并行端口、另外兩個 USB 端口。。。以及一個 10 Mbps 的以太網端口。

您可能會認為 10/100 會更好(那或許是這個小裝置的銷售價格從一兩年前的 70 美元降到 29.99 美元的原因),但是在 USB 1.1 機器上, 100 Mbps 支持沒有什么意義。

我的集線器自動檢測端口,不用我去管。我沒有用到的 2 Mbps 的 USB 帶寬以后可以用于運行那個小裝置。

自動檢測到了那個設備。很奇怪,dhclient 不能作用于那個接口。它說它找不到廣播接口。手工配置接口并手工編寫 resolv.conf 很好地解決了這個問題。我稍微有些驚訝:我所習慣的語法,即 route add default gateway,引發了一個非常莫名其妙的錯誤消息 SIOCADDRT: No such device。我迅速查閱了一下手冊,糾正了我的拼寫 —— route add default gw gateway。

完成后,機器現在可以正常地在網絡上工作。在局域網中它是可訪問的,并且可以使用我的寬帶連接訪問外面的世界。我也能夠 ssh 進來。

沒有能夠登錄進入的帳號,不太好。我的登錄名總是使用 seebs,于是我嘗試了想到的第一件事情;useradd seebs。那個命令生效了,但是我并沒有獲得主目錄。添加一個主目錄很簡單?,F在是時候進一步設置這臺機器了,拷貝一些我喜歡使用的程序、我常用的 .profile 等等。系統附帶了 gcc 版本 3.3.4,這是較新的,支持很多 C99 特性。

重新引導
當然,在引導后通過控制臺手工配置所有內容是有問題的。您不必每次都那樣去做。相關的配置部分(比如 IP 地址)位于 /etc 中,具體地說, /etc/HOSTNAME 用于主機名,/etc/rc.d/rc.inet1.conf 用于網絡地址。

在此,我決定分配一個固定的地址,而不是依賴 DHCP。畢竟,這臺機器最終將是一個本地的服務器,不應該讓它的地址總是在改變。您也可以運行 netconfig 來完成此任務,不過,運行 Slackware 的部分有趣之處在于,沒有很多文件會標記出 “warning: machine-generated file, do not edit”。

結束語
好,到目前為止,這臺機器還沒有做太多事情,不過,它是一個已經安裝的系統,可以通過 ssh 遠程訪問它,而且它是一個相當完整的 Linux 安裝。開支包括用于空白 CD 的 3 美元和用于 USB 網絡裝置的 31.94 美元。(稍后,我或許會愿意考慮額外的電源預算、端口以及第二個串行端口。)那是預算可以接受的。

“這臺老機器”的下一篇文章將是:建立一個家庭日歷程序,以使得我們可以利用這臺機器。雖然人們都使用若干兆的類庫來調度會議,不過我喜歡使用的是幾 KB 的 Perl 腳本,這個腳本可以告訴我什么時候輪到我洗碗。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97