Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
tokaido-lug-201812-yokohama
musashino205
December 15, 2018
Technology
0
210
tokaido-lug-201812-yokohama
musashino205
December 15, 2018
Tweet
Share
More Decks by musashino205
See All by musashino205
OSC2019-TokyoFall_OpenWrt-and-Monitoring
musashino205
0
65
tokaido-lug-201909-yokohama
musashino205
0
40
OSC 2019 Tokyo/Spring Aterm & OpenWrt
musashino205
0
350
OSC 2018 Tokyo/Fall OpenWrt
musashino205
0
150
tokaido-lug_201807-yokohama
musashino205
0
200
OSC2018-Tokyo/Spring_OpenWrt
musashino205
0
170
TokaidoLUG-201712_Router
musashino205
0
210
Other Decks in Technology
See All in Technology
サーバレスECにおける Step Functions の使い方 〜ステートマシン全部見せます!〜
miu_crescent
0
190
Custom AppをIP制限ありのままで審査に通す方法
yusuga
0
670
2024卒_freee_エンジニア職(ポテンシャル採用)_説明資料
freee
0
220
【Pythonデータ分析勉強会#33】「DearPyGuiに入門しました」の続き~Image-Processing-Node-Editor~
kazuhitotakahashi
0
120
要約 "Add Live Text interaction to your app"
ushisantoasobu
0
140
Data in Google I/O - IO Extended GDG Seoul
kennethanceyer
0
150
Meet passkeys
satotakeshi
1
110
マネージャーからみたスクラムと自己管理化
shibe23
0
1k
ノーメンテナンス運用実現のためのノウハウ/ColoplTech-05-02
colopl
0
190
アーキテクチャを明文化して開発に臨んだ話
akihiyo76
0
270
オンラインでのサーバー切替事例紹介/ColoplTech-05-01
colopl
0
200
インフラのCI/CDはGitHub Actionsに任せた
mihyon
0
110
Featured
See All Featured
Robots, Beer and Maslow
schacon
152
7.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
126
8.5k
The World Runs on Bad Software
bkeepers
PRO
57
5.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
Making the Leap to Tech Lead
cromwellryan
113
7.4k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Build your cross-platform service in a week with App Engine
jlugia
219
17k
Designing for humans not robots
tammielis
241
23k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
Code Reviewing Like a Champion
maltzj
506
37k
Ruby is Unlike a Banana
tanoku
91
9.2k
Transcript
近況まとめ 東海道らぐ 横浜 2018冬 @musashino205
自己紹介 • HN: 武蔵野, 大破 • musashino_205 • musashino205 @mstdn.maud.io
• 続きはWebで: taiha.net, 大破.net
OpenWrtとは • ルータ等の組込デバイス向けLinuxディストリビューション • 見方を変えると → 組込Linux開発環境 • サポート済み各SoCに最適化されたLinuxイメージの生成 •
組込デバイスに特化したユーティリティ類 • dnsmasq, dropbear, busybox, ... • デバイス用ファームウェア生成ツール類 Linuxカーネルからファームウェアまで スライド: https://speakerdeck.com/musashino205/fall-openwrt
法律関係 • 市販ルータ(技適取得済み)へのサードパーティファームウェア導 入は “改造” に該当する可能性がある • 技適認証が無効扱いになる • OpenWrt等サードパーティファームウェアをインストールする場合、
電波は原則として出力しない • Raspberry Pi等は例外 法律を守って楽しいhackを。
近況
近況 • 機種のサポート追加(初夏の横浜以降(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移植
近況 • 機種のサポート追加(続き) • 作業中 • 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機
NEC Aterm WR8750N
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だいぶ多いけど)至って普通、ソフトウェアは(民生 用としては)異色
NEC Aterm WR8750N • 元々NECのNetBSD機は避けていた • Linuxをブートできなさそう • 色々めんどくさそう •
が。 • SoCが古すぎない, GbE機, ...などの条件の機種が尽きてきた • まだ多少あるけど • AR9342 / AR9344はまだまだ使えるので興味が湧いた • USBポートあるし使い勝手良さそう • NetBSDブートできるならLinuxだってブートできるやろ(←???????? • NEC機は似たソフトウェア構成の機種が多い • この機種サポートできれば他機種もワンチャン
NEC Aterm WR8750N • レッツトライ • BootloaderとKernelにパスワードが掛けられている • Bootloaderは5chにヒント有 •
TFTPで流し込むことはできそう • tftpd コマンドでTFTP待ち受け、クライアントからTFTP PUT • OpenWrtのinitramfs (Kernel + ramfs Root) ファームで試行 できそう
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読み出し
NEC Aterm WR8750N • 進捗 • gzip-compressedなOpenWrtのLinux Kernelを開始すること はできた
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 ...
NEC Aterm WR8750N • 進捗 • gzip-compressedなOpenWrtのLinux Kernelを開始すること はできた •
お!?!?!?
NEC Aterm WR8750N • 進捗 • gzip-compressedなOpenWrtのLinux Kernelを開始すること はできた •
お!?!?!? • が。
[ 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のブート)
NEC Aterm WR8750N • 進捗 • gzip-compressedなOpenWrtのLinux Kernelを開始すること はできた •
お!?!?!? • が。 • ブートが途中で中断され、soft-resetが掛かって再起動されてし まう • この原因は不明 • 複数の方より 「watchdog timer (wdt) では」 という指摘 • DTSで無効にしても変わらず • 要検証 • 原因を特定できず作業が行き詰まり • ヘルプミー!!!!!
おわり