ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Main Menu
Tweet
Facebook
Line
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
webadm
投稿日時: 2006-1-21 19:31
Webmaster
登録日: 2004-11-7
居住地:
投稿: 2960
玄箱上でuClinuxをビルドしていて気になっていた事
どうもromfsがやたら大きいと思ったらflatバイナリイメージの圧縮がうまくいっていないらしい。ログを見てみたら以下のことが起きていた。
引用:

make[2]: Entering directory `/mnt/share/opt/uClinux-dist-test/vendors/Akizuki/AE3068'
[ -d /mnt/share/opt/uClinux-dist-test/images ] || mkdir -p /mnt/share/opt/uClinux-dist-test/images
flthdr -z /mnt/share/opt/uClinux-dist-test/romfs/bin/*
/bin/sh: flthdr: command not found
make[2]: [image] Error 127 (ignored)
flthdr -z /mnt/share/opt/uClinux-dist-test/romfs/sbin/*
/bin/sh: flthdr: command not found
make[2]: [image] Error 127 (ignored)
flthdr -z /mnt/share/opt/uClinux-dist-test/romfs/home/httpd/cgi-bin/*
/bin/sh: flthdr: command not found
make[2]: [image] Error 127 (ignored)
genromfs -v -V "ROMdisk" -f romfs.img -d /mnt/share/opt/uClinux-dist-test/romfs

なぜか$(CROSS)flthdrとなっていないでflthdrを起動しているらしいので修正。

すると今度は、
引用:

make[2]: Entering directory `/mnt/share/opt/uClinux-dist-test/vendors/Akizuki/AE3068'
[ -d /mnt/share/opt/uClinux-dist-test/images ] || mkdir -p /mnt/share/opt/uClinux-dist-test/images
h8300-linux-elf-flthdr -z /mnt/share/opt/uClinux-dist-test/romfs/bin/*
zflat /mnt/share/opt/uClinux-dist-test/romfs/bin/init --> /mnt/share/opt/uClinux-dist-test/romfs/bin/i
nit
Can't run cmd /bin/gzip -9 -f >> /tmp/flatQQJt8z
make[2]: [image] Error 1 (ignored)
h8300-linux-elf-flthdr -z /mnt/share/opt/uClinux-dist-test/romfs/sbin/*
zflat /mnt/share/opt/uClinux-dist-test/romfs/sbin/init --> /mnt/share/opt/uClinux-dist-test/romfs/sbin
/init
Can't run cmd /bin/gzip -9 -f >> /tmp/flatVOTlJC
make[2]: [image] Error 1 (ignored)
h8300-linux-elf-flthdr -z /mnt/share/opt/uClinux-dist-test/romfs/home/httpd/cgi-bin/*

uClinux-devのメーリングリストをあたってみたらどうやらCygwin環境では問題ないがLinux環境だとソースを修正しないといけないらしい。

popen()で"wb"としているところを"w"にすればよいらしい。
引用:

*** ../downloads/elf2flt.c Sat Jan 21 18:56:07 2006
--- elf2flt.c Sat Jan 21 19:18:36 2006
***************
*** 2197,2203 ****
pclose(gf); \
else \
fclose(gf); \
! if (!(gf = popen(cmd, "wb"))) { \
fprintf(stderr, "Can't run cmd %s\n", cmd); \
exit(4); \
} \
--- 2197,2203 ----
pclose(gf); \
else \
fclose(gf); \
! if (!(gf = popen(cmd, "w"))) { \
fprintf(stderr, "Can't run cmd %s\n", cmd); \
exit(4); \
} \
*** ../downloads/flthdr.c Sat Jan 21 19:00:41 2006
--- flthdr.c Sat Jan 21 19:18:24 2006
***************
*** 242,248 ****
}

sprintf(cmd, "gunzip >> %s", tfile2);
! tfp = popen(cmd, "wb");
if(!tfp) {
perror("popen");
exit(1);
--- 242,248 ----
}

sprintf(cmd, "gunzip >> %s", tfile2);
! tfp = popen(cmd, "w");
if(!tfp) {
perror("popen");
exit(1);
***************

おかげでだいぶメモリに余裕ができた。
引用:

+DP83902A - eeprom ESA: 00:02:cb:01:eb:1a
... waiting for BOOTP information
Ethernet eth0: MAC address 00:02:cb:01:eb:1a
IP: 192.168.1.16/255.255.255.0, Gateway: 192.168.1.1
Default server: 192.168.1.17

RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version UNKNOWN - built 21:28:57, Apr 11 2004

Platform: Akizuki H8/3068 Network micom (H8/300H)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00400000-0x005f4000, [0x00400000-0x005e1000] available
FLASH: 0x00000000 - 0x00080000, 8 blocks of 0x00010000 bytes each.
RedBoot> load -r -b 0x400000 aki3068net-image.bin
Using default protocol (TFTP)
Raw file loaded 0x00400000-0x004c19f7, assumed entry at 0x00400000
RedBoot> exec -c console=ttySC1,38400
Now booting linux kernel:
Entry Address 0x00400000
Cmdline : console=ttySC1,38400
Linux version 2.4.31-uc0 (root@KURO-BOXHG) (gcc version 3.4.0) #11 Sat Jan 21 19:30:00 JST 2006

uClinux H8/300H
Target Hardware: AE-3068
H8/300 series support by Yoshinori Sato <ysato@users.sourceforge.jp>
Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne
On node 0 totalpages: 1536
zone(0): 0 pages.
zone(1): 1536 pages.
zone(2): 0 pages.
Kernel command line: console=ttySC1,38400
virtual vector at 0x00fffd20
Calibrating delay loop... 3.26 BogoMIPS
Memory available: 1076k/1217k RAM, 0k/0k ROM (653k kernel code, 174k data)
Dentry cache hash table entries: 1024 (order: 1, 8192 bytes)
Inode cache hash table entries: 512 (order: 0, 4096 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 2048 (order: 1, 8192 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
SuperH SCI(F) driver initialized
ttySC0 at 0x00ffffb0 is a SCI
ttySC1 at 0x00ffffb8 is a SCI
ttySC2 at 0x00ffffc0 is a SCI
ne.c:v1.10 9/23/94 Donald Becker (becker@scyld.com)
Last modified Nov 1, 2000 by Paul Gortmaker
NE*000 ethercard probe at 0x200000: 00 02 cb 01 eb 1a
eth0: NE1000 found at 0x200000, using IRQ 17.
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: 4CFBB0-4DEFAF [VIRTUAL 4CFBB0-4DEFAF] (RO) <ROMFS>
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 1024)
VFS: Mounted root (romfs filesystem) readonly.
Freeing unused kernel memory: 24k freed (0x4ac000 - 0x4b1000)
Shell invoked to run file: /etc/rc
Command: hostname AE3068
Command: mount -t proc proc /proc
Command: cat /etc/motd
Welcome to
____ _ _
/ __| ||_|
_ _| | | | _ ____ _ _ _ _
| | | | | | || | _ \| | | |\ \/ /
| |_| | |__| || | | | | |_| |/ \
| ___\____|_||_|_| |_|\____|\_/\_/
| |
|_|

Akizukidenshi/AE-3068 (aki3069net) port.
For further information check:
http://www.uclinux.org/

Execution Finished, Exiting
init: Failed to open /etc/inittab.
Sash command shell (version 1.1.1)
/> free
total: used: free: shared: buffers: cached:
Mem: 1126400 770048 356352 0 61440 69632
Swap: 0 0 0
/>
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » 玄箱上でuClinuxをビルドしていて気になっていた事 webadm 2006-1-21 19:31

投稿するにはまず登録を
 
ページ変換(Google Translation)
サイト内検索