【BusyBox】BuildRoot【µClibc】at LINUX
【BusyBox】BuildRoot【µClibc】 - 暇つぶし2ch2:login:Penguin
11/12/19 17:49:43.69 EUu6BwLk.net
スレタイが……。
uClibcにしとけば良かった orz

興味のある方、もうやったぜという方、書き込み待ってます。

3:login:Penguin
11/12/19 18:11:34.24 EUu6BwLk.net
buildrootのコンフィグレーションは至って簡単です
カーネル再構築の時の make menuconfig と同じです
また make help でヘルプの出力が出来ます。

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

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

make するとGentoo の emerge -e world のように自動ダウンロード、ビルド、インストールを行い
rootfsのイメージ作成までやってくれます。


4:login:Penguin
11/12/19 18:27:22.89 QVRzm15/.net
TECH I シリーズ Vol.16 組み込みLinux入門
URLリンク(www.cqpub.co.jp)

組み込みLinuxの手引き
URLリンク(www26.atwiki.jp)

amazon組み込みlinuxのホームページ
URLリンク(www.amazon.co.jp)

体験!マイコンボードで組込みLinux
URLリンク(gihyo.jp)


5:login:Penguin
11/12/19 18:29:28.38 QVRzm15/.net
極小だとXなし、日本語なしでOk?


6:login:Penguin
11/12/19 18:36:16.65 EUu6BwLk.net
なんでもおkだけど出来るだけデスクトップを目標としたいのでXあり日本語ありのほうが。
とりあえず最初はX無し日本語無しで動作させて追加していくのがいいかと。
どうせallyesにするとコケまくりで頭爆発するのが落ちなので。

7:login:Penguin
11/12/19 18:38:42.49 QVRzm15/.net
Xありでもvesaだとドライバ選択不要だから楽かもね


8:login:Penguin
11/12/19 18:41:39.28 QVRzm15/.net
極端な話CUIなしにすればコマンドライン系は全部不要になるから
速度は上がるよ
カーネルとローダとライブラリとXだけだし
後は起動時のシェル


9:login:Penguin
11/12/19 18:42:11.75 QVRzm15/.net
開発の速度ね


10:login:Penguin
11/12/19 18:49:44.82 EUu6BwLk.net
実を言うとX入れて起動させるところまで行ってない。
buildrootの中からXの有無出来るのでお気楽に出来ると思うけど
一発でスムーズに最後まで行けないと思う。
で、CUIの部分は全部BusyBoxで済ませられる。
シェルもBusyBox ashで。
ブートローダが一番ネックかも。
インスコは簡単に出来ても実機に移してブートローダーがちゃんと機能するかどうか。

ひとつひとつ手作業でビルドするんじゃ無いので速度はあまり問題じゃないかも。
問題はこける場所が環境により人それぞれなので、そのための情報交換場所があればいいなと思い。
くだスレだと特殊な環境なので相手にされない可能性が大だと思って。

11:login:Penguin
11/12/19 18:57:46.73 QVRzm15/.net
通常のディストリで一番面倒なのは
パッケージ管理とかインストーラとかハード認識
だったりすると思うんだけど

ライブCDを作るイメージ?


12:login:Penguin
11/12/19 19:01:39.76 QVRzm15/.net
tiny core のisoイメージ50MB弱だけど
それよりもBuildRootの生成バイナリは小さいの?


13:login:Penguin
11/12/19 19:18:19.51 EUu6BwLk.net
あと作成した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など不必要な物を削除してビルドオプションもサイズ優先にするなど。

14:login:Penguin
11/12/19 19:25:22.67 EUu6BwLk.net
ハード認識は最低限自分の使ってるハードのドライバがあれば良いので
そのようにカーネル構築して、必要なXドライバだけ入れたらおk。
この辺りはGentoo, LFSでのカーネルビルド、BLFSでのXの構築と同じ。

