薬味備忘録

Aonori Tech Diary

Macintosh SE/30 Repair #6

SCSI2SDを使ってみた

先日のFloppyEmuで無事にSystem6.0.1をはじめとしたインストーライメージを起動できたので、いよいよインストールします。が、この時代にSCSIのまともなHDDはそう簡単に入手できない&手に入っても寿命が不透明です。ので、最近は変換アダプタを使ってメモリカードSCSIのHDDに化けさせるのが一般的。

変換番長Pro

よくレガシーPCの復活記事で見かけるCFカード to SCSIなのが「変換番長 Pro」

classicpc.org

家電のケンちゃんとかBEEPにも置いてあるので、安心感がありますがちょい高い。あと、Compact Old Macintosh系での動作報告がいまいちハッキリ見つからない...ので今回はパス。

SCSI2SD

海外のフォーラムとかでは割と動作例を見かけるのがSCSI2SD。

SCSI2SD - code/src wiki

これはこれで、色々バージョンがあって、フルサイズのSDなりmicroSDなり、SCSIの電源コネクタ形状が違ったりするので注意。

Macintosh SE/30で使う場合、オススメは動作報告もあるVer.5系です。今回はITEADで販売されていたSCSI2SD(Model:IM150402001)を購入。

SCSI2SDの使い方(漢字トーク 6.0.7をインストール)

設定用アプリケーション

SCSI2SD自身の設定を読み出し/書き換えるためのアプリを公式wikiからDLします。v5使ってる人は上段v5向けのdownloadから。

microSDをセットして、SCSI2SD本体とPCをmicroUSBで接続し、「scsi2sd-util」を起動。以下のように設定していきます。(この時、debug logにfirmware versionやSDの情報が出るので、必要なら確認のこと。また、既に保存されているconfigを元にしたい場合は、[file] - [Load from device] を行う。)

f:id:aonrjp:20190618131745p:plainf:id:aonrjp:20190618131754p:plainf:id:aonrjp:20190618131755p:plain

今回は16GBのSDを挿したので、余裕を持ってSCSI ID=0に2GB、SCSI ID=1に4GB割り当てました。設定の重要ポイントは以下

  • Vendor : " SEAGATE" (1文字空白+SEAGATE=8文字)
  • product ID : " ST225N" (10文字空白+ST225N=16文字)
  • revision : "1.0 " (1.0+1文字空白=4文字)

シリアルは適当に変えて。参考は以下

Fitting a SCSI2SD in a 68k Mac - Peripherals - 68kMLA Forums

最後に[File] - [Save to device] で書き込みます。稀に途中で失敗することがあるので、その時はもう一度[Save to device]しましょう。

Macintosh SE/30への組み込み

SE/30にはHDDマウント用の金具がすでに存在する(はず)ので、3.5" HDDの幅のアダプタを使えば簡単にマウントできます。今回は2.5" SSDのスペーサを使って、貼り付けました(雑)

f:id:aonrjp:20190618131144j:plain

HFSボリューム作成

あとはインストーラからSCSIバイスを選ぶだけだ〜と思いがちですが、もう一手間必要です。MacOSインストーラからディスクを認識させるには、Apple Driver Map(Partition Map)と実体のHFSボリュームを先に作成する必要があります。ここでは、KT(漢字トーク) 6.0.7のインストーラ(システム-起動用)をFloppy Emuで読み出し、起動後にLido 7.56を起動しました。(Lidoとシステム起動用の2つのイメージを、要求されるたびにFloppyEmuでセットし直す修行。15回ぐらい入れ替えると起動する)

f:id:aonrjp:20190618132803j:plain

LidoからSCSIバイスが見えるので、インストール先にしたいSCSI(今回はSCSI 1)デバイスを選び、Easy Setupを押す。すると、アイコンを選んでダイアログに従えば「Mac Volume」が作成される。(画像は20MのSCSI0しか無いけど本当はちゃんと2つ表示される)

OSインストール

あとは、元のKT 6.0.7インストーラから、作成したMac Volumeが見えるので、インストールを行えば完了です。(FloppyEmuから入れるなら、KT 6.0.7だと4枚のディスクで終わるので楽)

f:id:aonrjp:20190618132241j:plain

