【BusyBox】BuildRoot【µClibc】
スレタイが……。
uClibcにしとけば良かった orz
興味のある方、もうやったぜという方、書き込み待ってます。
buildrootのコンフィグレーションは至って簡単です
カーネル再構築の時の make menuconfig と同じです
また make help でヘルプの出力が出来ます。
busybox, linux, uclibcのメニューコンフィグも個別に呼び出せます
$ make busybox-menuconfig
$ make linux-menuconfig
$ make uclibc-menuconfig
make するとGentoo の emerge -e world のように自動ダウンロード、ビルド、インストールを行い
rootfsのイメージ作成までやってくれます。
極小だとXなし、日本語なしでOk?
なんでもおkだけど出来るだけデスクトップを目標としたいのでXあり日本語ありのほうが。
とりあえず最初はX無し日本語無しで動作させて追加していくのがいいかと。
どうせallyesにするとコケまくりで頭爆発するのが落ちなので。
Xありでもvesaだとドライバ選択不要だから楽かもね
極端な話CUIなしにすればコマンドライン系は全部不要になるから
速度は上がるよ
カーネルとローダとライブラリとXだけだし
後は起動時のシェル
開発の速度ね
実を言うとX入れて起動させるところまで行ってない。
buildrootの中からXの有無出来るのでお気楽に出来ると思うけど
一発でスムーズに最後まで行けないと思う。
で、CUIの部分は全部BusyBoxで済ませられる。
シェルもBusyBox ashで。
ブートローダが一番ネックかも。
インスコは簡単に出来ても実機に移してブートローダーがちゃんと機能するかどうか。
ひとつひとつ手作業でビルドするんじゃ無いので速度はあまり問題じゃないかも。
問題はこける場所が環境により人それぞれなので、そのための情報交換場所があればいいなと思い。
くだスレだと特殊な環境なので相手にされない可能性が大だと思って。
通常のディストリで一番面倒なのは
パッケージ管理とかインストーラとかハード認識
だったりすると思うんだけど
ライブCDを作るイメージ?
tiny core のisoイメージ50MB弱だけど
それよりもBuildRootの生成バイナリは小さいの?
あと作成した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など不必要な物を削除してビルドオプションもサイズ優先にするなど。
ハード認識は最低限自分の使ってるハードのドライバがあれば良いので
そのようにカーネル構築して、必要なXドライバだけ入れたらおk。
この辺りはGentoo, LFSでのカーネルビルド、BLFSでのXの構築と同じ。
uClibc使うだけならGentooでもemerge使って楽にクロスコンパイルできるんだけどね
所詮遊びなので固いことは抜きにしたほうが面白い。
常用ではない?
開発環境は必要?
tiny core カーネル2.9MB rootfs未圧縮 15MB強 Xvesaあり
読み込み専用のLiveCD作ってしまったら常用するシステムでは無くなってしまうから。
開発環境は必要
釣りじゃなければ、とりあえずやってみた方が早いよ
落とすのはbuildroot1つだから
puppyって常用可能だよ
ループバックファイルシステムに追加のアプリ追加する感じだし
そうじゃなくてbuildrootじゃなくてもいいだろって話
完成品をお求めならTCやPuppyをどうぞって事よ
BuildRootってのはディストリビューションではなく自動化するスクリプトだからね。
勘違いしないように。
tinycoreを日本語化している連中は何だよという話になるぞ
tinycoreの類似ディストロじゃまずいの?
tinycoreライクなという話
>>19に書いたようにBuildRootはディストリビューションじゃないので実際の運用はLFSよりハードル高いです。
LFS,CLFSは手作業でビルドして行きますが、ブートスクリプト群も用意されている親切な
ディストリビューションの1つなのでその辺りは困りません。
BuildRootで構築するシステムは全て自分で書き上げて行きます。
もちろん
>>20のような日本語化してくれる有志もいません。全部自分でやります。
まぁ日本語化と言っても1から作り上げるので完成された英語版ディストリビューションに
改めて日本語環境を追加する作業とは少し違います。
この説明がチンプンカンプンの人は手を出さないほうがいいでしょう。
あくまでも組み込みで利用されてるツール類を使って自分だけのLinuxシステムに仕上げるのが趣旨です。
>>24 参加者には
glibcとuclibcの違いをきちんと説明した方が良いよ
制御系だと思わぬ所に流れるからね
じゃ落ちます
Wikipedia見るくらいでいいんじゃないかな。
すげぇ他力本願だが、詳しいことは現役で組み込み開発やってる人に助言してもらおう
uclibcのmenuconfigでAll Locale選んどけばツールチェインはロケール要らないよな。
でもこれやって工作員用PCになったりしない?
そもそも実用的になるのかどうか?
NASとかに入れる事を考えると結構使えるかも知れない。
busyboxにhttpd,ftpd,sendmailが入ってるから案外。
でも全て簡易版なのでデーモンのログ取ったりできないからそこは工夫しなきゃダメだろうね。
別にbusyboxの内部コマンド全部使わなくてもいい。
X入れてKDEとかGNOME起動したら面白いだろうなぁ。
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 じゃ無理ですた
>>29 tiny coreを見て勉強しよう
fedoraだとtinycore.gzの中身が見れたよ
ブートローダにroot=の設定は無さそう
なんと俺向けリアルタイムなスレなんだ
今Gentooで作ってるがbaselayout-liteが無くなったのがかなり痛い
baselayout-liteが使えれば適当にディレクトリ作って
ROOT=/hoge emerge baselayout-lite uclibc busybox
で/hoge以下にある程度完成しちゃうのに・・・
>>29 /dev/sr0はcdドライブでinitrdはメモリ上に展開した起動用極小Linux
だから目を付けてる所が間違ってる気がする
>>30 tinyはsyslinuxだし29はgrub使ってるから作法が違うかも
>>31 ちゃうわい
tinyは必要なもの全部initrd上に入ってるからroot指定が要らない
ああ、そういう意味か
極小Linuxでもやり方が幾つもあるから勘違いしちゃった
isoにするならsyslinuxかなぁと漠然と思ってたんだけど
iso選んだらbuildrootが自動でgrub選択したのでそのまま出力してみた
あとbearboxっていうブートローダもあるんだね。
ブートローダは4つほどサポートされてる。
bearbox
grub
syslinux
(ここ名前忘れた。bearboxの前身らしい)
>>31 >/dev/sr0はcdドライブでinitrdはメモリ上に展開した起動用極小Linux
>だから目を付けてる所が間違ってる気がする
てことは /dev/ram0 とか?
>tinyは必要なもの全部initrd上に入ってるからroot指定が要らない
んあ?initrdに全部入ってる場合は指定しなくてもいいのか。
つぅ事はカーネル設定見直すのが先か……。
ははw ソースとオブジェクトが容量取ってるんでdistcleanしたら
output/images/の中も消えてた。もう一度最初から…… orz
ちょうど手元にあったGentooのLiveCDだと
append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/image.squashfs cdroot initrd=gentoo.igz
ってなってるね
image.squashfsの中身を見てないけどこれが多分ルートファイルシステムの実体なのかも
あーでもinitrd上に全部入れるってのはGentooのLiveCDとは作りが違う気がする
だから37みたくroot=/dev/ram0が上手くいくか判らん
おk
ぼちぼちやるお
>>41-42 情報増えてる
㌧
bearboxじゃなくてBareboxでした
"The Barebox bootloader, formerly known as U-Boot v2."
http://www.barebox.org 失念してたのはこれ
"Das U-Boot"
U-ブートってU-ボートのもじりかなぁ
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で出力してカスタマイズしてみる。
oeがないな。
各 .config をdate +%sとか日付でバックアップ取っとかないと
いじくり倒してたら訳わからんようになるな。
こまめにdiffしましょう。
vcsつかえよ
これくらいの用途でもメリットあるかな?
正直ソース落とす以外で使ったこと無い。
これを機にgitの使い方も覚えるか。
$ git commit
$ git add -f output/build/busybox-1.19.3/.config
$ git diff --cache
なるほど。こりゃ便利だ。
ってこういう使い方であってるのかな……。
スレ違いなのに3発連投してしまった。脱線スマン。
今手元に32MBのCFと64MBのスマートメディアとセレ900なマシンとEDEN533なマシンがある
さて、始めようか
>>50 あってるよ。あとはブランチを覚えたらファイル変更の管理ぐらいには使える。
grub> setup (hd0)
setup (hd0)
Floating point exception
(+д+)マズー
>>> 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 すげーなそれ
ウチでは
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
って出てどうしても進まない
なんかmake cleanとかmake linuxとかmake uclibcとか色々やりまくったら通った
61 :
login: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のコンフィグで触るとこある?
$ 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
問題無いように見えるんだが、サパーリ解らん。
wikiに今までやった事を書いてくれないか?
何をやっていて今どうなっているのかが分からない
>>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
再現させるならconfig もいるんじゃないの?
>>67 そうだけど、対象ハードが自分のという話なんで
configの共有にはハードとの対比が必要かも
ハードってカーネルぐらいでしょ。ttyとかあるけどさ。ある程度は共通の設定ができるよ。最初から理解しないままあれもこれも入れるとはまるよ。
ドライバー関係の話
gettext-develが入ってないとか?
Starting networkでハングしてログイン画面まで行けないんだけど何が原因?
シリアルコンソールなんて使った事無いしttyS0とか全然解らんわ。
話変わるけどBusyBoxはランレベルが無くて仮想コンソール使いたければsysvinit使わないと
ダメらしいが試してみようにも有効、無効にする場所も解らね。
なんか色々ダメすぎる漏れ
つ man 5 inittab
オンラインのmanあるからそっちで見れ
ui
/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て
77 :
login:Penguin:2012/01/04(水) 11:34:39.58 ID:TxiK97bn
基本的な事を伺います。BuildRootでは
1. 母艦でToolchainをビルド
2. ToolchainでHostをビルド
3. HostでTargetをビルド
この順序で合ってますか?
78 :
login:Penguin:2012/01/05(木) 17:18:49.64 ID:XKmhJjsO
>>76だけど、binutils-2.21.1ではuClibcのLDSO_GNU_HASH_SUPPORTは必須?
思うんだけど、BusyBox的なguiアプリってあるのかな?
見た目は流行りのブラウザベースで他はすっからかんのシステムかと思いきや、
そのブラウザをリネームするだけで実はコンソールになったりエディタになったりしたらすごく面白い気がするんだけど。
>>79 コンソールはちょっと無理っぽいが、ブラウザさえあればクラウドサービスで大抵何でも出来そう
まあjslinuxがあるからブラウザ内でBuildRootのコンソールが飼えるんだけどね。
それが実用的かは置いといて
そういえばBusyBox内蔵の言語ってawk位かな?
forthとかlispとかLL言語がもう少しあるかと思ったんだけど意外だな。
83 :
login:Penguin:2012/01/06(金) 14:08:29.94 ID:t4AJ5S69
ash とか sed のことも時には思い出してあげてください。
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:2012/01/06(金) 16:06:46.00 ID:t4AJ5S69
busyboxのviはUTF-8にうまく対応してないんだよなぁ。
自分の手元では、ちょっとパッチ充てて日本語が出るようにしている。
でもカーソル移動はめちゃくちゃ。
wchar_width() 見てカーソル移動するようにしたい。
busyboxのashとhushの違いって何?
ターゲット用開発環境が全然入らない orz
locale切ったらスムーズに進むな。
パッケージ管理システムのipkgってfakerootに入れてtarに固めるようなもん?
ipkgのHowToサイト無いかな。
ipkgの解説ぐぐるとZaurusばかり出てくるな。
Wikipediaにも一応あったけどdpkgに似てるとか。
あと気になってるのがBusyBoxのashなんだが、ヒストリーを上下するとカーソル位置が行頭に来るんだよな。
行末には出来ないのかなと思って諦めてたんだが、uClibcで配布されてるsystem-imageで起動すると行末に来てる。
これ実現するにはどこ弄ればいい?
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
95 :
login:Penguin:2012/01/14(土) 12:43:16.92 ID:3iiZIWfH
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のビルドメッセージが流れてるのをこの目で見たのに……畜生!
何か変だ。
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で差が開くのか解らんけど。
いろいろ不備があったのでもう一度設定見なおして全部再ビルドしてみる。
これはかなり期待がもてる!
gj.
俺は見てるぞ
gccを入れた後にlibtoolを入れるとgccをリビルドしやがる
この辺りの挙動がわかんねぇなぁ……。
ちゃんと調べずに手探りでてきとうにやっているやつのダメパターン
へ?
カーネルをビルドする前にlinux-menuconfigする方法無いかなぁ
二度手間になる
Busyboxで日本語が化けないようにする方法てあるの?
初心者ですみません。
答えがあるなら「ある。なし」だけでお願いします。
ないときは「なし」って言えなくない?
無いとは言い切れないし、あるという表現も間違いだろう。
つまり114が作り直せば「ある」で、小手先では「ない」
119 :
login:Penguin:2012/12/15(土) 16:09:14.62 ID:HkSG+FjY
busyboxのviって、設定ファイルは読んでくれないの?
busybox viで起動した?
busybox内蔵はおそろしく簡易版でそんな機能も設定変更などの機能も
存在しません
>>119
>>1さん。
もうスレ諦めた?
>TinyCore並に軽量化され自分の環境に最適化したシステムを作りませんか?
TinyCoreにビルドインされているそれらをベースで
FLTK1.1やら、uClibやら、busyboxを簡易日本語対応(制限付き)にした
ほうがよくねぇ?
動くのをモドキ(恐ろしく制限付き)で改造するほうが正しく動かすよりは
イケていると思うわ。
日本語だって入力変換はできず、カーソル移動に対応していなくても
表示だけできるなら恐ろしく使い勝手違うと思うんだが。
123 :
login: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 でも入れた方がマシかも知れん。
>>123 vi対応とかならnano使えばいいんじゃね?
Tinycore付属のEditorとか信じがたいほどバイナリーサイズが小さいよ。
fltk-1.1→ fltk-1.3
これバイナリーサイズが数倍に肥大してないか?
125 :
login: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入れたりしているし、
とりあえずでも日本語使える環境ってのは助かることが多い。
126 :
login:Penguin:2014/12/02(火) 00:14:53.98 ID:plPRNAuJ
busybox最強伝説
なんかスクリプトで書かれた日本語エディタってないの?
日本語対応スクリプトで簡易エディタを書くか、日本語処理もスクリプト内で独自にやる。
busyboxのビルトインを駆使すればなんとかなるだろうか?
最近はプログラムができないLinux使いがほとんど占めている。