UltraLinux Home
Bring your penguin into the Sun
Frequently Asked Questions Web Links Mailing Lists UltraLinux People
About Linux About UltraLinux Distributions News and Announcements About Linux
 
Version: 2.20
Last Update: November 23, 2000


Section 1: 一般


Section 2: ハードウェア

Section 3: ディストリビューション

Section 4: ビルド

Section 5: ブート

Section 6: 実行

 
Section 1: 一般



1.UltraLinux FAQについて。

このドキュメントの全てのコンテンツは1995-2000に Jim MinthaPieter Krulによってコピーライトされ、 全ての権利は保護されています。

Free Software Foundationによって公開されている GNU Free Documentation Licenseバージョン1.1または最新 バージョンの条件の下でこのドキュメントをコピー、配布 および/または 修正する ことを許可します。Invariant Sections、Front-Cover Texts、Back-Cover Textsは なくても構いません。
ライセンスのコピーが http://www.ultralinux.org/fdl.txt http://www.gnu.org/copyleft/fdl.txtにあります。

2.UltraLinuxの歴史/設計哲学は何ですか?

David MillerとMiguel de Icazaによって、プロジェクトの開始からSparcをサポート した最初のディストリビューションであるRed Hat Linux 4.0に至るまでの概要を記した 1997年のUselinuxカンファレンスのUltraLinuxに関する論文を見てください。

3.上がっている全ての名前(Ultra, SPARC, S/Linux)は何ですか?

簡単な歴史を。始め、その移植はSparcLinuxと呼ばれていました。残念なことに、 SPARC商標(SPARC International)のオーナーは、これが商標の正当でない使用で、 何らかの方法でSPARC Intlがスポンサーをしているまたは製品を支持していると顧客が 勘違いすると感じました。そこで、訴えられないために、ウェブサイト上で名前を S/Linuxに変更しました。David Miller、Jakub JelinekとEddie C. DostがUltraSPARC マシンのために64ビット移植の開発を始めたとき、彼らはUltraLinux という言葉を使いました。プロジェクトを全体としてUltraLinuxと呼ぶのは賢明でした。

4.なぜSPARCには32と64ビットの2つの移植があるのですか?

元々、移植は32ビットSPARCマシンに行われました。後に、カーネルは、Sunの新しい UltraSPARCチップの64ビットの機能をサポートするように開発されました。Linuxでは、 32ビットSPARCアーキテクチャは"sparc"として、そして、64ビットは "sparc64"として知られています。sparc64のアーキテクチャ依存部分は、 バージョン2.2.5でLinuxカーネルツリーに含まれました。

5.それはいつ終わるのですか?

終わるということは、もうこれ以上なにもすることがないということを意味します。 その意味では、永久に終りがありません。より多くの機能の追加、マシンのサポート、 そしてよりよいパフォーマンスの追求は常に存在するでしょう。 一方、ものは実際良く動いています。 利用できる多くのディストリビューションが存在します。

6.問題が発生しました。どうすればいいのですか?

問題を発見したときの一番いい方法は、 メーリングリストの1つにメッセージを送ることです。 全ての開発者はリストを呼んでいますし、誰かがあなたを助けれくれるかもしれません。 David(と他の開発者達)は、 忙しくて送られた全ての電子メールに返答することができません。
利用可能なメーリングリストについてのより多くの情報については、 http://www.ultralinux.org/lists.htmlをご覧下さい。

訳注:
日本国内のメーリングリストについての情報は、 http://www.nets.ce.hiroshima-cu.ac.jp/~masato/Linux/Ultra/ml.html をご覧下さい。

SPARC-HOWTO もまたSPARC上のLinuxについての情報を与えてくれるでしょう。

7.David MillerはUltraLinuxのために24時間働いているのですか?

Daveは現在Red Hatで働いています。

8.UltraLinuxで通常のLinux(Intel)のバイナリは動作しますか?

いいえ。根本的に異なったプロセッサであるという事実の中でも、 特にIntelマシンはリトルエンディアンで、 SPARCマシンはビッグエンディアンだからです。

訳注:
エンディアンは多バイト長の値をメモリに格納する方式で、 リトルエンディアンは下位アドレスに下位バイトを格納し、 ビッグエンディアンは下位アドレスに上位バイトを格納します。

9.UltraLinuxでSunOS/Solarisのバイナリは動作しますか?

はい、SunOSエミュレーションがあります。それにはSunOSの共有ライブラリが必要です (実行セクションの関連する質問を参照してください)。 NetBSD/OpenBSDがサポートしているのと同様にSolarisも動作します。 SolarisエミュレーションについてMiguelのコメント:

Solarisエミュレーションはまだ完成していませんが、 Solarisの小さなプログラムは動かすことができます (例えばSolaris Netscapeは動作しません)。それには ibcs2 パッケージを入手し、 コンパイルした後パッケージ内のスクリプトを使ってデバイスを作成し、 モジュールを組み込んでください。 Solarisの共有ライブラリと設定ファイルが必要かもしれません。 Solarisに関係するものは/usr/gnemul/solaris以下に置くことを確認してください。
sparc64用の新しいカーネル2.2.xでは、 solaris.oと呼ばれるカーネルモジュールを生成することができる、 Solaris Binary Emulation(CONFIG_SOLARIS_EMUL) を選択するためのオプションがあります。
詳細は実行セクションの質問を参照してください。

10.SunOS/Solarisエミュレーションはどれほどのものですか?

Miguelより:

うーん、この質問は答えるのが難しいです。SunOSバイナリ互換性を100%達成するのは、 UltraLinuxを他の移植と非互換性を作ることなしでは不可能だと言えます。 ほとんどのSunOSプログラムが動作するのでかなり良いSunOSエミュレーションです。


11.UltraLinuxは、どのようなファイルシステムが使えるのですか?

UltraLinuxの標準ファイルシステムは、ext2fsです。2.0.x以降のカーネルは、 (Sun標準の)UFSファイルシステムを読むことができます。カーネル2.2.xは、 UFSパーティションの読み書きができるので、 Solarisシステムとの情報の共有が簡単になります。

12.SunOS/SolarisとUltraLinuxでスワップパーティションを共有することができますか?

それは全く問題ありません。唯一の前提条件は、 インストールしたLinuxのスタートアップスクリプトのパーティション上で "mkswap /dev/sda1"を実行することです。 これはSunOSがスワップを単にローデバイスとして扱うからであって、 Linuxの様にマジック番号、その他を持たないからです。 よってもしmkswapしない場合、SunOSは全ての制御情報をばらまいて、 Linuxはスワップパーティションを使用できなくなるでしょう。 SunOSはそこに何が存在するか気にしません。

13.UltraLinuxはSunOS/Solarisよりも速いと聞きましたが、本当ですか?

速さは非常に相対的なものです。UltraLinuxは少ないメモリで起動するので、 メモリを多く積んでいないマシンでは速く動いているように見えるでしょう。 低レベルのカーネルファンクションでは、UltraLinuxは、 以下のベンチマークの結果で分かる通り、高速です。

                    L M B E N C H  1 . 0   S U M M A R Y
                    ------------------------------------

            Processor, Processes - times in microseconds
            --------------------------------------------
Host                 OS  Mhz    Null    Null  Simple /bin/sh Mmap 2-proc 8-proc
                             Syscall Process Process Process  lat  ctxsw  ctxsw
--------- ------------- ---- ------- ------- ------- ------- ---- ------ ------
trombetas  Linux 2.0.27   50      10    4.8K   59.3K    159K  182     58     77
shakedown   SunOS 5.5.1   49      34   36.0K  158.9K    290K  471    163    201
geneva.ru     SunOS 5.5   50      31   33.7K  148.2K    274K  596    174    205
negro.rut SunOS 4.1.3_U   49     124   18.3K   63.9K    110K  470    152    262

            *Local* Communication latencies in microseconds
            -----------------------------------------------
Host                 OS  Pipe       UDP    RPC/     TCP    RPC/
                                            UDP             TCP
--------- ------------- ------- ------- ------- ------- -------
trombetas  Linux 2.0.27     209     972    1608    1183    2160
shakedown   SunOS 5.5.1     556    1646    2125    1423    2518
geneva.ru     SunOS 5.5     530    1563    2080    1354    2398
negro.rut SunOS 4.1.3_U     890    1375    2287    1573    2804

            *Local* Communication bandwidths in megabytes/second
            ----------------------------------------------------
Host                 OS Pipe  TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                  reread reread (libc) (hand) read write
--------- ------------- ---- ---- ------ ------ ------ ------ ---- -----
trombetas  Linux 2.0.27    9  7.3   16.9   24.3     19     25   40    37
shakedown   SunOS 5.5.1    7  6.9   18.0   19.6     18     24   40    36
geneva.ru     SunOS 5.5    8  7.0   12.6   19.5     18     18   40    36
negro.rut SunOS 4.1.3_U    4  2.0   19.5    8.2     18     24   41    36

            Memory latencies in nanoseconds
            (WARNING - may not be correct, check graphs)
            --------------------------------------------
