$30 off During Our Annual Pro Sale. View Details »

tokaido-lug-201812-yokohama

musashino205
December 15, 2018

 tokaido-lug-201812-yokohama

musashino205

December 15, 2018
Tweet

More Decks by musashino205

Other Decks in Technology

Transcript

  1. 近況まとめ
    東海道らぐ 横浜 2018冬
    @musashino205

    View Slide

  2. 自己紹介
    • HN: 武蔵野, 大破
    • musashino_205
    • musashino205
    @mstdn.maud.io
    • 続きはWebで:
    taiha.net, 大破.net

    View Slide

  3. OpenWrtとは
    • ルータ等の組込デバイス向けLinuxディストリビューション
    • 見方を変えると → 組込Linux開発環境
    • サポート済み各SoCに最適化されたLinuxイメージの生成
    • 組込デバイスに特化したユーティリティ類
    • dnsmasq, dropbear, busybox, ...
    • デバイス用ファームウェア生成ツール類
    Linuxカーネルからファームウェアまで
    スライド: https://speakerdeck.com/musashino205/fall-openwrt

    View Slide

  4. 法律関係
    • 市販ルータ(技適取得済み)へのサードパーティファームウェア導
    入は “改造” に該当する可能性がある
    • 技適認証が無効扱いになる
    • OpenWrt等サードパーティファームウェアをインストールする場合、
    電波は原則として出力しない
    • Raspberry Pi等は例外
    法律を守って楽しいhackを。

    View Slide

  5. 近況

    View Slide

  6. 近況
    • 機種のサポート追加(初夏の横浜以降(2018.08~))
    • マージ済み
    • BUFFALO
    • BHR-4GRV (2011.08上旬 – ?(販売終了))
    • BHR-4GRV2* (2014.06上旬 – )
    • WZR-HP-G302H (2010.12上旬 – ?(販売終了))
    • I-O DATA
    • ETG3-R (2013.03下旬 – 2018.03.07)
    • WN-AG300DGR (2012.8下旬 – 2013.11.13)
    • WN-AC1167DGR (2013.09中旬 – 2014.12/24)
    • WN-AC1600DGR2 (2014.03中旬 – 2014.10.01)
    • ELECOM
    • WRC-300GHBK2-I (2015.07下旬 – ?(販売終了))
    * : ar71xx -> ath79移植

    View Slide

  7. 近況
    • 機種のサポート追加(続き)
    • 作業中
    • BUFFALO
    • WXR-2533DHP (2015.06中旬 – ?(販売終了))
    • I-O DATA
    • WN-AC1167GR (2014.10下旬 – 2018.02.14)
    • WN-AC1600DGR (2013.06中旬 – 2014.07.16)
    • ELECOM
    • WRC-733GHBK (2013.10下旬 – ?(販売終了))
    • WRC-1750GHBK2-I/C (2015.01中旬 – ?(販売終了))
    • NEC
    • WG800HP (2016.04.14 – ?(販売終了))
    • stock firmware → OpenWrtベース
    • 作業中(特別挑戦枠)
    • NEC
    • WR8750N (2012.01中旬 – ?(販売終了))
    • NetBSD機

    View Slide

  8. NEC Aterm WR8750N

    View Slide

  9. NEC Aterm WR8750N
    • ハードウェア仕様
    • SoC: Atheros AR9344 (1C1T, 560MHz)
    • RAM: 128 MB (DDR2 64MB x2)
    • Flash: 8 MB (SPI-NOR)
    • Ethernet: 1000 Mbps x5
    • Switch: Atheros AR8327
    • USB: USB 2.0 Type-A x1
    • ソフトウェア仕様
    • Bootloader: 不明(オリジナル?)
    • OS: NetBSD
    • Baudrate: 9600 bps
    ハードウェアは(RAMだいぶ多いけど)至って普通、ソフトウェアは(民生
    用としては)異色

    View Slide

  10. NEC Aterm WR8750N
    • 元々NECのNetBSD機は避けていた
    • Linuxをブートできなさそう
    • 色々めんどくさそう
    • が。
    • SoCが古すぎない, GbE機, ...などの条件の機種が尽きてきた
    • まだ多少あるけど
    • AR9342 / AR9344はまだまだ使えるので興味が湧いた
    • USBポートあるし使い勝手良さそう
    • NetBSDブートできるならLinuxだってブートできるやろ(←????????
    • NEC機は似たソフトウェア構成の機種が多い
    • この機種サポートできれば他機種もワンチャン

    View Slide

  11. NEC Aterm WR8750N
    • レッツトライ
    • BootloaderとKernelにパスワードが掛けられている
    • Bootloaderは5chにヒント有
    • TFTPで流し込むことはできそう
    • tftpd コマンドでTFTP待ち受け、クライアントからTFTP PUT
    • OpenWrtのinitramfs (Kernel + ramfs Root) ファームで試行
    できそう

    View Slide

  12. NEC Aterm WR8750N
    • Bootloaderコマンド類(主要なもの)
    • boot: Load済みイメージをブート
    • tftpd: TFTPサーバ開始
    • debug: 各種デバッグコマンド
    • debug memory: メモリ系デバッグコマンド
    • debug memory read 0xb805002c 1
    • 0xb805002cから1word(32bit)読み出し
    • debug flash: Flash系デバッグコマンド
    • debug flash info
    • Flash情報表示
    • debug flash read 0xbf000000 100
    • 0xbf000000から100byte読み出し

    View Slide

  13. NEC Aterm WR8750N
    • 進捗
    • gzip-compressedなOpenWrtのLinux Kernelを開始すること
    はできた

    View Slide

  14. start tftp load openwrt-ath79-tiny-nec_wr8750n-i
    end tftp load length = 3583343
    start memory load ...
    memory load complete
    begin : 0x80060000
    length : 3583319
    startup: 0x80060000
    boot
    begin : 0x80060000
    length : 3583319
    startup: 0x80060000
    option: 0x0
    [ 0.000000] Linux version 4.14.87 (tofu@tofu-z77hvub18_openwrt) (gcc version 7.3.0 (OpenWrt GCC
    7.3.0 r8695-1eb39ece8d)) #0 Tue Dec 11 13:11:03 2018
    [ 0.000000] bootconsole [early0] enabled
    [ 0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
    [ 0.000000] MIPS: machine is NEC Aterm WR8750N
    [ 0.000000] SoC: Atheros AR9344 rev 1
    [ 0.000000] Determined physical RAM map:
    [ 0.000000] memory: 08000000 @ 00000000 (usable)
    [ 0.000000] Initrd not found or empty - disabling initrd
    [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
    [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
    [ 0.000000] Zone ranges:
    [ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff]
    [ 0.000000] Movable zone start for each node
    [ 0.000000] Early memory node ranges
    [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff]
    [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
    [ 0.000000] random: get_random_bytes called from 0x8045772c with crng_init=0
    ...

    View Slide

  15. NEC Aterm WR8750N
    • 進捗
    • gzip-compressedなOpenWrtのLinux Kernelを開始すること
    はできた
    • お!?!?!?

    View Slide

  16. NEC Aterm WR8750N
    • 進捗
    • gzip-compressedなOpenWrtのLinux Kernelを開始すること
    はできた
    • お!?!?!?
    • が。

    View Slide

  17. [ 1.048781] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    [ 1.124770] TCP: Hash tables configured (established 1024 bind 1024)
    [ 1.200908] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 1.270713] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 1.345915] NET: Registered protocol family 1
    [ 1.511715] Crashlog allocated RAM at address 0x3f00000
    [ 1.575637] workingset: timestamp_bits=30 max_order=15 bucket_order=0
    [ 1.657573] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 1.727362] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red
    Hat, Inc.
    [
    IPL:SOFT-RESET
    memory test ... ok
    flinistall OK
    boot version: 1.0.0
    PKG “Orthos-HP”
    CPU “Atheros/AR9344”
    Revision 212.1 CLOCK 560.0 MHz
    HEAP MEMORY 262144 bytes
    Boot: InitFilesystem
    phy0.1: “Atheros/AR8327(SW)”
    phy0.0: “Atheros/AR8327(phy)”
    active ch:0
    now booting Firmware ...
    loaded Firmware
    ...
    (以降FlashからNetBSDのブート)

    View Slide

  18. NEC Aterm WR8750N
    • 進捗
    • gzip-compressedなOpenWrtのLinux Kernelを開始すること
    はできた
    • お!?!?!?
    • が。
    • ブートが途中で中断され、soft-resetが掛かって再起動されてし
    まう
    • この原因は不明
    • 複数の方より 「watchdog timer (wdt) では」 という指摘
    • DTSで無効にしても変わらず
    • 要検証
    • 原因を特定できず作業が行き詰まり
    • ヘルプミー!!!!!

    View Slide

  19. おわり

    View Slide