【BusyBox】BuildRoot【µClibc】
【BusyBox】BuildRoot【µClibc】
元スレ
1 :login:Penguin:2011/12/19(月) 17:47:04.08 ID:EUu6BwLk.net
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/
77 :login:Penguin:2012/01/04(水) 11:34:39.58 ID:TxiK97bn.net
基本的な事を伺います。BuildRootでは
1. 母艦でToolchainをビルド
2. ToolchainでHostをビルド
3. HostでTargetをビルド
この順序で合ってますか?
47 :login:Penguin:2011/12/22(木) 06:50:02.27 ID:gO2SIbFr.net
87 :login:Penguin:2012/01/12(木) 01:13:25.66 ID:aBH0ZQ7q.net
65 :login:Penguin:2011/12/27(火) 19:33:24.25 ID: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
35 :login:Penguin:2011/12/21(水) 00:47:01.24 ID:y0JXzoj1.net
>tinyは必要なもの全部initrd上に入ってるからroot指定が要らない
んあ?initrdに全部入ってる場合は指定しなくてもいいのか。
つぅ事はカーネル設定見直すのが先か……。
45 :login:Penguin:2011/12/21(水) 06:35:06.84 ID:sdouDURJ.net
82 :login:Penguin:2012/01/06(金) 02:49:38.81 ID:sOOwOD3G.net
そういえばBusyBox内蔵の言語ってawk位かな?
forthとかlispとかLL言語がもう少しあるかと思ったんだけど意外だな。
112 :login:Penguin:2012/01/18(水) 09:25:07.76 ID:xdtqrjwP.net
92 :login:Penguin:2012/01/13(金) 23:05:54.00 ID: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>
どういう時に有益なのか解らないけど。ヘルプにはダーティーなんちゃらとか書いてたが。
54 :login:Penguin:2011/12/23(金) 07:05:10.98 ID:rs9J8Bvg.net
132 :login:Penguin:2015/11/06(金) 04:59:39.26 ID:ZHGAnwBZ.net
126 :login:Penguin:2014/12/04(木) 19:45:18.48 ID:gRfMJXpE.net
なんかスクリプトで書かれた日本語エディタってないの?
91 :login:Penguin:2012/01/13(金) 19:50:57.77 ID:yFrqhjHk.net
21 :login:Penguin:2011/12/19(月) 20:31:54.60 ID:EUu6BwLk.net
>>19に書いたようにBuildRootはディストリビューションじゃないので実際の運用はLFSよりハードル高いです。
LFS,CLFSは手作業でビルドして行きますが、ブートスクリプト群も用意されている親切な
ディストリビューションの1つなのでその辺りは困りません。
BuildRootで構築するシステムは全て自分で書き上げて行きます。
もちろん>>20のような日本語化してくれる有志もいません。全部自分でやります。
まぁ日本語化と言っても1から作り上げるので完成された英語版ディストリビューションに
改めて日本語環境を追加する作業とは少し違います。
この説明がチンプンカンプンの人は手を出さないほうがいいでしょう。
あくまでも組み込みで利用されてるツール類を使って自分だけのLinuxシステムに仕上げるのが趣旨です。
52 :login:Penguin:2011/12/22(木) 17:49:26.02 ID:CcDfqTN1.net
>>50
あってるよ。あとはブランチを覚えたらファイル変更の管理ぐらいには使える。
83 :login:Penguin:2012/01/06(金) 14:08:29.94 ID:t4AJ5S69.net
ash とか sed のことも時には思い出してあげてください。
128 :login:Penguin:2014/12/06(土) 09:35:25.08 ID:r0JwZPZe.net
日本語対応スクリプトで簡易エディタを書くか、日本語処理もスクリプト内で独自にやる。
busyboxのビルトインを駆使すればなんとかなるだろうか?
10 :login:Penguin:2011/12/19(月) 18:49:44.82 ID:EUu6BwLk.net
実を言うとX入れて起動させるところまで行ってない。
buildrootの中からXの有無出来るのでお気楽に出来ると思うけど
一発でスムーズに最後まで行けないと思う。
で、CUIの部分は全部BusyBoxで済ませられる。
シェルもBusyBox ashで。
ブートローダが一番ネックかも。
インスコは簡単に出来ても実機に移してブートローダーがちゃんと機能するかどうか。
ひとつひとつ手作業でビルドするんじゃ無いので速度はあまり問題じゃないかも。
問題はこける場所が環境により人それぞれなので、そのための情報交換場所があればいいなと思い。
くだスレだと特殊な環境なので相手にされない可能性が大だと思って。
71 :login:Penguin:2011/12/29(木) 03:22:50.27 ID:JIOrRX5M.net
42 :login:Penguin:2011/12/21(水) 01:57:15.21 ID:RrG7qZMw.net
80 :login:Penguin:2012/01/06(金) 01:38:13.31 ID:NVzhDOgP.net
>>79
コンソールはちょっと無理っぽいが、ブラウザさえあればクラウドサービスで大抵何でも出来そう
121 :login:Penguin:2013/06/14(金) 16:00:26.15 ID:Ctl0MeEo.net
busybox内蔵はおそろしく簡易版でそんな機能も設定変更などの機能も
存在しません
>>119
53 :login:Penguin:2011/12/22(木) 22:31:17.11 ID:DVzWKgf9.net
97 :login:Penguin:2012/01/15(日) 03:59:45.08 ID: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してるっす。
44 :login:Penguin:2011/12/21(水) 04:37:32.45 ID:y0JXzoj1.net
make menuconfigからやり直したらカーネルパニックはクリアした。
カーネルコンフィグは弄ってない
make uclibc-menuconfigでもういちど確認してみただけなのに。
気づかないとこで何かやってしまったんだろうけど何か解らない
Filesystem images
-*- ext2 root filesystem
Compression method (lzma) ← ここをnoneからlzmaに変えたくらい
関係無いよなぁ……。原因が解らず気持ち悪い。
あと起動オプション、root=は無し。デフォのまま
kernel /kernel
initrd /initrd
ネットワークの設定なんてしてないので止まるのはいいがタイムアウトしてくれない。
← 今日はココまで。
iso出力でgrubブート出来る事が解ったので、次はtarで出力してカスタマイズしてみる。
86 :login:Penguin:2012/01/06(金) 16:06:46.00 ID:t4AJ5S69.net
busyboxのviはUTF-8にうまく対応してないんだよなぁ。
自分の手元では、ちょっとパッチ充てて日本語が出るようにしている。
でもカーソル移動はめちゃくちゃ。
wchar_width() 見てカーソル移動するようにしたい。
86 :login:Penguin:2012/01/06(金) 16:06:46.00 ID:t4AJ5S69.net
busyboxのviはUTF-8にうまく対応してないんだよなぁ。
自分の手元では、ちょっとパッチ充てて日本語が出るようにしている。
でもカーソル移動はめちゃくちゃ。
wchar_width() 見てカーソル移動するようにしたい。
5 :login:Penguin:2011/12/19(月) 18:29:28.38 ID:QVRzm15/.net
48 :login:Penguin:2011/12/22(木) 07:25:04.22 ID:DVzWKgf9.net
これくらいの用途でもメリットあるかな?
正直ソース落とす以外で使ったこと無い。
これを機にgitの使い方も覚えるか。
26 :login:Penguin:2011/12/20(火) 19:26:31.00 ID:Ezuo3GvF.net
Wikipedia見るくらいでいいんじゃないかな。
すげぇ他力本願だが、詳しいことは現役で組み込み開発やってる人に助言してもらおう
uclibcのmenuconfigでAll Locale選んどけばツールチェインはロケール要らないよな。
75 :login:Penguin:2011/12/31(土) 23:45:26.80 ID:fPuxyltp.net
18 :login:Penguin:2011/12/19(月) 19:45:48.29 ID:QVRzm15/.net
puppyって常用可能だよ
ループバックファイルシステムに追加のアプリ追加する感じだし
そうじゃなくてbuildrootじゃなくてもいいだろって話
100 :login:Penguin:2012/01/16(月) 03:05:58.93 ID:amA36E2V.net
TinyXをチョイスしてビルドしてる最中だがスムーズにビルドが進みすぎて逆に怖い……。
Xのドライバに印付けるの忘れてた
てかもう誰もいないのココ?
73 :login:Penguin:2011/12/31(土) 18:04:28.12 ID:fPuxyltp.net
69 :login:Penguin:2011/12/28(水) 17:04:39.00 ID:tJU1yMOK.net
ハードってカーネルぐらいでしょ。ttyとかあるけどさ。ある程度は共通の設定ができるよ。最初から理解しないままあれもこれも入れるとはまるよ。
109 :login:Penguin:2012/01/17(火) 23:22:51.47 ID:VwSiXNcD.net
.laファイルがこうなってしまう。
これってバグ?
38 :login:Penguin:2011/12/21(水) 00:59:34.43 ID:y0JXzoj1.net
31 :login:Penguin:2011/12/21(水) 00:22:44.60 ID: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使ってるから作法が違うかも
62 :login:Penguin:2011/12/27(火) 12:46:29.24 ID:zsu5+2Wh.net
111 :login:Penguin:2012/01/18(水) 07:23:37.16 ID:oLvz/DCl.net
ちゃんと調べずに手探りでてきとうにやっているやつのダメパターン
106 :login:Penguin:2012/01/16(月) 21:27:55.21 ID:amA36E2V.net
初X11起動記念
この後、xf86-video-fbdev入れたらXが起動しなくなった(笑)
しかし仮想マシンのメモリを128Mにしてswap無しの状態でAlpineと比較したら激しく高速
GNU_HASHが効いてるのかi586とi686で差が開くのか解らんけど。
いろいろ不備があったのでもう一度設定見なおして全部再ビルドしてみる。
これはかなり期待がもてる!
3 :login:Penguin:2011/12/19(月) 18:11:34.24 ID: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のイメージ作成までやってくれます。
11 :login:Penguin:2011/12/19(月) 18:57:46.73 ID:QVRzm15/.net
通常のディストリで一番面倒なのは
パッケージ管理とかインストーラとかハード認識
だったりすると思うんだけど
ライブCDを作るイメージ?
84 :login:Penguin:2012/01/06(金) 15:17:05.09 ID:96C2qdU+.net
134 :login:Penguin:2018/05/22(火) 09:49:31.65 ID:Czl6p0FW.net
僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
QOSGA
15 :login:Penguin:2011/12/19(月) 19:33:18.48 ID:EUu6BwLk.net
uClibc使うだけならGentooでもemerge使って楽にクロスコンパイルできるんだけどね
所詮遊びなので固いことは抜きにしたほうが面白い。
14 :login:Penguin:2011/12/19(月) 19:25:22.67 ID:EUu6BwLk.net
ハード認識は最低限自分の使ってるハードのドライバがあれば良いので
そのようにカーネル構築して、必要なXドライバだけ入れたらおk。
この辺りはGentoo, LFSでのカーネルビルド、BLFSでのXの構築と同じ。
24 :login:Penguin:2011/12/20(火) 00:50:54.31 ID:Ezuo3GvF.net
133 :login:Penguin:2017/12/29(金) 15:41:19.17 ID:S/CsVkMC.net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
NAA0FGJLEZ
58 :login:Penguin:2011/12/25(日) 21:28:08.90 ID: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
って出てどうしても進まない
90 :login:Penguin:2012/01/13(金) 18:26:57.03 ID:yFrqhjHk.net
ipkgの解説ぐぐるとZaurusばかり出てくるな。
Wikipediaにも一応あったけどdpkgに似てるとか。
あと気になってるのがBusyBoxのashなんだが、ヒストリーを上下するとカーソル位置が行頭に来るんだよな。
行末には出来ないのかなと思って諦めてたんだが、uClibcで配布されてるsystem-imageで起動すると行末に来てる。
これ実現するにはどこ弄ればいい?
36 :login:Penguin:2011/12/21(水) 00:53:56.37 ID:y0JXzoj1.net
ははw ソースとオブジェクトが容量取ってるんでdistcleanしたら
output/images/の中も消えてた。もう一度最初から…… orz
81 :login:Penguin:2012/01/06(金) 01:51:38.93 ID:sOOwOD3G.net
まあjslinuxがあるからブラウザ内でBuildRootのコンソールが飼えるんだけどね。
それが実用的かは置いといて
127 :login:Penguin:2014/12/05(金) 23:22:09.40 ID:+LUN8iRQ.net
118 :login:Penguin:2012/11/26(月) 12:20:16.48 ID:8hQw9Ah4.net
96 :login:Penguin:2012/01/14(土) 16:15:50.44 ID:PHfEIANe.net
alpineは.gnu.hash使ってないな。uClibcで構築するときはsysvのほうがトラブル少ないんだろうか?
107 :login:Penguin:2012/01/16(月) 21:38:44.63 ID:r+9gw9qD.net
120 :login:Penguin:2012/12/16(日) 00:21:43.52 ID:Q4qfmTUd.net
39 :login:Penguin:2011/12/21(水) 01:02:35.40 ID:nGJkyfEQ.net
あーでもinitrd上に全部入れるってのはGentooのLiveCDとは作りが違う気がする
だから37みたくroot=/dev/ram0が上手くいくか判らん
2 :login:Penguin:2011/12/19(月) 17:49:43.69 ID:EUu6BwLk.net
スレタイが……。
uClibcにしとけば良かった orz
興味のある方、もうやったぜという方、書き込み待ってます。
34 :login:Penguin:2011/12/21(水) 00:41:08.80 ID:y0JXzoj1.net
isoにするならsyslinuxかなぁと漠然と思ってたんだけど
iso選んだらbuildrootが自動でgrub選択したのでそのまま出力してみた
あとbearboxっていうブートローダもあるんだね。
ブートローダは4つほどサポートされてる。
bearbox
grub
syslinux
(ここ名前忘れた。bearboxの前身らしい)
>>31
>/dev/sr0はcdドライブでinitrdはメモリ上に展開した起動用極小Linux
>だから目を付けてる所が間違ってる気がする
てことは /dev/ram0 とか?
115 :login:Penguin:2012/02/16(木) 13:53:45.91 ID:exfv8ONE.net
63 :login:Penguin:2011/12/27(火) 14:08:49.61 ID: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
問題無いように見えるんだが、サパーリ解らん。
130 :login:Penguin:2015/05/26(火) 00:52:18.50 ID:9sSrL88L.net
busyboxのhttpdのcgiでserver sent eventは動作できますか?
33 :login:Penguin:2011/12/21(水) 00:40:54.25 ID:nGJkyfEQ.net
ああ、そういう意味か
極小Linuxでもやり方が幾つもあるから勘違いしちゃった
56 :login:Penguin:2011/12/24(土) 03:13:31.92 ID: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でパス指定しなきゃダメなのだろうか……
110 :login:Penguin:2012/01/18(水) 02:11:57.49 ID:xdtqrjwP.net
gccを入れた後にlibtoolを入れるとgccをリビルドしやがる
この辺りの挙動がわかんねぇなぁ……。
98 :login:Penguin:2012/01/15(日) 06:08:24.73 ID:F8n6Mxav.net
gcc-uclibc-4.x.mkの556行目辺りが怪しい気がするんだが解らん
今日はもう止め
67 :login:Penguin:2011/12/28(水) 06:12:57.27 ID:Kljx6HFy.net
125 :login:Penguin:2013/07/26(金) NY:AN:NY.AN ID: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入れたりしているし、
とりあえずでも日本語使える環境ってのは助かることが多い。
レスを投稿する(名前省略可)