【BusyBox】BuildRoot【µClibc】

このエントリーをはてなブックマークに追加
1login:Penguin
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/
2login:Penguin:2011/12/19(月) 17:49:43.69 ID:EUu6BwLk
スレタイが……。
uClibcにしとけば良かった orz

興味のある方、もうやったぜという方、書き込み待ってます。
3login:Penguin:2011/12/19(月) 18:11:34.24 ID:EUu6BwLk
buildrootのコンフィグレーションは至って簡単です
カーネル再構築の時の make menuconfig と同じです
また make help でヘルプの出力が出来ます。

busybox, linux, uclibcのメニューコンフィグも個別に呼び出せます

$ make busybox-menuconfig
$ make linux-menuconfig
$ make uclibc-menuconfig

make するとGentoo の emerge -e world のように自動ダウンロード、ビルド、インストールを行い
rootfsのイメージ作成までやってくれます。
4login:Penguin:2011/12/19(月) 18:27:22.89 ID:QVRzm15/
TECH I シリーズ Vol.16 組み込みLinux入門
http://www.cqpub.co.jp/hanbai/books/33/33271.htm

組み込みLinuxの手引き
http://www26.atwiki.jp/funa_tk/pages/1.html

amazon組み込みlinuxのホームページ
http://www.amazon.co.jp/%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BFLinux/lm/2B6WV11PWM03J

体験!マイコンボードで組込みLinux
http://gihyo.jp/dev/serial/01/micom-linux
5login:Penguin:2011/12/19(月) 18:29:28.38 ID:QVRzm15/
極小だとXなし、日本語なしでOk?
6login:Penguin:2011/12/19(月) 18:36:16.65 ID:EUu6BwLk
なんでもおkだけど出来るだけデスクトップを目標としたいのでXあり日本語ありのほうが。
とりあえず最初はX無し日本語無しで動作させて追加していくのがいいかと。
どうせallyesにするとコケまくりで頭爆発するのが落ちなので。
7login:Penguin:2011/12/19(月) 18:38:42.49 ID:QVRzm15/
Xありでもvesaだとドライバ選択不要だから楽かもね
8login:Penguin:2011/12/19(月) 18:41:39.28 ID:QVRzm15/
極端な話CUIなしにすればコマンドライン系は全部不要になるから
速度は上がるよ
カーネルとローダとライブラリとXだけだし
後は起動時のシェル
9login:Penguin:2011/12/19(月) 18:42:11.75 ID:QVRzm15/
開発の速度ね
10login:Penguin:2011/12/19(月) 18:49:44.82 ID:EUu6BwLk
実を言うとX入れて起動させるところまで行ってない。
buildrootの中からXの有無出来るのでお気楽に出来ると思うけど
一発でスムーズに最後まで行けないと思う。
で、CUIの部分は全部BusyBoxで済ませられる。
シェルもBusyBox ashで。
ブートローダが一番ネックかも。
インスコは簡単に出来ても実機に移してブートローダーがちゃんと機能するかどうか。

ひとつひとつ手作業でビルドするんじゃ無いので速度はあまり問題じゃないかも。
問題はこける場所が環境により人それぞれなので、そのための情報交換場所があればいいなと思い。
くだスレだと特殊な環境なので相手にされない可能性が大だと思って。
11login:Penguin:2011/12/19(月) 18:57:46.73 ID:QVRzm15/
通常のディストリで一番面倒なのは
パッケージ管理とかインストーラとかハード認識
だったりすると思うんだけど

ライブCDを作るイメージ?
12login:Penguin:2011/12/19(月) 19:01:39.76 ID:QVRzm15/
tiny core のisoイメージ50MB弱だけど
それよりもBuildRootの生成バイナリは小さいの?
13login:Penguin:2011/12/19(月) 19:18:19.51 ID:EUu6BwLk
あと作成したrootfsの中に開発環境も含めたいんだけど
過去にやったときはuClibcにリンクさせたgccを作る事ができず
結局toolchainのgcc使って試行錯誤しながら放り込んだ。
その時のメモが残ってないので再チャレンジ。
ビルド終わってchrootで一通り弄り倒したので仮想にパーティション作成するところから始めてくる。
grubの壁さえ越えりゃこっちのもん。

>>11
パッケージ管理はお好み
一応ipkgというのがあるけど別途rpmやdebianutils入れたほうがいい。慣れた物で。
インストーラは要りません。>>1に書いてるけど配布目的じゃないので。
インストールはbuildrootで生成されたディスクイメージを目的のデバイスへ転送という形

