タグ: WHR-G300N

WHR-G300N TFTPによるOpenWrt化

少し前にWHR-G300Nのイメージ生成コードを修正してopenwrt/openwrtに投げてマージされたものの、それについて特に書いてなかったのでメモ。この修正により、コードは存在するのに生成されなくなっていたTFTP用イメージが生成されるようになった。

基本的には、WHR-G301NのTFTPによるOpenWrt化と同様。ただし、デバッグ用のWebUI等でU-Bootの環境変数は特に設定する必要無し。
Windows環境で行う場合、パブリックのファイアウォールは一旦停止しておく。

試したときから時間が経ってしまったため、少し曖昧になっている箇所がいくらか。そのうち確認します。確認できたら、記事を書き直してメインのブログに移すかも。

手順

OS: Windows 10, WHR-G300Nとは直結で実施

  • PCのNICを 192.168.11.0/24 のいずれかに設定
  • WHR-G300Nをブート
  • ブート後、1秒程度おいてから
    tftp -i 192.168.11.1 put firmware.bin
    

    を実行してtftpイメージを投げつけ

  • WHR-G300Nがうまく受け付ければFlashに書き込まれる
  • しばらくして完了

ログ

U-Boot 1.1.3 for BUFFALO AIRSTATION (Aug 26 2008 - 13:08:44)

Board: Ralink APSoC DRAM:  32 MB
Top of RAM usable for U-Boot at: 82000000
Stack Pointer at: 81f4ff98
relocate_code Pointer at: 81fa0000
Now running in RAM - U-Boot at: 81fa0000

FLASH ID : 00h=[0xc2], 01h=[0x22a8], 0Eh=[0x0], 0Fh=[0x19]

 Set info->start[0]=BF000000
flash_protect ON: from 0xBF000000 to 0xBF02B84F
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 0xBF030000 to 0xBF03FFFF
protect on 10
flash_protect ON: from 0xBF040000 to 0xBF04FFFF
protect on 11
uboot use  81F4FFB0 - 82000000
Memory Test start(80000000) end(81F00000) size(01F00000)
Pattern 00000000  Writing...  Reading...
Memory Test OK
### buf_ver=[1.09] U-Boot Ver.=[1.09]
### build_date(env)=[Aug 26 2008 - 13:08:44] build_date(bin)=[Aug 26 2008 - 13:08:44]
============================================ 
Ralink UBoot Version: 3.1
-------------------------------------------- 
ASIC 3052_MP2 (MAC to GigaMAC Mode)
DRAM COMPONENT: 256Mbits 
DRAM BUS: 32BIT 
Total memory: 64 MBytes
Date:Aug 26 2008  Time:13:08:44
============================================ 
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 =32 Mbytes

Please choose the operation: 
   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 
Net:   
 eth_register  
Eth0 (10/100-M)
 enetvar=ethaddr,Eth addr:00:AA:BB:CC:DD:19
 00:AA:BB:CC:DD:19:

 eth_current->name = Eth0 (10/100-M)

   
6: System Load Linux Kernel then write to Flash via TFTP Server. 

 netboot_common, argc= 2 
 *************buf = 0x81fcb9e0
 **********NexTxPacket = 81fe3ac0

 NetTxPacket = 0x81FE3AC0 

 NetRxPackets[0] = 0x81FE40C0

 NetRxPackets[1] = 0x81FE46C0

 NetRxPackets[2] = 0x81FE4CC0

 NetRxPackets[3] = 0x81FE52C0

 NetRxPackets[4] = 0x81FE58C0

 NetRxPackets[5] = 0x81FE5EC0

 NetRxPackets[6] = 0x81FE64C0

 NetRxPackets[7] = 0x81FE6AC0

 NetRxPackets[8] = 0x81FE70C0

 NetRxPackets[9] = 0x81FE76C0

 NetRxPackets[10] = 0x81FE7CC0

 NetRxPackets[11] = 0x81FE82C0

 NetRxPackets[12] = 0x81FE88C0

 NetRxPackets[13] = 0x81FE8EC0

 NetRxPackets[14] = 0x81FE94C0

 NetRxPackets[15] = 0x81FE9AC0

 NetRxPackets[16] = 0x81FEA0C0

 NetRxPackets[17] = 0x81FEA6C0

 NetRxPackets[18] = 0x81FEACC0

 NetRxPackets[19] = 0x81FEB2C0

 KSEG1ADDR(NetTxPacket) = 0xA1FE3AC0 

 NetLoop,call eth_halt ! 

 NetLoop,call eth_init ! 