Host                 OS   Mhz  L1 $   L2 $    Main mem    TLB    Guesses
--------- -------------   ---  ----   ----    --------    ---    -------
trombetas  Linux 2.0.27    49    20    172         180     -1    No L2 cache?
shakedown   SunOS 5.5.1    49    20    175         182    600    No L2 cache?
geneva.ru     SunOS 5.5    49     -      -           -      -    Bad mhz?
negro.rut SunOS 4.1.3_U    49    20    175         183    659    No L2 cache?
lm@neteng.engr.sgi.com(Larry McVoy)はこう書いています:
OK. I think I can handle this. Tell your friend that I used to work at SunSoft, in the kernel group, I did posix, ufs clustering, the sun source mgmt system, started 100baseT, architected the cluster product line (from which came vlans which I invented), etc. I think my credentials are probably enough to impress a sys admin :-)
Linuxが商用Unixより速い主な理由:

  • システムコールの設計が良い。Linuxを除く全てのUnixシステムでは、 20年前にベル研究所で設計されたものを使っているが、 Linuxの設計はよりシンプルで(プロシージャコールのコストが)軽い。 速いとしても、常にLinuxが、 restartableシステムコールのような全ての機能をサポートすることができないことが、 不満な点である。しかしその要求は間違っていることが分かる。 Linuxはセキュリティを考慮した商用Unixと同じ機能をサポートする。 それは、より良く設計されている。そして商用Unixはそのアイデアを取り込み始めた。
  • Linuxカーネルは命令のカウントとキャッシュミスをハックして、それを除去する。 これは重要である。新機能がカーネルに追加されるとき、 人々はそれによって差が生まれなかったことを示すために全体的な測定を行う。 そして1,2回のキャッシュミスが現れないようにして、新機能は差を測定できなくなる。 しかし100回行うと、全ての機能同士が互いに痛み始める。 Linusや他のカーネルを改良している人達は、 キャッシュミスなどたいした問題ではないと冗談にはしないので、 LinuxはNTを含み世界の終りよりも遠い。 Linux開発の努力は、機能が、 (最適化する余地がなく)ハードウェアのスピードで動くことによって、 速くなることがなくなるまで続けられるとよく目にする。 "遅くならなければ良い"という商業的なアプローチと比較すれば、 何が手に負えないか分かり始める。 Linus, DavidそしてAlanの名声はスマートなコードを書くことによる。 大変すばらしいことである。
  • Linuxは新たに設計されたものである。多くのアイデアが新しく再考されている。 他のすべてのUNIX(Linuxと同等のスピードで動くQNXなどを除いて)は、 基本的に内部は同じものである。 新しい考えがよい結果を出すことはなにも驚くことではない (20年間なにかを学んだという思いも含めて)。

 
Section 2: ハードウェア



1.現時点でUltraLinuxはどのマシンで動作しますか?

32ビットUltraLinuxプロジェクトでサポートされているもの(sparc):

  • Sun4cアーキテクチャ(*):
    • SPARCstation SLC (4/20)
    • SPARCstation ELC (4/25)
    • SPARCstation IPC (4/40)
    • SPARCstation IPX (4/50)
    • SPARCstation/server 1 (4/60)
    • SPARCstation/server 1+ (4/65)
    • SPARCstation/server 2 (4/75)

  • Sun4mアーキテクチャ:
    • SPARCclassic
    • SPARCstation LC (4/15)
    • SPARCstation LX (4/30)
    • SPARCstation 4
    • SPARCstation/server 5 (70, 85, 110, and 170(**) Mhz)
    • SPARCstation/server 10 (with most MBUS processor cards)
    • SPARCstation/server 20 (with most MBUS processor cards)
    • JavaStation 1 (***)
    • JavaStation 10 (***)
    • JavaStation E (***)
    • JavaEngine 1 (***)
(*)いくつかのカーネルにはsun4cでメモリ管理に関する問題があります。 これは改善されています。
(**)(TurboSPARCとしても知られている)170MHz SPARC 5は、 新しいカーネルリリースのみサポートされています。開発が活発でなく、 このプロセッサ上のUltraLinuxはあまり安定していません。
(***)このセクションの関連した質問を参照してください。

  • 以下のMBUSモジュールを使用できることが知られています:

    • SuperSPARC Model 20, 30, 40, 402, 41, 412, 51, 512, 514, 52, 54, 61, 612, 71, 712, 81
    • All HyperSPARC modules
    • Cypress modules
64ビットUltraLinuxプロジェクトでサポートされているもの(sparc64):

  • Sun4d architecture
  • Sun4u architecture:
    • UltraSPARC PCI based board computers: SPARCengine CP1400, CP1500 (*)
    • UltraSPARC Sbus based workstations: Ultra1, Ultra2, Ultra1 Creator, Ultra2 Creator
    • UltraSPARC PCI based workstations: Ultra30, UltraAXi, UltraAXmp, Ultra5, Ultra10, Ultra60, Ultra80
    • UltraSPARC Sbus based servers: Enterprise 1, 2, 150
    • UltraSPARC Sbus based large servers: Enterprise 3000, 3500, 4000, 4500, 5000, 6000, 6500, 10000
    • UltraSPARC PCI based servers: Enterprise 250, 450
(*)これらのボードは修正することなく使用できることが知られています。

2.どんな周辺機器がサポートされているのですか?

現在サポートされている周辺機器は以下のようになっています:

  • SCSI:
    • Sun/PTI Qlogic SCSi cards
    • SCSI/ether Sbus expansion cards
    • SCSI CD-ROM drives
    • SCSI Tape drives

  • 3rd party SCSI(*):
    • NCR53c8xx
    • Adaptec SCSI
    • Qlogic/ISP

  • Ethernet cards:
    • Onboard SunLance
    • Sun QuadEthernet (**)
    • Sunswift Happy Meal SCSI/Ethernet
    • Myricom Gigabit Ethernet (Sbus)
    • Several Linux supported PCI based ethernet cards.

  • Framebuffers:
    • MG1/MG2 - bwtwo (monochrome)
    • CG3 - cgthree (8-bit)
    • GX, GX+, TGX and TGX+ - cgsix (8-bit)
    • SX - cgfourteen (support for 8-bit only)
    • TCX - SS4 and SS5 (resp. 8-bit and 24-bit, AFX bus)
    • LEO - ZX/TurboZX (24-bit)
    • FFB/FFB2 - Creator/Creator3D (24-bit)
    • PGX - ATI Rage Pro (8-bit)
    • PGX24 - ATI Mach64 (8 and 24-bit)
    • AFB - Elite3D (accelerated only ***, 24-bit)
    • OEM framebuffers:
      • cgRDI (cgthree, 8-bit)
      • Raptor GFX (8-bit and 24-bit)

  • Storage:
    • All tape drives and changers
    • StorEdge T3 (****)

  • Miscellaneous:
    • serial console
    • CS4231 based audio
    • Floppy drive(*****)
(*)これらのカードからの起動にはOBPファームウェアが要求されます。
(**)sun4cプラットフォームには、 ファームウェアの問題のためこれらのカードでは、問題があります。
(***)アクセラレーション機能を無効にするため "-noFFB"オプションをつけてXsun24 Xサーバーを使用してください。
(****)より多くのドライバ情報のために http://open-projects.linuxcare.com/t3を参照してください。
(*****)フロッピーからのブートは、 特定のsparc64ベースのマシン上で動かないかもしれません。

3.まだUltraLinuxが動作しないマシンは何ですか?

以下のマシンが、時間がない、テストするマシン環境がない、 または単に新しすぎるために、まだサポートされていません。 特にSparcbook 3が、近い将来サポートされると期待されています:

  • Solbourne clones
  • Tadpole SPARCbooks
古いSPARCbooks(1,2)はかなりハードウェアが異なるので、サポートは難しそうです。 3以降は標準的なので大丈夫そうです。 Tadpole Sparcbook 3は、現在vger CVSツリーでXが動作するまでサポートされています。 すぐにカーネル2.3に取り込まれるでしょう。 TadPole SPARCbook 3GX上でLinuxを動作させる方法は、 Hugo van der Kooijによる SparcBook F.A.Q.に記述されています。

4.将来的にもUltraLinuxが動作しないSunマシンは何ですか?

(Sun 3/50, Sun 3/60のような)Sun 3(あるいはさらに本当に古いSun 2とSun1)マシンは、 SPARCプロセッサとは対称的なモトローラの680x0プロセッサをベースにしています。 Sun3シリーズのワークステーションのための実験的なサポートが、 最新のLinux/m68kカーネルにあります。

