10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RaspberryPi2 ModelB 覚え書き

Last updated at Posted at 2015-08-24

概要

MacでRaspberryPi2 ModelB に関する覚え書きです。
MacやRaspberryPiが壊れる可能性のある手順が含まれていますのでご注意ください。

OSインストール

イメージをダウンロード

  • DOWNLOADS からイメージをダウンロードする
    • 今回はRaspbianを選択

ファイルを展開してddでSDカードに書き込む

SDカードを入れたカードリーダーとMacをUSBで接続して以下実施

SDカードにイメージを書き込み
### SHA-1の確認。DLのページに掲載されているものと同じであることを確認する。
$ openssl sha1 2015-05-05-raspbian-wheezy.zip
===========================
SHA1(2015-05-05-raspbian-wheezy.zip)= cb799af077930ff7cbcfaa251b4c6e25b11483de
===========================

### DLしたファイルを展開
$ unzip 2015-05-05-raspbian-wheezy.zip

### SDカードのマウント状況確認
$ diskutil list
===========================
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            120.5 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *6.7 MB     disk1
   1:                  Apple_HFS FTDIUSBSerialDriver_... 6.7 MB     disk1s1
/dev/disk2  ### SDカード。環境によりdiskの数値は違いますのでご注意ください。
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *61.9 GB    disk2
   1:               Windows_NTFS                         61.9 GB    disk2s1
===========================

### SDカードをumount
$ sudo diskutil unmountDisk /dev/disk2
===========================
Unmount of all volumes on disk2 was successful
===========================

### イメージの書き込み。「/dev/disk2」だとすごく遅いので「/dev/rdisk2」とする。
### Ctrl-t で進捗を表示できる
### ofで指定するデバイスを間違えるとMacが壊れる可能性がありますので十分注意してください!!
$ sudo dd bs=1m if=2015-05-05-raspbian-wheezy.img of=/dev/rdisk2
===========================
3125+0 records in
3125+0 records out
3276800000 bytes transferred in 316.595018 secs (10350131 bytes/sec)
===========================

参考

OSインストールから起動までマインドマップで関連事項まとめ
Raspberry Pi2 ModelB.png

Macとシリアル通信で接続する

有線LANを使わずシリアルで接続する

用意したもの

  • FTDI TTL-232R-3V3 (USB-シリアル変換ケーブル)
    • 秋葉原か通販でお求めください。よくある家電店では売ってません。
  • ブレッドボード・ジャンパーワイヤ(オス-メス) 4本
    • シリアル変換ケーブルの配線を切ったりつなげかえたりしなくて済みます。

接続方法

  • ケーブル <-> RaspberryPie2 ModelB
    • 赤:VCC(5V) <-> 2pin:DC Power 5V
    • 黒:GND <-> 6pin:GND
    • 黄:UART_RXD(3.3V) <-> 8pin:UART_TXD
    • 橙:UART_TXD(3.3V) <-> 10pin:UART_RXD

スクリーンショット 2015-08-24 0.00.16.png

ドライバのインストール

PCに接続する

USBをMacに接続して以下実施

デバイスの確認と接続
### デバイスの確認
$ ls /dev/tty.usbserial*
===========================
/dev/tty.usbserial-FTHK720M
===========================

### screenで接続
$ screen /dev/tty.usbserial-FTHK720M 115200

### ログインする。初期設定はユーザ「pi」、パスワード「raspberry」

### 初期設定
$ sudo raspi-config
===========================
Expand Filesystem
-> SDCardの使える領域を増やす
Internationalisation Options: Change Timezone
-> Asia - Tokyoを選ぶ
Advanced Options: SSH
-> Enable を選んでsshで接続できるようにする

※ この後再起動が走る
===========================

### シャットダウン。「ACT」のLEDが点滅していない状態になればケーブルを取り外せます。
$ sudo shutdown -h now

### screen終了
ctl-A ctl-\

スクリーンショット 2015-08-24 20.03.54.png

参考

有線LANでMACから接続する

用意したもの

  • USB2.0 LAN Adapter (MACのUSBに有線LANを接続するアダプタ)
    • MACが認識できるものを用意する
  • クロスオーバーケーブル
    • 通常ネットに接続する時に使うストレートケーブルではない事に注意