Trying Eth0 (10/100-M)

 Waitting for RX_DMA_BUSY status Start... done

 Mac to giga Mac mode  

 rx_ring = A1FCBE00, tx_ring0 = A1FCBCC0

 Header Payload scatter function is Disable !! 

 RT2880_PDMA_GLO_CFG=00000020 

 ************************************************* 

 RX_CALC_IDX0=19 

 RX_DRX_IDX0 = 0 

 ************************************************* 

 ETH_STATE_ACTIVE!! 

tftp server(receive) go, waiting:4[sec]
Trying Eth0 (10/100-M)

 ETH_STATE_ACTIVE!! 
Load address: 0x81000000
checksum bad
checksum bad
checksum bad
checksum bad
checksum bad
checksum bad
checksum bad
Got ARP REQUEST, return our IP
Got ARP REPLY, set server/gtwy eth addr (5c:9a:d8:e6:3f:b3)
Got it
checksum bad
checksum bad
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
tftp server done
Bytes transferred = 3277316 (320204 hex)
NetBootFileXferSize= 00320204
tftp server received buffalo F/W.
buf="# Airstation FirmWare
run u_fw
r"
Encript Airstation FirmWare header
begin commands
cmd:# Airstation FirmWare
cmd:run u_fw

 b_end =BF3FFFFF
Erase Flash from 0xbf050000 to 0xbf3fffff in Bank # 1 

 erase sector  = 12 
sect = 12,s_last = 70,erase poll = 806018

 erase sector  = 13 
sect = 13,s_last = 70,erase poll = 806709

 erase sector  = 14 
*sect = 14,s_last = 70,erase poll = 818244

 erase sector  = 15 
sect = 15,s_last = 70,erase poll = 797581

 erase sector  = 16 
sect = 16,s_last = 70,erase poll = 814609
.
 erase sector  = 17 
sect = 17,s_last = 70,erase poll = 825964

 erase sector  = 18 
sect = 18,s_last = 70,erase poll = 807269

 erase sector  = 19 
*sect = 19,s_last = 70,erase poll = 817820

 erase sector  = 20 
sect = 20,s_last = 70,erase poll = 807149

 erase sector  = 21 
*sect = 21,s_last = 70,erase poll = 817876

 erase sector  = 22 
sect = 22,s_last = 70,erase poll = 824256

 erase sector  = 23 
sect = 23,s_last = 70,erase poll = 822237

 erase sector  = 24 
*sect = 24,s_last = 70,erase poll = 824219

 erase sector  = 25 
sect = 25,s_last = 70,erase poll = 768322

 erase sector  = 26 
sect = 26,s_last = 70,erase poll = 647356

 erase sector  = 27 
*sect = 27,s_last = 70,erase poll = 825006

 erase sector  = 28 
sect = 28,s_last = 70,erase poll = 807684

 erase sector  = 29 
*sect = 29,s_last = 70,erase poll = 818392

 erase sector  = 30 
sect = 30,s_last = 70,erase poll = 835490

 erase sector  = 31 
sect = 31,s_last = 70,erase poll = 822679

 erase sector  = 32 
*sect = 32,s_last = 70,erase poll = 808126

 erase sector  = 33 
sect = 33,s_last = 70,erase poll = 812402

 erase sector  = 34 
*sect = 34,s_last = 70,erase poll = 830256

 erase sector  = 35 
sect = 35,s_last = 70,erase poll = 830251

 erase sector  = 36 
*sect = 36,s_last = 70,erase poll = 819203

 erase sector  = 37 
sect = 37,s_last = 70,erase poll = 818390

 erase sector  = 38 
sect = 38,s_last = 70,erase poll = 821800

 erase sector  = 39 