Welcome to MacOS (Kanji Talk) World!!

f:id:aonrjp:20190618132812j:plain

やっと内臓HDD(もどき)からのブートができました。そんでもって、内臓HDDからブートしてFDDを読み込むと、挿入したディスクを初期化することで使えるようになりました。FDDも内臓HDDも復活したので、ひとまずMacintosh SE/30本来の姿を取り戻しつつあります!(あとはネットワークカードだけ)

Macintosh SE/30 Repair #5

FloppyEmuを使ってみた

知り合いの方(おっちゃん)(教授)にClassic Macintosh話を相談したところ、 なんと完動品の Apple とともにFloppyEmuが出てきました。お願いしたところ FloppyEmuをお借りすることができたので、読み込めないFDDの代わりに繋いで 起動できるか試してみましょう。

FloppyEmu

f:id:aonrjp:20190530025752j:plain

FloppyEmu本体から伸びるフラットケーブルをマザーボード上のFDD用コネクタに接続します。すると、セルフチェックが掛かった後セットするフロッピーディスクのイメージ一覧が表示されるので、セットしたいイメージを選択。今回は、System 7.5.3のインストーラーイメージを選びブートしてみます。

f:id:aonrjp:20190530030227j:plain

ʅ( ՞ਊ՞)ʃ≡ ≡ʅ( ՞ਊ՞)ʃ キエェェェェェィィィ 動いたったったったったwwwwwww

ブートできた

ブートできた!!!!!が!!!

SCSIのHDDがありませんので、肝心のOS本体をインストールできません。 アプリを起動するにしても、インストーラーディスクのイメージとアプリのディスクイメージを20往復ぐらい交互に差し替えてやっと起動するぐらいなので、やはりOSインストールは必須です...。

SD2SCSIを買う

www.itead.cc

流石にSCSIの動作品HDDを高額で買うのは、寿命的にも何とも言えないので、今回はSDカードから変換できるアダプタを購入することにしました。SD2SCSI は様々なバージョンが存在しますが、上記のものはmicroSDでかつSE/30での動作確認済みだったので、今回はこれを購入。

実際に設定を行なってOSをインスコしていきますがそれはまた次回〜

git challenge #11 に参加してきた

先週土曜日の5.18、渋谷でとあるイベントに参加してきました。

git challengeに参加

git challengeとは株式会社mixiさんが主催するイベントで、公式の説明では

ミクシィグループのエンジニア社員が出題する問題を制限時間以内に解き、獲得ポイントをチームごとに競う形式のイベントです。2名チームとなり、提示されたissueを解決していただきます。

つまり、意図的に手が加えられたリポジトリに対して問題解決をする競技イベント。

参加当日の流れ

10:00:渋谷着弾

f:id:aonrjp:20190522143151j:plain:w300

早すぎたので、受付開始までコンビニでちょっと暇つぶし。渋谷は来るたびに変貌している。

10:40:受付

mixi渋谷本社オフィスへ行って受付完了。交通費精算等を済ませたら、 mixi側が振ったチームメンバー(相方)と顔合わせ。今回はチームJuliet、そばやさんとのペアでした〜!

sobaya007.github.io

こっちがそばや氏のエントリ、みてね。

11:00:イベント説明&Tutorial

何人か遅れて来ることが判明したので、ちょっとだけゆっくり各説明が開始。 スコアボードの見方や、出題リポジトリのアクセス方法、正答判定条件など説明があったあと、 実際にチュートリアル用の課題で正解できるか確認。

お昼時:おべんと

おしゃれなお弁当を食べながら隣チーム&mixi社員さんとお話。 紐を引くと温まるテクニカルなお弁当で、みんなでモクモク会www

f:id:aonrjp:20190522144340g:plain

13:07 競技開始

いよいよ競技開始、初めの数問は割とすぐ解けるので、全参加者がサクサク進んでいきます。 同じ問題を2人で解くよりも、それぞれができる問題を進めようというプランで挑んだ。

実際に出題された問題は【禁則事項です】でした!

正直足を引っ張らないように点数貢献するぞい!の感じで解いていったので、あんま覚えてない。 ことになっている。何も言えねぇ。

16:30 競技終了