ネットワーク設定

MAC側のアドレス確認

MACとRaspberryPiを有線LANで接続し、MAC側のアドレスを確認

以下の場合のMAC側のアドレス情報は

  • IP : 169.254.12.143
  • サブネットマスク : 255.255.0.0

スクリーンショット 2015-09-23 21.40.13.png

RaspberryPi側のネットワーク設定

### /etc/network/interfaces の eth0 を設定
$ sudo cp -ip /etc/network/interfaces /tmp
$ sudo vi /etc/network/interfaces
===========================
...
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 169.254.12.143  ### 第四オクテットを任意の値に設定。MACのアドレスから+1した。
netmask 255.255.0.0  ### MACの設定のまま
...
===========================

### ネットワークの再起動
$ sudo service networking restart

### 設定の確認
$ ifconfig
===========================
eth0      Link encap:Ethernet  HWaddr b8:27:eb:cf:8e:7d
          inet addr:169.254.12.143  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:277 errors:0 dropped:0 overruns:0 frame:0
          TX packets:154 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:35565 (34.7 KiB)  TX bytes:23994 (23.4 KiB)
===========================

無線LANでネットに接続する

用意したもの

  • WLI-UC-GNM2
    • BUFFALOのUSB無線子機
      • ほどほどに熱くなる。もう少し控えめなものでもいいかも。

ネットワーク設定

/etc/network/interfaces

インタフェースの設定をする

  • 設定(スタンザ)について
    • auto : 起動時にインタフェースを起動
    • allow-hotplug : カーネルがホットプラグイベントを認知した際にインターフェースを起動
    • iface : ネットワーク設定 を規定
      • : コンフィグ名。だいたいインタフェース名と同じ
        • default : デフォルトのネットワーク設定。この設定は無くてもいい。
      • : プロトコルファミリ。inet, inet6など。
      • : メソッド名
        • loopback : ループバック設定
        • dhcp : DHCPで設定
        • manual : 別途設定ファイルを読み込んだり、細かな設定を自分で設定
          • wap-conf : wpaの設定ファイルのPATHを指定
        • static : 固定で設定
          • address : IPアドレス
          • netmask : ネットマスク
          • gateway : ゲートウェイ
interfacesのデフォルト設定
auto lo    
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

参考

wpa_supplicant

  • WPA(AES、TKIP など)を無線LANクライアントに提供するツール
    • LinuxでWPA-PSKを設定したい場合はこのツールを使用する

    • 設定項目

      • ESSID : アクセスポイントのID
      • key : パスワード
    • 設定ファイル

      • /etc/wpa_supplicant/wpa_supplicant.conf
        • 認証の設定
    • wpa_passphraseコマンド

      • keyを暗号化する
        • WPAで接続する場合はkeyを暗号化して送ることができる
wpa_passphrase
$ wpa_passphrase hogehogehoge fugafugafuga
===========================
network={
        ssid="hogehogehoge"
        #psk="fugafugafuga"
        psk=8a975bfb31cb920df6380494fc52491bc3a04ae0ad665c69a0fa79897da5a0c7
}
===========================

無線LANのUSBを認識していることの認識

USBを接続する。
以下は確認だけ。手順はとしては飛ばしてもいい。

無線接続コマンド確認

### USBの無線LANアダプタが認識されていることを確認
$ dmesg
===========================
[ 1244.567913] usb 1-1.3: new high-speed USB device number 5 using dwc_otg
[ 1244.683679] usb 1-1.3: New USB device found, idVendor=0411, idProduct=01ee
[ 1244.683704] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1244.683722] usb 1-1.3: Product: 802.11 n WLAN
[ 1244.683738] usb 1-1.3: Manufacturer: Ralink
[ 1244.683754] usb 1-1.3: SerialNumber: 1.0
[ 1244.777905] usb 1-1.3: reset high-speed USB device number 5 using dwc_otg
[ 1244.886887] ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[ 1244.906176] ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 0005 detected
[ 1244.907517] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 1245.006183] ieee80211 phy1: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 1245.006343] ieee80211 phy1: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29
===========================

