echo Impossible|sed 's/Im/To be /'

March 25, 2003

IBM 240 linux 安裝筆記

IBM 240 是一部很不錯的小機器 B5 size 1.32kg 10.4 TFT (800x600) CPU Celeron 300 最大到 196MB RAM 電池續航能力是他最大的遺憾, 特有的 IBM 小紅點, 以及 IBM 引以為傲的鍵盤。 使用上極為舒適。 作為一個打字機,我給他很大的評價,我在這上面使用 kde 3.1 opera browser 看 VCD , 使用 kde 的行事曆.... 還算順當。

以下設定環境以 Gentoo Linux 為範本, 依照我對 Debian Linux 的了解 應該是大同小異。

Gentoo GNU/Linux 1.4_rc2

$> lspci
0:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP
disabled) (rev 03)
00:07.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)

00:09.0 VGA compatible controller: Neomagic Corporation NM2160 [MagicGraph
128XD] (rev 01)
00:0a.0 CardBus bridge: Texas Instruments PCI1211
00:0b.0 Multimedia audio controller: ESS Technology ES1969 Solo-1 Audiodrive
(rev 02)
00:0c.0 Communication controller: Lucent Microelectronics WinModem 56k (rev
01)

音效卡使用
esssolo1 23648 0
很標準的音效晶片, 使用設定一點也不麻煩.

在鍵盤上 IBM 240 鍵盤設計上為了尺寸上的因素將 [Caps Lock] 移到右手邊的 [shift]上,而將 [TAB] 移到 [Caps Lock] 位置上, [~`] 移到 [TAB] 如下圖

http://truffula.net/~forrest/tp240.shtml

這對於我這個十分依賴 [TAB]鍵的人造成相當大的困擾,畢竟位置的改變讓我在不同 的鍵盤上造成手指上的錯亂。幾乎快要影響到正常的工作。 動了念頭想將 [~`] 改成 [TAB] , 而將 [TAB] 改成 [~`],畢竟我是十分依賴 [TAB] 鍵的。

console 下
$> gzip -d /usr/share/keymaps/i386/qwerty/us.map.gz
$> edit /usr/share/keymaps/i386/qwerty/us.map.gz
keycode  41 = Tab
keycode  15 = grave            asciitilde
        control keycode  15 = nul
$> gzip /usr/share/keymaps/i386/qwerty/us.map

XFree86 下
$> edit /usr/X11R6/lib/X11/xkb/symbols/us
    key  {        [       Tab,    ISO_Left_Tab    ]       };
    key   {        [ quoteleft,    asciitilde      ]       };

如此我的 [TAB] 與 [~`] 就對調了, 而 [TAB] 在 240 鍵盤的配置的位置就與一般 常用鍵盤位置相同了。

PCMCIA 採用
00:0a.0 CardBus bridge: Texas Instruments PCI1211
晶片, 我為了這晶片吃了些苦頭

之前的使用習慣都是

1. linux kernel 2.4.18 + pcmcia-cs 3.2.1 使用 pcmcia-cs 的 cardmgr , pcmcia modules 及 driver kernel 不啟用 pcmcia , 因為我覺得 pcmcia-cs 的 driver 寫的比較多 比較好。

後來因為一張廉價的 rtl8139 cardbus pcmcia 卡, 由於 pcmcia-cs 並沒有這張 卡的 driver , 所以迫使我使用

2. [linux kernel 2.4.18 (kernel pcmcia module)] + [pcmcia-cs (pcmcia-cs driver + cardmgr)] 這時進入混用 driver 的時期。

後來為了 IBM 240 又再度採購了一張廉價的 RealTek RTL8139CL cardbus pcmcia 卡 corega FEther II CB-TXD
http://www.corega.co.jp/product/list/lanadp/fe2cbtxd.htm
硬體規格如上
由於這張卡 pcmcia-cs 並沒有 driver 可以啟動。(也許是我沒有找到,如果有人 能成功使用 pcmcia-cs 啟用的同好,還望告知) 而這次使用方法 2 也無法正確啟動 這張 pcmcia 卡 依照先前的使用 pcmcia-cs 的觀念於習慣,直覺上修改的是 /etc/pcmcia/config 將 pci 的 vendor ID 加上,理應可以正常工作, 但事與願違,無論如何努力就是.....無效

找了以下的資訊..修改如下
http://www.corega.co.jp/product/os/redhatj72.txt

kernel 2.4.20