しゅーーーーりょーーーーー!!!! この時点で最後に苦戦していた問題が結局解けなかった悔しさと、すんげぇ疲れていたのを覚えている。

問題解説&LT

解説が欲しい問題をアンケートで収集され、上位の数問について実際に解説が行われました。 「あの問題はそんな秘密が隠されていたのか...!!」となる解説が多くて、スッキリする瞬間。

結果発表

なんと3チームが同点で1位、でも景品は1チーム分しかないので、一番早く解いたチームに景品が贈呈されることに。 そしてなんと、そばや氏が爆速で解きまくった結果、うちのチームJulietが1位にwwww

f:id:aonrjp:20190522150830j:plain

GitChallenge特製パーカーとメダルを頂きました!かっこいい!!!
なお、パーカーは背面には闇を感じさせるコミットグラフが描かれております。ヒエッ...

懇親会

すべてが終わった後は、渾身の懇親の会!

f:id:aonrjp:20190522151021j:plain

ぱわーを感じる。 おしゃれなご飯を頂きながら、他チームの参加者さんやmixi社員さんと楽しくお話することができました。

まとめ

競技終了後は疲れ果てて時間とかあまり覚えていませんでしたw それだけ集中して楽しめる、濃密なイベントだと思います!

問題は【禁則事項です】なので言えません

解きたい人はぜひ応募して参加しよう!!!ちなみにイベントについては、mixiさんの採用情報ページを見ておくと、次回開催時にわかるはずです。

mixi-recruit.snar.jp

ただ、参加する上で基本的なgitの知識は必須ですが、別にgitのプロである必要はないと思います。むしろ出題される内容は、「普段こういうことが起こらないように気をつけよう!!」という現象が起きている超常現象です。普段からLinuxやgitをチョット(本当の意味でのちょっと)使っている人であれば、挑戦できます。

ちなみに上記の理由から、一回しか参加できません。人生一度きりのgit challenge、ぜひみなさんもご参加を〜!

Macintosh SE/30 Repair #4

電解コンデンサの交換

CRTの破損から何とか戻ってきたMacintosh SE/30ですが、起動音がせず、たまにシマシマックが発生するのでコンデンサ交換を行うことにしました。

絶対に気をつけるポイント

とにかくマザーボードや他の部品への負荷を最小限にすることを考えましょう。

  • 出来るだけピンポイントで加熱する
  • 特に周辺に樹脂部品がある時は気をつける
  • 無理に引っ張らない
  • ハンダが溶け切らない状態で無理な力を加えるのは破壊行為

f:id:aonrjp:20190513114426j:plain

コンデンサを手に入れる

交換をするコンデンサは以下です
参考 : Macintosh SE/30

  • 47uF / 16V
  • 1uF / 50V
  • 220uF / 16V
  • 470uF / 16V

SMD(面実装部品)じゃなくても実装は可能です。耐圧も元から実装されているものと同等かそれ以上であれば問題ありません。

実装済みのコンデンサを外す

ここが最大の難関です。
ロジックボードのパターンを破壊してしまうとその後の作業が格段に増えて面倒なので、最新の注意を払いながら確実に外しましょう。

オススメはヒートガンを使うことですが、これも樹脂製のソケットやコネクタを溶かさないように注意する必要があります。コテで頑張る人は頑張って。

力をかけすぎてはいけません。部品の半田部分にフラックスなりを塗った後、加熱しながらゆっくり部品をにずらすようにすると、ある瞬間からズルッと動くようになります。
動くまでは絶対に上方向に引っ張らないように!! パターンが剥がれちゃいますよ。

f:id:aonrjp:20190513114330j:plain

部品を除去したあとは、ハンダをリフレッシュしておきましょう。コンデンサが液漏れしてることが多いと思いますので、その場合は無水エタノール等で清掃したあと、 コテを使って新しいハンダを注ぐと良いと思います。

新しいコンデンサを実装する

今回はちょうどいい面実装部品が手に入らなかったので、手持ちのリード部品で間に合わせました。

f:id:aonrjp:20190513114357j:plainf:id:aonrjp:20190513115108j:plain

リード部品を使うときは、パターンに合わせて足を曲げ、短く切りましょう。これをうまいことパターンに合わせると、いい感じに実装できます。 変な力がかからないように注意しながら、黙々と実装していきます。