Sun 3/50, 3/60と3/160マシンの移植があり、 The Linux/sun3 homepages で見つけることができます。
m68k上のLinuxのSun 3/80のための新しいパッチを ftp://sammy.net/pub/m68k/sun3、 そして Linux/sun3x port informationで見つけることができるが、 このページは作者によるとかなり時代遅れだそうです。
本文に"subscribe"と書いて、Eメールを sun3-list-request@redhat.com に送ることによって参加することができる、 Linux/Sun3のためのメーリングリストがあります。
Intel 80386をベースにしていて、SPARCチップをベースにしていないSun i386は、 UltraLinuxでもLinux/Intelでも動作しません。

もしこれらのマシンでSunOS以外を動かすことに興味があるのなら、 これらのうちいくつかをサポートしているNetBSDプロジェクトをご覧ください。

5.(4/330のような)Sun4マシンはどうなのですか

MMU、イーサーネットチップ、ディスクコントローラ、 そしてグラフィックカードのようなSun4マシンとSun4cdmuマシンの差は、 本当に僅かなものです。より最近のカーネルでは、 sun4(4/300シリーズのみ)のためのサポートは制限されています。

Sun4移植版に興味のある人々のためにメーリングリストが設置されました。 このリストはもう存在していないようですが、Red Hatは近い将来、 メーリングリストのアーカイブを公開する意向を示しています。


6.どこで古いSunハードウェアの多くの情報を見つけることができますか?

Gregory Leblanc、James Birdsallそして他の人々が、 昔のと新しい全てのSunハードウェアを記述するための、 Sunハードウェアリファレンスを復活させるプロジェクトを始めました。 新しいSunハードウェアリファレンスプロジェクトは、 http://sun-ref.sunhelp.org. で見つけることができます。

1995年までのSunハードウェアについて記述した、 James BirdsallによるオリジナルのSunハードウェアリファレンスもまた http://sun-ref.sunhelp.org から入手できます。

http://www.obsolyte.comにも、 古いSunハードウェアについての実用的な情報があります。

7.どこでSunの資料についての多くの情報を見つけることができますか?

http://www.sunhelp.orgに、 FAQのリストを含むSunに関係する事柄のためのリソースの広範囲なリストが、 多くあります。

8.全てのWeitek POWER uPチップを使用することができますか?

少なくともリビジョンコード9518以降のチップは、 完全に動作することが知られていますが、それ以前のリビジョンでは動作しません。 もしチップの上部を見れるなら、コードは右下の角で見つけることができます。 リビジョン番号が9518なら、最下行は、例えば"Weitek 9518-T"と読めます。 Tad Bilbyのおかげで、このチップのクローズアップした写真が Auxio hardware archiveで見つけることができます。

9.(Ultra)SPARCマシン上でPCのISA/PCIカードを使用することができますか?

これはシステムに依存します。もしシステムがSbusベースならその答えはノーです。 ISAカードについては同じです。しかし、 Linuxの範囲内でドライバがサポートされているならば、PCIベースのシステム上で、 そのカードを動作させることができます。動作することが知られているのは、 PCI SCSIカード、PCIテレビカード、PCIビデオカード、PCI (Fast)EtherNetカードです。

10.どのようにすればJavaStation/Engine動作させることができますか?

Sun JavaStation/Engineでブートするためにいくつかのオプションをつけて、 SPARCマシン上でコンパイルされたできるだけ最新の32ビットLinuxカーネルを、 必要とします。Sun JavaStation/Engine上のLinuxについてのウェブページが、 http://studsys.mscs.mu.edu/~dubinski/Linux_on_JS/にあり、公式なミラーが、 http://www.linuxdoc.org/HOWTO/JavaStation-HOWTO/index.htmlにあります。

11.どのようにすれば古いSPARCstationをLinuxのX端末にすることができますか?

http://www2.gol.com/users/gaijin/Linuxから入手可能な、 SPARCのためのSLXTパッケージを試すことができます。 このパッケージは、遅いがまだ開発されています。

LinuxのX端末としてSun3/50を使う方法の記述とリファレンスを、 http://www.sfn.saskatoon.sk.ca/~aa113/sunxterm.html で見つけることができます。

12.SPARCstationでISDNの機能を使用することができますか?

残念なことにできません。 SPARCstation 10, 20, LXとVoyagerのようないくつかのSPARCstationモデルは、 たびたび、 オーディオ部分をオンボードあるいはSunスピーカーボックスと組み合わされる、 SbusベースのDBRIチップ(Dual Basic Rate ISDN)を使用します。 オーディオ部はLinuxで動きますが、ISDN部は完成していません。 他のSbusベースのISDNカードについてもドライバがないことが知られています。 おそらく、行える最良の方法は、 シリアルポートに外付ISDNターミナルアダプタを接続することでしょう。

13.SPARCでオーディオはサポートされていますか?

はい。最新のカーネルにはオーディオのための(実験的な)サポートがあります。 サポートされたオーディオデバイスの完全なリストを見るには、 Linux/SPARC audio subsystem informationを訪れてください。

14.オーディオで内部スピーカかラインアウトを選ぶことができますか?

そのためにaudioctlというプログラムを使用することができます。 audioctlは、SPARCシステム上の様々なオーディオシステムドライバの変数を、 表示または設定するためのユーティリティで、音量、 サンプリングレートと出力デバイスのようなオーディオパラメータを、 表示または変更するために使用することができます。 多くのディストリビューションに含まれていますが、 Linux用のオリジナルのソースコードは、 ftp://ftp.dementia.org/pub/linux/sparc/audioからダウンロードできます。


 
Section 3: ディストリビューション



1.UltraLinuxを利用可能なディストリビューションは何ですか?

現在、以下のディストリビューションが知られています:

訳注:
国内では、Vine Linuxがあります。

UltraLinuxに取り組んでいることが知られている他のディストリビューションとして、 TurboLinuxSlackware Linuxがあります。

訳注:
Slackwareは既にリリースされています。

訳注:
国内では、Kondara MNU/Linuxが開発中です。

これらのディストリビューションのための、 利用できるメーリングリストの情報については、 http://www.ultralinux.org/lists.htmlをご覧下さい。

訳注:
日本語の情報は、 http://www.nets.ce.hiroshima-cu.ac.jp/~masato/Linux/Ultra/ml.html をご覧下さい。

2. Red Hat Linux

Red Hat, Inc.は、1996年以来、 SPARC版のディストリビューションをリリースしています。そして、 SPARC版を最初にサポートした会社です。 Red Hat Linux for SPARCの最新バージョンは、6.2 (Zoot)です。

Red HatはSPARC向けにこれまで以下のバージョンをリリースしています:

  • Red Hat 3.0.4 (beta for 4.0) (Rembrandt)
  • Red Hat 4.0 (Colgate)
  • Red Hat 4.1 (Vanderbilt)
  • Red Hat 4.2 (Biltmore)
  • Red Hat 5.1 (Manhattan)
  • Red Hat 5.2 (Apollo)
  • Red Hat 6.1 (Cartman)
  • Red Hat 6.2 (Zoot)
見れば分かるように、x.0のSPARC向けのバージョンをリリースしないということが、 一種の"伝統"になっています。

Red Hat SPARCディストリビューションを購入するための情報については、 https://www.redhat.com/apps/commerce/を訪れてください。

ftp://ftp.redhat.com/pub/redhat/redhat-6.2/sparc/とISO CDイメージとして ftp://ftp.redhat.com/pub/redhat/redhat-6.2/iso/redhat-6.2-sparc.iso からanonymous FTP経由でバージョン6.2をダウンロードすることもできます。
ミラーサイトのリストは、 http://www.redhat.com/mirrors.htmlで見つけることができます。

Red Hat Linuxディストリビューションの様々な間違いと修正は、 http://www.redhat.com/support/errataにリストされています。

3. Debian GNU/Linux

Debian GNU/Linuxはフリーで、アプリケーションの組合わせを完備した、 高品質なUnix互換オペレーティングシステムを作るために、 ボランティアの努力によって作成されています。

Debianは、始め、Free Software FoundationのGNUプロジェクトの後援で、 1993年にIan Murdockによって作成されました。今日、 Debianの開発者達は、GNUプロジェクトに直接属していると考えています。 現在Debian SPARC版は、バージョン2.1(slink)に含まれています。

Red Hatの場合と異なり、DebainはCDを用意していませんが、その代わりに Cheap*BytesLinuxMallまたは InfoMagicのようなCDベンダーによって、 ISOイメージが配布されています。
ベンダーのリストについては、 http://www.debian.org/distrib/vendorsを訪れてください。

Debian GNU/Linuxの最新バージョンが何であるかは、 http://www.debian.org/releases で分かります。全てのDebainのバージョンには、 不安定なものは別として安定バージョンには、 Red Hatのようなコードネームがあります。 全てのDebianコードネームについては、 http://www.debian.org/doc/FAQ/ch-ftparchives.htmlで見つけることができます。

Debian GNU/LinuxのISO CDイメージは、 http://cdimage.debian.org からダウンロードすることができます。

ftp.debian.orgからanonymous FTP経由で Debianをダウンロードすることもできます。

SPARC版Debianについてのより多くの情報とドキュメントについては、 Debian SPARC Portまたは Debian SPARC 64 Port をご覧下さい。

Debian SPARC Errata には、Debian SPARCで良く知られた問題のリストがあり、 sparc64のものも含まれています。

Debianセキュリティアップデートは、 http://security.debian.orgで見つけることができます。

4. Linux-Mandrake

Linux-MandrakeはLinuxディストリビューションで、フランスのパリにある MandrakeSoft S.A.によって、 作成、販売されています。

anonymous FTP経由で、SPARCとUltraSPARCの向けの Linux-Mandrake Corporate Server のブート可能なISOイメージをダウンロードすることができます。 FTPサーバーのリストは、 http://www.linux-mandrake.com/en/ftp.php3#corpoで見つけることができます。

5. Caldera OpenLinux

Caldera, IncはBryan Sparksによって1994年に設立された会社です。 1998年の終りに、Caldera Systems, Incは、 OpenLinuxディストリビューションを作成しました。 Linux/SPARCのためのディストリビューションは、 現在OpenLinux 2.2がリリースされています。

SPARCとUltraSPARC向けのCaldera Openlinuxのホームページは、 http://www.openlinux.org/sparc/ で見つけることができ、 ftp://ftp.openlinux.org/pub/sparclinux/からブート可能なISOイメージとしての Caldera OpenLinuxをダウンロードすることができます。

SPARCとUltraSPARCのためのOpenLinuxはAlpha状態であると思われ、 ISOイメージが1999年8月以降更新されていない点に注意して下さい。

6. SuSE Linux

SuSE Linux AGは1992年に設立された会社で、 SuSE Linux 7.0からディストリビューションのSPARCバージョンをリリースしました。

SPARC向けのSuSE Linux 7.0のUSバージョンに含まれている4つのISOイメージは、 ftp://ftp.suse.com/pub/suse/sparcからanonymous FTP経由で、 ダウンロードすることができます。
ドイツ語バージョンについては、 ftp://ftp.gwdg.de/pub/linux/suse/sparcから入手することができます。 (訳注:かなり意訳)

7. UltraPenguin

これは、32ビットRed Hat Linuxディストリビューションをベースにした、 sparc64マシンへの最初の移植です。David MillerとJakub Jelinekは、 1999年4月27日にアナウンス しましたが、彼らは全体的なメンテナンスをやめてしまいました。 この理由の一つは、Red Hat 5ディストリビューションとUltraPenguin 1.1.9 との差の大部分がRed Hat 6.0にマージされたので、 その作業が重複することになったからです。

例えば rpmfind.netのようないくつかのミラーには、 まだ入手可能なUltraPenguinディストリビューションのコピーがあります。
UltraSPARCマシン上のLinuxについてより多くを学びたいなら、 メーリングリストがあります。 メッセージを Majordomo@vger.samba.orgに送ってください。
本文には何も書かず、subjectに: subscribe ultralinux your_email@your.domain とだけ書いて下さい。

 
Section 4: ビルド



1.カーネルをビルドするのに使用できるオペレーティングシステムは何ですか?

Linuxを除いて、唯一保証された環境は、SunOS 4.1.x(x>3)です。 同じツールと、最後にカーネルをコンバートするのにPete Zaitcev (zaitcev@ithil.mcst.ru)のelf2aoutプログラムを使えば、 Solarisでもできると思います。

2.SunOSでUltraLinuxカーネルをコンパイルするために必要なツールはなんですか?

カーネルをコンパイルするために以下のツールが必要です。 SunOS版よりも先にパスが通っていることを確認してください。

  • GNU binutils
  • GCC 2.6.3 (新しいバージョンでも大丈夫ですが、2.6.3が確実です)
  • GNU bash (/binに置くと楽です)
  • GNU make
Sun Solaris 2.3以上のためのこれらのツールを、 http://www.ibiblio.org/pub/solaris/sparcで見つけることができます。

新しいカーネルには、GCCバージョン2.7.xまたは EGCS1.0.3以上を必要とする点に注意してください。

3.sparc64上で新しいカーネルをコンパイルするために必要なツールはなんですか?

UltraSPARCをベースにしたマシン(sparc64)のための64ビットカーネルを作成する ためには、適切なコンパイラとライブラリを必要とします。この場合、 sparc64のための実験的なGNUコンパイラシステムであるegcs64になります。 あなたがなんらかのディストリビューションを使用してない場合、 これを行う最良の方法は、 ディストリビューションからこのパッケージを取り出すことです。

4.ルートディレクトリには何を置く必要がありますか?

(間単にですが...)

カーネルをおいたディレクトリで、以下のディレクトリを作成する必要があります: etc/ lib/ bin/ tmp/ dev/ sbin/ proc/ usr/ var/
dev/には全てのデバイスを作成する必要があります。 MAKEDEVスクリプトがこれを行ってくれるでしょう (Linuxマシン上で実行したいというのは、 鶏と卵の問題を発生させるようであるけれども)。

それから、次のUltraLinuxアーカイブをチェックしてください: ftp://ftp.auxio.org/pub/vger/Sparc 興味を引いたものはなんでも手に入ります。 これらを、(usr/ sbin/ と etc/ディレクトリを置くべき) ルートまたは置き先ディレクトリに展開してください。

5.最新のカーネルソースを入手してコンパイルすることができますか?

現在の(sparcとsparc64の)UltraLinuxカーネルバージョン2.2.5は、 完全にサポートされています。もし以前のバージョンのカーネルが必要なら、 ftp://ftp.auxio.org/pub/vger/Sparc/kernel/v2.0 からプリコンパイルされたいくつかのバージョンを入手することができます。

6.どこでもっとも最近のカーネルを見つけることができますか?

最も最近のカーネルを入手するためにCVSを使うことができます。 詳細は、http://vger.samba.org を参照してください。
CVSはほとんどのディストリビューションで見つけることができますが、 CVSを入手する必要があるなら、 http://www.sourcegear.com/CVSを見てください。
SPARC開発ツリーがLinusツリーに同期されるようになって以来、 もうひとつの方法は、http://www.kernel.org あるいはミラーの1つからダウンロードすることです。 そこで、開発バージョンを含む、 linuxカーネルの全てのバージョンを見つけることができます。

7.カーネルの設定を行うとき、選択するべきオプションは何ですか?

デフォルトの設定は、 既に全てのsparcとsparc64のマシンで最大限の互換性を提供するように、 設定されています。 デフォルトのオプションは、arch/sparc[64]/defconfig に格納されています。

8.UltraLinuxのカーネルをコンパイルするにはどのようにするのですか?

/usr/src/linux/READMEに中で指示されているように) 通常の方法でカーネルをコンパイルすればいいのですが、最後に、 make zImageまたはmake zliloの代わりに、 次のようにしなければいけません。

   # make vmlinux
   # make modules
   # make modules_install


9.なぜプログラム"make"存在しないsparc64-linux-gccについて文句を言うのですか?

UltraSPARCベースのマシンのための64ビットカーネルを作成するために、 適切なコンパイラとライブラリを必要とします。この場合、 sparc64のための実験的なGNUコンパイラシステムであるegcs64になります。 あなたがなんらかのディストリビューションを使用してない場合、 これを行う最良の方法は、 ディストリビューションからこのパッケージを取り出すことです。

10.新しいカーネルをコンパイルした後何をしなければならないのですか?

カーネル、モジュール、そしてモジュールのインストールの後の、 少しの簡単なステップ:

  1. linux/System.mapをブートファイルディレクトリ(例えば/boot)にコピーして、 このファイルをSystem.map-<kernel-version>リネームする。
  2. linux/vmlinuxをブートファイルディレクトリにコピーして、 このファイルをvmlinux-<kernel-version>にリネームする。
  3. /etc/silo.confを編集して、新しいカーネルをこのファイルに加える。
  4. マシンをリブートする。
もちろんこれを行う様々な方法がありますが、この方法が私にとってはベストです。 このFAQのブートセクションのSILOについての質問も参照してください。

11.カーネルを圧縮する必要がありますか?

SPARCではサイズの制限はないので、(gzipでbzip2で)圧縮する必要はありません。 圧縮すると、起動時間を犠牲にしてわずかな容量を節約することになります。 遅いSPARCマシンでは、本当に、圧縮イメージ(zImage, bzImage)にしないでください。

12.さっきから言ってるrpmって何ですか?

RPMはRed Hat GNU/Linuxの人々によってオリジナルを作成されている、 ソフトウェアパッケージツールです。ソフトウェアパッケージをビルド、 そしてインストールすることができます。 http://www.rpm.orgあるいは、 http://www.rpmdp.orgにある RPM Documentation Projectを参照してください。

(RPMファイルがそれ自身であるRPMの最新バージョンを展開することができる) スタティックリンクされたRPMバイナリを入手する必要があるなら、 ftp://ftp.rpm.org/pub/rpm/dist で見つけることができます。

13.どのようにしてinitを設定するのですか?

一番いいのは、例えば、 http://www.ibiblio.org/pub/Linux/system/daemons/init からSysViniを入手することです。

shutdownhaltのようなコマンドは、 ftp://ftp.kernel.org/pub/linux/utils/util-linuxで見つけることができます。 それらは、かつてSysVinitパッケージの一部でした。

14.ネットワークを使うには何が必要ですか?

これは私が最初にrootでUltraLinuxマシンにログインしたときに実行するものです:
注意:
137.82.51.3はdodoという名前のUltraLinuxマシンのIPアドレス
137.82.51.254はインターネットゲートウェイ

o ループバックインターフェースを追加する:

   # ifconfig lo 127.0.0.1
o それにルートを追加する
   # route add -net 127.0.0.0
o イーサネットインターフェースとアドレスを追加する:
   # ifconfig eth0 137.82.51.3 broadcast 137.82.51.255 netmask 255.255.255.0
o それにルートを追加する
   # route add -net 137.82.51.0 netmask 255.255.255.0
o 世界への外側のルートを追加する
   # route add default gw 137.82.51.254 metric 1
o マシンに名前をつける
   # hostname dodo


15.どのようにしてYP(NIS)を動作させるのですか?

もし最新のディストリビューションを使っているのなら、 NISのサポートはlibcライブラリにコンパイルされています。動作させるには:

  • domainnameでNISドメインを設定する:
    # domainname physics.ucla
  • /etc/yp.confを編集する:
    ypserver NIS.SERVER.IP.ADDRESS
    ypserver 137.81.56.22
  • /etc/nsswitch.conf をサービスが正しくNISをクエリーできるよう編集する (つまりpasswd, hosts, groups) 例:
    passwd:     files nis
    group: files nis

注意:パスワードを変更したときや新しい状況に変わったときは、 常にpasswdの代わりにyppasswdを使ってください。あなたのパスワードは、 NISのpasswdに付け加えられます。

16.X11r6を使用するには何が必要ですか?(訳注:X11R6の間違いだと思う)?

以下のものが必要です:

o /usr/local以下にマウントされたX11r6'ツリー'。私はSunOSのツリーを使って、 次のようにマウントしています:

   
   # mount -t nfs 137.82.51.1:/share/sunos/local /usr/local
o X11が必要とするデバイスを作成する。
   
   # mknod /dev/kbd c 11 0
   # mknod /dev/sunmouse c 10 6
   # mknod /dev/fb0 c 29 0
o /dev/sunmouseから/dev/mouseへのシンボリックリンクを張る。
o グラフィックカードからリンクを張る(適切なものが一つあればいいですが、 すべて持っていても害はありません)。
	
   # ln -s /dev/fb0 /dev/cgsix0
   # ln -s /dev/fb0 /dev/bwtwo0
   # ln -s /dev/fb0 /dev/cgthree0
o Xサーバを起動する(-acはアクセスコントロールを切ります)
   $ Xsun -ac

 
Section 5: Booting



1. What is a boot prompt, and how can I get to it ?

Sun *SPARC based machines have a OpenBoot PROM which takes control of the computer when you turn it on. This is sort of similar to the BIOS in a PC computer, except that the Sun boot PROMs have a built in Forth interpreter which lets you do quite a number of things with the computer without/before booting an operating system, such as listening to the network, looking at the scsi bus, testing memory, setting the default boot device and setting other parameters.