### カーネルのモジュールリストを表示
$ lsmod
===========================
Module                  Size  Used by
arc4                    1745  2
rt2800usb              17886  0
rt2800lib              71839  1 rt2800usb
rt2x00usb               8517  1 rt2800usb  ### 多分ドライバ
rt2x00lib              36704  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              479400  3 rt2x00lib,rt2x00usb,rt2800lib
crc_ccitt               1153  1 rt2800lib
cfg80211              386508  2 mac80211,rt2x00lib
rfkill                 16651  1 cfg80211
snd_bcm2835            18649  0
snd_pcm                73475  1 snd_bcm2835
snd_seq                53078  0
snd_seq_device          5628  1 snd_seq
snd_timer              17784  2 snd_pcm,snd_seq
snd                    51038  5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
uio_pdrv_genirq         2958  0
uio                     8119  1 uio_pdrv_genirq
===========================

### USBデバイスの表示
$ lsusb
===========================
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070] ### 無線LAN
===========================

### 無線LANinterfaceの確認
$ ifconfig
===========================
...
wlan0     Link encap:Ethernet  HWaddr cc:e1:d5:4d:35:16
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
===========================

### アクセスポイントのスキャン
$ sudo iwlist wlan0 scan | grep ESSID
===========================
                    ESSID:"HTC J butterfly"
                    ESSID:"pwr-q8985fc-1"
                    ESSID:"47B74B6D4CAF52A74370AEC5332D1B3B"
                    ESSID:"0024A5EFDA70_G-1"
                    ESSID:"0024A5EFDA70_G"
                    ESSID:"rv440k-8ff123-2"
                    ESSID:"rv440k-8ff123-1"
===========================

設定ファイルを編集する

いろんな参考ページを見ると様々な設定をしているようだが以下で接続できた。

wifi接続設定
[raspberry pi]
### ネットワーク・セキュリティキーの暗号化 wpa_passphrase 'ESSID' 'パスワード'
### 値は例
sudo wpa_passphrase 'HTC J butterfly' 'hogehoge'
===========================
network={
        ssid="HTC J butterfly"
        #psk="hogehoge"
        psk=hogehoge66104835b73850d415a8e6bfwo39jw8k96729c9wd9wjb0fc30b2
}
===========================

### /etc/wpa_supplicant/wpa_supplicant.confの編集
$ sudo cp -ip /etc/wpa_supplicant/wpa_supplicant.conf /tmp
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
===========================
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="HTC J butterfly"
        #psk="hogehoge"
        psk=hogehoge66104835b73850d415a8e6bfwo39jw8k96729c9wd9wjb0fc30b2
}
===========================

### interfacesの設定
$ sudo cp -ip /etc/network/interfaces /tmp
$ sudo vi /etc/network/interfaces
===========================
...
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
...
===========================

### ネットワークの再起動
$ sudo service networking restart

### 接続状況の確認
$ iwconfig wlan0
===========================
wlan0     IEEE 802.11bgn  ESSID:"HTC J butterfly"
          Mode:Managed  Frequency:2.437 GHz  Access Point: 00:EE:BD:EF:12:8E
          Bit Rate=54 Mb/s   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=61/70  Signal level=-49 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:22   Missed beacon:0
===========================

### IPの確認
$ ifconfig wlan0
===========================
wlan0     Link encap:Ethernet  HWaddr cc:e1:d5:4d:35:16
          inet addr:192.168.1.17  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:364 errors:0 dropped:0 overruns:0 frame:0
          TX packets:337 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:44638 (43.5 KiB)  TX bytes:49435 (48.2 KiB)
===========================

これでMacからipアドレスにsshできる

スクリーンショット 2015-08-28 2.15.00.png

参考

Ansibleで初期設定

Ansible でいろいろ初期設定。完全に自分用の覚え書き。

VNCでデスクトップを表示

VNCサーバの起動

  • vncserverコマンドオプション
    • :(数値) : ディスプレイ番号。:0, :1, :2などディスプレイ番号を指定する
    • -geometry : [画面の横ピクセル数]x[画面の縦ピクセル数]
    • -depth : 画面のビットカラー。 0 - 32で指定するが通常は以下を指定
      • 8 : 256色 (最近のPCは通常で対応して無いことがあり、減色処理で逆に遅くなる可能性がある)
      • 16 : 最大65536色
      • 24 : 最大約1600万色
        • これ以外の数値を指定するときちんと表示されないことが多い