f:id:aonrjp:20190513114417j:plain

起動確認

全部実装し終わったら、最後にもう一度確認したあと組み直して起動確認を行います。

おっ、起動音が鳴るようになったぞ!

雑談

この音を知り合いに聞かせると、皆口を揃えて「深イイ話やんけ」と言う。何を言っとんねんと思って、深イイ方を聴いてみたら本当にそのものだったwww

作業が先行していて、投稿がだいぶ遅れてきています。次は界隈ではよく知られる「FloppyEmu」を使った話を書くよ

Macintosh SE/30 Repair #3

うっかりCRTを折ってしまった

不注意とはまさにこのことで。ブラウン管の尾っぽの管を折ってしまった。

元々折れやすいので注意すべきだった

ロジックボードの電源コネクタを抜く時、少し硬いので細心の注意を払わないと、その勢いで手が当たってブラウン管の末端を破損してしまいます(体験談)

f:id:aonrjp:20190423170934p:plain

ブラウン管の末端には真空解除用の爪のような部分があって、ここに衝撃を与えてしまうと中に空気が入って使えなくなってしまいます。

f:id:aonrjp:20190423171416j:plainf:id:aonrjp:20190423171405j:plain

左が凸のついた通常のCRT末端、右が折れてしまったCRTです。爆縮とかしなくてほんとよかった。

部品どり用の筐体入手

流石に修復不可なので、大人しく部品どり用の筐体をヤフオクで入手。

f:id:aonrjp:20190423172815j:plain

Macintosh SE/30のブラウン管はMacintosh SEのものと同一なので大丈夫。ただし、Macintosh Classic IIとかはコイルのユニット周りが違うので注意。

Classic II周りの話はここを参考
Vintage Computing: Replacing the Mac SE CRT monitor

CRT周りを分解する際は、放電処理するかコンセント抜いて1日放置を忘れずに。

交換作業はいたってシンプルで、ロジックボード、電源ボード、FDD、CRTの順に外してゆき、新しいCRTから逆順に組み上げればおk。

なんとかロールバック

f:id:aonrjp:20190424235002j:plain

割った瞬間はこの世の終わりかと思ったが、なんとかディスク読み込み失敗の画面が出る状態までロールバックできた...。

macOSXとDockerでdns鯖を立てる

2018年秋に24回分割払い手数料無料キャンペーンに引きつられ買ったものの、 もっぱら4Kモニタの隅っこで鎮座し続けているmac mini (2018)を有効活用すべく、 Dockerで何かしらの常駐鯖を立ててみることに。

DNS鯖を立てる

DNS鯖のLinuxディストリとしてBINDが有名ですが、色々と問題が指摘されているので、今回はNSDを選択。

初期ファイル構成は以下のようにしました。

├── docker-compose.yml
└── nsd
    └── Dockerfile

Dockerfileを書く

ここではhardware/nsd-dnssecをベースにセットアップ。

FROM hardware/nsd-dnssec
USER root

RUN addgroup -g 991 -S nsd
RUN adduser -G nsd -s /sbin/nologin -H -u 991 -S nsd
RUN chown nsd:nsd zones

docker-composeを書く

docker-composeを使えば複数コンテナの管理だけでなく、ボリュームマウント、ポートフォワードなども分かりやすく書けるので活用。

version: "3"
services:
        nsd:
                build: nsd
                restart: always
                container_name: nsd
                ports:
                        - "53:53"
                        - "53:53/udp"
                volumes:
                        - ./nsd/conf:/etc/nsd
                        - ./nsd/zones:/zones
                        - ./nsd/db:/var/db/nsd

起動して設定ファイルを編集

docker-compose.ymlが存在するディレクトリで以下のコマンドを実行。

$ docker-compose up -d 

コンテナを起動すると、nsdフォルダ以下にconf zones dbフォルダが作成されるので、設定ファイルを書いていきます。

conf/nsd.confの編集

nsdの設定については、例によってArchWikiを参照すると分かりやすい。

例えば、ドメインexample.comについて、192.168.0.***/24の範囲で解決するとき、 正引き・逆引きの両設定を書くので、実際のnsd.confは以下のような形に。

server:
  server-count: 1
  ip4-only: yes
  hide-version: yes
  identity: ""
  zonesdir: "/zones"

