Oh!Super164 取り留めのない日記のような

2006/7/12 水曜日

MTDイメージ作成

Filed under: 備忘録 — pecos @ 1:11:42

– ext2/3と違い、デバイスに直接ファイルシステムを構築できないので、イメージを作成する
– mtd-utilsのtarボールを拾ってきてネイティブでコンパイル&インスト
– MTDデバイスのイメージディレクトリを作成し(mkdir image等)中にダミーで1ファイル作成 (touch test等)
– mkfs -t jffs2 -v -r image/ -p &ltpadsize&gt -e &lterase block size&gt -o jffs2.img
– ddでjffs2.imgを/dev/mtdblock?へ流し込む

2006/7/11 火曜日

クロスコンパイラ作成

Filed under: 備忘録 — pecos @ 23:24:43

– gccクロスコンパイラの作成手順
– target=arm-linux
– binutilコンパイル(cross as,ldを作成)
– gccコンパイル1回目(newlib版、cコンパイラのみ)
– linuxのmake configでincludeを仮設定させる(glibcからkernelのincludeが参照される為)
– glibcをコンパイル
– newlibを削除しglibcのinclude/libに置き換える。この時、kernelのinclude/linux, include/asm, include/asm-genericもコピーかln -sする(target/include target/lib)
– gccコンパイル2回目(glibc版 c++やその他も必要に応じて)

SMC91C(2)

Filed under: 備忘録 — pecos @ 0:28:37

– LANデバイスをprobeさせるべくSpace.cに追加したが、肝心の関数がstaticでシンボルが無いと怒られるので削除。
– 初期設定でdeviceのリソース登録が出来るようになったので、そっちでLANを指定する。
– 上記の登録ルーチは/devices/base/platform.cに存在する。登録は2段階で行なわれるっぽい。
– デバイスのIDに何指定したらいいのか不明(他のは0や-1なので取り敢えず0にしておく)
– /arch/arm/kernel/head.sでmmu初期化後にはstart_kernelに飛ぶ
– 仮想メモリ用のpageデータはkernel本体の直後に配置されている(みたい)
– start_kernel()は/init/main.cにある

NPTL

Filed under: 備忘録 — pecos @ 0:14:40

Native Posix Threading Libraryという新しいThreadが2.6から使えるはずなのだが、glibcにはARM用のそれらしきものが無い・・・実際コンパイルも出来ないし標準では未対応っぽい(勿論、手順を間違えている可能性も大なのだがw)。それまでのLinuxでのThreadは実はfork(clone)したプロセスが同じ空間を共有する形で実装されていた。ThreadなんだけどPIDがつきpsでもしっかりリストアップされていたのだが、NPTLではライトウェイトなThreadらしい。諸般の理由により、以前Linux端末で作成したプログラムはThreadを相当使っている。これがNPTLになればもっと負荷が低減されるかなと期待していただけに、ARM版が見当たらないのが残念だ。きっと探せば世の中には存在するのかもしれないが、なかなか見つからない。glibcの2.4では旧型のthreadのソースtarボールも無いし、もしかして廃止?w OpenZaurusとか行けばあるのかなぁ・・・?
(more…)

2006/7/8 土曜日

基盤FlashのMTD対応

Filed under: 備忘録 — pecos @ 1:04:41

– MTD0:0000-0000 (256KB) Bootloader
– MTD1:0004-0000 (512KB) Partition Table
– MTD2:000C-0000 (1MB) Kernel
– MTD3:001C-0000 (29MB) File System(/)
– MTD4:01EC-0000 (1.25MB) Data
– END:0200-0000
– MTDのサイズはイレースブロック単位(BLK=128KBの2チップ構成パラレルアドレス結線のなので256KB単位)
– MTDドライバのメジャー番号=31(0x1f)でマイナーは(0,1,2,3,4)
– MTD1は多分不要
– 2.6kernelは圧縮して約1.2MBあるのでMTD1を削除してMTD2領域を広げる
– 起動devはCONFIG_CMDLINE=root=1f03 ro でmtd3に割り当てられている

2006/7/7 金曜日

SMC91C

Filed under: 備忘録 — pecos @ 23:56:50

– A0-A1はチップに結線されていないようなので32bitアクセスしかできないはず。
– A1はグランドされているがA0は不明。グランドされてないと”1″が立ってしまうのできっと”0″だろう。
– D0-D31まで結線されているようなので32bitデータアクセスが可能かもしれない。
– アドレスバス上位6bitでチップセレクトをデコードしていると思われるが回路図に無い。
– 取り敢えずLANではDMA転送を行なわない設定にしておく。
– probeでLANが検出されるようdrivers/net/Space.cにSMC91を追加しておく。
– ボードによるConfigをヘッダーに追加、PXA IDP用をぱくってDMAをoffにする。32bit I/Oを有効のままに。
– LANのレジスタには奇数オフセットのものがあるので、Quadアクセスして後でバイトを抜くのかも。

はっきり言って、これは無理だwwwwwwww 中途なパッチ状態でkernelコンパイルはできたが、これ絶対動かない。

ARMのオペランド

Filed under: 備忘録 — pecos @ 16:06:08

全てが32bitワード固定長のARM命令ではオペランドを外に持てない。レジスタに32bitの即値や32bitアドレスを直接代入出来ないのでマクロを使ってアセンブラに任せる:

ldr rd,=const
ldr rd,=label

これらは適当な命令に変換される。場合によってはメモリから即値をロードするよう変換されるので、データ領域を確保しておかないといけないが、これはリテラルプール擬似命令で指示する:

.ltorg

何ともやっかいなアセンブラである。オフセットも12bitまでなのでTEXTセクションに定数データが置かれることも珍しくないらしい・・・

2006/6/24 土曜日

kernel移植Touch Screen

Filed under: 備忘録 — pecos @ 23:58:01

PHILIPS UCB1400が載っているが、Soundチップとして採用されていると思っていたのだが、どうやらタッチスクリーンの機能もこのチップでやっているようだ。

2005/11/20 日曜日

Apache2とTomcat5を連動させる

Filed under: 備忘録 — pecos @ 21:31:23

mod_jk2のコンパイル手順(Vine Linux)
– apache2-develパッケージも入れておく
– jk2のtarボールを展開したらconfigure&make
– jk/build/jk2/apache2/mod_jk2.so を /usr/lib/apache2/modules/ にコピー
– jk/conf/worker2.properties を /etc/apache2/conf/ にコピー
– httpd.confにLoadModule jk2_module modules/mod_jk2.soの行を追加
(more…)

« Newer Posts

Powered by WordPress