*sect = 39,s_last = 70,erase poll = 798328

 erase sector  = 40 
sect = 40,s_last = 70,erase poll = 810145

 erase sector  = 41 
*sect = 41,s_last = 70,erase poll = 807579

 erase sector  = 42 
sect = 42,s_last = 70,erase poll = 833192

 erase sector  = 43 
sect = 43,s_last = 70,erase poll = 823897

 erase sector  = 44 
*sect = 44,s_last = 70,erase poll = 822087

 erase sector  = 45 
sect = 45,s_last = 70,erase poll = 805076

 erase sector  = 46 
*sect = 46,s_last = 70,erase poll = 818297

 erase sector  = 47 
sect = 47,s_last = 70,erase poll = 825913

 erase sector  = 48 
sect = 48,s_last = 70,erase poll = 807648

 erase sector  = 49 
*sect = 49,s_last = 70,erase poll = 808872

 erase sector  = 50 
sect = 50,s_last = 70,erase poll = 818297

 erase sector  = 51 
*sect = 51,s_last = 70,erase poll = 818381

 erase sector  = 52 
sect = 52,s_last = 70,erase poll = 818391

 erase sector  = 53 
sect = 53,s_last = 70,erase poll = 827549

 erase sector  = 54 
*sect = 54,s_last = 70,erase poll = 818384

 erase sector  = 55 
sect = 55,s_last = 70,erase poll = 808554

 erase sector  = 56 
*sect = 56,s_last = 70,erase poll = 809249

 erase sector  = 57 
sect = 57,s_last = 70,erase poll = 823322

 erase sector  = 58 
sect = 58,s_last = 70,erase poll = 834501

 erase sector  = 59 
*sect = 59,s_last = 70,erase poll = 832884

 erase sector  = 60 
sect = 60,s_last = 70,erase poll = 659309

 erase sector  = 61 
sect = 61,s_last = 70,erase poll = 669044
.
 erase sector  = 62 
sect = 62,s_last = 70,erase poll = 664953

 erase sector  = 63 
sect = 63,s_last = 70,erase poll = 660409

 erase sector  = 64 
sect = 64,s_last = 70,erase poll = 674214

 erase sector  = 65 
*sect = 65,s_last = 70,erase poll = 662003

 erase sector  = 66 
sect = 66,s_last = 70,erase poll = 661061

 erase sector  = 67 
sect = 67,s_last = 70,erase poll = 704263
.
 erase sector  = 68 
sect = 68,s_last = 70,erase poll = 658360

 erase sector  = 69 
sect = 69,s_last = 70,erase poll = 658304

 erase sector  = 70 
*sect = 70,s_last = 70,erase poll = 818988
 done
Erased 59 sectors

 Copy linux image[3277316 byte] to Flash[0xBF050000].... 
Copy to Flash... 
 Copy 3277316 byte to Flash... 
 addr = 0xBF0A34F8 ,cnt=2936076 
 addr = 0xBF0F69F0 ,cnt=2594836 
 addr = 0xBF149EEA ,cnt=2253594 
 addr = 0xBF19D3E4 ,cnt=1912352 
 addr = 0xBF1F08DE ,cnt=1571110 
 addr = 0xBF243DD8 ,cnt=1229868 
 addr = 0xBF2972D2 ,cnt=888626 
 addr = 0xBF2EA7CA ,cnt=547386 
 addr = 0xBF33DCC4 ,cnt=206144 done
cmd:reset


U-Boot 1.1.3 for BUFFALO AIRSTATION (Aug 26 2008 - 13:08:44)

Board: Ralink APSoC DRAM:  32 MB
Top of RAM usable for U-Boot at: 82000000
Stack Pointer at: 81f4ff98
relocate_code Pointer at: 81fa0000
Now running in RAM - U-Boot at: 81fa0000

FLASH ID : 00h=[0xc2], 01h=[0x22a8], 0Eh=[0x0], 0Fh=[0x19]

 Set info->start[0]=BF000000