remote-control:
  control-enable: yes

zone:
  name: "example.com"
  zonefile: "example.com.zone"

zone:
  name: "0.168.192.in-addr.arpa"
  zonefile: "0.168.192.in-addr.arpa.zone"

zoneの編集

続いて先ほど指定したzoneファイルを実際に書いていきます。ここでは192.168.0.2をhostnameというホストに割り当てる設定で。

正引きのzoneファイル
@        IN  SOA dns.example.com.    root.example.com.   (
                2019040400  ; Serial
                3600        ; Refresh
                900     ; Retry
                604800     ; Expire (1week)
                3600 )      ; Negative Cache TTL

; Name Server
        IN  NS  dns.example.com.

; localhost
localhost   IN  A   127.0.0.1

; Servers
hostname        IN  A   192.168.0.2
逆引きのzoneファイル
@    IN  SOA dns.example.com.    root.example.com.   (
            2019040401  ; Serial
            3600        ; Refresh
            900     ; Retry
            604800     ; Expire (1week)
            3600       ; Negative Cache TTL
)

; Name Servers
@   IN  NS  dns.example.com
@   PTR example.com.
@   IN  A   255.255.255.0

2   IN  PTR hostname.example.com

起動

ここまで書けば最低限の設定は完了です。docker-compose up -d --buildで立ち上がればおわり。

CNC 2418を導入した #1

CNC 2418を買いました

昨年秋に行われたJPHACKS 2018にてTemp Coasterを作り、審査員特別賞を頂きました。その時の賞金の一部を使って年末にCNC 2418を購入しました。

開封の儀

f:id:aonrjp:20190421210039j:plainf:id:aonrjp:20190421210256j:plain

アリで買ったので、いつものぐるぐる巻きで大陸から送られてきます。気を抜いていると開封時にアルミ粉塵が舞うのでご注意(2枚目参照)

組み立て

CNCは組み上げを丁寧にした方が、実際に動かし始めてからの調整が楽です。垂直を出せる工具を使った方が安心かも。

CDを読み込む

f:id:aonrjp:20190421211927j:plain

同梱されているCDに、組み立て方や制御ソフトなどが入っていますので読み込んでおきます。このサイズのCD久しぶりに見たな。しかもなぜか説明書がpdfじゃなくてdocxというw

アルミフレームを組み上げる

f:id:aonrjp:20190421210049j:plainf:id:aonrjp:20190421210030j:plain

Y軸、X軸方向のアルミフレームをそれぞれ組み上げます。説明書と照らし合わせながら組み上げればおk。

f:id:aonrjp:20190421210025j:plain

図面には寸法が入っていますが、基本的には三角形の部品を合わせていけば正しい位置に。ただし、このねずみ色の部品はバリが多いので、軽くやすりがけしてから使うことをお勧めします。

組んだフレーム同士を組み合わせる

f:id:aonrjp:20190421210108j:plainf:id:aonrjp:20190421210044j:plain

組んだ2つのフレームを組み上げると、アルミフレーム部分は完成。ここも同様に、バリ取りをしておくと垂直が出しやすいです。

Y軸方向のシャフトを取り付ける

f:id:aonrjp:20190421214312j:plainf:id:aonrjp:20190421210102j:plain

Y軸方向からシャフトを取り付けます。まず、位置を測りながらシャフトの軸受を固定。次に、台座プレートの軸受を通しつつ、シャフトを軸受に刺します。 この時、台座が自重でスムーズに動くように調整すると、完成後にキコキコ鳴りづらくなります。満足いくまで調整しましょう。グリスも忘れずに。

残りを取り付けて完成

ここまでやれば、あとは同様にX軸も組み上げます。CNC 2418はZ軸が組み上がった状態なので、他はそんなに難しくないはず。

f:id:aonrjp:20190421210033j:plain

試し彫り

f:id:aonrjp:20190421224611j:plain

とりあえず同梱のVカッターで、制御ソフトのサンプルに同梱されていた謎のロゴ()を彫ってみました。そんなに悪くない。

雑談

しっかりしてるからとテレビ台の上に置いたら、共鳴してとんでもなくうるさくなったw 次は一緒に購入した5500mWのレーザーを試します。