VNCサーバの起動
### 必要なパッケージのインストール
$ sudo apt-get install tightvncserver

### VNCサーバの起動
$ vncserver :1 -geometry 1280x800 -depth 24
===========================
You will require a password to access your desktops.

Password: 
Verify:   
Would you like to enter a view-only password (y/n)? n ### yにするとviewのみで操作できないモードのパスワードを設定する

New 'X' desktop is raspberrypi:1

Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log
===========================

Macから接続

  • [移動] -> [サーバへ接続]
  • サーバのIPアドレスとポートは (5900 + ディスプレイ番号) を入れて接続を押す
    • vnc://192.168.11.14:5901

スクリーンショット 2015-08-29 19.07.04.png

  • 先ほど入力したパスワードを入れて接続を押す

スクリーンショット 2015-08-29 19.07.23.png

  • デスクトップが表示される

スクリーンショット 2015-08-29 19.07.38.png

参考

Bluetooth

Bluetoothの設定について。

用意したもの

  • LBT-UAN04C1BK
    • ELECOM Logitec製のBluetooth USB アダプタ
  • BSKBB23BK
    • BUFFALO製Bluetoothキーボード
  • M-BT12BRSV
    • ELECOM製Bluetoothマウス (接続未確認)

必要なパッケージのインストール

bluez
$ sudo apt-get update
$ sudo apt-get install bluetooth bluez bluez-utils bluez-compat python-gobject blueman

Bluetoothでネットに接続する

既に無線LAN使えているのにBluetoothでもネットに繋ぐ必要はあるのかという疑問はひとまず置いておきます。

bluez-simple-agentを修正

$ cp -ip /usr/bin/bluez-simple-agent /tmp
$ sudo vi /usr/bin/bluez-simple-agent
$ diff -u /tmp/bluez-simple-agent /usr/bin/bluez-simple-agent
===========================
--- /tmp/bluez-simple-agent     2012-05-06 10:20:44.000000000 +0900
+++ /usr/bin/bluez-simple-agent 2015-08-29 11:32:25.973677356 +0900
@@ -89,7 +89,7 @@
        manager = dbus.Interface(bus.get_object("org.bluez", "/"),
                                                        "org.bluez.Manager")

-       capability = "KeyboardDisplay"
+       capability = "DisplayYesNo"

        parser = OptionParser()
        parser.add_option("-c", "--capability", action="store",
===========================

Bluetoothアダプタを接続する

接続されると以下表示される

bluetoothでネット接続
$ dmesg
===========================
[  935.594710] Bluetooth: HCI device and connection manager initialized
[  935.594735] Bluetooth: HCI socket layer initialized
[  935.594751] Bluetooth: L2CAP socket layer initialized
[  935.594935] Bluetooth: SCO socket layer initialized
[  935.611456] Bluetooth: RFCOMM TTY layer initialized
[  935.611514] Bluetooth: RFCOMM socket layer initialized
[  935.611572] Bluetooth: RFCOMM ver 1.11
[  935.613637] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[  935.613660] Bluetooth: BNEP filters: protocol multicast
[  935.613689] Bluetooth: BNEP socket layer initialized
[ 1083.114862] usb 1-1.5: new full-speed USB device number 5 using dwc_otg
[ 1083.390314] usb 1-1.5: New USB device found, idVendor=0a12, idProduct=0001
[ 1083.390341] usb 1-1.5: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1083.390358] usb 1-1.5: Product: CSR8510 A10
[ 1083.428219] usbcore: registered new interface driver btusb
===========================

$ hciconfig
===========================
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:09:DD:42:89:92  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING PSCAN
        RX bytes:929 acl:0 sco:0 events:45 errors:0
        TX bytes:928 acl:0 sco:0 commands:45 errors:0
===========================

### デバイスを検出。MACアドレスをメモする。
$ sudo hcitool scan
===========================
Scanning ...
        XX:XX:XX:XX:XX:XX       ftakao2007 の MacBook Air
        YY:YY:YY:YY:YY:YY       ftk_iPhone
===========================