15:login:Penguin
11/12/19 19:33:18.48 EUu6BwLk.net
uClibc使うだけならGentooでもemerge使って楽にクロスコンパイルできるんだけどね
所詮遊びなので固いことは抜きにしたほうが面白い。

16:login:Penguin
11/12/19 19:36:00.70 QVRzm15/.net
常用ではない?
開発環境は必要?

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



17:login:Penguin
11/12/19 19:43:42.32 EUu6BwLk.net
読み込み専用のLiveCD作ってしまったら常用するシステムでは無くなってしまうから。
開発環境は必要
釣りじゃなければ、とりあえずやってみた方が早いよ
落とすのはbuildroot1つだから

18:login:Penguin
11/12/19 19:45:48.29 QVRzm15/.net
puppyって常用可能だよ
ループバックファイルシステムに追加のアプリ追加する感じだし
そうじゃなくてbuildrootじゃなくてもいいだろって話


19:login:Penguin
11/12/19 19:48:40.18 EUu6BwLk.net
完成品をお求めならTCやPuppyをどうぞって事よ
BuildRootってのはディストリビューションではなく自動化するスクリプトだからね。
勘違いしないように。

20:login:Penguin
11/12/19 19:50:59.79 QVRzm15/.net
tinycoreを日本語化している連中は何だよという話になるぞ
tinycoreの類似ディストロじゃまずいの?
tinycoreライクなという話


21:login:Penguin
11/12/19 20:31:54.60 EUu6BwLk.net
>>19に書いたようにBuildRootはディストリビューションじゃないので実際の運用はLFSよりハードル高いです。
LFS,CLFSは手作業でビルドして行きますが、ブートスクリプト群も用意されている親切な
ディストリビューションの1つなのでその辺りは困りません。
BuildRootで構築するシステムは全て自分で書き上げて行きます。
もちろん>>20のような日本語化してくれる有志もいません。全部自分でやります。
まぁ日本語化と言っても1から作り上げるので完成された英語版ディストリビューションに
改めて日本語環境を追加する作業とは少し違います。

この説明がチンプンカンプンの人は手を出さないほうがいいでしょう。
あくまでも組み込みで利用されてるツール類を使って自分だけのLinuxシステムに仕上げるのが趣旨です。

22:login:Penguin
11/12/19 20:45:09.18 EUu6BwLk.net
URLリンク(usamimi.info)

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

正直マゾしか使えません。

23:login:Penguin
11/12/20 00:18:43.77 +Jd0w+7M.net
uclibcは小さいけどPC向けではない見たい
制御系の用途で使う物だと
glibcで良くない?
URLリンク(ja.wikipedia.org)
URLリンク(monoist.atmarkit.co.jp)


24:login:Penguin
11/12/20 00:50:54.31 Ezuo3GvF.net
>>23
glibcでいいならLFSでいいよ

>>1
関連スレ

25:login:Penguin
11/12/20 00:54:43.67 +Jd0w+7M.net
>>24
参加者には
glibcとuclibcの違いをきちんと説明した方が良いよ
制御系だと思わぬ所に流れるからね
じゃ落ちます

26:login:Penguin
11/12/20 19:26:31.00 Ezuo3GvF.net
Wikipedia見るくらいでいいんじゃないかな。
すげぇ他力本願だが、詳しいことは現役で組み込み開発やってる人に助言してもらおう
uclibcのmenuconfigでAll Locale選んどけばツールチェインはロケール要らないよな。

27:login:Penguin
11/12/20 19:55:10.89 +Jd0w+7M.net
でもこれやって工作員用PCになったりしない?


28:login:Penguin
11/12/20 20:20:08.61 Ezuo3GvF.net
そもそも実用的になるのかどうか?
NASとかに入れる事を考えると結構使えるかも知れない。
busyboxにhttpd,ftpd,sendmailが入ってるから案外。
でも全て簡易版なのでデーモンのログ取ったりできないからそこは工夫しなきゃダメだろうね。
別にbusyboxの内部コマンド全部使わなくてもいい。
X入れてKDEとかGNOME起動したら面白いだろうなぁ。