flash_protect ON: from 0xBF000000 to 0xBF02B84F
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 0xBF030000 to 0xBF03FFFF
protect on 10
flash_protect ON: from 0xBF040000 to 0xBF04FFFF
protect on 11
uboot use  81F4FFB0 - 82000000
Memory Test start(80000000) end(81F00000) size(01F00000)
Pattern 00000000  Writing...  Reading...
Memory Test OK
### buf_ver=[1.09] U-Boot Ver.=[1.09]
### build_date(env)=[Aug 26 2008 - 13:08:44] build_date(bin)=[Aug 26 2008 - 13:08:44]
============================================ 
Ralink UBoot Version: 3.1
-------------------------------------------- 
ASIC 3052_MP2 (MAC to GigaMAC Mode)
DRAM COMPONENT: 256Mbits 
DRAM BUS: 32BIT 
Total memory: 64 MBytes
Date:Aug 26 2008  Time:13:08:44
============================================ 
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 =32 Mbytes

Please choose the operation: 
   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 
Net:   
 eth_register  
Eth0 (10/100-M)
 enetvar=ethaddr,Eth addr:00:AA:BB:CC:DD:19
 00:AA:BB:CC:DD:19:

 eth_current->name = Eth0 (10/100-M)

   
6: System Load Linux Kernel then write to Flash via TFTP Server. 

 netboot_common, argc= 2 
 *************buf = 0x81fcb9e0
 **********NexTxPacket = 81fe3ac0

 NetTxPacket = 0x81FE3AC0 

 NetRxPackets[0] = 0x81FE40C0

 NetRxPackets[1] = 0x81FE46C0

 NetRxPackets[2] = 0x81FE4CC0

 NetRxPackets[3] = 0x81FE52C0

 NetRxPackets[4] = 0x81FE58C0

 NetRxPackets[5] = 0x81FE5EC0

 NetRxPackets[6] = 0x81FE64C0

 NetRxPackets[7] = 0x81FE6AC0

 NetRxPackets[8] = 0x81FE70C0

 NetRxPackets[9] = 0x81FE76C0

 NetRxPackets[10] = 0x81FE7CC0

 NetRxPackets[11] = 0x81FE82C0

 NetRxPackets[12] = 0x81FE88C0

 NetRxPackets[13] = 0x81FE8EC0

 NetRxPackets[14] = 0x81FE94C0

 NetRxPackets[15] = 0x81FE9AC0

 NetRxPackets[16] = 0x81FEA0C0

 NetRxPackets[17] = 0x81FEA6C0

 NetRxPackets[18] = 0x81FEACC0

 NetRxPackets[19] = 0x81FEB2C0

 KSEG1ADDR(NetTxPacket) = 0xA1FE3AC0 

 NetLoop,call eth_halt ! 

 NetLoop,call eth_init ! 
Trying Eth0 (10/100-M)

 Waitting for RX_DMA_BUSY status Start... done

 Mac to giga Mac mode  

 rx_ring = A1FCBE00, tx_ring0 = A1FCBCC0

 Header Payload scatter function is Disable !! 

 RT2880_PDMA_GLO_CFG=00000020 

 ************************************************* 

 RX_CALC_IDX0=19 

 RX_DRX_IDX0 = 0 

 ************************************************* 

 ETH_STATE_ACTIVE!! 

tftp server(receive) go, waiting:4[sec]
Trying Eth0 (10/100-M)

 ETH_STATE_ACTIVE!! 
Load address: 0x81000000

TftpServer Timeout;
Trying Eth0 (10/100-M)

 ETH_STATE_ACTIVE!! 
no file was loaded.
   
3: System Boot system code via Flash.
## Booting image at bf050000 ...
   Image Name:   MIPS OpenWrt Linux-4.9.77
   Created:      2018-02-12   9:57:22 UTC

 System Control Status = 0x20440000 
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1306525 Bytes =  1.2 MB
   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, 32

Starting kernel ...

