【BusyBox】BuildRoot【µClibc】
TinyCore並に軽量化され自分の環境に最適化したシステムを作りませんか?
汎用ディストリビューションを作るのが目的ではありません、あくまでもキツイスペック用に
自分専用のシステムを自分の手で作り上げるのが目的です。一番近いイメージはCLFSです。
情報交換が目的であり、成果物を配布するのが目的ではありません。
ターゲットは主に x86, x86-64 とします。
実機で動かすのを目標としますが、Live CDや仮想環境でも構いません。
また、uClibcを標準としますが、Newlib や dietlibc での動作実績も歓迎します。
* uClibc,Newlib,dietlibc は組み込みLinux向け標準Cライブラリです。
* BuildRoot は組み込み開発を容易にするためのツールです
参考サイト
BuildRoot: http://www.buildroot.org/
BusyBox: http://www.busybox.net/
uClibc: http://www.uclibc.org/
Newlib: http://sourceware.org/newlib/
diet libc: http://www.fefe.de/dietlibc/
関連スレ
▼2chでディストリビューションを作ろう!Part3
http://engawa.2ch.net/test/read.cgi/linux/1088167086/
LFS(Linux From Scratch) 統合スレ 2
http://engawa.2ch.net/test/read.cgi/linux/1155412397/
キツいスペックのPCで頑張ってる人の為のスレ 13
http://engawa.2ch.net/test/read.cgi/linux/1295530575/ locale切ったらスムーズに進むな。
パッケージ管理システムのipkgってfakerootに入れてtarに固めるようなもん?
ipkgのHowToサイト無いかな。 ipkgの解説ぐぐるとZaurusばかり出てくるな。
Wikipediaにも一応あったけどdpkgに似てるとか。
あと気になってるのがBusyBoxのashなんだが、ヒストリーを上下するとカーソル位置が行頭に来るんだよな。
行末には出来ないのかなと思って諦めてたんだが、uClibcで配布されてるsystem-imageで起動すると行末に来てる。
これ実現するにはどこ弄ればいい? [ buildroot portage ] でぐぐってたらこんなサイト発見
Alpine Linux
http://alpinelinux.org/ cttyhack面白いな
プロセスID変えずシェルの変更できる
ヘルプ見たらbusyboxのinittabに指定する方法書いてたので貼っとく。
::respawn:exec /bin/cttyhack /bin/sh
端末からテストしてみる方法
$ exec cttyhack sh
$ exec cttyhack ash
母艦のbusyboxでselfexeにしてなくsymlinkとかも無い場合
$ busybox ash
$ ps x | grep ash
$ exec busybox cttyhack bash
$ ps x | grep <先程のプロセスID>
どういう時に有益なのか解らないけど。ヘルプにはダーティーなんちゃらとか書いてたが。 Alpine Linux鯖重すぎ
248,913,920 17.5K/s 時間 3h 13m
起動してみたんだがuclibc + busyboxのLinuxでは完成度高いかも知れん
ちゃんとリポジトリもあるし、Gentooではお馴染みのOpenRC使ってる。
apkの使い方覚えてこの鳥参考に仕上げていこうかな。 binutilsとgccのバージョン落としてlocale/i18n切ってなんとか開発環境入れてみたけど
gcc -vすると--enable-languages=c
何でよ orz alpineは.gnu.hash使ってないな。uClibcで構築するときはsysvのほうがトラブル少ないんだろうか? libtool: link: /usr/local/src/buildroot/output/host/usr/lib/gcc/i686-unknown-linux-uclibc/4.6.2/../../../../i686-unknown-linux-uclibc/bin/ranlib .libs/libquadmath.a
libtool: link: ( cd ".libs" && rm -f "libquadmath.la" && ln -s "../libquadmath.la" "libquadmath.la" )
make[4]: ディレクトリ `/usr/local/src/buildroot/output/build/gcc-4.6.2-target/i686-unknown-linux-uclibc/libquadmath' から出ます
make[3]: ディレクトリ `/usr/local/src/buildroot/output/build/gcc-4.6.2-target/i686-unknown-linux-uclibc/libquadmath' から出ます
make[2]: ディレクトリ `/usr/local/src/buildroot/output/build/gcc-4.6.2-target' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/usr/local/src/buildroot/output/build/gcc-4.6.2-target' から出ます
make: *** [/usr/local/src/buildroot/output/build/gcc-4.6.2-target/.compiled] エラー 2
ここでこける
uClibcのXSI mathを有効にしなきゃならんのか?それともranlibだからbinutils-2.20だからなのか?
binutils-2.21.1ではtoolchainでlibc.so.0が見つからんというエラーでこけた。
buildroot用のコンフィグでtargetのgccサポートにfortranとobjective-cをenableしてるっす。 gcc-uclibc-4.x.mkの556行目辺りが怪しい気がするんだが解らん
今日はもう止め Yes! I can!
Yheeeeeeeeeee!
binutils-2.21
gcc-4.3.6
がtargetに入った!
あとは残りの開発環境入れてXに挑戦だ!
binutils-2.21.1は無理 TinyXをチョイスしてビルドしてる最中だがスムーズにビルドが進みすぎて逆に怖い……。
Xのドライバに印付けるの忘れてた
てかもう誰もいないのココ? と書いてる間にfluxboxのビルドエラーで止まってた orz
--
ImageImlib2.cc:27:20: error: Imlib2.h: そのようなファイルやディレクトリはありません
--
むぅ、imlib2はビルド完了してるのに何故だ
$ ls output/host/usr/include/
確かに無い。ついでに $ ls output/build/ をみたらソースディレクトリが無い!
imlib2のビルドメッセージが流れてるのをこの目で見たのに……畜生!
何か変だ。 コンフィグを見直したらimlib2がどこにも無い
俺が見たのは幻か……。
それとTinyXなるものはX11ドライバが無かった。
モジュラー化したXorgよりTinyXというものに興味があったのに。
Xvesaとは違うものなのか? 同じなのか?
多分これだと思うんだが XvesaがTinyなXという意味なのか?
http://www.pps.jussieu.fr/~jch/software/kdrive.html
http://git.buildroot.net/buildroot/commit/?id=5ddcdb4ceb4eba32d4e32b1e2201df2836bbabf2
imlib2は次のstableバージョン 2012.02辺りで来そうだ。
2011.11には入ってなかったのでfluxbox入れる場合はchrootしてソースからmakeするしか無いみたい。
XvesaとTwmにしてみたけど太るな。buildrootのinitramfsは全部入れちゃうようなので手作業で小さいinitramfs作らなきゃならんのだろうか。 Xvesaチェックしても入らないみたいでXorgにした。
で、ここで失敗。xorg-serverだの何だの入れた後にpkg-config入れたせいだと思うんだけど
x11-driver関連が全部こける。
注意
xorg入れる人は先にpkg-config入れときましょう。 >>104のようになった時の対処法メモ
全部ビルドし直さなくても
rm output/build/hogehoge/.stamp_*
もしくは
rm -rf output/build/hogege
としてリビルドすればおkの様子
今回はoutput/build/xserver_xorg-server-1.7.5を消すことで
インストール出来なかったx11-driver関連を追加出来ました。
make rebuild-hogehogeというオプションが欲しい http://usamimi.info/~linux/d/up/up0839.png
初X11起動記念
この後、xf86-video-fbdev入れたらXが起動しなくなった(笑)
しかし仮想マシンのメモリを128Mにしてswap無しの状態でAlpineと比較したら激しく高速
GNU_HASHが効いてるのかi586とi686で差が開くのか解らんけど。
いろいろ不備があったのでもう一度設定見なおして全部再ビルドしてみる。
これはかなり期待がもてる! d >>107
distcleanする前に参考メモ残しときまつ。
config (uclibc, busybox, buildroot)
i686-configs.tar.gz http://usamimi.info/~linux/d/up/up0840.xxx
installed package list
external-deps.txt http://usamimi.info/~linux/d/up/up0841.xxx
※ 総容量 6.5Gもあった(dlディレクトリ除いて。fs imageタイプを複数選択しすぎてたので消費しすぎた)
で、主だった所の du -h
3.6G output/build
603M output/host
202M output/target
1.5G output/toolchain
ext2イメージサイズ (/boot/bzImage含む 4.7M)
223M output/images/rootfs.ext2 http://usamimi.info/~linux/d/up/up0842.png
.laファイルがこうなってしまう。
これってバグ? gccを入れた後にlibtoolを入れるとgccをリビルドしやがる
この辺りの挙動がわかんねぇなぁ……。 ちゃんと調べずに手探りでてきとうにやっているやつのダメパターン カーネルをビルドする前にlinux-menuconfigする方法無いかなぁ
二度手間になる Busyboxで日本語が化けないようにする方法てあるの?
初心者ですみません。
答えがあるなら「ある。なし」だけでお願いします。 無いとは言い切れないし、あるという表現も間違いだろう。
つまり114が作り直せば「ある」で、小手先では「ない」 http://wiki.openwrt.org/doc/howto/buildroot.exigence
OpenWRTのbuildrootが何気に凄い
元々ルータ用だけあってCPU対応もめっちゃ沢山あるし
ネットワークドライバの対応も殆ど網羅してる busyboxのviって、設定ファイルは読んでくれないの? busybox内蔵はおそろしく簡易版でそんな機能も設定変更などの機能も
存在しません
>>119 >>1さん。
もうスレ諦めた?
>TinyCore並に軽量化され自分の環境に最適化したシステムを作りませんか?
TinyCoreにビルドインされているそれらをベースで
FLTK1.1やら、uClibやら、busyboxを簡易日本語対応(制限付き)にした
ほうがよくねぇ?
動くのをモドキ(恐ろしく制限付き)で改造するほうが正しく動かすよりは
イケていると思うわ。
日本語だって入力変換はできず、カーソル移動に対応していなくても
表示だけできるなら恐ろしく使い勝手違うと思うんだが。 >>122
1 では無いけど、思うところがあったのでレス
> FLTK1.1やら、uClibやら、busyboxを簡易日本語対応(制限付き)にしたほうがよくねぇ?
fltk で日本語使うなら utf-8 対応の fltk-1.3 使うべき。
日本語入力は kinput2 みたいに xim にはとりあえず対応している。
ただローカルパッチ充てる必要もあった。
busybox の日本語対応って。日本語使って一番気になるのは vi の日本語対応だった。
ENABLE_FEATURE_VI_8BIT あたりを書き換えて強引に utf-8 出力させても
カーソル移動が全角文字に対応してないので、日本語編集には使えない。
wc_width() で幅拾おうにも、East Asian Ambiguous Width がまだ片付いてなく微妙。
現状だったら nano でも入れた方がマシかも知れん。 >>123
vi対応とかならnano使えばいいんじゃね?
Tinycore付属のEditorとか信じがたいほどバイナリーサイズが小さいよ。
fltk-1.1→ fltk-1.3
これバイナリーサイズが数倍に肥大してないか? nano で utf-8使えるようにするには
ncurses コンパイル時に --enable-widec 入れたり
別にワイド文字対応 ncursesw ライブラリ用意するハメになるんだよなぁ。
tinycore付属の editor。メモ帳代わりにちょうどいいんだけど、
X Window 上でないと使えない。
リモート・コンソールからのログインなんかで使えないんだよね。
やっぱりターミナル上で動く日本語対応エディタってのは欲しい。
それから、おいらの手元のfltk-1.3は
-rwxr-xr-x 1 root root 1102203 Jul 20 21:45 libfltk.so.1.3
-rwxr-xr-x 1 root root 22534 Jul 20 21:45 libfltk_forms.so.1.3
-rwxr-xr-x 1 root root 63360 Jul 20 21:45 libfltk_images.so.1.3
1.1に比べて、2倍ってところかな。
でもdillo入れたりしているし、
とりあえずでも日本語使える環境ってのは助かることが多い。 なんかスクリプトで書かれた日本語エディタってないの? 日本語対応スクリプトで簡易エディタを書くか、日本語処理もスクリプト内で独自にやる。
busyboxのビルトインを駆使すればなんとかなるだろうか? 最近はプログラムができないLinux使いがほとんど占めている。 busyboxのhttpdのcgiでserver sent eventは動作できますか? .mkファイル
いつのまにか
CONF_OPTが、CONF_OPTSと書くように
仕様かわった?
自分で追加したpackageで、configureのオプションがきかなくて戸惑ってしまった 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
NAA0FGJLEZ 僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
QOSGA 大分低レベルかつスレチですまんがinitramfsのbusyboxはネットワークコマンドが使えるじゃねえか
これならNFS経由でバックアップ&リストアもできるぜ