29:login:Penguin
11/12/20 21:13:13.62 Ezuo3GvF.net
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 じゃ無理ですた

30:login:Penguin
11/12/20 21:19:29.65 +Jd0w+7M.net
>>29
tiny coreを見て勉強しよう
fedoraだとtinycore.gzの中身が見れたよ
ブートローダにroot=の設定は無さそう


31:login:Penguin
11/12/21 00:22:44.60 nGJkyfEQ.net
なんと俺向けリアルタイムなスレなんだ
今Gentooで作ってるがbaselayout-liteが無くなったのがかなり痛い
baselayout-liteが使えれば適当にディレクトリ作って
ROOT=/hoge emerge baselayout-lite uclibc busybox
で/hoge以下にある程度完成しちゃうのに・・・

>>29
/dev/sr0はcdドライブでinitrdはメモリ上に展開した起動用極小Linux
だから目を付けてる所が間違ってる気がする
>>30
tinyはsyslinuxだし29はgrub使ってるから作法が違うかも

32:login:Penguin
11/12/21 00:26:46.70 RrG7qZMw.net
>>31
ちゃうわい
tinyは必要なもの全部initrd上に入ってるからroot指定が要らない


33:login:Penguin
11/12/21 00:40:54.25 nGJkyfEQ.net
ああ、そういう意味か
極小Linuxでもやり方が幾つもあるから勘違いしちゃった

34:login:Penguin
11/12/21 00:41:08.80 y0JXzoj1.net
isoにするならsyslinuxかなぁと漠然と思ってたんだけど
iso選んだらbuildrootが自動でgrub選択したのでそのまま出力してみた

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

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

>>31
>/dev/sr0はcdドライブでinitrdはメモリ上に展開した起動用極小Linux
>だから目を付けてる所が間違ってる気がする
てことは /dev/ram0 とか?

35:login:Penguin
11/12/21 00:47:01.24 y0JXzoj1.net
>tinyは必要なもの全部initrd上に入ってるからroot指定が要らない

んあ?initrdに全部入ってる場合は指定しなくてもいいのか。
つぅ事はカーネル設定見直すのが先か……。

36:login:Penguin
11/12/21 00:53:56.37 y0JXzoj1.net
ははw ソースとオブジェクトが容量取ってるんでdistcleanしたら
output/images/の中も消えてた。もう一度最初から…… orz

37:login:Penguin
11/12/21 00:55:41.61 nGJkyfEQ.net
ちょうど手元にあったGentooのLiveCDだと
append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/image.squashfs cdroot initrd=gentoo.igz
ってなってるね
image.squashfsの中身を見てないけどこれが多分ルートファイルシステムの実体なのかも

38:login:Penguin
11/12/21 00:59:34.43 y0JXzoj1.net
>>37
thx!
再チャレンジしてみる

39:login:Penguin
11/12/21 01:02:35.40 nGJkyfEQ.net
あーでもinitrd上に全部入れるってのはGentooのLiveCDとは作りが違う気がする
だから37みたくroot=/dev/ram0が上手くいくか判らん

40:login:Penguin
11/12/21 01:04:39.12 y0JXzoj1.net
おk
ぼちぼちやるお

41:login:Penguin
11/12/21 01:14:14.29 RrG7qZMw.net
ここ読もうこれ読めば分かる
URLリンク(nabe.blog.abk.nu)


42:login:Penguin
11/12/21 01:57:15.21 RrG7qZMw.net
OpenBlockS266へのBusyBox & uClibc環境の構築
URLリンク(www.asahi-net.or.jp)


43:login:Penguin
11/12/21 02:39:48.32 y0JXzoj1.net
>>41-42
情報増えてる


bearboxじゃなくてBareboxでした
"The Barebox bootloader, formerly known as U-Boot v2."
URLリンク(www.barebox.org)

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

U-ブートってU-ボートのもじりかなぁ

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

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

