« ◆ 【TremaでOpenFlowプログラミング】VLAN ID コンバータ | トップページ | ◆ OpenWrt の trunk 版(r36853) を Planex MZK-W300NH2 用にビルドしてみました(対策編) »

2013年6月 7日 (金)

◆ OpenWrt の trunk 版(r36853) を Planex MZK-W300NH2 用にビルドしてみました

以前、OpenWrt の trunk のブランチにMZK-W300NH2 用のコードが追加されたという情報をいただきビルドしたという記事を書きました(「OpenWrt (trunk 版 r36041)を MZK-W300NH2 用にビルドしてみました」)。
その記事に対して最近いただいたコメントから、今の trunk では大幅な変更が入っていて以前作成したパッチが使い物にならないことがわかりました。
(れ@さん、情報ありがとうございます。m(_ _)m)

どう変わったのか確認するため、手を加えずにそのままビルドしてみました。

■ビルド手順での変更点
make menuconfig で指定する値が変わっています。
以下を指定します:
[Target System]:  Ralink RT288x/RT3xxx
[Subtarget]:      RT3x5x/RT5350 based boards

20130605195033_660x414_scrot_2


その後のビルドは、make コマンドを実行するだけなのは変わりません。
~/openwrt/trunk ディレクトリが作業ディレクトリとした場合、ファームウェアは、~/openwrt/trunk/bin/ramips/openwrt-ramips-rt305x-mzk-w300nh2-squashfs-factory.bin にできます。
以前の記事のような問題はなく、ファームウェアのファイルは作成されました。

■ビルドログにて