### ペアリング。iPhoneの画面に475411(毎回違う数値)が表示される。
### iPhoneに表示されあペアリングを押した後にターミナル上でyesと入力してEnter
$ sudo bluez-simple-agent hci0 YY:YY:YY:YY:YY:YY
===========================
RequestConfirmation (/org/bluez/3095/hci0/dev_4C_8D_79_82_CE_E0, 475411)
Confirm passkey (yes/no): yes
Release
New device (/org/bluez/3095/hci0/dev_4C_8D_79_82_CE_E0)
===========================

写真 2015-08-29 11 41 11.png

bluetoothでネット接続2
### ペアリングを保持する
sudo bluez-test-device trusted YY:YY:YY:YY:YY:YY yes

### bluetooth用のインタフェース追加
$ cp -ip /etc/network/interfaces /tmp
$ sudo vi /etc/network/interfaces
$ diff -u /tmp/interfaces /etc/network/interfaces
===========================
--- /tmp/interfaces     2015-08-29 12:00:06.708242683 +0900
+++ /etc/network/interfaces     2015-08-29 12:01:04.567838612 +0900
@@ -5,6 +5,8 @@
 allow-hotplug eth0
 iface eth0 inet manual

+iface bnep0 inet dhcp
+
 ### no security
 auto wlan0
 iface wlan0 inet dhcp
===========================

### ネットワークに接続
$ sudo pand --search
### 参考ページにある以下のコマンドは一瞬つながるが直ぐ接続が切れてしまう。。
# $ sudo pand -c YY:YY:YY:YY:YY:YY -role PANU --persist 30

### 確認
$ ifconfig
===========================
bnep0     Link encap:Ethernet  HWaddr 00:09:dd:42:89:92
          inet addr:172.20.10.2  Bcast:172.20.10.15  Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:57 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5301 (5.1 KiB)  TX bytes:5772 (5.6 KiB)
===========================

参考

Bluetoothでキーボードを接続する

マウスの電源を入れ、ペアリングボタンを押した後以下のコマンドでscanする

キーボード接続
### 先ほど登録していたiPhoneのデバイス削除。削除しなくても良い方法あるのかな。。
sudo bluez-test-device remove YY:YY:YY:YY:YY:YY

### MACアドレスの確認
$ sudo hcitool scan
===========================
Scanning ...
        XX:XX:XX:XX:XX:XX       Bluetooth Optical Mouse
===========================

### 信頼するデバイスとして登録。毎回ペアリングせずに済む
$ sudo bluez-test-device trusted XX:XX:XX:XX:XX:XX yes

### キーボードに接続
$ sudo bluez-test-input connect XX:XX:XX:XX:XX:XX

バックアップとリストア

バックアップはSDカードのデータをddで吸い出すだけ。
カードリーダにSDカードを挿入し、USBでMacに接続します。
結構時間がかかります。

ddバックアップ
### SDカードをumount
$ sudo diskutil unmountDisk /dev/disk2
===========================
Unmount of all volumes on disk2 was successful
===========================

### イメージの書き出し。「/dev/disk2」だとすごく遅いので「/dev/rdisk2」とする。
### Ctrl-t で進捗を表示できる
### ofで指定するデバイスを間違えるとMacが壊れる可能性がありますので十分注意してください!!
$ sudo dd bs=1m if=/dev/rdisk2  of=/tmp/2015-05-05-raspbian-wheezy.`date '+%Y-%m-%d'`.img
### リストアはインスールじと同様にddで戻す


### 圧縮しながらバックアップ
$ sudo dd bs=1m if=/dev/rdisk2 | gzip -c > /tmp/2015-05-05-raspbian-wheezy.`date '+%Y-%m-%d'`.gz

### 圧縮したバックアップファイルをリストア
### ofで指定するデバイスを間違えるとMacが壊れる可能性がありますので十分注意してください!!
$ gzip -dc < /tmp/2015-05-05-raspbian-wheezy.YYYY-mm-dd.gz | dd of=/dev/rdisk2
  • 素のddは領域を利用しているかしていないかに関わらずSDカードと同等のサイズのファイルができてしまう
  • 利用していない領域が多い場合は圧縮するとかなり容量を削減できる
    • 32GBのSDだと素のddは32GBのイメージができる
    • この時は圧縮すると1.7GBになった
  • Macであればディスクユーティリティを使う方法のほうが安全で使いやすそう
10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?