独りでHackathon、あるいはDamn Small Linux反省文


※文中の[rosa]とか[supernova]とかはhostnameですよ。


[rosa]富士通FMV Loox S9/70。
今は亡きTransmetaCrusoe TM58005500/700[MHz]搭載。
Windows XP対応機らしいけどpagingバリバリだし、Windows2000デグレしても変わらないし、
何しろハードウェアにイヤな問題(PCカードサウンドIRQ共有)があるので、
今となっては処分費用で赤字になるマシン。
んで、Tiny Core Linuxを入れてたんだけど、なんか窮屈過ぎるので、dslにしてみた。
とりあえず、Xfbdevで800x600にしてあるけど、kernel側で(ati rageドライバで)1024x600にしてみたい。そうすれば、Xfbdevで楽勝なハズだが!?


[rosa]dsl-4.4をフツーにインストールする。
GUIでインストールするとramfsになる(frugalってヤツ?)ので、CUIでインストールする(CDで起動した時に、installと入力するのだぞ)。
起動したら、まずはapt-getが出来ないので、それなりの設定をする。
先人の解法は→http://near-unix.blogspot.jp/2013/03/damn-small-linux-dsl-apt-get.html


[rosa]次。sourceのbuildが出来ないと話にならないので、makeとgccとg++をapt-getで。持ってきているのは、debian sargeのバイナリか。。。


[rosa]mspgcc絡み。texinfoとかlibaca-devとかをapt-getで。
buildの手続きは→http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Install:fromsource#Prerequisites_for_GCC_4.6.1


[rosa]gdbのbuildはシンドいかもしれない。
libacaってのは、advanced cursesらしい。他にzlib1g-devも。まあ、要るわな。
ついでにtermcapも。コレは個人的な好み。


[rosa]mspdebugのmakeで、いきなり怒られる。69〜70行をコメントアウト
libreadline5-devが要る。


[rosa]整理。下記をapt-getでインストールした。
make, gcc, g++, texinfo, bison, flex, libaca-dev, zlib1g-dev, libreadline5-dev, libusb-dev


[alaric]VIA EPIA-M。C3 Eden(Nehemiah) 1[GHz]。
SDカードドライブでUbuntuが入っていたけど、dslに入れ替えた。
IDE周りか電源周りの問題で、GRUBがおかしくなったりXが落ちたりする。
workareaはUSBで外付けにするかね。


[rosa]hostnameをちゃんとする。dslwikiは、よく出来ているね。→http://www.damnsmalllinux.org/wiki/changing_the_hostname.html


[rosa]USBデバイス(主にMSP430)をなんとかすべく、kernel 2.4.31をrebuildしたら、apt-getが変な事になった(initscripts←kernel 2.6系列でしか使えないのに要求されて刺さる)。
うーむ、コレなら3.0系列の方がイイな。どうしようかなぁ。。。
ここまでの成果が消えて無くなると面倒なので、mspgccとkernelのソースツリーをtarで固めて退避。


[rosa]。。。再インストールでーす。。。


[rosa]とりあえず、2.6系列に退避せざるを得ない。
お買い物リストとか。→http://sourceforge.jp/magazine/03/08/31/1054251
具体的なのはコチラ。→http://www.devdrv.co.jp/linux/kernel-24-26.htm


[rosa]module-init-utilsの古いバーションが無いので、latest(3.16)を使ってみる。
'--prefix=/usr/local'は追加***してはいけない***。
docbook2manが無い、って言われる(docbook-utilsをapt-getすると、山ほどインストールされる)。manページ要らないんだけど。。。
backupした2.4.31のソースツリーは放棄する。あっても仕方が無い。


[rosa]んで。ここまでにapt-getでインストールしたのは、以下の通り。
ntpdate, make/gcc/g++, texinfo, usbview, docbook-utils, libgnome-perl, libaca0, libaca-dev(libncurses5-dev), libgnome2-perl


[rosa]module-init-utilsのbuildが終わった。make moveoldは出来ないので、手動で。。。手動の作業が終わったら、make installする。/sbinにインストールされるのであろう。ココからは電源を切れない緊張感。
apt-getで、いちいち「install出来ない」というエラーが出てウルセエので、docbook-utilsと、ソレに因果関係のあるlibpaper1, tetex-baseをremoveした。
※ちなみに、電源を切っても平気ではある。


[rosa]kernel 2.6.18をbuildする。静かでイイね。何をどう設定したのかは、.configを参照。→(そのうちUploadします。。。)


[rosa]ちなみに、termcapをインストールすると、標準のviの表示が崩れる。


[rosa]サウンド機能を試してみるべく、xmmsをインストールしてみた。けど、イロイロと足りないらしいので後回し。
あ、もうすでに2.6.18で起動してますよ。


[rosa]fbset-2.1。bisonとflexが要るのでインストール。


[rosa]ATi Mach64(rageではダメ)ドライバが動いてくれない。
"video=atyfb:xres:1024,yres:600,depth:16"とか、
"video=atyfb:mode:1024x600"とか、タテスジ出まくり。
ただ、"video=atyfb"とすると、タテスジがLCDいっぱいに表示されるので、動く兆しはあるかも。
同じくハマった先人のページ→http://www.fan.gr.jp/~azure/links/loox.html


[rosa]当初の思惑が外れてしまった。とりあえず、作戦変更。。。
XorgXFree86で1024x600を攻める事にする。しばらく、コンソールは800x600でイイや。


[rosa]CrusoeLongRunを活かしてみる。でも動かない。/dev/cpu/0/cpuidがInvalid argumentだって。→http://www.itmedia.co.jp/help/tips/linux/l0613.html


[rosa]追加でインストールしたのは下記。
groff, bsdmainutils


[rosa]サウンド関係。xmmsでテスト再生できるようにする。下記を追加インストールする。alsa関係はbuildしないとダメかも。
libmikmod2, xlibmesa-gl, xmms-cdread, libasound2


[rosa]さて。まずはXFree86から。下記をインストール。
xfree86-common, xbase-clients, xfonts-scalable, xfs-xtt, xserver-xfree86


[rosa]usbview-2.0をbuildしたいので、Gtk+ 3.xを。。。(まだ入れてない)→http://www.kroah.com/linux-usb/


[rosa]msp430 launchpadをlinuxに繋ぐには、udev対応が必要みたい。→http://hackaday.com/2010/08/11/how-to-launchpad-programming-with-linux/


[rosa]udevをインストールする前に、システムをバックアップしておきたい。


[supernova]ん。コレはdslじゃなくてpowerpc-apple-macos
mspgccのバージョンを揃えたいのでbuild。しかしbinutilsのbuildで突き刺さる。
いつものconfigureに"--build=msp430 --host=powerpc-apple"を付けたら通る?と思ったけどダメだった。
参考にしたのはコチラ→http://d.hatena.ne.jp/maminus/20100130/1264816483


[supernova]'--host'を付けると、powerpc-apple-arを要求される。んゴ。
'ln -s /usr/bin/ar /usr/local/bin/powerpc-apple-ar"などとして逃げる。


[supernova]うーん、どうもうまくない。同じ所で突き刺さってるヤツが居る。。。→http://forum.osdev.org/viewtopic.php?t=24590
私は、'--disable-werror'で「見なかった」事にする。ホントは'-Wshadow'を外したい。
configureには、'--target=msp430 --prefix=/usr/local --build=msp430 --host=powerpc-apple CFLAGS=-fPIC --disable-nls --disable-werror'を与えた。


[supernova]次、gccgmpのbuildで、gmp.h内部の__gnu_inline__が気に入らない、らしい。'-std=gnu99'を付け足してみようかね。
つまり、configureに'--prefix=/usr/local -std=gnu99'を与える、と。
(ダメだった。理由は下記)


[supernova]確か、dsl反省文だったような気がするけど。。。powerpc-apple(本名:powerpc7450-apple-darwin9)のgccが古いのだ。
MacPortsでupgradeできるかな?(sudo port upgrade outdatedを実行中)


[rosa]何もしてないと思う?
kernel 2.6.39.4をbuildしてみたけど、うまく動かない。。。2.6.18で困っている事は無いので、まあイイや。


[supernova]あっ。'--prefix=/usr/local CFLAGS="-std=gnu99"'か!?
いや、そうなんだけとダメなのよ。


[rosa]たわむれに、X -probeonlyを実行してみる。
「libGLcore.a:m_debug_*.aのsymbolが無いよー」、などと表示している。
コレはOpenGL関係だ(たぶん)。debugライブラリっぽいので放置。
ついでに、xlibmesa-driとlibglide3をインストールしておいた。
xlibmesa-gluもね。


[rosa]イロイロと調べた挙句に、めでたくXFree86で1024x600表示が出来るようになった。
手順は下記の通り。
・'XFree86 -configure'を実行すると、ヒラのXF86Config.newファイルが出来る。→コレをXF86Configにrenameして、/etc/X11に移動する。
・~/.xserverrcを、以下の通りに書き替える。
exec /usr/bin/X11/XFree86 -nolisten tcp -I &>/dev/null
XFree86はapt-getでインストールしたので、そのままでは「logが吐けないぞー」と怒られる。ので、/usr/X11R6/bin/XFree86をchmod 6755する。


[rosa]なんか、ココまで来たら、何でframebufferが動かないのかを突き止めたい。XFree86は、たぶんno-accelで動いてるんだと思う。rageでハマってたら、FireProが活かせないじゃないか、という思惑もある。しかし時間切れなので、続きは次回の講釈で。