致命傷ではないですが make V=99 として詳細を出すと MZK-W300NH2 のファームのイメージを作ろうとしているところで以下の変なメッセージが記録されます。
  bash: line 0: [: xxxx: unary operator expected
 (xxxx のところはファイルサイズの数値が入ります)

具体的には以下:

if [ `stat -c%s "/home/lubun/openwrt/trunk/build_dir/target-mipsel_dsp_uClibc-0.9.33.2/linux-ramips_rt305x/openwrt-ramips-rt305x-mzk-w300nh2-squashfs-sysupgrade.bin"` -gt  ]; then echo "Warning: /home/lubun/openwrt/trunk/build_dir/target-mipsel_dsp_uClibc-0.9.33.2/linux-ramips_rt305x/openwrt-ramips-rt305x-mzk-w300nh2-squashfs-sysupgrade.bin is too big" >&2; else cp -fpR /home/lubun/openwrt/trunk/build_dir/target-mipsel_dsp_uClibc-0.9.33.2/linux-ramips_rt305x/openwrt-ramips-rt305x-mzk-w300nh2-squashfs-sysupgrade.bin /home/lubun/openwrt/trunk/bin/ramips/openwrt-ramips-rt305x-mzk-w300nh2-squashfs-sysupgrade.bin; fi
bash: line 0: [: 2883588: unary operator expected

これは、~/openwrt/trunk/target/linux/ramips/image/Makefile にて mzkw300nh2_mtd_size が定義されていないためでした。
そのため、Makefile中の以下の箇所の実行でエラーが出ています。

Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2,MZK-W300NH2,$(mzkw300nh2_mtd_size),CSYS,RN52,0x50000,0xc0000)

展開されたコードから判断すると影響はファイルサイズの上限チェックがされないだけなので、良くはないですがとりあえず無視できます。

■ファーム入れ替え後のブート
何も手を加えずにビルドしてできたファームウェアを MZK-W300NH2 に入れ替え、シリアル接続してブートログを採取してみました。
れ@さんにいただいたコメント通りで、カーネルパニックを起こして起動しません。

ポイントは、赤字にしたところ。kenel と rootfs は自動で認識する仕掛けに変更されているはずなのですが認識できていません。

U-Boot 1.1.3 (Nov 25 2008 - 16:46:30)

Board: Ralink APSoC DRAM:  16 MB
relocate_code Pointer at: 80fa8000
****************************
Init GPIO Pin****************************
flash_protect ON: from 0xBFC00000 to 0xBFC26213
protect on 0
protect on 1
protect on 2
protect on 3
protect on 4
protect on 5
protect on 6
protect on 7
protect on 8
protect on 9
flash_protect ON: from 0xBFC30000 to 0xBFC3FFFF
protect on 10
============================================
Ralink UBoot Version: 3.1
--------------------------------------------
ASIC 3052_MP1 (MAC to GigaMAC Mode)
DRAM COMPONENT: 64Mbits
DRAM BUS: 32BIT
Total memory: 16 MBytes
Flash: 4 MBytes
Date:Nov 25 2008  Time:16:46:30
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384

 ##### The CPU freq = 384 MHZ ####

 SDRAM bus set to 32 bit
 SDRAM size =16 Mbytes

Please choose the operation:
   0: Load ucos code to SDRAM via TFTP Client.
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   9: Load Boot Loader code then write to Flash via TFTP.
 0

3: System Boot system code via Flash.
## Booting image at bfc50000 ...
Bad Magic Number,43535953
   Image Name:   MIPS OpenWrt Linux-3.8.13
   Created:      2013-06-05  14:10:42 UTC

 System Control Status = 0x01040000
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    954399 Bytes = 932 kB
   Load Address: 80000000
   Entry Point:  80000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 16

Starting kernel ...

[    0.000000] Linux version 3.8.13 (lubun@lubun) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2012.12 r36852) ) #1 Wed Jun 5 23:08:46 JST 2013
[    0.000000] SoC Type: Ralink RT3052 id:1 rev:3
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 0001964c (MIPS 24KEc)
[    0.000000] MIPS: machine is Planex MZK-W300NH2
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 01000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x00ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x00ffffff]
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes
[    0.000000] Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 4064
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 64 (order: -4, 256 bytes)
[    0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] Writing ErrCtl register=000718a9
[    0.000000] Readback ErrCtl register=000718a9
[    0.000000] Memory: 13184k/16384k available (2084k kernel code, 3200k reserved, 509k data, 220k init, 0k highmem)
[    0.000000] SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:128
[    0.000000] CPU Clock: 384MHz
[    0.000000] Calibrating delay loop... 255.59 BogoMIPS (lpj=1277952)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.080000] Mount-cache hash table entries: 512
[    0.090000] NET: Registered protocol family 16
[    0.120000] bio: create slab <bio-0> at 0
[    0.130000] rt2880_gpio 10000600.gpio: registering 24 gpios
[    0.140000] Switching to clocksource MIPS
[    0.150000] NET: Registered protocol family 2
[    0.160000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[    0.170000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[    0.190000] TCP: Hash tables configured (established 512 bind 512)
[    0.200000] TCP: reno registered
[    0.210000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.220000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.230000] NET: Registered protocol family 1
[    0.240000] rt-timer 10000100.timer: maximum frequncy is 7812Hz
[    0.280000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.290000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.310000] msgmni has been set to 25
[    0.320000] io scheduler noop registered
[    0.330000] io scheduler deadline registered (default)
[    0.340000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.350000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20) is a 16550A
[    0.370000] console [ttyS0] enabled, bootconsole disabled
[    0.370000] console [ttyS0] enabled, bootconsole disabled
[    0.390000] 1f000000.cfi: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x0000c2 Chip ID 0x0022a8
[    0.410000] Amd/Fujitsu Extended Query Table at 0x0040
[    0.420000]   Amd/Fujitsu Extended Query version 1.1.
[    0.430000] number of CFI chips: 1
[    0.440000] 5 ofpart partitions found on MTD device 1f000000.cfi
[    0.450000] Creating 5 MTD partitions on "1f000000.cfi":
[    0.460000] 0x000000000000-0x000000030000 : "u-boot"
[    0.480000] 0x000000030000-0x000000040000 : "u-boot-env"
[    0.490000] 0x000000040000-0x000000050000 : "factory"
[    0.500000] 0x0000003e0000-0x000000400000 : "cimage"
[    0.520000] 0x000000050000-0x0000003e0000 : "firmware"
[    0.530000] failed to split firmware partition
[    0.540000] Can't split firmware partition
[    0.550000] rt305x-esw 10110000.esw: link changed 0x08
[    0.560000] eth0: done loading
[    0.570000] TCP: cubic registered
[    0.580000] NET: Registered protocol family 17
[    0.590000] 8021q: 802.1Q VLAN Support v1.8
[    0.600000] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    0.610000] Please append a correct "root=" boot option; here are the available partitions:
[    0.630000] 1f00             192 mtdblock0  (driver?)
[    0.640000] 1f01              64 mtdblock1  (driver?)
[    0.650000] 1f02              64 mtdblock2  (driver?)
[    0.660000] 1f03             128 mtdblock3  (driver?)
[    0.670000] 1f04            3648 mtdblock4  (driver?)
[    0.680000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

(つづく...)

« ◆ 【TremaでOpenFlowプログラミング】VLAN ID コンバータ | トップページ | ◆ OpenWrt の trunk 版(r36853) を Planex MZK-W300NH2 用にビルドしてみました(対策編) »

openwrt」カテゴリの記事

PLANEX MZK-W300NH2」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1776113/51952507

この記事へのトラックバック一覧です: ◆ OpenWrt の trunk 版(r36853) を Planex MZK-W300NH2 用にビルドしてみました:

« ◆ 【TremaでOpenFlowプログラミング】VLAN ID コンバータ | トップページ | ◆ OpenWrt の trunk 版(r36853) を Planex MZK-W300NH2 用にビルドしてみました(対策編) »

最近のトラックバック

無料ブログはココログ