aboutsummaryrefslogtreecommitdiff
path: root/docs/ja/newbs_flashing.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ja/newbs_flashing.md')
-rw-r--r--docs/ja/newbs_flashing.md399
1 files changed, 399 insertions, 0 deletions
diff --git a/docs/ja/newbs_flashing.md b/docs/ja/newbs_flashing.md
new file mode 100644
index 000000000..54569e122
--- /dev/null
+++ b/docs/ja/newbs_flashing.md
@@ -0,0 +1,399 @@
1# ファームウェアを書きこむ
2
3<!---
4 original document: ed0575fc8:docs/newbs_flashing.md
5 $ git diff ed0575fc8 HEAD docs/newbs_flashing.md
6-->
7
8カスタムファームウェアは出来たので、キーボードに書き込みたくなるでしょう/フラッシュしたくなるでしょう。
9
10## QMK Toolbox を使ってキーボードに書き込む
11
12キーボードに書き込む最も簡単な方法は [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) を使うことです。
13
14ただし、QMK Toolbox は、現在は Windows と macOS でしか使えません。
15Linuxを使用している場合(および、コマンドラインでファームウェアを書き込みたい場合)は、下の方で概説する[方法](newbs_flashing.md#コマンドラインでファームウェアを書き込む)で行なう必要があります。
16
17### QMK Toolbox にファイルをロードする
18
19まず QMK Toolbox アプリケーションを起動します。
20Finder またはエクスプローラーでファームウェアのファイルを探します。
21ファイル名は `.hex` または `.bin` のどちらかの形式です。
22ビルド時に QMK は、キーボードに適した形式のものを `qmk_firmware` のトップフォルダにコピーしているはずです。
23
24Windows か macOS を使用しているときは現在のファームウェアフォルダをエクスプローラーか Finder で簡単に開くためのコマンドがあります。
25
26#### Windows
27
28```
29start .
30```
31
32#### macOS
33
34```
35open .
36```
37
38ファームウェアファイルは常に以下の命名形式に従っています。
39
40```
41<keyboard_name>_<keymap_name>.{bin,hex}
42```
43
44例えば、`plank/rev5` の `default` キーマップのファイル名は以下のようになります。
45
46```
47planck_rev5_default.hex
48```
49
50ファームウェアファイルを見つけたら、QMK Toolbox の "Local file" ボックスにドラッグするか、"Open" をクリックしてファームウェアファイルを指定します。
51
52### キーボードを DFU (Bootloader) モードにする
53
54ファームウェアを書き込むには、キーボードを普段とは違う特別な状態、フラッシュモードにする必要があります。
55このモードでは、キーボードはキーボードとしての機能をはたしません。
56ファームウェアの書き込み中にキーボードのケーブルを抜いたり、書き込みプロセスを中断したりしないことが非常に重要です。
57
58キーボードによって、この特別なモードに入る方法は異なります。
59キーボードが現在 QMK または TMK を実行しており、キーボードメーカーから具体的な指示が与えられていない場合は、次を順番に試してください。
60
61* 両方のシフトキーを押しながら、`Pause` キーを押す
62* 両方のシフトキーを押しながら、`B` キーを押す
63* キーボードのケーブルを抜いて、スペースバーとBを同時に押しながら、キーボードを再び接続し、1秒待ってからキーを放す
64* 基板(PCB)に付けられている物理的な `RESET` ボタンを押す
65* PCB 上の `BOOT0` か `RESET` のラベルの付いたヘッダピンを探し、PCB 接続中にそれらを互いにショートする
66
67うまくいけば、QMK Toolboxに次のようなメッセージが表示されます。
68
69```
70*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
71*** DFU device connected
72```
73
74### キーボードへの書き込み
75
76QMK Toolbox の `Flash` ボタンをクリックします。
77次のような出力が表示されます。
78
79```
80*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
81*** DFU device connected
82*** Attempting to flash, please don't remove device
83>>> dfu-programmer atmega32u4 erase --force
84 Erasing flash... Success
85 Checking memory from 0x0 to 0x6FFF... Empty.
86>>> dfu-programmer atmega32u4 flash /Users/skully/qmk_firmware/clueboard_66_hotswap_gen1_skully.hex
87 Checking memory from 0x0 to 0x55FF... Empty.
88 0% 100% Programming 0x5600 bytes...
89 [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
90 0% 100% Reading 0x7000 bytes...
91 [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
92 Validating... Success
93 0x5600 bytes written into 0x7000 bytes memory (76.79%).
94>>> dfu-programmer atmega32u4 reset
95
96*** DFU device disconnected
97*** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390
98```
99
100## コマンドラインでファームウェアを書き込む
101
102これは、以前のものと比較して非常に単純になりました。
103ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
104
105 make <my_keyboard>:<my_keymap>:flash
106
107たとえば、キーマップの名前が xyverz で、rev5 planck のキーマップを作成している場合、次のコマンドを使用します。
108
109 make planck/rev5:xyverz:flash
110
111これにより、キーボードの構成が確認され、指定されたブートローダに基づいてキーボードへの書き込みが試行されます。
112これはあなたがキーボードが使用するブートローダを知る必要がないことを意味します。
113コマンドをただ実行して、コマンド自身に難しい処理を任せます。
114
115ただし、これはキーボードごとに設定されているブートローダに依存します。
116もしこの情報が設定されていない場合、または使用しているキーボードのファームウェアの書き込みにサポートしていないターゲットが設定されている場合、次のエラーが表示されます。
117
118 WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time.
119
120この場合、あなたは明示的にブートローダを指定する方法を使わなければなりません。
121
122ブートローダは主に 5 種類のものが使われています。
123Pro Micro とそのクローンは Caterina を、Teensy は HalfKay を、OLKBの AVR ボードは QMK-DFU を、その他の ATmega32U4 ボードは DFU を、そして多くの ARM ボードは ARM DFU を使います。
124
125より詳しいブートローダの情報は、[Flashing Instructions and Bootloader Information](flashing.md) にあります。
126
127使用しているブートローダがわかっているならば、ファームウェアをコンパイルするときに、実は `make` コマンドにブートローダを指定するテキストを追加して、書き込みプロセスを自動化できます。
128
129### DFU
130
131DFU ブートローダの場合、ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
132
133 make <my_keyboard>:<my_keymap>:dfu
134
135たとえば、キーマップの名前が xyverz で、rev5 planck のキーマップを作成している場合、次のコマンドを使用します。
136
137 make planck/rev5:xyverz:dfu
138
139コンパイルが終了すると、以下の出力になるはずです。
140
141```
142Linking: .build/planck_rev5_xyverz.elf [OK]
143Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
144Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
145Checking file size of planck_rev5_xyverz.hex
146 * File size is fine - 18574/28672
147 ```
148
149ここまでくると、ビルドスクリプトは5秒ごとに DFU ブートローダを探します。
150デバイスが見つかるか、あなたがキャンセルするまで、以下を繰り返します。
151
152 dfu-programmer: no device present.
153 Error: Bootloader not found. Trying again in 5s.
154
155これを実行したら、コントローラーをリセットする必要があります。
156そして下のような出力が表示されます。
157
158```
159*** Attempting to flash, please don't remove device
160>>> dfu-programmer atmega32u4 erase --force
161 Erasing flash... Success
162 Checking memory from 0x0 to 0x6FFF... Empty.
163>>> dfu-programmer atmega32u4 flash /Users/skully/qmk_firmware/clueboard_66_hotswap_gen1_skully.hex
164 Checking memory from 0x0 to 0x55FF... Empty.
165 0% 100% Programming 0x5600 bytes...
166 [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
167 0% 100% Reading 0x7000 bytes...
168 [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
169 Validating... Success
170 0x5600 bytes written into 0x7000 bytes memory (76.79%).
171>>> dfu-programmer atmega32u4 reset
172```
173
174?> `dfu-programmer:no device present` など、これに関する問題がある場合は、[よくある質問](faq_build.md) を参照してください。
175
176#### DFU コマンド
177
178ファームウェアを DFU デバイスに書き込むために使用できる DFU コマンドがいくつかあります。
179
180* `:dfu` - これが通常のオプションで、DFUデバイスが使用可能になるまで待機したのちファームウェアを書き込みます。5秒ごとに、DFUデバイスが存在するかチェックしています。
181* `:dfu-ee` - 通常の hex ファイルの代わりに `eep` ファイルを書き込みます。これを使用するのはまれです。
182* `:dfu-split-left` - デフォルトオプション (`:dfu`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」 EEPROMファイルも書き込まれます。_これは、Elite C ベースの分割キーボードに最適です。_
183* `:dfu-split-right` - デフォルトオプション (`:dfu`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」EEPROMファイルも書き込まれます。_これは、Elite C ベースの分割キーボードに最適です。_
184
185
186### Caterina
187
188Arduino ボードとそれらのクローンの場合(たとえば SparkFun ProMicro)、ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
189
190 make <my_keyboard>:<my_keymap>:avrdude
191
192たとえば、キーマップの名前が xyverz で、rev2 Lets Split のキーマップを作成している場合、次のコマンドを使用します。
193
194 make lets_split/rev2:xyverz:avrdude
195
196ファームウェアのコンパイルが完了すると、以下のように出力されます。
197
198```
199Linking: .build/lets_split_rev2_xyverz.elf [OK]
200Creating load file for flashing: .build/lets_split_rev2_xyverz.hex [OK]
201Checking file size of lets_split_rev2_xyverz.hex [OK]
202 * File size is fine - 27938/28672
203Detecting USB port, reset your controller now..............
204```
205
206この時点で、キーボードをリセットすると、スクリプトがブートローダを検出し、キーボードに書き込みます。出力は次のようになります。
207
208```
209Detected controller on USB port at /dev/ttyS15
210
211Connecting to programmer: .
212Found programmer: Id = "CATERIN"; type = S
213 Software Version = 1.0; No Hardware Version given.
214Programmer supports auto addr increment.
215Programmer supports buffered memory access with buffersize=128 bytes.
216
217Programmer supports the following devices:
218 Device code: 0x44
219
220avrdude.exe: AVR device initialized and ready to accept instructions
221
222Reading | ################################################## | 100% 0.00s
223
224avrdude.exe: Device signature = 0x1e9587 (probably m32u4)
225avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
226 To disable this feature, specify the -D option.
227avrdude.exe: erasing chip
228avrdude.exe: reading input file "./.build/lets_split_rev2_xyverz.hex"
229avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
230avrdude.exe: writing flash (27938 bytes):
231
232Writing | ################################################## | 100% 2.40s
233
234avrdude.exe: 27938 bytes of flash written
235avrdude.exe: verifying flash memory against ./.build/lets_split_rev2_xyverz.hex:
236avrdude.exe: load data flash data from input file ./.build/lets_split_rev2_xyverz.hex:
237avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
238avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex contains 27938 bytes
239avrdude.exe: reading on-chip flash data:
240
241Reading | ################################################## | 100% 0.43s
242
243avrdude.exe: verifying ...
244avrdude.exe: 27938 bytes of flash verified
245
246avrdude.exe: safemode: Fuses OK (E:CB, H:D8, L:FF)
247
248avrdude.exe done. Thank you.
249```
250うまくいかない時は、以下のようにする必要があるかもしれません。
251
252 sudo make <my_keyboard>:<my_keymap>:avrdude
253
254
255#### Caterina コマンド
256
257ファームウェアを DFU デバイスに書き込むために使用できる DFU コマンドがいくつかあります。
258
259* `:avrdude` - これが通常のオプションで、Caterina デバイスが(新しい COM ポートを検出して)使用可能になるまで待機し、ファームウェアを書き込みます。
260* `:avrdude-loop` - これは `:avrdude` と同じです。ただし書き込みが終了すると再び Caterina デバイスの書き込み待ちに戻ります。これは何台ものデバイスへの書き込みに便利です。_Control+C を押して、手動でこの繰り返しを終了させる必要があります。_
261* `:avrdude-split-left` - デフォルトオプション(`:avrdude`)と同様に通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」EEPROMファイルもフラッシュされます。 _これは、Pro Micro ベースの分割キーボードに最適です。_
262* `:avrdude-split-right` - デフォルトオプション(`:avrdude`)と同様に通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」EEPROMファイルもフラッシュされます。 _これは、Pro Micro ベースの分割キーボードに最適です。_
263
264### HalfKay
265
266PJRC デバイス(Teensy シリーズ)の場合、ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
267
268 make <my_keyboard>:<my_keymap>:teensy
269
270たとえば、キーマップの名前が xyverz で、Ergodox または Ergodox EZ のキーマップを作成している場合、次のコマンドを使用します。
271
272 make ergodox_ez:xyverz:teensy
273
274ファームウェアのコンパイルが完了すると、以下のように出力されます。
275
276```
277Linking: .build/ergodox_ez_xyverz.elf [OK]
278Creating load file for flashing: .build/ergodox_ez_xyverz.hex [OK]
279Checking file size of ergodox_ez_xyverz.hex [OK]
280 * File size is fine - 25584/32256
281 Teensy Loader, Command Line, Version 2.1
282Read "./.build/ergodox_ez_xyverz.hex": 25584 bytes, 79.3% usage
283Waiting for Teensy device...
284 (hint: press the reset button)
285 ```
286
287この時点で、キーボードをリセットします。すると、次のような出力が表示されます。
288
289 ```
290 Found HalfKay Bootloader
291Read "./.build/ergodox_ez_xyverz.hex": 28532 bytes, 88.5% usage
292Programming............................................................................................................................................................................
293...................................................
294Booting
295```
296
297### STM32 (ARM)
298
299主な ARM ボード (Proton C, Planck Rev 6, Preonic Rev 3 を含む)の場合、ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
300
301 make <my_keyboard>:<my_keymap>:dfu-util
302
303たとえば、キーマップの名前が xyverz で、Planck Revision 6 のキーマップを作成している場合、次のコマンドを使用し、(コンパイルが終わる前に)キーボードを再起動してブートローダを起動します:
304
305 make planck/rev6:xyverz:dfu-util
306
307ファームウェアのコンパイルが完了すると、以下のように出力されます。
308
309```
310Linking: .build/planck_rev6_xyverz.elf [OK]
311Creating binary load file for flashing: .build/planck_rev6_xyverz.bin [OK]
312Creating load file for flashing: .build/planck_rev6_xyverz.hex [OK]
313
314Size after:
315 text data bss dec hex filename
316 0 41820 0 41820 a35c .build/planck_rev6_xyverz.hex
317
318Copying planck_rev6_xyverz.bin to qmk_firmware folder [OK]
319dfu-util 0.9
320
321Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
322Copyright 2010-2016 Tormod Volden and Stefan Schmidt
323This program is Free Software and has ABSOLUTELY NO WARRANTY
324Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
325
326Invalid DFU suffix signature
327A valid DFU suffix will be required in a future dfu-util release!!!
328Opening DFU capable USB device...
329ID 0483:df11
330Run-time device DFU version 011a
331Claiming USB DFU Interface...
332Setting Alternate Setting #0 ...
333Determining device status: state = dfuERROR, status = 10
334dfuERROR, clearing status
335Determining device status: state = dfuIDLE, status = 0
336dfuIDLE, continuing
337DFU mode device DFU version 011a
338Device returned transfer size 2048
339DfuSe interface name: "Internal Flash "
340Downloading to address = 0x08000000, size = 41824
341Download [=========================] 100% 41824 bytes
342Download done.
343File downloaded successfully
344Transitioning to dfuMANIFEST state
345```
346
347#### STM32 コマンド
348
349ファームウェアを STM32 デバイスに書き込むために使用できる DFU コマンドがいくつかあります。
350
351* `:dfu-util` - STM32 デバイスに書き込むためのデフォルトコマンドで、STM32 ブートローダが見つかるまで待機します。
352* `:dfu-util-split-left` - デフォルトのオプション (`:dfu-util`) と同様に、通常のファームウェアが書き込まれます。 ただし、分割キーボードの「左側の」EEPROM の設定も行われます。
353* `:dfu-util-split-right` - デフォルトのオプション (`:dfu-util`) と同様に、通常のファームウェアが書き込まれます。 ただし、分割キーボードの「右側の」EEPROM の設定も行われます。
354* `:st-link-cli` - dfu-util ではなく、ST-LINK の CLI ユーティリティを介してファームウェアを書き込めます。
355
356### BootloadHID
357
358Bootmapper Client(BMC)/bootloadHID/ATmega32A ベースのキーボードの場合、ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
359
360 make <my_keyboard>:<my_keymap>:bootloaderHID
361
362たとえば、キーマップの名前が xyverz で、jj40 のキーマップを作成している場合、次のコマンドを使用します。
363
364 make jj40:xyverz:bootloaderHID
365
366ファームウェアのコンパイルが完了すると、以下のように出力されます。
367
368```
369Linking: .build/jj40_default.elf [OK]
370Creating load file for flashing: .build/jj40_default.hex [OK]
371Copying jj40_default.hex to qmk_firmware folder [OK]
372Checking file size of jj40_default.hex [OK]
373 * The firmware size is fine - 21920/28672 (6752 bytes free)
374```
375
376ここまでくると、ビルドスクリプトは5秒ごとに DFU ブートローダを探します。
377デバイスが見つかるか、あなたがキャンセルするまで、以下を繰り返します。
378
379```
380Error opening HIDBoot device: The specified device was not found
381Trying again in 5s.
382```
383
384これを実行したら、コントローラーをリセットする必要があります。
385そして下のような出力が表示されます。
386
387```
388Page size = 128 (0x80)
389Device size = 32768 (0x8000); 30720 bytes remaining
390Uploading 22016 (0x5600) bytes starting at 0 (0x0)
3910x05580 ... 0x05600
392```
393
394## テストしましょう!
395
396おめでとうございます! カスタムファームウェアがキーボードにプログラムされました!
397
398使ってみて、すべてがあなたの望むように動作するかどうか確認してください。
399この初心者ガイドを完全なものにするために [テストとデバッグ](newbs_testing_debugging.md) を書いたので、カスタム機能のトラブルシューティング方法については、こちらをご覧ください。