In order to get to the OpenBoot PROM command line (we'll call it the boot prompt (ok) from here), you need to hold down the Stop key (or L1 key on older type 4 keyboards) and simultaneously press the A key. This will bring you to the prompt (usually ok but see the next question). If there is an operating system running on the system, will this be suspended if you use this key combination. To resume where you were type go .

Normally you would hold Stop-A while the machine is checking it's memory before boot time, or by typing halt from the SILO boot prompt if SILO is already installed.
If you want to see or change a number of settings, you can also use the program eeprom from a running system. It is included with Solaris, but Jakub Jelinek has also made a Linux version of it, included in his prtconf package. This package can be obtained from the Red Hat distribution source, or alternatively from ftp://ftp.auxio.org/pub/linux/SOURCES.

2. Why can't I see "ok" at the boot prompt ?

Older Sun machines default to the > prompt. You can change this to the new command mode by typing the letter n, which will give the ok prompt. If you want to make this permanent type:

   ok setenv sunmon-compat? false


3. How can I see all the PROM parameters ?

From the ok prompt, type printenv, or use eeprom from a shell.

4. What other commands are available at the boot prompt ?

The OpenBoot Command reference at docs.sun.com provides detailed information. Here's a small list of handy commands:

   help           Display command line help
   banner         Display power-on banner
   module-info    Display CPU speed (OpenBoot 2.x)
   .speed         Display CPU and bus speeds (OpenBoot 3.x)
   .version       Display version of the Boot PROM
   .enet-addr     Display ethernet address
   watch-net      Monitor network connection
   test-net       Test the onboard network interface
   devalias       Display all current device aliases
   probe-scsi     Identify the devices attached to the onboard SCSI bus
   probe-scsi-all Identify the devices attached to all SCSI busses
   show-disks     Display device paths of installed SCSI disks
   show-displays  Display device paths of installed display devices
   show-sbus      Display a list of probed SBus devices
Examples for commands such as boot and setenv can be found throughout this FAQ.

5. How can I boot directly from the floppy/CD-ROM/Tape Drive ?

At the boot prompt (ok) you can type the command boot, followed by the device that you want to boot from. Examples:

   ok boot floppy    Boot from the floppy disk
   ok boot fd(0,0,0) Boot from the floppy disk
   ok boot cdrom     Boot from the CD-ROM
   ok boot sd(0,6,2) Boot from the CD-ROM
   ok boot tape      Boot from the tape device
   ok boot sd(0,4,0) Boot from the tape device
   ok boot disk      Boot from the hard drive
   ok boot disk2     Boot from the hard drive with SCSI ID: 2
   ok boot sd(0,2,0) Boot from the hard drive with SCSI ID: 2
   ok boot sd(0,1,3) Boot from the 4th partition of SCSI ID: 1
Some older proms do not understand some of the "short" device aliases (i.e. cdrom), and you will need to use the longer explicit form.

6. How can I eject my floppy disk or CD ?

Besides running the command eject floppy, or eject cdrom from a shell, you can also run this from the boot prompt (ok).

7. How can I set it to automatically boot from a different device ?

At the boot prompt (ok) you can type:

   ok setenv boot-from disk2     to boot from SCSI ID: 2 by default
   ok setenv boot-from sd(0,2,0) to boot from SCSI ID: 2 by default
   ok setenv boot-from disk3:a   to boot from SCSI ID: 3 partition 0 or a


8. How can I unset a PROM parameter ?

Use set-default followed by the variable name:

At the boot prompt (ok) you can type for example:

	
   ok set-default boot-file
With the command printenv you can also see what all the default settings are for what parameter.

9. How can I install UltraLinux software from the network ?

The basic idea is this:

  • Add an entry for the new machine to the ARP/RARP cache.
  • Set up a TFTP server where the bootimage can be transferred from.
  • Set up a file server where you can install the software from (NFS, FTP etc).
  • Boot the machine and install the software.
Most distributions allow the client to boot via either an NFS mounted root, or a network-loaded ramdisk where the root filesystem is being loaded in memory. Be sure that server and client are allowed access to the services that are needed when your system is using tcp-wrappers. See also the manual page for hosts_access(5).

10. How do I set up RARP so I can boot my Sun via the network ?

This will depend on what type of machine you want to set up as a RARP server. First of all you will need to obtain the hardware ethernet address, which you can find on your screen when your start the machine. An example:

   SPARCSTATION 5, No Keyboard
   ROM Rev. 2.15 Pilot, 64 MB memory installed, Serial #1234567.
   Ethernet address 8:0:20:1f:cd:8e, Host ID: 12345a9b.
So we now know that 8:0:20:1f:cd:8e is our hardware ethernet address. Under Solaris, you will need to make sure that the hardware ethernet address for the UltraLinux machine is in the ethers database (either /etc/ethers or via NIS/NIS+), and that it is listed in the hosts database. If so, simply start the RARP daemon:
   # /usr/sbin/in.rarpd -a
If you want to use a machine running Linux you will need to populate the kernel's RARP table. You might need to use the `arp` command in addition to the `rarp` command. Linux used to use a single rarp/arp cache in which case you used the `arp` command, but now it uses separate commands so just a `rarp` should be sufficient.
   # /sbin/rarp -s  phoenix   08:00:20:1f:cd:8e
   # /sbin/arp -s 137.82.51.3 08:00:20:1f:cd:8e
You might also need to use the hardware address with or without the padded 0's. For example if the hardware address is: 8:0:20:1a:15:9e you might also want to try 08:00:20:1a:15:9e Also ensure yourself that the machine is listed in the /etc/hosts file.

11. ARP/RARP do not seem to be working on my boot server?

If you have no support for RARP in your Linux kernel, you will either have to compile it in, or build it as a loadable kernel module which is called rarp.o. If you use a Linux distribution on your server, you can try

   # modprobe rarp
The RARP kernel-module is included with most distributions by default.

12. My ethernet address is shown as "ff:ff:ff:ff.." and my machine can't boot from the network.

You probably have a hardware problem and will need to replace the NVRAM.
For more information visit Mark Henderson's SUN NVRAM/hostid FAQ.

13. I have a dead/corrupted/password protected NVRAM chip.

Please see the previous question.

14. How do I set up a tftp server to boot from ?

Under SunOS/Solaris you need to uncomment the line in your /etc/inetd.conf file that refers to tftpboot. It should look like

tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
If necessary, restart the inetd process. You can change /tftpboot to a directory where you want to put the UltraLinux bootimage.

Under Linux, tftp does not need the "-s" options. The line in /etc/inetd.conf should look something like this:

tftp   dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd
After this, you will probably have to create a directory /tftpboot on your server, where you can place the boot image and a required symbolic link. (See the next question)

15. What boot image will the client ask from the network ?

When the client tries to boot from the network, it will ask for a file with a special name that the boot image should have. The file name is determined by the IP address of the client, and by it's architecture on systems other than sun4u.

This is normally done by placing the appropriate boot image in the directory /tftpboot on the server, and then create a symbolic link with the special file name that points to the boot image.

To find the name for the link you will have to convert the four numbers between the dots of the decimal IP-address into hexadecimal. You should then put the hexadecimal figures together.

Besides calculating the numbers by hand or using a battery feeded calculator, you have several ways of converting the IP address: addr, which is included in the Bind (the name server) package, the program bc, the converter from the package ghex, and of course from the OpenBoot PROM of your machine.
An example of converting the IP address 172.28.230.104:

   172 = AC
    28 = 1C
   230 = E6
   104 = 68
With the addr utility:
   $ addr -p 172.28.230.104
   Input: "172.28.230.104"
   Network: [af2 len4] ac 1c e6 68
   Presentation: "172.28.230.104"
From the OpenBoot PROM:
   ok d# 172 .
   ac
   ok d# 28 .
   1c
   ok d# 230 .
   e6
   ok d# 104 .
   68
When put together, this will result into AC1CE668, the name of the symbolic link. If the architecture of the client is not sun4u (UltraSPARC), you will have to add the systems' architecture name to the symbolic link, where our example would become AC1CE668.SUN4M for a SPARCstation 5 (sun4m).

Finally, you will have to decide what file to point the symbolic link to. Most distributions support two ways of booting from the network:

  • Booting a kernel with an NFS-mounted root filesystem.
  • Booting from a network-loaded ramdisk (mostly called tftpboot.img).
Bootimages can be found in respectively images for Red Hat and Mandrake, and dists/<release>/main/disks-sparc/sun4xx for Debian.

Distribution sun4cdm sun4dm-pci sun4u
Red Hat images/tftp32.img images/tftp32.img images/tftp64.img
Mandrake images/tftprd32.img images/tftprd32.img images/tftprd64.img
Debian sun4cdm/tftpboot.img sun4dm-pci/tftpboot.img sun4u/tftpboot.img

Copy the appropriate bootfile for the clients' architecture to /tftpboot on the server, and create the symbolic link. For the example client above, the following would be needed on the server for a Red Hat system:

   # cp /mnt/cdrom/images/tftp32.img /tftpboot
   # cd /tftpboot
   # ln -s tftpboot.img AC1CE668.SUN4M
You will also need to ensure that the directory with the Linux installation software or filesystem tree is being exported via NFS and that your UltraLinux machine will be able to mount it.

16. Is there an easy way to set up the network boot image structure ?

Yes, you can use the tftptool utility, written in Python, that comes with the Red Hat distribution. It will ask you for information about your client, and then installs the appropriate image and creates a symbolic link with the special name for your client. The tftptool is located in the /utils directory of the Red Hat distribution as of version 6.1. You can also download this tool via one of the many Red Hat mirrors.

17. Running a tftp boot server doesn't seem to work ?

First go to /tmp on your TFTP server, and try to get the bootimage via localhost:

   $ tftp localhost
   tftp> get AC1CE668.SUN4M
   Received 1905590 bytes in 8.3 seconds
If this works, you might want to check for obvious reasons why it does not work, such as a firewall, wrong or bad cabling etc..

Older tftp daemons for Linux only accepted requests for absolute filenames (i.e. it had to start with a '/') which isn't what the Sun requests. If the method above does not work, please upgrade your tftp server software to a more recent version.

18. By using what commands can I boot UltraLinux from the network ?

From the boot prompt (ok), type the following for an NFS mounted root:

   ok boot net linux nfsroot=nfs.server.ip.address:/exported/path
and the following for the network-loaded ramdisk:
   ok boot net
Where nfs.server.ip.address is the IP address of the machine that is providing the RARP and tftpboot services, and exporting the directory /exported/path (or whatever you called it). When no arguments for the exported path are given, the Linux kernel will expect the NFS root path to be /tftpboot/<client.ip.address>/.

19. My Sun doesn't seem to understand the 'boot net' command.

Older Sun's default to the 'old command mode' when you are in the boot prom. If you get the prompt > instead of ok then type n to get the new prompt.

20. Booting over the network responds: "receive failed: The file just loaded does not appear to be executable".

Upon booting, Sun machines look for a file with the name which is the hexadecimal representation of their IP address, followed by the machine architecture if . So if your IP address is 137.82.51.4 then it will try to load the file called 89523304.SUN4M (see the question above for information on what file the client asks for on the network.) If you are unsure what it is trying to load try looking at wat is happening on the network. Please see "Booting over the network still doesn't work".

21. Booting over the network responds: "is not executable", or: "not in correct format!".

Nowadays, if you have compiled the kernel sources under Solaris or Linux, the newly built kernel will be in the ELF (Executable and Linking Format) binary format. The PROM however will only boot the image served from the network if the image is in a.out (Assembler Output) binary format, which is the original executable format for UNIX.

To convert the format from ELF into a.out you can use the program elftoaout. Besides with several distributions, you can find the elftoaout utility at ftp://ultra.linux.cz/OS/Linux/Sparc/local/elftoaout or ftp://ftp.auxio.org/pub/vger/Sparc/tools If you are unsure of what type of file you have, use the command file on the kernel image.

Be certain that if the kernel is compressed (vmlinuz name) you uncompress it first before using the elftoaout program. It might be necessary to add a .gz suffix to the filename. Again, be sure what type of file you have by using the file command.

Another thing to try: (this is untested, and may not even be relevant any more!)

If you build an UltraLinux kernel on a SunOS system then you will find that a SLC will refuse to net-boot it directly. It will say "not executable" or something like that.

Just change the 4th byte of the file to a control-g (ascii 7) to fix it. You can use emacs and ^Q^G to insert the control-g

22. Booting over the network still doesn't work...

The easiest way to debug network problems is to look at what is happening on the network. There is a program snoop that will display traffic on the network. Something like: (as root)

   # snoop dragon
where dragon is your UltraLinux machine. If you have a machine running Solaris this command is part of the operating system.
There is also a program called tcpdump that could prove useful. It is available via ftp.ee.lbl.gov, and is also included in many distributions.

23. How can I connect a machine for an installation via a serial cable ?

Essentially, if there is no keyboard plugged in when the Sun has booted, it will use the serial interface (port A), By default it is set to 9600bps 8,n,1 You can force the serial console from the boot (ok) prompt:

   ok setenv input-device ttya
   ok setenv output-device ttya
On the other (PC?) side running any terminal emulator will work (kermit, minicom, seyon)

24. When using a serial console, the installation stops after booting from the network ?

Try the argument "serial":

   ok boot net linux serial nfsroot=nfs.server.ip.address:/exported/path
for an NFS-mounted root filesystem, or:
   ok boot net serial
if you are booting from a network-loaded ramdisk (eg. tftpboot.img).

25. Why does the system respond "Inconsistent console" when using a serial console ?

You might want to check the NULL-modem cable from the console to the machine.

26. Why can't my sparc64 boot from floppy ?

Due to a bug in the firmware of some Ultra based machines, booting from the floppy drive does not work yet. In this case, you should boot from either the CD-rom drive, of from the network.

27. Why can't my Ultra5/10 boot when I have more than 512 MB of memory installed ?

Linux does not support more than 512 MB of memory in the 2.2.x kernels on Ultra5 and 10 machines. If you have more than 512 MB of physical memory installed, you really should use a 2.4.x kernel (or remove memory boards).

28. Why does the system respond "Wrong label" when I reboot it after installation ?

The system needs a Sun disklabel to find it's partition information. This information is stored in the first block of the drive. If your bootdrive doesn't contain such a disklabel, you will have to create it using fdisk. Within fdisk, you have the command s, which can be used to build a new Sun disklabel for your drive.

29. Why does the system respond "Could not find /vmlinux.." when I reboot it after installation ?

Older machines can only boot properly when the boot image and configuration file are located within the first GB, and sometimes within the first 2 GB of it's boot disk. It is generally a good idea to create a separate /boot partition under the 1GB border where the boot images and configurationfiles can be placed. /etc/silo.conf should also be located under the this border, so either create the root directory under the 1 GB border, or put silo.conf in the /boot directory, and create a symbolic link from /boot/silo.conf to /etc/silo.conf. This does not apply to sparc64, since they can read far beyond this limit.

30. Fdisk dies with a segfault during partitioning.

You need to zero the first 5k of the disk (e.g. with dd), if the disk doesn't contain a Sun disklabel. fdisk could not recover from random bits in the disklabel area, but if there were a load of zeros it would get it and create a label. Newer versions of fdisk will complain about the lack of a Sun disklabel, and will create a disklabel for you.

31. Why does the system respond "Bad Magic Number in Disk Label" after replacing a (boot) HDD ?

You will have to run fdisk under Linux or format under SunOS first. This will write out a magic number as part of the partition table.
Use one of the methods to boot as described above to be able to run fdisk or format.

32. The PROM refuses to recognize my disk.

Possible solution (given in the Sun hardware reference) is to disable "synchronous negotiation initiation" from the disk (by closing a jumper). Apparently the PROM gets confused if the disk initiates the negotiation.

33. The kernel is panicking, or refuses to boot.

Make sure that you have don't have IPX packets enabled in the kernel configuration.

Disable 802/IPX protocols from your kernel, if you have those enabled. This would mean taking away the loadable kernel module from /lib/modules or building a new kernel if they are compiled in.

34. Why does the system respond "the file just loaded doesn't appear to be executable" after installing SILO ?

The SPARC machines do not really have the concept of a Master Boot Record like on a PC. You can boot from any sector of the disk with a SPARC. When you install SILO on /dev/sda (block 0), you must request the PROM to boot from a partition that starts at 0. The default installation FAQs advises users to create /dev/sda1 starting from block 1. Therefore the partition on boot line must be the partition that spans the whole disk (i.e. from block 0) and not /dev/sda1. If your "whole disk" partition is /dev/sda3 you can boot with "boot /sbus/esp/sd@3,0:c" (assuming target 3 for sda) on v2 PROMs. I believe it would be "boot sd(0,0,2)" on v0 proms.

35. Do I need to run silo every time I change my silo.conf ?

No. SILO understands ext2 filesystems and can therefore read the file silo.conf itself during startup to find out where the kernel you want to boot is. This is different than LILO which does not know how to read filesystems and must hardcode physical disk offsets into the map loader. That is why LILO must always be reinstalled when lilo.conf changes.

36. SILO doesn't time out before booting the kernel.

When you need to press enter, or enter a kernel-label each time to get the machine to boot, you can try the following at the boot prompt (ok):

   ok setenv boot-file linux
   ok setenv auto-boot? true
This will set the default bootimage to be "linux".

37. I've changed silo.conf, rebooted, and the system now responds: "boot: ..wrong syntax..".

These are messages from SILO to say that you've done something wrong in silo.conf. SILO mostly tells you what to do in such a case.
If you're not succeeding, you can still boot from disk with the following command at the boot prompt (ok):

   ok boot disk /boot/kernel_name
or one of the other boot-methods described above.

38. I'm still having lots of problems with SILO.

Best advice is to get the latest version of SILO and try that.
You can get it via anonymous FTP from ftp://ultra.linux.cz/OS/Linux/Sparc/local/silo.

39. Why does my machine only boot properly when I hard-boot it ?

Older PROMS do not reset the machine on soft boots. You can also type reset at the boot prompt (ok) instead of turning off the machine.

You might also want to do the following command at the boot (ok) prompt:

   ok setenv sunmon-compat? false
This will cause old proms to come up in the new command mode, and will allow the kernel to call the "reset" command properly for automatic reboots.


 
Section 6: Running



1. Is there an emergency boot disk anywhere ?

Karel van Houten (K.H.C.vanHouten@psi.research.kpn.com) has created a root/boot floppy disk set for sparc32 a while ago, which can be used as a rescue system when your real root disk is unbootable, a tryout system to see how UltraLinux works on your hardware, or (with lots of manual operation) to install a basic system on your hard disk.

Features:

  • Disk repair tools
  • FS restore tools, including rpm
  • Networking commands to restore lost files over the network
  • Uses multiple VT's
  • Automatically detects serial consoles

It is available at: ftp://ftp.auxio.org/pub/vger/Sparc/rescue

Booting a rescue image for sparc64 can only be done from a local cdrom, or from the network. See "Why can't I boot from floppy on my sparc64" in the section above.

2. Why can't I compile certain software on my sparc64 ?

Certain code in your software believes that you are working on a 64-bit system, and will attempt to build 64-bit userland binaries. Upon linking it turns out that you have a 32-bit userland, and it fails. SSH for one is known to do this. To 'fool' the software, you can use sparc32 to create a sparc32 environment:

   $ uname -m
   sparc64
   
   $ sparc32 /bin/bash
   $ uname -m
   sparc
The sparc32 program can be obtained by installing the sparc32 RPM from the Red Hat distribution. Alternatively you can download the source code at ftp://ftp.auxio.org/pub/linux/SOURCES.

3. How can I create a bootable CD ?

There are a few ways to create a bootable CD for SPARC.

The old way was to use mkisofs together with SILO (Sparc Improved Boot Loader). That is, if the version of SILO was lower than 0.8.7. This worked by making an ISO image with the help of mkisofs, and then mount that ISO file via a loopback device. After that, SILO was run on the ISO filesystem in order to make the image bootable.

SILO 0.8.7 and up do not longer support creating bootable CDs, and instead you only need to use a patched version of mkisofs.
Matt Housh wrote a tutorial on How To Create a Bootable Red Hat Linux 6.1 CD For a SPARC. There is also a CDROM.HOWTO included with the SILO package which explains in detail how to create bootable CDs for SPARC. SILO can be obtained via ftp://ultra.linux.cz/OS/Linux/Sparc/local/silo.

4. How do I find out kernel state information ?

The following key combinations are active while UltraLinux is running:

Control-ScrollLock - A listing of the current processes.
RightShift-ScrollLock - Memory Management information.
RightAltGraph-ScrollLock - SPARC Register Dump.


5. How do I set up SunOS/Solaris emulation ?

If the SunOS binary needs any shared libraries or other files they need to placed under the following directories:

/usr/gnemul/sunos/
/usr/gnemul/solaris/

NOTE: Do not just mount your SunOS or Solaris root directory at the above directories. The system will then find the wrong /dev directory and you will have problems. UltraLinux uses different major/minor numbers than SunOS and Solaris.

For emulation purposes the system will consider these the root directory. So it will look for SunOS shared libraries in /usr/gnemul/sunos/usr/lib, and Solaris /etc files will go in /usr/gnemul/solaris/etc

Do not ever put a Solaris or SunOS shared lib or configuration files in /etc or /usr/lib, use the places we have provided for it.

For SunOS/Solaris emulation you will need (at a minimum):

  • /usr/gnemul/<sunos or solaris>/
    • etc/ld.so.cache
    • usr/lib/ld.so
    • usr/lib/libdl.so.*
    • usr/lib/libc*so*
    • any other libraries the binary dynamically links with (use the "ldd" command to check)
For Solaris emulation on non-sparc64, you will also need the iBCS package.

On sparc64 machines you can select CONFIG_SOLARIS_EMUL when configuring the kernel, which by default produces a loadable module called solaris.o. You will still need to set the directory structure up as described above, because the module expects this. The IBCS package is not needed when you use this kernel module.

6. Why do I get: "crt0: no /dev/zero" when running a SunOS program ?

See the question above about setting up SunOS emulation. You do not want to mount the SunOS root directory in /usr/gnenul/sunos. If you'll do this, the system will find the SunOS /dev directory which will not work.

7. Running a SunOS executable gives: "ld.so not found"

If the SunOS binary is dynamically linked then you will need the SunOS shared libraries. Copy from SunOS /usr/lib/ld.so, /usr/lib/lib*.so.* and /etc/ld.so.cache onto your UltraLinux /usr/gnemul/sunos/usr/lib and /usr/gnemul/sunos/etc directories.

8. How can I mount my Sun UFS partition read/write ?

This is possible as of the 2.2.x series of Linux kernels. First of all you will need CONFIG_UFS_FS and CONFIG_UFS_FS_WRITE enabled in your Linux kernel. CONFIG_UFS_FS can also be compiled as a loadable kernel module. If you want to mount an UFS partition, your will need to specify the ufstype, in our case sun:

   # mount -t ufs -o ufstype=sun /dev/sdn8 /mnt
This will mount the under SunOS created partition with the "usr" label of your nth disk to /mnt.
Please read Documentation/filesystems/ufs.txt for further reference.

9. Is it possible to run Netscape ?

Yes, the SunOS version of Netscape will run if you set up the correct SunOS emulation files (see the question above). You will probably also need the SunOS version that supports DNS.
As of Netscape 4, there is a native Linux/SPARC version available. These versions are not available anymore via Netscape's ftp sites, but can be obtained as *.rpm files from Red Hat, or via Debian's source packages.

10. The serial ports don't seem to work well.

Most Sun machines (with the exception of the newer Ultra machines) do not have a very good serial controller chip. The maximum DTE rate is 38400 bps. On older machines (SPARC 1 or less) this is even difficult to maintain.

There is a hack to get the serial ports to do 76.8kb/s but this is a very non-standard rate.

There should be no problems with the UltraSPARC models, as the internal serial controller is capable of speeds well over 460kb/s.

11. Setserial reports "unknown UART", or "Cannot get serial info: Invalid argument".

There is no reason to use setserial on SPARC machines. If you want to set the baudbase, just use the setup from your terminal, set jumpers, or set it in your software (minicom/pppd/chat..).

12. Why do init and getty keep complaining when there is no keyboard or monitor connected ?

This can happen if you wanted to run your machine "headless" for instance, and removed the keyboard after the initial installation of the software. If this occurs your will have to edit /etc/inittab, and disable the getty's for the console (tty1, tty2, etc.) This can be done by removing the lines, placing a comment (#), or changing respawn into off. Please don't forget to read the next question.

13. Why don't I get a login screen when a serial terminal is attached ?

In order to get a login screen, getty should be told that there is a terminal attached to the serial port. What getty does is first open tty lines, print a login prompt and get the username, and finally initiate a login process for the user. Because the tty line is serial, change the line in /etc/inittab that reads

   1:2345:respawn:/sbin/mingetty tty1
   to eg.:
   1:2345:respawn:/sbin/getty ttyS0 9600 vt100
Add that line when there is no entry yet for tty1. Please note that the cua device is obsolete, and should only be used with Linux 2.0.x

14. Why can't I login as "root" on my headless machine ?

You will have to add the name of the devicefile of the serial port that you use to login as "root" to /etc/securetty. This can be cuan for systems that run Linux 2.0.x, and ttySn for Linux 2.2.x and above, where n is the portnumber.

15. How can I send the "Stop-A" key combination from a serial terminal ?

The Stop-A combination is nothing more than sending a break signal over the serial line. In the Keyboard Set-up menu of your terminal, or terminal emulator, you can send a break which will halt your machine.

16. After booting the Red Hat release, the "Stop-A" key combination doesn't work.

This is a configurable option since the Red Hat 6.1 release. You can enable or disable the Stop-A key combination by setting MAGIC_SYSRQ to yes or no in /etc/sysconfig/init, or by setting kernel.stop-a = 1 in /etc/sysctl.conf. Details about it can be found in /usr/doc/initscripts*/sysconfig.txt. For production machines, you way want to leave the Stop-A combination disabled.

From the SILO prompt at boot time, you can enter "halt", which will give you the boot ok prompt.

17. The parallel port doesn't work and I get an "Operation not supported by device".

Go into drivers/sbus/char/bpp.c in your kernel source tree, find the bpp_regs structure, and change all of the field declarations to include __volatile__ at the beginning. Recompile the kernel, install it and reboot.

18. After booting the Red Hat version, networking doesn't work.

You probably have pcmcia support enabled. Try:

   # rm -f /etc/sysconfig/pcmcia
Then reboot or run:
   # /etc/rc.d/init.d/network stop
   # /etc/rc.d/init.d/network start
This problem has been fixed in later versions of Red Hat Linux.

19. Why won't my older program run under newer distributions ?

Red Hat 5.x and 6.0 and later Debian distributions are libc6 (a.k.a. GNU Libc 2 or glibc2) based. This is a new version of the standard C library which is incompatible with the libc5 that for instance Red Hat 4.2 was based on. You will need to recompile your program, or get an updated package.

20. Why do all the network interfaces have the same hardware ethernet address ?

This is a Sun feature. By default, all additional network interfaces take the ethernet address of the embedded network interface. This behaviour can be changed by typing the following at the boot prompt (ok):

   ok setenv local-mac-address?=true
You can also try to use /sbin/ifconfig for changing the address.

21. Why doesn't HTTPD start correctly on my machine ?

To solve the httpd not starting problem, you need to edit /etc/hosts and remove everything after "localhost" on that line. It has probably put your full hostname there, and that's wrong. Just remove that part ,and *leave* the line after it. Then you can start httpd.

22. How can I use multiple video cards ?

This works almost the same as under Solaris. From the command line you can use the following:

   $ startx -- -dev /dev/fb0 -dev /dev/fb1
This should work for Xsun and Xsun24.

23. Why does the X server report: "Fatal server error: ..." ?

Make sure you have write access to /dev/kbd, /dev/fb and /dev/sunmouse.

There should be a symbolic link from /dev/sunmouse to /dev/mouse for most distributions, and make sure that in /etc/X11/XF86Config, in the Pointer section, the Device is set to /dev/mouse.

Also make sure that /usr/bin/X11/X is linked to the proper suid root binary (Xwrapper, Xsun, Xsun24 or Xsunmono). If you are using Xwrapper, then Xsun etc. should not be suid root.

24. Why does the X server report "Permission denied" upon restarting X ?

Type the following from your home-directory:

   $ rm -rf .Xauth* .xauth .ICE*
Then log out and back in, and try to start it again.

25. Why do I see snow when the TCX framebuffer is being accessed ?

Try commenting out the following in drivers/video/tcxfb.c

   #if 0
       if (prom_getbool (fb->prom_node, "hw-cursor")) {
       fb->setcursor = tcx_setcursor;
       fb->setcursormap = tcx_setcursormap;
       fb->setcurshape = tcx_setcurshape;
       }
   #endif
After this change you should rebuild the kernel, install it, and reboot.

26. xscreensaver and xlock give a white background instead of black.

This is known to possibly be caused by the Window Manager you use.

For xscreensaver, open the file /usr/X11R6/lib/X11/app-defaults/XScreenSaver in an editor, search for the line that reads

   *installColormap:    True
and set it the last part to False. Also try adding the following line
   *visualID:           PseudoColor

For xlock, open the file /usr/X11R6/lib/X11/app-defaults/XLock in an editor, search for the line that reads

   XLock.install:       on
and set the last part to off. If the line does not exist in the file, you should add it.

27. X doesn't work anymore after upgrading from kernel 2.0.x to 2.2.x

You are probably use a machine with a BWtwo framebuffer. The BWtwo driver has been broken in version 2.0.37 and early 2.2.x versions of the Linux kernel. There seem to be two remedies:

  • Boot the older kernel that worked.
  • Use Derrick J. Brashear's solution:
    Edit linux/drivers/video/bwtwofb.c, find the line which reads
    fb->physbase = phys;
    and make it read:
    fb->physbase = __get_phys(fb->sbdp->sbus_vaddrs[0]);
    Rebuild and install the new kernel, and reboot.


28. How can I stop the system starting X every time after booting ?

Starting X directly after the system has booted can be a problem on slower SPARC machines without enough memory. By editing the file /etc/inittab, this behaviour can be stopped.
Boot Linux into single-user-mode by entering linux s or linux single at the SILO prompt. Change the line in /etc/inittab that reads

   id:5:initdefault:
into
   id:3:initdefault:
See the manual page for inittab(5) for more details of this file.

29. X runs very slow on my older machine, what can I do ?

Older machines such as the SPARCstation IPX or SPARCstation 1+ can have some trouble with the large size of window managers like GNOME and KDE. If you really want or need a window manager, you can try to install a lightweight window manager. A few examples are BlackBox, WindowMaker and the OpenLook Window Manager (olwm, olvwm), also known as OpenWindows, which can be found in the Debian distribution. You can also try to start Enlightenment from your ~/.xinitrc file.

30. I have heard that I can change the OEM logo on my machine.

The OEM logo is, when enabled, the picture you can see in the upper left corner on the white screen when you have just turned on your machine and it's checking memory, before loading a kernel. When disabled, you can see a Sun logo, and hardware information. Under Linux, you can change this into a logo of your choice by following Bert de Bruijn's Openprom oem-logo creation instructions.

Originally written by Jim Mintha (jim@ic.uva.nl). Maintained by Pieter Krul (pkrul@auxio.net)