>>12
そこは何を選択するかによって違ってくるしLiveCDにするなら圧縮FSの差も出てくる。
打倒な所はSquashFSだけで読み込み専用だけど、unionfsも入れて常用LiveCDにするかはお好み。
TinyCoreのようにfltkのアプリも作れば出来るかも知れないけど、そこを目標にするのは趣旨が違う。
あくまでも自分で使う小さいシステムを作るのが目的なので最小を目指すかどうかもお好み。
TCより小さくできるかも知れないし、TCではやってないXorgとGNOME3とかKDE4とかにチャレンジするもヨシ。
X無しのext2イメージだけどカーネルも入れて30MBになった。(-O2 でビルド)
色々入れまくってTCより小さくするのは難しいかも。
.h,.a,.laなど不必要な物を削除してビルドオプションもサイズ優先にするなど。
14login:Penguin:2011/12/19(月) 19:25:22.67 ID:EUu6BwLk
ハード認識は最低限自分の使ってるハードのドライバがあれば良いので
そのようにカーネル構築して、必要なXドライバだけ入れたらおk。
この辺りはGentoo, LFSでのカーネルビルド、BLFSでのXの構築と同じ。
15login:Penguin:2011/12/19(月) 19:33:18.48 ID:EUu6BwLk
uClibc使うだけならGentooでもemerge使って楽にクロスコンパイルできるんだけどね
所詮遊びなので固いことは抜きにしたほうが面白い。
16login:Penguin:2011/12/19(月) 19:36:00.70 ID:QVRzm15/
常用ではない?
開発環境は必要?

tiny core カーネル2.9MB rootfs未圧縮 15MB強 Xvesaあり

17login:Penguin:2011/12/19(月) 19:43:42.32 ID:EUu6BwLk
読み込み専用のLiveCD作ってしまったら常用するシステムでは無くなってしまうから。
開発環境は必要
釣りじゃなければ、とりあえずやってみた方が早いよ
落とすのはbuildroot1つだから
18login:Penguin:2011/12/19(月) 19:45:48.29 ID:QVRzm15/
puppyって常用可能だよ
ループバックファイルシステムに追加のアプリ追加する感じだし
そうじゃなくてbuildrootじゃなくてもいいだろって話
19login:Penguin:2011/12/19(月) 19:48:40.18 ID:EUu6BwLk
完成品をお求めならTCやPuppyをどうぞって事よ
BuildRootってのはディストリビューションではなく自動化するスクリプトだからね。
勘違いしないように。
20login:Penguin:2011/12/19(月) 19:50:59.79 ID:QVRzm15/
tinycoreを日本語化している連中は何だよという話になるぞ
tinycoreの類似ディストロじゃまずいの?
tinycoreライクなという話
21login:Penguin:2011/12/19(月) 20:31:54.60 ID:EUu6BwLk
>>19に書いたようにBuildRootはディストリビューションじゃないので実際の運用はLFSよりハードル高いです。
LFS,CLFSは手作業でビルドして行きますが、ブートスクリプト群も用意されている親切な
ディストリビューションの1つなのでその辺りは困りません。
BuildRootで構築するシステムは全て自分で書き上げて行きます。
もちろん>>20のような日本語化してくれる有志もいません。全部自分でやります。
まぁ日本語化と言っても1から作り上げるので完成された英語版ディストリビューションに
改めて日本語環境を追加する作業とは少し違います。

この説明がチンプンカンプンの人は手を出さないほうがいいでしょう。
あくまでも組み込みで利用されてるツール類を使って自分だけのLinuxシステムに仕上げるのが趣旨です。
22login:Penguin:2011/12/19(月) 20:45:09.18 ID:EUu6BwLk
http://usamimi.info/~linux/d/up/up0801.png

まず、このSSを見てください。
vboxでchrootしただけの状態ですが、見事に何にもありません。
シェルはBusyBoxのashです。
/etc/profileはありますが、最小限のPS1です。

正直マゾしか使えません。
23login:Penguin:2011/12/20(火) 00:18:43.77 ID:+Jd0w+7M
uclibcは小さいけどPC向けではない見たい
制御系の用途で使う物だと
glibcで良くない?
http://ja.wikipedia.org/wiki/%CE%9CClinux
http://monoist.atmarkit.co.jp/mn/articles/0809/03/news115.html
24login:Penguin:2011/12/20(火) 00:50:54.31 ID:Ezuo3GvF
>>23
glibcでいいならLFSでいいよ

>>1
関連スレ
25login:Penguin:2011/12/20(火) 00:54:43.67 ID:+Jd0w+7M
>>24
参加者には
glibcとuclibcの違いをきちんと説明した方が良いよ
制御系だと思わぬ所に流れるからね
じゃ落ちます
26login:Penguin:2011/12/20(火) 19:26:31.00 ID:Ezuo3GvF
Wikipedia見るくらいでいいんじゃないかな。
すげぇ他力本願だが、詳しいことは現役で組み込み開発やってる人に助言してもらおう
uclibcのmenuconfigでAll Locale選んどけばツールチェインはロケール要らないよな。
27login:Penguin:2011/12/20(火) 19:55:10.89 ID:+Jd0w+7M
でもこれやって工作員用PCになったりしない?
28login:Penguin:2011/12/20(火) 20:20:08.61 ID:Ezuo3GvF
そもそも実用的になるのかどうか?
NASとかに入れる事を考えると結構使えるかも知れない。
busyboxにhttpd,ftpd,sendmailが入ってるから案外。
でも全て簡易版なのでデーモンのログ取ったりできないからそこは工夫しなきゃダメだろうね。
別にbusyboxの内部コマンド全部使わなくてもいい。
X入れてKDEとかGNOME起動したら面白いだろうなぁ。
29login:Penguin:2011/12/20(火) 21:13:13.62 ID:Ezuo3GvF
isoで出力するとoutput/images/rootfs.iso9660が出来た
vboxが.iso9660では認識しないので.isoにリネーム
仮想マシンを起動するとgrub 0.97が立ち上がって

