Alphaの話題(その2)

  • PC164LX/PC164SXの電源ユニット(2024.4.20)
  • リアルタイムクロック(2024.4.20)
  • MILO(2024.4.20)
  • Gentoo LinuxインストールCD作成(2024.4.20)
  • PC164UX Gentoo Linux備忘録(2024.4.20)
  • Alpha XL 266 Gentoo Linux備忘録(2024.5.12)

  • PC164LX/PC164SXの電源ユニット(2024.4.20)

    私が見たことがあるPC164LX/PC164SXを搭載したシステムは、電源スイッチ付きのATX電源ユニットを搭載しています。

    しかし、通常のATX電源ユニットを使用することも可能です。この場合、Soft power connectorにATX電源スイッチを接続します。

    なお、PC164(無印)には、Soft power connectorがないため、電源スイッチ付きのATX電源ユニットが必要です。ちなみに、電源コネクターの14番ピンもNCになっています。

    リアルタイムクロック(2024.4.20)

    Alphaの古い機種には、リアルタイムクロックICを搭載したものがあります。DEC/Compaq/HP/HPEでは、「Dallas Chip」と呼んでいるようです。

    このICは、NVRAM同様、電池を内蔵しているため、内蔵している電池が切れると、機器に問題が発生することがあります。内蔵電池が切れた場合、代替の後継製品が販売されているので、これを入手して交換することが可能です。また、こちらもNVRAM同様、電池を外付けする改造をして対応することも可能です。

    私の確認した機種では、IC交換前は電源は入るが起動しないという機器が、IC交換後は起動するようになりました。

    なお、一部機種では、ICが基板に直接はんだづけされており、交換が簡単にはできません。私ははんだづけ業者に依頼して、ICソケット化(既存ICの取り外しとICソケットの取り付け)を実施してもらい、自前で用意したICを取り付けました。

    私が確認した機種は下記の通りです。

    機種 チップ型番 チップ取付基板 ICソケット有無 交換後のチップ型番
    DEC3000 model 700 DS1287(実機。ドキュメント上はDS1287A) I/Oボード あり DS12887+
    Alpha XL 266 DS12887A システムボード あり DS12887A外付け電池化改造品
    PC164UX DS12887 本体(システムボード) なし DS12887A外付け電池化改造品

    DEC3000 model 600/700の注意点として、ICが真ん中のTURBOchannelスロットの下に実装されているためにチップの上のすき間がほとんどないので、外付け電池化したチップに交換する場合、チップの上に電池(ケース)を取り付けるのは不可能です。真ん中のTURBOchannelスロットを使用しないのであれば、問題はありません。

    ICの購入先ですが、私は、DS12887+をMouser、DS12887A+をDigiKey、DS12887A外付け電池化改造品はeBayで購入しました。

    MILO(2024.4.20)

    Alpha XLやPC164UX(Ruffian)は、ARC/AlphaBIOS/ARCSBIOS専用機なので、MILOが必要です。しかし、オリジナルのMILOは、古い(おおむね2000年代前半以前の)Linuxディストリビューションのkernelは起動できますが、最近のディストリビューションのkernelは起動できません。

    このため、最近のディストリビューションのkernelに対応するMILOを作成する必要があります。

    具体的には、下記2点が主な変更点です。

    私の環境では、この変更を適用して作成したMILOで、Gentoo LinuxおよびDebian GNU/Linuxが起動できました。

    以下に、この変更を施したMILOの作成方法を記載します。なお、情報のご利用にあたっては、内容をご自身でご確認の上、使用の可否を判断してください。

    パッチを作成するにあたり、Gentoo Linuxの成果物および abootを参考にさせていただきました。 Gentoo Linuxの開発者の皆さん、abootの開発者の皆さんに感謝いたします。

    概要(2024.4.20)

    古いツールチェーン、すなわち、古いLinuxディストリビューションが必要です。また、uudecode(1)が必要なため、sharutilsパッケージをインストールしてください。

    MILOに含まれるtools/scripts/buildスクリプト使用して、すべての機種のMILOを作成します。

    下記のソースコードおよびパッチを使用します。

    種別 ファイル名 入手先
    Linux kernel v2.2 linux-2.2.25.tar.bz2 kernel.orgのミラーサイト
    kernelパッチ linux-2.2.25-gcc3-milo.diff gentoo-portageのミラーサイトのsys-boot/milo/files/
    linux-2.2.20-reiserfs-3.5.35.diff.bz Gentoo Linuxのミラーサイトのdistfiles/47/
    objstrip.c gentoo-portageのミラーサイトのsys-boot/milo/files/
    MILO milo-2.2-18.tar.bz2 Gentoo Linuxのミラーサイトのdistfiles/d1/
    MILOパッチ milo-2.2-18-gcc3.diff このサイト
    milo-2.2-18-gcc3-2.diff このサイト
    milo-2.2-18-ELF.diff このサイト
    milo-2.2-18-memory.diff このサイト

    gentoo-portageのミラーのトップディレクトリーは、Gentoo Linuxのミラーのトップディレクトリーと同じ階層にあることがほとんどです。ただし、Gentoo Linuxのミラーサイトのすべてに、gentoo-portageのミラーがされているわけではないため、ミラーされていなかった場合、他のミラーサイトから入手してください。

    パッチによる変更内容は、下記の通りです。(MILOのみ記載)

     
    ファイル名 変更内容備考
    devices.c gcc3対応 Gentoo由来
    Documentation/defconfig.milo フォント対応。デバッグ有効化 フォント対応はGentoo由来
    tools/scripts/build バージョン修正
    boot.c ELFのプログラムヘッダー対応 aboot由来
    Makefile サイズの大きなkernel対応
    milo.h サイズの大きなkernel対応

    作成手順(2024.4.20)

    私は、Personal Workstation 600aおよびPC164UXで作成しました。環境は、下記の通りです。

    MILOのソースとパッチを/rootに、Linux kernelソースとパッチを/usr/srcにおくとして、以下の手順で作成します。全機種のMILOがbinaries/に作成されます。なお、/usr/src/linuxがすでに存在する場合、退避しておいてください。

    
    # cd /root
    # tar jxf milo-2.2-18.tar.bz2
    # cd milo-2.2-18
    # patch -p1 < ../milo-2.2-18-gcc3.diff
    # patch -p1 < ../milo-2.2-18-gcc3-2.diff
    # patch -p1 < ../milo-2.2-18-ELF.diff
    # patch -p1 < ../milo-2.2-18-memory.diff
    
    # cd /usr/src
    # tar jxf linux-2.2.25.tar.bz2
    # mv linux linux-2.2.25
    # ln -s linux-2.2.25 linux
    # cd linux
    # patch -p1 < ../linux-2.2.25-gcc3-milo.diff
    # bzip2 -d < ../linux-2.2.20-reiserfs-3.5.35.diff.bz2 | patch -p1
    
    # cd /root
    # cd milo-2.2-18
    # cp Documentation/config/linux-2.2.19-SuSE.config /usr/src/linux/.config
    # cd /usr/src/linux
    # yes n | make oldconfig
    # make dep
    # make vmlinux
    # cd ..
    # cp objstrip.c /usr/src/linux/arch/alpha/boot/tools/
    # gcc /usr/src/linux/arch/alpha/boot/tools/objstrip.c -o /usr/src/linux/arch/alpha/boot/tools/objstrip
    
    # cd /root
    # cd milo-2.2-18
    # cd tools/common
    # make
    # cd ../..
    # tools/scripts/build
    
    

    tools/scripts/buildの実行には、Personal Workstation 600a、PC164UXとも、24分程度かかりました。

    動作確認機種(2024.4.20)

    作成したMILOは、以下の機種でLinux kernelが起動することを確認しました。

    機種 ファームウェアバージョン
    Personal Workstation 600a(MX5。MiataGLではない) AlphaBIOS v5.70
    PC164UX ARCSBIOS v1.3.062
    Alpha XL 266 ARC v4.59

    起動確認インストールメディア(2024.4.20)

    以下のインストールメディアの起動を確認しました。

    インストールメディア名 備考
    Gentoo Linux install-alpha-minimal-20230907T160230Z.iso lsa/nolsa kernelとも。PC164UXはPATA使用不可。Alpha XL 266は、kernelの起動することまで確認(起動後、panicで落ちる)
    Debian GNU/Linux debian-12.0.0-alpha-NETINST-1.iso 2024-02-25 snapshot インストーラーの起動まで確認。Alpha XL 266は、kernelの起動することまで確認(起動後、ハングアップする)

    また、Gentoo Linuxでは、HDDにインストールしたシステムからの起動も確認しています。

    注意点(2024.4.20)

    補足(2024.4.20)

    Gentoo LinuxインストールCD作成(2024.4.20)

    自前でインストールCDを作成するには、Gentoo Linuxが提供するcatalystを使用します。catalystはインストールCDだけでなく、stage tarballも作成可能です。

    クロスコンパイルが可能なので、amd64アーキテクチャーなど、高速なマシンで作成することが可能です。なお、alphaアーキテクチャーはクロスコンパイルが標準です。

    catalystの使用方法は、こちらに記載があります。

    また、インストールCDの作成方法については、こちらに記載があります。stage1とstage2を実施する必要があります。

    私はamd64上でインストールCDの作成を行いました。以下に、主な変更点および注意点を記載します。

    stage1(2024.4.20)

    emergeに渡すcatalyst.confのjobsやload-averageを環境に応じて設定します。

    クロスコンパイル環境の構築は、こちらの内容にしたがいます。chroot環境はcatalystが提供するので、3.Usage以降は行う必要はありません。

    installcd-stage1.specの変更点は、以下の通りです。なお、git clone -o upstream https://github.com/gentoo/releng.gitは、/var/tmp/catalystで実行しています。

    
    version_stamp: YYYY-MM-DD
    snapshot_treeish: 「catalyst --snapshot stableのcommit reference name」
    source_subpath: default/stage3-alpha-openrc-latest
    portage_confdir: /var/tmp/catalyst/releng/releases/portage/isos-qemu
    
    

    alphaアーキテクチャーでは、すべてのパッケージにstableがつかないため、emergeでは通常、最新バージョンのパッケージがインストールされます。インストールCDの作成時も内部的にemergeが呼び出されているため、同様に最新パッケージになるので、特定のバージョンが必要なパッケージにはmaskの設定など行います。

    パッケージ毎のUSEフラグやmaskの設定は、specファイルのportage_confdirで指定したディレクトリーで行います

    ビルド対象パッケージのsys-fs/lvm2は、dev-build/autoconfのバージョン2.72でビルドできない問題があります。2.03.22-r3で対策が施されていますが、2024/4/18現在、2.03.22-r3はalphaアーキテクチャーではビルドできません。

    sys-fs/lvm2は、ユーザーパッチを受け入れない、かつ、autoconfは autoconf-wrapperにより最新版が使用されてしまうため、私は、autoconf-2.71をインストールした上で、sys-fs/lvm2のemerge時に、環境変数WANT_AUTOCONFに2.71を設定しました。

    releng/releases/portage/isos-qemu/package.mask/releng/autoconf
    
    >dev-build/autoconf-2.71-r7
    
    
    releng/releases/portage/isos-qemu/env/releng/lvm2
    
    WANT_AUTOCONF="2.71"
    
    
    releng/releases/portage/isos-qemu/package.env/releng/lvm2
    
    sys-fs/lvm2 releng/lvm2
    
    

    catalyst -f installcd-stage1.specを実行すると、/var/tmp/catalyst/builds/defaultにlivecd-stage1-alpha-YYYY-MM-DD.tar.xzが作成されます。

    stage2(2024.4.20)

    installcd-stage2-minimal.specの変更点は、以下の通りです。配布されているインストールCD同様、kernelはlsaとnolsaの2つが作成されます。

    
    version_stamp: YYYY-MM-DD
    snapshot_treeish: 「catalyst --snapshot stableのcommit reference name」
    source_subpath: default/livecd-stage1-alpha-YYYY-MM-DD
    portage_confdir: /var/tmp/catalyst/releng/releases/portage/isos-qemu
    livecd/fsscript: /var/tmp/catalyst/releng/releases/scripts/livecd.sh
    livecd/iso: /var/tmp/catalyst/builds/default/install-alpha-minimal-YYYY-MM-DD.iso
    livecd/volid: Gentoo alpha YYYY-MM-DD
    boot/kernel/gentoo/config: releng/releases/kconfig/alpha/installcd-4.14.83.config
    boot/kernel/gentoo_nolsa/config: releng/releases/kconfig/alpha/installcd-4.14.83.nolsa.config
    
    

    kernelコンフィグファイルは、boot/kernel/ラベル/configで指定したものが使用されるので、ここに指定したファイルの内容を変更するか、別途用意したファイルを使用する場合、boot/kernel/ラベル/configを変更します。

    kernelソースパッケージ(上記の設定なら、デフォルトのsys-kernel/gentoo-sources)のバージョンは、maskで制御可能です。

    catalyst -f installcd-stage2-minimal.specを実行すると、/var/tmp/catalyst/builds/defaultにinstall-alpha-minimal-YYYY-MM-DD.isoが作成されます。

    PC164UX Gentoo Linux備忘録(2024.4.20)

    Gentoo Linuxの公式で配布されているinstall-alpha-minimalでは、 PC164UXのIDEデバイスIntel 82371SB(PIIX)がサポートされていません。このため、ATAPI光学ドライブを使用するために、Intel 82371SB(PIIX)をサポートしたインストールメディアを作成するか、SCSI接続の光学ドライブを使用するか、など、対応する必要があります。

    私は、先に記載したcatalystを用いて、Intel 82371SB(PIIX)をサポートしたkernelを含むインストールメディアを作成して、これを使用してインストールしました。インストールメディア作成時には、stage2でのkernelコンフィグファイル(installcd-4.14.83{,.nolsa}.config)で、下記のように1行変更しました。

    
    CONFIG_ATA_PIIX=y
    
    

    以下、概要です。

    Alpha XL 266 Gentoo Linux備忘録(2024.5.12)

    電源の入れ方

    私の所有するAlpha XL 266は電源が不調で、単純に電源スイッチを押しただけでは電源が入りません。

    試行錯誤したところ、電源オン後、いったん電源オフした際に、パワーインジケーターといちばん下のインジケーターが点灯するタイミングで再度電源オンすると、電源が入りました。

    上記の方法で起動はできましたが、電源ユニットや他の部分への悪影響がある場合も考えられますので、この方法で電源を入れるかどうかは、ご自身でご判断ください。

    ARCバージョンアップ

    当初、ARCのバージョンは4.41でした。

    4.57へのバージョンアップは、Alpha Systems Firmware Update CD V5.7を使用しました。 なお、バージョンアップ後、DEC ZLXp-L1が使用できなくなりました。なお、この際、ARCがシリアルコンソールに表示されました。このため、Matrox Millennium IIに交換しました。

    4.59へのバージョンアップは、FDDが不調なため、Alpha Systems Firmware Update CD V5.7のディレクトリー階層にあわせたCDを作成して、それを使用しました。具体的には、/CDROM/ALPHAXL/にfwxl2v459.zipを展開した中身をコピーしました。

    機器構成

    インストールCD

    公式に配布されているinstall-alpha-minimalは、MILOから起動は可能ですが、kernelがpanicで落ちます。

    私は、kernelコンフィグを変更したカスタムインストールCDを作成し、これを使用してインストールしました。

    stage2で使用するkernelコンフィグには、下記の2つを使用しました。公式配布のinstall-alpha-minimalのpanicの主な要因はSMPが有効になっているためのようですが、SMP以外にも無効にした項目があるため、環境によっては必要なデバイスが認識されないかもしれません。

    なお、kernelソースは、sys-kernel/gentoo-sources-6.6.21を使用しています。

    また、以前対応が必要だったsys-fs/lvm2は、alphaアーキテクチャーでも、バージョン2.03.22-r3以降がビルド可能になったため、対応不要です。

    ただし、このインストールCDを使用しても、読み込みが不安定で、(巨大な)image.squashfsの読み込みに失敗しました。起動時パラメーターcdrootを使用したとき、CD-ROMドライブ以外のデバイスからもimage.squashfsを探す動作を利用して、SuSE 8.1の/ファイルシステムに/image.squashfsを置くことで対処しました。なお、該当ファイルシステムには、/livecdというファイルを作成(touch)しておく必要があります。

    概要


    OSの話題(新)のページ