*** 8139too.c.org       Fri Mar 21 12:51:31 2003
--- 8139too.c   Fri Mar 21 12:58:23 2003
*************** static struct {
*** 237,242 ****
--- 237,244 ----
  /*    { MPX5030, "Accton MPX5030 (RealTek RTL8139)", RTL8139_CAPS },*/
        { "Delta Electronics 8139 10/100BaseTX", RTL8139_CAPS },
        { "Addtron Technolgy 8139 10/100BaseTX", RTL8139_CAPS },
+       /* add by lloyd */
+          { "corega FEtherII CB-TXD", RTL8139_CAPS },
        { "D-Link DFE-538TX (RealTek RTL8139)", RTL8139_CAPS },
        { "D-Link DFE-690TXD (RealTek RTL8139)", RTL8139_CAPS },
        { "AboCom FE2000VX (RealTek RTL8139)", RTL8139_CAPS },
*************** static struct pci_device_id rtl8139_pci_
*** 255,260 ****
--- 257,264 ----
        {0x1500, 0x1360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DELTA8139 },
        {0x4033, 0x1360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ADDTRON8139 },
        {0x1186, 0x1300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DFE538TX },
+       /* lloyd */
+       {0x1259, 0xa11e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RTL8139_CB },
        {0x1186, 0x1340, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DFE690TXD },
        {0x13d1, 0xab06, PCI_ANY_ID, PCI_ANY_ID, 0, 0, FE2000VX },
        {0x1259, 0xa117, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ALLIED8139 },

明眼人應該可以看得出目前 linux kernel drvier 已經將 PCI vendor ID 寫入程式碼內了,而且並不採用 cardmgr 掛上 driver, 而將 pcmcia 視為 hot-pluggable devices


Suppor for hot-pluggable devices
PCMCIA/CardBus support --->
PCI Hotplug Support --->

driver 掛載方式採用的是 pci.agent 而不再透過 cardmgr

$> pwd
/etc/hotplug
$> ls
blacklist          pci        usb.agent    usb.usermap
hotplug.functions  pci.agent  usb.distmap
ieee1394.agent     pci.rc     usb.handmap
net.agent          usb        usb.rc
pciutils 內的 lspci 及 pcimodules 參考的資訊是 /usr/share/misc/pci.ids

1259  Allied Telesyn International
        2560  AT-2560 Fast Ethernet Adapter (i82557B)
        a11e  Corega Fether II CB-TXD
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ add by lloyd
$> lspci
...
01:00.0 Ethernet controller: Allied Telesyn International Corega Fether II
CB-TXD (rev 10)

在設計上與使用便利上我比較頃向 pcmcia-cs 的 cardmgr 以外掛 config 硬體與 driver 對照表的方式, 方便而且簡潔, 將 PCI vendor ID 寫在程式碼內, 實在叫人 無法恭維。 當然優劣比較是見仁見智不妨在此討論討論。

IBM 240 PCMCIA 採用
00:0a.0 CardBus bridge: Texas Instruments PCI1211
晶片, 我為了這晶片吃了些苦頭
同樣的作法同樣的網卡在 IBM 570 上 OK 但是 240 就是錯誤, log 如下

Mar 21 14:22:58 localhost cardmgr[890]: socket 0: CardBus hotplug device
Mar 21 14:22:58 localhost /etc/hotplug/pci.agent: pcimodules is scanning
more than  ...
Mar 21 14:22:58 localhost /etc/hotplug/pci.agent: Setup esssolo1 for PCI
slot 00:00.0
Mar 21 14:23:28 localhost kernel: cs: cb_free(bus 0)
Mar 21 14:23:28 localhost /etc/hotplug/pci.agent: PCI remove event not
supported
Mar 21 14:23:41 localhost kernel: cs: cb_alloc(bus 0): vendor 0x8086, device
0x7192
Mar 21 14:23:41 localhost kernel: PCI: Failed to allocate resource
0(14000000-10bfffff) for 00:0
0.0

查了 google 大學長,
同樣的問題
http://www.uwsg.iu.edu/hypermail/linux/kernel/0203.0/0321.html
解法
http://www.uwsg.iu.edu/hypermail/linux/kernel/0203.0/0464.html

[for lilo]
$> edit /etc/lilo.conf
append="pci=assign-busses"

[for grub]
$> edit /boot/grub/grub.conf
kernel /boot/bzImage ro root=/dev/hda3 pci=assign-busses

[後記]
用這樣的東西還真是一件很舒服的事情,在 google 查詢上也不用加上很特殊的關鍵字 以前往往都必須針對晶片作為查詢的關鍵字,現在用的卻只要 linux IBM 240 就可以 解決問題了。難怪不少日本人都針對 vaio 這樣的機器寫 linux 的文件。對於一般的 使用者還真是一件好事。

ps:
00:09.0 VGA compatible controller: Neomagic Corporation NM2160 [MagicGraph
128XD] (rev 01)

這塊晶片在 XFree86 4.2.x 下支援 xv 模式, 小小的機器看 vcd 滿好的
$> xvinfo
X-Video Extension version 2.2
screen #0
  Adaptor #0: "NeoMagic Video Engine"
  number of ports: 1
  port base: 55
  operations supported: PutVideo PutImage
  .......                                                                               
--
    ◢◣
□□□ ██ □□□□
□  ◢█□     造形.空間.秩序.
□  ███◣      主從.對比.韻律

--
* Origin: 中山大學-美麗之島BBS * From: 211.20.240.115 [已通過認證]