[    0.000000] Linux version 4.9.77 (musashino205@Taiha.Net) (gcc version 5.5.0 (OpenWrt GCC 5.5.0 r0+6059-05677f0) ) #0 Mon Feb 12 09:57:22 2018
[    0.000000] SoC Type: Ralink RT3052 id:1 rev:2
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001964c (MIPS 24KEc)
[    0.000000] MIPS: machine is Buffalo WHR-G300N
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    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] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 28092K/32768K available (3051K kernel code, 145K rwdata, 708K rodata, 184K init, 204K bss, 4676K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:256
[    0.000000] CPU Clock: 384MHz
[    0.000000] clocksource_probe: no matching clocksources found
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9954481493 ns
[    0.000014] sched_clock: 32 bits at 192MHz, resolution 5ns, wraps every 11184811005ns
[    0.015678] Calibrating delay loop... 255.59 BogoMIPS (lpj=1277952)
[    0.100968] pid_max: default: 32768 minimum: 301
[    0.110378] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.123474] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.144844] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.164410] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.176633] pinctrl core: initialized pinctrl subsystem
[    0.187905] NET: Registered protocol family 16
[    0.228898] rt2880_gpio 10000600.gpio: registering 24 gpios
[    0.239995] rt2880_gpio 10000600.gpio: registering 24 irq handlers
[    0.257596] clocksource: Switched to clocksource MIPS
[    0.269288] NET: Registered protocol family 2
[    0.279239] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.293104] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.305721] TCP: Hash tables configured (established 1024 bind 1024)
[    0.318517] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.330101] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.342938] NET: Registered protocol family 1
[    0.355327] rt-timer 10000100.timer: maximum frequency is 3906Hz
[    0.368542] Crashlog allocated RAM at address 0x1f00000
[    0.380952] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    0.405462] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.417039] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.453168] io scheduler noop registered
[    0.460919] io scheduler deadline registered (default)
[    0.471785] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.485920] console [ttyS0] disabled
[    0.493036] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 8000000) is a Palmchip BK-3103
[    0.512770] console [ttyS0] enabled
[    0.512770] console [ttyS0] enabled
[    0.526712] bootconsole [early0] disabled
[    0.526712] bootconsole [early0] disabled
[    0.544278] 1f000000.cfi: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x0000c2 Chip ID 0x0022a8
[    0.564542] Amd/Fujitsu Extended Query Table at 0x0040
[    0.574936]   Amd/Fujitsu Extended Query version 1.1.
[    0.585144] number of CFI chips: 1
[    0.596235] 5 ofpart partitions found on MTD device 1f000000.cfi
[    0.608416] Creating 5 MTD partitions on "1f000000.cfi":
[    0.619150] 0x000000000000-0x000000030000 : "u-boot"
[    0.631537] 0x000000030000-0x000000040000 : "u-boot-env"
[    0.645139] 0x000000040000-0x000000050000 : "factory"
[    0.658269] 0x000000050000-0x0000003f0000 : "firmware"
[    0.672788] 2 uimage-fw partitions found on MTD device firmware
[    0.684819] 0x000000050000-0x00000018efdd : "kernel"
[    0.697542] 0x00000018efdd-0x0000003f0000 : "rootfs"
[    0.710434] mtd: device 5 (rootfs) set to be root filesystem
[    0.721955] 1 squashfs-split partitions found on MTD device rootfs
[    0.734469] 0x000000370000-0x0000003f0000 : "rootfs_data"
[    0.748343] 0x0000003f0000-0x000000400000 : "user"
[    0.761684] libphy: Fixed MDIO Bus: probed
[    0.773383] rt3050-esw 10110000.esw: link changed 0x18
[    0.786555] mtk_soc_eth 10100000.ethernet: generated random MAC address b2:22:c7:30:4d:55
[    0.804287] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[    0.821766] rt2880_wdt 10000120.watchdog: Initialized
[    0.833520] NET: Registered protocol family 10
[    0.847329] NET: Registered protocol family 17
[    0.856492] 8021q: 802.1Q VLAN Support v1.8
[    0.873605] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    0.889239] Freeing unused kernel memory: 184K
[    0.898254] This architecture does not have kernel memory protection.
[    1.638197] init: Console is alive
[    1.645438] init: - watchdog -
[    2.034199] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    2.186265] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    2.211564] init: - preinit -
[    2.517612] random: fast init done
[    3.543740] 8021q: adding VLAN 0 to HW filter on device eth0
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    6.989255] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[    7.044167] urandom-seed: Seed file not found (/etc/urandom.seed)
[    7.217139] procd: - early -
[    7.223245] procd: - watchdog -
[    7.924664] procd: - watchdog -
[    7.931652] procd: - ubus -
[    8.077062] procd: - init -
Please press Enter to activate this console.
[    8.681612] kmodloader: loading kernel modules from /etc/modules.d/*
[    8.829515] nat46: module (version 683fbd2b765506332a1af141545652bf58f03166) loaded.
[    8.859243] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    8.903286] u32 classifier
[    8.908836]     input device check on
[    8.916198]     Actions configured
[    8.926855] Mirror/redirect action on
[    8.945238] nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
[    8.990249] ip_tables: (C) 2000-2006 Netfilter Core Team
[    9.274762] xt_time: kernel timezone is -0000
[    9.318461] PPP generic driver version 2.4.2
[    9.354753] NET: Registered protocol family 24
[    9.395545] kmodloader: done loading kernel modules from /etc/modules.d/*
[   23.202959] 8021q: adding VLAN 0 to HW filter on device eth0
[   23.305109] br-lan: port 1(eth0.1) entered blocking state
[   23.316076] br-lan: port 1(eth0.1) entered disabled state
[   23.327698] device eth0.1 entered promiscuous mode
[   23.337354] device eth0 entered promiscuous mode
[   23.566627] br-lan: port 1(eth0.1) entered blocking state
[   23.577596] br-lan: port 1(eth0.1) entered forwarding state
[   23.589154] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   24.207878] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   34.487979] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   34.544126] jffs2_build_filesystem(): unlocking the mtd device... [   34.556302] done.
[   34.560209] jffs2_build_filesystem(): erasing all blocks after the end marker... [   38.893944] done.
[   38.897962] jffs2: notice: (1516) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
広告

BUFFALO WHR-G300NとOpenWrt/LEDE-Project

普段TwitterやMastodonにつらつらと吐き出しているものの、「あの時どうやったっけなー」とかそういう時に掘り返すのが面倒なので、雑記を活用していくことにしました。たぶん投稿頻度は多少上がります。

  • WHR-G300N
    • スペック
      • SoC: RT3052 (384MHz)
      • RAM: 32MB
      • Flash: 4MB
      • WAN/LAN: 100Mbps
      • WLAN: 300Mbps (IEEE802.11n)
    • 対応状況 (OpenWrt / LEDE): OK / OK
    • 動作状況 (OpenWrt / LEDE): OK / OK NG / NG
      2018/03/10 追記: LEDE-Projectにてdtsが修正され、パーティションに関する問題は解決されました。その後コードが引き継がれたOpenWrtでも問題無く動作します。
    • 対応策
      • dtsを修正して独自にビルド
        • OpenWrt 10.03 backfire 辺りのコードにパーティション定義が残っているので、それを引っ張ってくる 5年前…
        • 最新の OpenWrt / LEDE のdtsへは、WHR-600D 等同じtargetの機種のdtsを参考に書き換えて落とし込む
        • OpenWrt の古いコードにある “kernel” と “rootfs” は記述する必要は無い模様
          ※”kernel” と “rootfs” を記述したところ、起動時に他のパーティションと重複しているというようなエラーが出た。この2つのパーティションは、自動的に “firmware” から展開される模様。
      • 管理人が修正したdts
      • 実機での動作も問題無し
        • Linux Kernel 4.4、LEDE-Project の master で最近切り替えられた Linux Kernel 4.9 いずれも正常に動作
        • ビルド済みファーム (OpenWrt master): taiha.net/jenkins
          ※無線関係は全パッケージを削除してあります。
    • 実機への投入
      • 以前のエントリ(WHR-G300NにOpenWrt / LEDE-Project ファームを投入する – 大破雑記帳)を参照
        ざっくりとした図だけなので、不明な点はTwitterやMastodon、コメント等で。
      • 2018/03/10 追記: イメージ生成コードを修正しマージされたため、WHR-G300N用のTFTPイメージがビルドされるようになりました。公式ダウンロードサイトの ramips/rt305x からダウンロードでき、WHR-G301Nと同様の手順で投入することができます。(ブートローダの設定は不要)