ネットワークの設定なんてしてないので止まるのはいいがタイムアウトしてくれない。
URLリンク(usamimi.info) ← 今日はココまで。

iso出力でgrubブート出来る事が解ったので、次はtarで出力してカスタマイズしてみる。

45:login:Penguin
11/12/21 06:35:06.84 sdouDURJ.net
oeがないな。

46:login:Penguin
11/12/22 01:38:51.87 DVzWKgf9.net
各 .config をdate +%sとか日付でバックアップ取っとかないと
いじくり倒してたら訳わからんようになるな。
こまめにdiffしましょう。

47:login:Penguin
11/12/22 06:50:02.27 gO2SIbFr.net
vcsつかえよ

48:login:Penguin
11/12/22 07:25:04.22 DVzWKgf9.net
これくらいの用途でもメリットあるかな?
正直ソース落とす以外で使ったこと無い。
これを機にgitの使い方も覚えるか。

49:login:Penguin
11/12/22 07:51:26.68 DVzWKgf9.net
URLリンク(www8.atwiki.jp)

ここ見て

git init
git add .

だけやってみた。おいおい覚えて行く事にする。
やる事増えたけど、1つ前向きになれた事に感謝する >>47

50:login:Penguin
11/12/22 08:10:16.97 DVzWKgf9.net

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

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

スレ違いなのに3発連投してしまった。脱線スマン。


51:login:Penguin
11/12/22 11:16:33.21 l8Jr17io.net
今手元に32MBのCFと64MBのスマートメディアとセレ900なマシンとEDEN533なマシンがある

さて、始めようか

52:login:Penguin
11/12/22 17:49:26.02 CcDfqTN1.net
>>50
あってるよ。あとはブランチを覚えたらファイル変更の管理ぐらいには使える。

53:login:Penguin
11/12/22 22:31:17.11 DVzWKgf9.net
>>52
thx!

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

スレリンク(linux板:868番)
URLリンク(bellard.org)


54:login:Penguin
11/12/23 07:05:10.98 rs9J8Bvg.net
完成品だけど、試すにはいいかと思う。

Aboriginal Linux
URLリンク(landley.net)

バイナリ
URLリンク(landley.net)

qemuのスクリプトが(゚д゚)ウマー

55:login:Penguin
11/12/23 12:49:17.19 rs9J8Bvg.net
grub> setup (hd0)
setup (hd0)
Floating point exception

(+д+)マズー

56:login:Penguin
11/12/24 03:13:31.92 IVXpbdA2.net
>>> 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でパス指定しなきゃダメなのだろうか……


57:login:Penguin
11/12/25 02:03:17.87 ztrTCFPx.net
URLリンク(agentoss.files.wordpress.com)

強者はいいなぁ。俺もここまで行きたい。
ところで2011.11はbuildrootの中からfluxboxも選べるようになってるね。

58:login:Penguin
11/12/25 21:28:08.90 AMr+onIH.net
>>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

って出てどうしても進まない

59:login:Penguin
11/12/25 23:21:07.10 AMr+onIH.net
なんかmake cleanとかmake linuxとかmake uclibcとか色々やりまくったら通った

60:login:Penguin
11/12/26 08:28:26.82 XqiiaRP+.net
気が早いですが、まとめWiki用意してみました。
Wikiaの垢が無くても匿名で編集出来ます。

URLリンク(ja.buildroot2ch.wikia.com)

61:login:Penguin
11/12/27 12:41:04.12 zsu5+2Wh.net
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (URLリンク(www.gnu.org))

gettext入ってるんだけどこれが出る。
恐らく target には入ってるけど toolchain に入ってないっていう事だと思うんだけどどうすればいいのか解らない。
uclibcのコンフィグやbuildrootのコンフィグで触るとこある?

62:login:Penguin
11/12/27 12:46:29.24 zsu5+2Wh.net
URLリンク(buildroot.uclibc.org)