Hard Drive (first partition)
BuildRoot ISO9660 image

BuildRootでeを押して確認
kernel /kernel
initrd /initrd

とりあえず、BuildRootで起動してみる
カーネルパニック

rootfs.isoの中を見る
/[BOOT]/Bootable_NoEmulation.img
/boot/grub/menu.lst
/boot/grub/stage2_eltolito
/boot.catalog
/kernel
/initrd

root= を指定しろと言うんだけどinitrdの展開先ってどこになるんだろ?
kernel /kernel root=/dev/sr0 じゃ無理ですた
30login:Penguin:2011/12/20(火) 21:19:29.65 ID:+Jd0w+7M
>>29
tiny coreを見て勉強しよう
fedoraだとtinycore.gzの中身が見れたよ
ブートローダにroot=の設定は無さそう
31login:Penguin:2011/12/21(水) 00:22:44.60 ID:nGJkyfEQ
なんと俺向けリアルタイムなスレなんだ
今Gentooで作ってるがbaselayout-liteが無くなったのがかなり痛い
baselayout-liteが使えれば適当にディレクトリ作って
ROOT=/hoge emerge baselayout-lite uclibc busybox
で/hoge以下にある程度完成しちゃうのに・・・

>>29
/dev/sr0はcdドライブでinitrdはメモリ上に展開した起動用極小Linux
だから目を付けてる所が間違ってる気がする
>>30
tinyはsyslinuxだし29はgrub使ってるから作法が違うかも
32login:Penguin:2011/12/21(水) 00:26:46.70 ID:RrG7qZMw
>>31
ちゃうわい
tinyは必要なもの全部initrd上に入ってるからroot指定が要らない
33login:Penguin:2011/12/21(水) 00:40:54.25 ID:nGJkyfEQ
ああ、そういう意味か
極小Linuxでもやり方が幾つもあるから勘違いしちゃった
34login:Penguin:2011/12/21(水) 00:41:08.80 ID:y0JXzoj1
isoにするならsyslinuxかなぁと漠然と思ってたんだけど
iso選んだらbuildrootが自動でgrub選択したのでそのまま出力してみた

あとbearboxっていうブートローダもあるんだね。
ブートローダは4つほどサポートされてる。

bearbox
grub
syslinux
(ここ名前忘れた。bearboxの前身らしい)

>>31
>/dev/sr0はcdドライブでinitrdはメモリ上に展開した起動用極小Linux
>だから目を付けてる所が間違ってる気がする
てことは /dev/ram0 とか?
35login:Penguin:2011/12/21(水) 00:47:01.24 ID:y0JXzoj1
>tinyは必要なもの全部initrd上に入ってるからroot指定が要らない

んあ?initrdに全部入ってる場合は指定しなくてもいいのか。
つぅ事はカーネル設定見直すのが先か……。
36login:Penguin:2011/12/21(水) 00:53:56.37 ID:y0JXzoj1
ははw ソースとオブジェクトが容量取ってるんでdistcleanしたら
output/images/の中も消えてた。もう一度最初から…… orz
37login:Penguin:2011/12/21(水) 00:55:41.61 ID:nGJkyfEQ
ちょうど手元にあったGentooのLiveCDだと
append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/image.squashfs cdroot initrd=gentoo.igz
ってなってるね
image.squashfsの中身を見てないけどこれが多分ルートファイルシステムの実体なのかも
38login:Penguin:2011/12/21(水) 00:59:34.43 ID:y0JXzoj1
>>37
thx!
再チャレンジしてみる
39login:Penguin:2011/12/21(水) 01:02:35.40 ID:nGJkyfEQ
あーでもinitrd上に全部入れるってのはGentooのLiveCDとは作りが違う気がする
だから37みたくroot=/dev/ram0が上手くいくか判らん
40login:Penguin:2011/12/21(水) 01:04:39.12 ID:y0JXzoj1
おk
ぼちぼちやるお
41login:Penguin:2011/12/21(水) 01:14:14.29 ID:RrG7qZMw
ここ読もうこれ読めば分かる
http://nabe.blog.abk.nu/0496
42login:Penguin:2011/12/21(水) 01:57:15.21 ID:RrG7qZMw
OpenBlockS266へのBusyBox & uClibc環境の構築
http://www.asahi-net.or.jp/~jg3h-snj/bb_and_uclibc.html
43login:Penguin:2011/12/21(水) 02:39:48.32 ID:y0JXzoj1
>>41-42
情報増えてる
d

bearboxじゃなくてBareboxでした
"The Barebox bootloader, formerly known as U-Boot v2."
http://www.barebox.org

失念してたのはこれ
"Das U-Boot"

U-ブートってU-ボートのもじりかなぁ
44login:Penguin:2011/12/21(水) 04:37:32.45 ID:y0JXzoj1
make menuconfigからやり直したらカーネルパニックはクリアした。
カーネルコンフィグは弄ってない
make uclibc-menuconfigでもういちど確認してみただけなのに。
気づかないとこで何かやってしまったんだろうけど何か解らない
Filesystem images
-*- ext2 root filesystem
   Compression method (lzma) ← ここをnoneからlzmaに変えたくらい
関係無いよなぁ……。原因が解らず気持ち悪い。

あと起動オプション、root=は無し。デフォのまま
kernel /kernel
initrd /initrd

ネットワークの設定なんてしてないので止まるのはいいがタイムアウトしてくれない。
http://usamimi.info/~linux/d/up/up0803.png ← 今日はココまで。

iso出力でgrubブート出来る事が解ったので、次はtarで出力してカスタマイズしてみる。
45login:Penguin:2011/12/21(水) 06:35:06.84 ID:sdouDURJ
oeがないな。
46login:Penguin:2011/12/22(木) 01:38:51.87 ID:DVzWKgf9
各 .config をdate +%sとか日付でバックアップ取っとかないと
いじくり倒してたら訳わからんようになるな。
こまめにdiffしましょう。
47login:Penguin:2011/12/22(木) 06:50:02.27 ID:gO2SIbFr
vcsつかえよ
48login:Penguin:2011/12/22(木) 07:25:04.22 ID:DVzWKgf9
これくらいの用途でもメリットあるかな?
正直ソース落とす以外で使ったこと無い。
これを機にgitの使い方も覚えるか。
49login:Penguin:2011/12/22(木) 07:51:26.68 ID:DVzWKgf9
http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/gittutorial.html

ここ見て

git init
git add .

だけやってみた。おいおい覚えて行く事にする。
やる事増えたけど、1つ前向きになれた事に感謝する >>47
50login:Penguin:2011/12/22(木) 08:10:16.97 ID:DVzWKgf9

$ git commit
$ git add -f output/build/busybox-1.19.3/.config
$ git diff --cache

なるほど。こりゃ便利だ。
ってこういう使い方であってるのかな……。

スレ違いなのに3発連投してしまった。脱線スマン。
51login:Penguin:2011/12/22(木) 11:16:33.21 ID:l8Jr17io
今手元に32MBのCFと64MBのスマートメディアとセレ900なマシンとEDEN533なマシンがある

さて、始めようか
52login:Penguin:2011/12/22(木) 17:49:26.02 ID:CcDfqTN1
>>50
あってるよ。あとはブランチを覚えたらファイル変更の管理ぐらいには使える。
53login:Penguin:2011/12/22(木) 22:31:17.11 ID:DVzWKgf9
>>52
thx!

これ今知ったんだけど面白そうなので貼っとく。
uClibc + BusyBoxで構築してる

http://engawa.2ch.net/test/read.cgi/linux/1295530575/868
http://bellard.org/jslinux/
54login:Penguin:2011/12/23(金) 07:05:10.98 ID:rs9J8Bvg
完成品だけど、試すにはいいかと思う。

Aboriginal Linux
http://landley.net/code/aboriginal/

バイナリ
http://landley.net/code/aboriginal/downloads/binaries

qemuのスクリプトが(゚д゚)ウマー
55login:Penguin:2011/12/23(金) 12:49:17.19 ID:rs9J8Bvg
grub> setup (hd0)
setup (hd0)
Floating point exception

(+д+)マズー
56login:Penguin:2011/12/24(土) 03:13:31.92 ID:IVXpbdA2
>>> binutils 2.21.1 Building
{ 省略 }
./archures.c:24 から include されたファイル中archive.c:130 から include されたファイル中:
:
sysdep.h:173:21:./sysdep.h:173:21: error: error: libintl.h: そのようなファイルやディレクトリはありませんlibintl.h: そのようなファイルやディレクトリはありません

archive.c: In function ‘_bfd_write_archive_contents’:
archive.c:2120: 警告: implicit declaration of function ‘dgettext’
archive.c:2120: 警告: incompatible implicit declaration of built-in function ‘dgettext’
make[5]: *** [archures.lo] エラー 1

---
output/toolchain/uClibc-0.9.32/include/libintl.h
↑これを
output/host/usr/include/
output/target/usr/include/
にシンボリックリンク作ってみたけど、やっぱ No Such になる。

gcc行を見ると -I ./../include しか無かったので直接binutils $(srcdir)のincludeディレクトリに放り込んだ。
コンパイルは進んだがリンク段階でエラーになる

../libiberty/libiberty.a -lintl
libtool: link: warning: library `/usr/local/pub/buildroot/output/host/usr/i686-unknown-linux-uclibc/sysroot/usr/lib/libintl.la' was moved.
{ libtool: link: ... 省略 }
make[1]: *** [all] エラー 2

uClibcのヘッダはどこにもインストールされないのかな?
binutils.mkかBR2_BINUTILS_EXTRA_CONFIG_OPTIONSでパス指定しなきゃダメなのだろうか……
57login:Penguin:2011/12/25(日) 02:03:17.87 ID:ztrTCFPx
http://agentoss.files.wordpress.com/2011/03/buildroot-tuto3-xorg.png

強者はいいなぁ。俺もここまで行きたい。
ところで2011.11はbuildrootの中からfluxboxも選べるようになってるね。
58login:Penguin:2011/12/25(日) 21:28:08.90 ID:AMr+onIH
>>57
すげーなそれ
ウチでは

make[2]: `lib/ld-uClibc.so' is up to date.
  LD libuClibc-0.9.32.so
libc/libc_so.a(sigaction.os): In function `sigaction':
sigaction.c:(.text.__sigaction+0x20): undefined reference to `__emutls_get_address'
libc/libc_so.a(close.oS): In function `__GI___close_nocancel':
(.text+0x55): undefined reference to `__libc_errno'
collect2: ld returned 1 exit status
make[1]: *** [lib/libc.so] エラー 1

って出てどうしても進まない
59login:Penguin:2011/12/25(日) 23:21:07.10 ID:AMr+onIH
なんかmake cleanとかmake linuxとかmake uclibcとか色々やりまくったら通った
60login:Penguin:2011/12/26(月) 08:28:26.82 ID:XqiiaRP+
気が早いですが、まとめWiki用意してみました。
Wikiaの垢が無くても匿名で編集出来ます。

http://ja.buildroot2ch.wikia.com/wiki/BuildRoot2ch_Wiki
61login:Penguin:2011/12/27(火) 12:41:04.12 ID:zsu5+2Wh
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html)

gettext入ってるんだけどこれが出る。
恐らく target には入ってるけど toolchain に入ってないっていう事だと思うんだけどどうすればいいのか解らない。
uclibcのコンフィグやbuildrootのコンフィグで触るとこある?
62login:Penguin:2011/12/27(火) 12:46:29.24 ID:zsu5+2Wh
http://buildroot.uclibc.org/buildroot.html#gettext-integration

こんなの見っけた。
意味解らんので試行錯誤してくるわ。(sage
63login:Penguin:2011/12/27(火) 14:08:49.61 ID:zsu5+2Wh
$ grep -i locale .config
BR2_ENABLE_LOCALE=y
# BR2_ENABLE_LOCALE_PURGE is not set
BR2_NEEDS_GETTEXT_IF_LOCALE=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y

$ grep -i libintl .config
BR2_PACKAGE_LIBINTL=y

$ grep -i gettext .config
BR2_NEEDS_GETTEXT=y
BR2_NEEDS_GETTEXT_IF_LOCALE=y
BR2_PACKAGE_GETTEXT=y

問題無いように見えるんだが、サパーリ解らん。
64login:Penguin:2011/12/27(火) 19:04:51.71 ID:iWf/8CbW
wikiに今までやった事を書いてくれないか?
何をやっていて今どうなっているのかが分からない
65login:Penguin:2011/12/27(火) 19:33:24.25 ID:zsu5+2Wh
>>64
今までやった事

$ tar jxvf buildroot-2011.11.tar.bz2
$ cd buildroot-2011.11
$ make config
$ make busybox-menuconfig
$ make uclibc-menuconfig
$ make
$ make linux-menuconfig
$ make
66login:Penguin:2011/12/27(火) 21:06:12.91 ID:iWf/8CbW
>>65
了解
67login:Penguin:2011/12/28(水) 06:12:57.27 ID:Kljx6HFy
再現させるならconfig もいるんじゃないの?
68login:Penguin:2011/12/28(水) 10:21:31.77 ID:POfFDA02
>>67
そうだけど、対象ハードが自分のという話なんで
configの共有にはハードとの対比が必要かも
69login:Penguin:2011/12/28(水) 17:04:39.00 ID:tJU1yMOK
ハードってカーネルぐらいでしょ。ttyとかあるけどさ。ある程度は共通の設定ができるよ。最初から理解しないままあれもこれも入れるとはまるよ。
70login:Penguin:2011/12/28(水) 21:50:33.21 ID:POfFDA02
ドライバー関係の話
71login:Penguin:2011/12/29(木) 03:22:50.27 ID:JIOrRX5M
gettext-develが入ってないとか?
72login:Penguin:2011/12/29(木) 11:23:10.15 ID:1w9P5X2E
Starting networkでハングしてログイン画面まで行けないんだけど何が原因?
シリアルコンソールなんて使った事無いしttyS0とか全然解らんわ。

話変わるけどBusyBoxはランレベルが無くて仮想コンソール使いたければsysvinit使わないと
ダメらしいが試してみようにも有効、無効にする場所も解らね。

なんか色々ダメすぎる漏れ
73login:Penguin:2011/12/31(土) 18:04:28.12 ID:fPuxyltp
http://lists.busybox.net/pipermail/buildroot/2010-November/039006.html

これで、起動した━(゚∀゚)━!
年内には無理かなと諦めてたけどプロンプトでますた!

::respawn:-/bin/sh

エロい人、これの解説おながいします
74login:Penguin:2011/12/31(土) 20:15:27.85 ID:Qm7AGbqn
つ man 5 inittab
オンラインのmanあるからそっちで見れ
75login:Penguin:2011/12/31(土) 23:45:26.80 ID:fPuxyltp
ui
76login:Penguin:2012/01/02(月) 15:07:59.54 ID:52Cxx8ul
/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../i686-pc-linux-gnu/bin/as: error while loading shared libraries: libc.so.0: cannot open shared object file: No such file or directory
make[3]: *** [sysinfo.o] エラー 1

これ母艦のlibc.so.0がエラーって事ですか?
母艦はglibcなんでlibc.so.6 -> libc-2.13.so なんだけどぉ。

binutils build log
http://usamimi.info/~linux/d/up/up0829.xxx

ぼすkて
77login:Penguin:2012/01/04(水) 11:34:39.58 ID:TxiK97bn
基本的な事を伺います。BuildRootでは

1. 母艦でToolchainをビルド
2. ToolchainでHostをビルド
3. HostでTargetをビルド

この順序で合ってますか?
78login:Penguin:2012/01/05(木) 17:18:49.64 ID:XKmhJjsO
>>76だけど、binutils-2.21.1ではuClibcのLDSO_GNU_HASH_SUPPORTは必須?
79login:Penguin:2012/01/05(木) 19:42:39.24 ID:vMUVT+fu
思うんだけど、BusyBox的なguiアプリってあるのかな?
見た目は流行りのブラウザベースで他はすっからかんのシステムかと思いきや、
そのブラウザをリネームするだけで実はコンソールになったりエディタになったりしたらすごく面白い気がするんだけど。
80login:Penguin:2012/01/06(金) 01:38:13.31 ID:NVzhDOgP
>>79
コンソールはちょっと無理っぽいが、ブラウザさえあればクラウドサービスで大抵何でも出来そう
81login:Penguin:2012/01/06(金) 01:51:38.93 ID:sOOwOD3G
まあjslinuxがあるからブラウザ内でBuildRootのコンソールが飼えるんだけどね。
それが実用的かは置いといて
82login:Penguin:2012/01/06(金) 02:49:38.81 ID:sOOwOD3G
そういえばBusyBox内蔵の言語ってawk位かな?
forthとかlispとかLL言語がもう少しあるかと思ったんだけど意外だな。
83login:Penguin:2012/01/06(金) 14:08:29.94 ID:t4AJ5S69
ash とか sed のことも時には思い出してあげてください。
84login:Penguin:2012/01/06(金) 15:17:05.09 ID:96C2qdU+
参考
http://www.k4.dion.ne.jp/~linux/busybox/

ところでBusyBoxのviって、$HOME/.exrc 見てくれないよな。
BusyBox viの代わりに http://ex-vi.sourceforge.net/ 入れてくれればいいのにな。
package/vi作ってConfig.inとvi.mk書けばいいんだろうけど。
85login:Penguin:2012/01/06(金) 15:54:38.70 ID:96C2qdU+
package/vi/Config.in と package/vi/vi.mk 書いてから package/Config.in 見たら

if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/vim/Config.in"
endif

Vimがあったのかよ!
Show Othersしなきゃ出てこねぇって盲点だったわ orz

でもまぁex-viのほうが小さいしviコンパチなんでvimよりex-viのほうがいいかもだが、
tiny-vimとex-viならどっちがいいんだろうか?

それとex-vi, vi, exでBR2の命名に少し悩む。
86login:Penguin:2012/01/06(金) 16:06:46.00 ID:t4AJ5S69
busyboxのviはUTF-8にうまく対応してないんだよなぁ。
自分の手元では、ちょっとパッチ充てて日本語が出るようにしている。
でもカーソル移動はめちゃくちゃ。
wchar_width() 見てカーソル移動するようにしたい。
87login:Penguin:2012/01/12(木) 01:13:25.66 ID:aBH0ZQ7q
busyboxのashとhushの違いって何?
88login:Penguin:2012/01/13(金) 01:14:13.22 ID:yFrqhjHk
ターゲット用開発環境が全然入らない orz
89login:Penguin:2012/01/13(金) 17:47:50.53 ID:yFrqhjHk
locale切ったらスムーズに進むな。

パッケージ管理システムのipkgってfakerootに入れてtarに固めるようなもん?
ipkgのHowToサイト無いかな。
90login:Penguin:2012/01/13(金) 18:26:57.03 ID:yFrqhjHk
ipkgの解説ぐぐるとZaurusばかり出てくるな。
Wikipediaにも一応あったけどdpkgに似てるとか。

あと気になってるのがBusyBoxのashなんだが、ヒストリーを上下するとカーソル位置が行頭に来るんだよな。
行末には出来ないのかなと思って諦めてたんだが、uClibcで配布されてるsystem-imageで起動すると行末に来てる。
これ実現するにはどこ弄ればいい?
91login:Penguin:2012/01/13(金) 19:50:57.77 ID:yFrqhjHk
[ buildroot portage ] でぐぐってたらこんなサイト発見

Alpine Linux
http://alpinelinux.org/
92login:Penguin:2012/01/13(金) 23:05:54.00 ID:yFrqhjHk
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>

どういう時に有益なのか解らないけど。ヘルプにはダーティーなんちゃらとか書いてたが。
93login:Penguin:2012/01/13(金) 23:31:05.53 ID:yFrqhjHk
Alpine Linux鯖重すぎ
248,913,920 17.5K/s 時間 3h 13m

起動してみたんだがuclibc + busyboxのLinuxでは完成度高いかも知れん
ちゃんとリポジトリもあるし、Gentooではお馴染みのOpenRC使ってる。
apkの使い方覚えてこの鳥参考に仕上げていこうかな。
94login:Penguin:2012/01/14(土) 01:20:09.37 ID:PHfEIANe
binutilsとgccのバージョン落としてlocale/i18n切ってなんとか開発環境入れてみたけど
gcc -vすると--enable-languages=c

何でよ orz
95login:Penguin:2012/01/14(土) 12:43:16.92 ID:3iiZIWfH
96login:Penguin:2012/01/14(土) 16:15:50.44 ID:PHfEIANe
alpineは.gnu.hash使ってないな。uClibcで構築するときはsysvのほうがトラブル少ないんだろうか?
97login:Penguin:2012/01/15(日) 03:59:45.08 ID:F8n6Mxav
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してるっす。
98login:Penguin:2012/01/15(日) 06:08:24.73 ID:F8n6Mxav
gcc-uclibc-4.x.mkの556行目辺りが怪しい気がするんだが解らん
今日はもう止め
99login:Penguin:2012/01/16(月) 01:16:53.35 ID:amA36E2V
Yes! I can!
Yheeeeeeeeeee!

binutils-2.21
gcc-4.3.6

がtargetに入った!
あとは残りの開発環境入れてXに挑戦だ!
binutils-2.21.1は無理
100login:Penguin:2012/01/16(月) 03:05:58.93 ID:amA36E2V
TinyXをチョイスしてビルドしてる最中だがスムーズにビルドが進みすぎて逆に怖い……。
Xのドライバに印付けるの忘れてた

てかもう誰もいないのココ?
101login:Penguin:2012/01/16(月) 03:18:17.49 ID:amA36E2V
と書いてる間にfluxboxのビルドエラーで止まってた orz
--
ImageImlib2.cc:27:20: error: Imlib2.h: そのようなファイルやディレクトリはありません
--
むぅ、imlib2はビルド完了してるのに何故だ

$ ls output/host/usr/include/
確かに無い。ついでに $ ls output/build/ をみたらソースディレクトリが無い!
imlib2のビルドメッセージが流れてるのをこの目で見たのに……畜生!
何か変だ。
102login:Penguin:2012/01/16(月) 03:32:07.50 ID:amA36E2V
コンフィグを見直したらimlib2がどこにも無い
俺が見たのは幻か……。
それとTinyXなるものはX11ドライバが無かった。
モジュラー化したXorgよりTinyXというものに興味があったのに。

Xvesaとは違うものなのか? 同じなのか?
多分これだと思うんだが XvesaがTinyなXという意味なのか?
http://www.pps.jussieu.fr/~jch/software/kdrive.html
103login:Penguin:2012/01/16(月) 04:07:05.41 ID:amA36E2V
http://git.buildroot.net/buildroot/commit/?id=5ddcdb4ceb4eba32d4e32b1e2201df2836bbabf2

imlib2は次のstableバージョン 2012.02辺りで来そうだ。
2011.11には入ってなかったのでfluxbox入れる場合はchrootしてソースからmakeするしか無いみたい。
XvesaとTwmにしてみたけど太るな。buildrootのinitramfsは全部入れちゃうようなので手作業で小さいinitramfs作らなきゃならんのだろうか。
104login:Penguin:2012/01/16(月) 06:34:49.60 ID:amA36E2V
Xvesaチェックしても入らないみたいでXorgにした。

で、ここで失敗。xorg-serverだの何だの入れた後にpkg-config入れたせいだと思うんだけど
x11-driver関連が全部こける。

注意
xorg入れる人は先にpkg-config入れときましょう。
105login:Penguin:2012/01/16(月) 08:10:39.72 ID:amA36E2V
>>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というオプションが欲しい
106login:Penguin:2012/01/16(月) 21:27:55.21 ID:amA36E2V
http://usamimi.info/~linux/d/up/up0839.png

初X11起動記念

この後、xf86-video-fbdev入れたらXが起動しなくなった(笑)
しかし仮想マシンのメモリを128Mにしてswap無しの状態でAlpineと比較したら激しく高速
GNU_HASHが効いてるのかi586とi686で差が開くのか解らんけど。

いろいろ不備があったのでもう一度設定見なおして全部再ビルドしてみる。
これはかなり期待がもてる!
107login:Penguin:2012/01/16(月) 21:38:44.63 ID:r+9gw9qD
gj.
俺は見てるぞ
108login:Penguin:2012/01/16(月) 23:23:57.08 ID:amA36E2V
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
109login:Penguin:2012/01/17(火) 23:22:51.47 ID:VwSiXNcD
http://usamimi.info/~linux/d/up/up0842.png

.laファイルがこうなってしまう。
これってバグ?
110login:Penguin:2012/01/18(水) 02:11:57.49 ID:xdtqrjwP
gccを入れた後にlibtoolを入れるとgccをリビルドしやがる
この辺りの挙動がわかんねぇなぁ……。
111login:Penguin:2012/01/18(水) 07:23:37.16 ID:oLvz/DCl
ちゃんと調べずに手探りでてきとうにやっているやつのダメパターン
112login:Penguin:2012/01/18(水) 09:25:07.76 ID:xdtqrjwP
へ?
113login:Penguin:2012/01/18(水) 21:39:31.48 ID:QbGYqkPb
カーネルをビルドする前にlinux-menuconfigする方法無いかなぁ
二度手間になる
114login:Penguin:2012/02/16(木) 12:45:48.19 ID:MVdH3Qoa
Busyboxで日本語が化けないようにする方法てあるの?
初心者ですみません。
答えがあるなら「ある。なし」だけでお願いします。
115login:Penguin:2012/02/16(木) 13:53:45.91 ID:exfv8ONE
ないときは「なし」って言えなくない?
116login:Penguin:2012/02/17(金) 19:04:53.65 ID:rzwyxerq
無いとは言い切れないし、あるという表現も間違いだろう。
つまり114が作り直せば「ある」で、小手先では「ない」
117login:Penguin:2012/11/08(木) 10:08:42.67 ID:vqKVzpdg
http://wiki.openwrt.org/doc/howto/buildroot.exigence
OpenWRTのbuildrootが何気に凄い
元々ルータ用だけあってCPU対応もめっちゃ沢山あるし
ネットワークドライバの対応も殆ど網羅してる
118login:Penguin:2012/11/26(月) 12:20:16.48 ID:8hQw9Ah4
http://www.ibm.com/developerworks/jp/linux/library/l-yocto-linux/
次スレキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
119login:Penguin:2012/12/15(土) 16:09:14.62 ID:HkSG+FjY
busyboxのviって、設定ファイルは読んでくれないの?
120login:Penguin:2012/12/16(日) 00:21:43.52 ID:Q4qfmTUd
busybox viで起動した?
121login:Penguin:2013/06/14(金) 16:00:26.15 ID:Ctl0MeEo
busybox内蔵はおそろしく簡易版でそんな機能も設定変更などの機能も

存在しません

>>119
122login:Penguin:2013/07/18(木) NY:AN:NY.AN ID:AGHQl3Gc
>>1さん。
もうスレ諦めた?
>TinyCore並に軽量化され自分の環境に最適化したシステムを作りませんか?
TinyCoreにビルドインされているそれらをベースで
FLTK1.1やら、uClibやら、busyboxを簡易日本語対応(制限付き)にした
ほうがよくねぇ?
動くのをモドキ(恐ろしく制限付き)で改造するほうが正しく動かすよりは
イケていると思うわ。
日本語だって入力変換はできず、カーソル移動に対応していなくても
表示だけできるなら恐ろしく使い勝手違うと思うんだが。
123login:Penguin:2013/07/24(水) NY:AN:NY.AN ID:LJu3FtRy
>>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 でも入れた方がマシかも知れん。
124login:Penguin:2013/07/26(金) NY:AN:NY.AN ID:4D0G6Fh1
>>123
vi対応とかならnano使えばいいんじゃね?
Tinycore付属のEditorとか信じがたいほどバイナリーサイズが小さいよ。
fltk-1.1→ fltk-1.3
これバイナリーサイズが数倍に肥大してないか?
125login:Penguin:2013/07/26(金) NY:AN:NY.AN ID:l1XHsah9
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入れたりしているし、
とりあえずでも日本語使える環境ってのは助かることが多い。
126login:Penguin:2014/12/02(火) 00:14:53.98 ID:plPRNAuJ
busybox最強伝説
127login:Penguin:2014/12/04(木) 19:45:18.48 ID:gRfMJXpE
なんかスクリプトで書かれた日本語エディタってないの?
128login:Penguin:2014/12/05(金) 23:22:09.40 ID:+LUN8iRQ
>>127
どういう意味?
129login:Penguin:2014/12/06(土) 09:35:25.08 ID:r0JwZPZe
日本語対応スクリプトで簡易エディタを書くか、日本語処理もスクリプト内で独自にやる。
busyboxのビルトインを駆使すればなんとかなるだろうか?
130login:Penguin
最近はプログラムができないLinux使いがほとんど占めている。