こんなの見っけた。
意味解らんので試行錯誤してくるわ。(sage

63:login:Penguin
11/12/27 14:08:49.61 zsu5+2Wh.net
$ 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

問題無いように見えるんだが、サパーリ解らん。

64:login:Penguin
11/12/27 19:04:51.71 iWf/8CbW.net
wikiに今までやった事を書いてくれないか?
何をやっていて今どうなっているのかが分からない


65:login:Penguin
11/12/27 19:33:24.25 zsu5+2Wh.net
>>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

66:login:Penguin
11/12/27 21:06:12.91 iWf/8CbW.net
>>65
了解


67:login:Penguin
11/12/28 06:12:57.27 Kljx6HFy.net
再現させるならconfig もいるんじゃないの?

68:login:Penguin
11/12/28 10:21:31.77 POfFDA02.net
>>67
そうだけど、対象ハードが自分のという話なんで
configの共有にはハードとの対比が必要かも


69:login:Penguin
11/12/28 17:04:39.00 tJU1yMOK.net
ハードってカーネルぐらいでしょ。ttyとかあるけどさ。ある程度は共通の設定ができるよ。最初から理解しないままあれもこれも入れるとはまるよ。

70:login:Penguin
11/12/28 21:50:33.21 POfFDA02.net
ドライバー関係の話


71:login:Penguin
11/12/29 03:22:50.27 JIOrRX5M.net
gettext-develが入ってないとか?

72:login:Penguin
11/12/29 11:23:10.15 1w9P5X2E.net
Starting networkでハングしてログイン画面まで行けないんだけど何が原因?
シリアルコンソールなんて使った事無いしttyS0とか全然解らんわ。

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

なんか色々ダメすぎる漏れ


73:login:Penguin
11/12/31 18:04:28.12 fPuxyltp.net
URLリンク(lists.busybox.net)

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

::respawn:-/bin/sh

エロい人、これの解説おながいします

74:login:Penguin
11/12/31 20:15:27.85 Qm7AGbqn.net
つ man 5 inittab
オンラインのmanあるからそっちで見れ


75:login:Penguin
11/12/31 23:45:26.80 fPuxyltp.net
ui

76:login:Penguin
12/01/02 15:07:59.54 52Cxx8ul.net
/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
URLリンク(usamimi.info)

ぼすkて

77:login:Penguin
12/01/04 11:34:39.58 TxiK97bn.net
基本的な事を伺います。BuildRootでは

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

この順序で合ってますか?

78:login:Penguin
12/01/05 17:18:49.64 XKmhJjsO.net
>>76だけど、binutils-2.21.1ではuClibcのLDSO_GNU_HASH_SUPPORTは必須?

79:login:Penguin
12/01/05 19:42:39.24 vMUVT+fu.net
思うんだけど、BusyBox的なguiアプリってあるのかな?
見た目は流行りのブラウザベースで他はすっからかんのシステムかと思いきや、
そのブラウザをリネームするだけで実はコンソールになったりエディタになったりしたらすごく面白い気がするんだけど。

80:login:Penguin
12/01/06 01:38:13.31 NVzhDOgP.net
>>79
コンソールはちょっと無理っぽいが、ブラウザさえあればクラウドサービスで大抵何でも出来そう

81:login:Penguin
12/01/06 01:51:38.93 sOOwOD3G.net
まあjslinuxがあるからブラウザ内でBuildRootのコンソールが飼えるんだけどね。
それが実用的かは置いといて

82:login:Penguin
12/01/06 02:49:38.81 sOOwOD3G.net
そういえばBusyBox内蔵の言語ってawk位かな?
forthとかlispとかLL言語がもう少しあるかと思ったんだけど意外だな。

83:login:Penguin
12/01/06 14:08:29.94 t4AJ5S69.net
ash とか sed のことも時には思い出してあげてください。

84:login:Penguin
12/01/06 15:17:05.09 96C2qdU+.net
参考
URLリンク(www.k4.dion.ne.jp)

ところでBusyBoxのviって、$HOME/.exrc 見てくれないよな。
BusyBox viの代わりに URLリンク(ex-vi.sourceforge.net) 入れてくれればいいのにな。
package/vi作ってConfig.inとvi.mk書けばいいんだろうけど。

85:login:Penguin
12/01/06 15:54:38.70 96C2qdU+.net
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の命名に少し悩む。

86:login:Penguin
12/01/06 16:06:46.00 t4AJ5S69.net
busyboxのviはUTF-8にうまく対応してないんだよなぁ。
自分の手元では、ちょっとパッチ充てて日本語が出るようにしている。
でもカーソル移動はめちゃくちゃ。
wchar_width() 見てカーソル移動するようにしたい。

87:login:Penguin
12/01/12 01:13:25.66 aBH0ZQ7q.net
busyboxのashとhushの違いって何?

88:login:Penguin
12/01/13 01:14:13.22 yFrqhjHk.net
ターゲット用開発環境が全然入らない orz

89:login:Penguin
12/01/13 17:47:50.53 yFrqhjHk.net
locale切ったらスムーズに進むな。

パッケージ管理システムのipkgってfakerootに入れてtarに固めるようなもん?
ipkgのHowToサイト無いかな。

90:login:Penguin
12/01/13 18:26:57.03 yFrqhjHk.net
ipkgの解説ぐぐるとZaurusばかり出てくるな。
Wikipediaにも一応あったけどdpkgに似てるとか。

あと気になってるのがBusyBoxのashなんだが、ヒストリーを上下するとカーソル位置が行頭に来るんだよな。
行末には出来ないのかなと思って諦めてたんだが、uClibcで配布されてるsystem-imageで起動すると行末に来てる。
これ実現するにはどこ弄ればいい?

91:login:Penguin
12/01/13 19:50:57.77 yFrqhjHk.net
[ buildroot portage ] でぐぐってたらこんなサイト発見

Alpine Linux
URLリンク(alpinelinux.org)

92:login:Penguin
12/01/13 23:05:54.00 yFrqhjHk.net
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>

どういう時に有益なのか解らないけど。ヘルプにはダーティーなんちゃらとか書いてたが。

93:login:Penguin
12/01/13 23:31:05.53 yFrqhjHk.net
Alpine Linux鯖重すぎ
248,913,920 17.5K/s 時間 3h 13m

起動してみたんだがuclibc + busyboxのLinuxでは完成度高いかも知れん
ちゃんとリポジトリもあるし、Gentooではお馴染みのOpenRC使ってる。
apkの使い方覚えてこの鳥参考に仕上げていこうかな。

94:login:Penguin
12/01/14 01:20:09.37 PHfEIANe.net
binutilsとgccのバージョン落としてlocale/i18n切ってなんとか開発環境入れてみたけど
gcc -vすると--enable-languages=c

何でよ orz

95:login:Penguin
12/01/14 12:43:16.92 3iiZIWfH.net
URLリンク(alpinelinux.org)

96:login:Penguin
12/01/14 16:15:50.44 PHfEIANe.net
alpineは.gnu.hash使ってないな。uClibcで構築するときはsysvのほうがトラブル少ないんだろうか?

97:login:Penguin
12/01/15 03:59:45.08 F8n6Mxav.net
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してるっす。

98:login:Penguin
12/01/15 06:08:24.73 F8n6Mxav.net
gcc-uclibc-4.x.mkの556行目辺りが怪しい気がするんだが解らん
今日はもう止め

99:login:Penguin
12/01/16 01:16:53.35 amA36E2V.net
Yes! I can!
Yheeeeeeeeeee!

binutils-2.21
gcc-4.3.6

がtargetに入った!
あとは残りの開発環境入れてXに挑戦だ!
binutils-2.21.1は無理

100:login:Penguin
12/01/16 03:05:58.93 amA36E2V.net
TinyXをチョイスしてビルドしてる最中だがスムーズにビルドが進みすぎて逆に怖い……。
Xのドライバに印付けるの忘れてた

てかもう誰もいないのココ?

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

$ ls output/host/usr/include/
確かに無い。ついでに $ ls output/build/ をみたらソースディレクトリが無い!
imlib2のビルドメッセージが流れてるのをこの目で見たのに……畜生!
何か変だ。

102:login:Penguin
12/01/16 03:32:07.50 amA36E2V.net
コンフィグを見直したらimlib2がどこにも無い
俺が見たのは幻か……。
それとTinyXなるものはX11ドライバが無かった。
モジュラー化したXorgよりTinyXというものに興味があったのに。

Xvesaとは違うものなのか? 同じなのか?
多分これだと思うんだが XvesaがTinyなXという意味なのか?
URLリンク(www.pps.jussieu.fr)


103:login:Penguin
12/01/16 04:07:05.41 amA36E2V.net
URLリンク(git.buildroot.net)

imlib2は次のstableバージョン 2012.02辺りで来そうだ。
2011.11には入ってなかったのでfluxbox入れる場合はchrootしてソースからmakeするしか無いみたい。
XvesaとTwmにしてみたけど太るな。buildrootのinitramfsは全部入れちゃうようなので手作業で小さいinitramfs作らなきゃならんのだろうか。

104:login:Penguin
12/01/16 06:34:49.60 amA36E2V.net
Xvesaチェックしても入らないみたいでXorgにした。

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

注意
xorg入れる人は先にpkg-config入れときましょう。

105:login:Penguin
12/01/16 08:10:39.72 amA36E2V.net
>>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というオプションが欲しい

106:login:Penguin
12/01/16 21:27:55.21 amA36E2V.net
URLリンク(usamimi.info)

初X11起動記念

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

いろいろ不備があったのでもう一度設定見なおして全部再ビルドしてみる。
これはかなり期待がもてる!

107:login:Penguin
12/01/16 21:38:44.63 r+9gw9qD.net
gj.
俺は見てるぞ

108:login:Penguin
12/01/16 23:23:57.08 amA36E2V.net
>>107

distcleanする前に参考メモ残しときまつ。

config (uclibc, busybox, buildroot)
i686-configs.tar.gz URLリンク(usamimi.info)
installed package list
external-deps.txt URLリンク(usamimi.info)

※ 総容量 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

109:login:Penguin
12/01/17 23:22:51.47 VwSiXNcD.net
URLリンク(usamimi.info)

.laファイルがこうなってしまう。
これってバグ?

110:login:Penguin
12/01/18 02:11:57.49 xdtqrjwP.net
gccを入れた後にlibtoolを入れるとgccをリビルドしやがる
この辺りの挙動がわかんねぇなぁ……。

111:login:Penguin
12/01/18 07:23:37.16 oLvz/DCl.net
ちゃんと調べずに手探りでてきとうにやっているやつのダメパターン

112:login:Penguin
12/01/18 09:25:07.76 xdtqrjwP.net
へ?

113:login:Penguin
12/01/18 21:39:31.48 QbGYqkPb.net
カーネルをビルドする前にlinux-menuconfigする方法無いかなぁ
二度手間になる

114:login:Penguin
12/02/16 12:45:48.19 MVdH3Qoa.net
Busyboxで日本語が化けないようにする方法てあるの?
初心者ですみません。
答えがあるなら「ある。なし」だけでお願いします。

115:login:Penguin
12/02/16 13:53:45.91 exfv8ONE.net
ないときは「なし」って言えなくない?

116:login:Penguin
12/02/17 19:04:53.65 rzwyxerq.net
無いとは言い切れないし、あるという表現も間違いだろう。
つまり114が作り直せば「ある」で、小手先では「ない」

117:login:Penguin
12/11/08 10:08:42.67 vqKVzpdg.net
URLリンク(wiki.openwrt.org)
OpenWRTのbuildrootが何気に凄い
元々ルータ用だけあってCPU対応もめっちゃ沢山あるし
ネットワークドライバの対応も殆ど網羅してる

118:login:Penguin
12/11/26 12:20:16.48 8hQw9Ah4.net
URLリンク(www.ibm.com)
次スレキタ━━━(゚∀゚)━━━ !!!!!

119:login:Penguin
12/12/15 16:09:14.62 HkSG+FjY.net
busyboxのviって、設定ファイルは読んでくれないの?

120:login:Penguin
12/12/16 00:21:43.52 Q4qfmTUd.net
busybox viで起動した?

121:login:Penguin
13/06/14 16:00:26.15 Ctl0MeEo.net
busybox内蔵はおそろしく簡易版でそんな機能も設定変更などの機能も

存在しません

>>119

122:login:Penguin
13/07/18 NY:AN:NY.AN AGHQl3Gc.net
>>1さん。
もうスレ諦めた?
>TinyCore並に軽量化され自分の環境に最適化したシステムを作りませんか?
TinyCoreにビルドインされているそれらをベースで
FLTK1.1やら、uClibやら、busyboxを簡易日本語対応(制限付き)にした
ほうがよくねぇ?
動くのをモドキ(恐ろしく制限付き)で改造するほうが正しく動かすよりは
イケていると思うわ。
日本語だって入力変換はできず、カーソル移動に対応していなくても
表示だけできるなら恐ろしく使い勝手違うと思うんだが。

123:login:Penguin
13/07/24 NY:AN:NY.AN LJu3FtRy.net
>>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 でも入れた方がマシかも知れん。

124:login:Penguin
13/07/26 NY:AN:NY.AN 4D0G6Fh1.net
>>123
vi対応とかならnano使えばいいんじゃね?
Tinycore付属のEditorとか信じがたいほどバイナリーサイズが小さいよ。
fltk-1.1→ fltk-1.3
これバイナリーサイズが数倍に肥大してないか?

125:login:Penguin
13/07/26 NY:AN:NY.AN l1XHsah9.net
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入れたりしているし、
とりあえずでも日本語使える環境ってのは助かることが多い。

126:login:Penguin
14/12/04 19:45:18.48 gRfMJXpE.net
なんかスクリプトで書かれた日本語エディタってないの?

127:login:Penguin
14/12/05 23:22:09.40 +LUN8iRQ.net
>>126
どういう意味?

128:login:Penguin
14/12/06 09:35:25.08 r0JwZPZe.net
日本語対応スクリプトで簡易エディタを書くか、日本語処理もスクリプト内で独自にやる。
busyboxのビルトインを駆使すればなんとかなるだろうか?

129:login:Penguin
14/12/14 20:48:19.57 P/ofgKzs.net
最近はプログラムができないLinux使いがほとんど占めている。

130:login:Penguin
15/05/26 00:52:18.50 9sSrL88L.net
busyboxのhttpdのcgiでserver sent eventは動作できますか?

131:login:Penguin
15/06/15 22:18:31.84 0p2kz2oy.net
.mkファイル
いつのまにか
CONF_OPTが、CONF_OPTSと書くように
仕様かわった?
自分で追加したpackageで、configureのオプションがきかなくて戸惑ってしまった

132:login:Penguin
15/11/06 04:59:39.26 ZHGAnwBZ.net
hello worldぐらい書けるわバカヤロー

133:login:Penguin
17/12/29 15:41:19.17 S/CsVkMC.net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
NAA0FGJLEZ

134:login:Penguin
18/05/22 09:49:31.65 Czl6p0FW.net
僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
QOSGA

135:login:Penguin
20/05/09 07:46:10 sCLli00m.net
>>133
誰だよ、お前。

136:login:Penguin
22/07/13 18:36:52.89 vgTu3WaR.net
大分低レベルかつスレチですまんがinitramfsのbusyboxはネットワークコマンドが使えるじゃねえか
これならNFS経由でバックアップ&リストアもできるぜ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch