Raspberry Piでバルーンプロジェクトに取り組んでいます。 Raspberry Piを潜在的に回復する場合、Raspberry Piは農村部にある可能性が高いため、その時点でPiを安全にオフにしたいと思います。近くにルーターやネットワークがなければ、イーサネットケーブルでRaspberry Piを直接ラップトップに接続する方法があるのだろうかと思いましたか?
これはUbuntuのソリューションです(このアイデアはWindowsまたはMacでも機能します)私が今日試したところ、それは魅力のように機能します。
素材
ubuntuの前提条件
ネットワークマネージャーをインストールする
$Sudo apt-get install network-manager
Nmapをインストールする
$Sudo apt-get install nmap
ラップトップの有線接続を編集(Ubuntu)
イーサネットクロスオーバーケーブルを介してラップトップのWiFi接続を共有します
イーサネットケーブルを使用してRPiをラップトップに接続します
イーサネット接続(ラップトップ)のブロードキャストアドレスを検索し、
$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
10.42.0.255
このアドレスを使用して、RPiのIPアドレスを見つけます。10.42.0.1は私のラップトップなので、私の場合は10.42.0.96です。
$nmap -n -sP 10.42.0.255/24
Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-20 23:07 CET Nmap scan report for 10.42.0.1 Host is up (0.00031s latency). Nmap scan report for 10.42.0.96 Host is up (0.0023s latency). Nmap done: 256 IP addresses (2 hosts up) scanned in 2.71 seconds
ラップトップからRPiにログインします(Xフォワーディングで-Y)
$ssh -Y [email protected]
見よ!これで、RPiがラップトップに接続され、RPiはWiFi接続を共有できます。
pi@raspberrypi ~ $
ノートパソコンのディスプレイとキーボードをRPiで共有
Raspberry Piにvncserverをインストールします
$ Sudo apt-get update
$ Sudo apt-get install tightvncserver
RealVNCをダウンロードしてラップトップにvncviewerをインストールします(複数のプラットフォームをサポートします) http://www.realvnc.com/download/vnc/
VNCサーバー<-> VNCビューアーからコピー&ペーストできるようにするには、RPiにautocutselをインストールする必要があります。
$Sudo apt-get install autocutsel
このサイトが機能しない場合は、ミラーサイトから直接.debをダウンロードしてみてください。 mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb
そしてインストールする
$Sudo dpkg -i autocutsel_0.10.0-1_armhf.deb
RPiでvncserverを起動します(autocutselのインストール後にvncserverを再起動する必要があります。$vncserver -kill :1
を発行できます)
$vncserver :1
Autocutsel -forkを/home/pi/.vnc/xstartupに追加します
#!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey autocutsel -fork #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 /etc/X11/Xsession
ラップトップでvncviewerを起動します
$vncviewer
Vncviewerウィンドウが表示され、RPi(ラップトップから与えられた)のIPアドレスを入力してから、VNCサーバーであるポート1を入力します。たとえば、私の場合は10.42.0.96:1です。
パスワードを入力して、RPiでホストされているvncserverに接続します(自分でパスワードを設定します)
12.ノートパソコンでRPiのデスクトップを確認できるようになりました。ブラウザを開いて、共有WiFi接続も機能していることを確認しました。
クロスケーブルは必要ありません。 Raspberry Pi LANチップは、直接ネットワーク接続用に再構成するのに十分なほどスマートなので、通常のネットワークケーブルを使用できます。乾杯
ルーターなし+スクリーンなし+通常のイーサネットケーブル+ RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10
まず、PiでSSHサーバーを有効にする必要があります。これは、セキュリティのためにデフォルトで無効になっています。
画面+キーボードまたはUART(以下を参照)などの非SSHメソッドを介してPiに既にシェルがある場合は、次を実行します。
Sudo systemctl enable ssh
Sudo service sshd start
https://raspberrypi.stackexchange.com/questions/58478/ssh-not-working-with-fresh-install これはブート後も持続します。
そうでない場合は、ホストにSDカードを挿入し、boot/
パーティションにssh
という名前の魔法の空のファイルを作成します。
Ubuntuホストでは、自動的にマウントされ、次のことができます。
Sudo touch /media/$USER/boot/ssh
以下で確認できます:
lsblk
を含む:
mmcblk0 179:0 0 14.4G 0 disk
├─mmcblk0p1 179:1 0 43.9M 0 part /media/ciro/boot
└─mmcblk0p2 179:2 0 14.4G 0 part /media/ciro/rootfs
PiでSSHDデーモンを有効にしない場合、SSH接続は次のように失敗します。
ssh: connect to Host 10.42.0.160 port 22: Connection refused
後で試すとき。
SSHサーバーを有効にした後
次に、Piを起動し、ラップトップからイーサネットケーブルを直接Piにリンクします。
Ubuntu 17.04で回避するには このバグ 前述のとおり この回答で 最初に必要なもの:
Sudo apt-get install dnsmasq-base
ホストで、ネットワークマネージャーを開きます。
nm-connection-editor
じゃ、行け:
+
sign(新しい接続を追加)ホスト上のPiのIPを見つけます。
cat /var/lib/misc/dnsmasq.leases
次のようなものを出力します:
1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69
10.42.0.160
はIPであり、通常どおり:
ssh [email protected]
.bashrc
にも次のものがあります。
piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )
Piの内部から、ホストの他のインターフェイスを介して通常どおりインターネットにアクセスできることに注意してください。
ping google.com
たとえば、私のラップトップでは、Piがイーサネットを使用しますが、ホストはWiFiを介してインターネットにも接続されます。
ホストネットワークカードが Auto MDI-X をサポートしている場合、クロスケーブルはnotが必要です。これは、たとえば、私がテストした2012 Lenovo T430など、最新のハードウェアの場合です がある 「Intel®82579LMギガビットネットワーク接続」 Auto MDI-Xのサポートを文書化する 。
また、次のことができます。
UARTシリアルUSBコンバータ
これは、Piでシェルを取得したい場合のSSHに代わるものです: https://en.wikipedia.org/wiki/Serial_port
これは、SSHまたはネットワーク自体を使用するのではなく、より古く、よりシンプルで、より直接的で、より信頼性の高い、より低い帯域幅、より短い距離のシリアルインターフェイスを使用します。この方法では、Piはインターネットにアクセスできません。
デスクトップコンピューターにはまだシリアルポートがあり、これを直接Piに接続できますが、これらはほとんどのラップトップに隠されているため、安価なUSBアダプターを購入する必要があります。ここでは私が使用しました: https://www.Amazon.co.uk/gp/product/B072K3Z3TL 参照: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between-ttys0-ttyusb0-and-ttyama0-in-linux/367882#367882
最初にSDカードをホストに接続し、最初のパーティションにあるconfig.txt
ファイルを編集して以下を追加します。
enable_uart=1
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195 で説明されているとおり
この最初のパーティションには、ブートローダー、その構成ファイル、および(Linux /)カーネルが含まれます。config.txt
はそれらの1つです。 2番目のパーティションには、実際のLinuxルートファイルシステムが含まれています。
次に、コンピューターをPiに接続します。
3本のケーブルを接続するだけで済みます:
これは次の場所でも文書化されています。 https://www.raspberrypi.org/documentation/usage/gpio/README.md
グラウンドを5Vにリンクしないように注意してください。すでに2 UARTをUSBチップとRPI UARTに焼き付けています。
5Vを5Vに接続する必要はまったくありません。 Piにそのように電力を供給できると思いますが、これは悪い考えであり、通常のUSB電源を使用してください。
最後に、コネクタのUSB側をホストコンピュータに接続し、次の機能を備えたシェルを入手します。
Sudo apt install screen
Sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200
Ctrl-A \
で終了します。
Adafruitによるビデオを以下に示します。 https://www.youtube.com/watch?v=zUBPeoLW16Q
これを実装してテストしました。私のプロジェクトと同じ状況で、ルーターや無線LANなしでRaspberry Piに接続したい。簡単なイーサネットケーブル。
Ssh PuTTYプログラムを使用して、アドレスを
raspberrypi.local
ログインして、ターミナルにアクセスできます。
または、VNCサーバーがセットアップされている場合は、VNCサーバーを使用して
raspberrypi.local:1
サーバーのアドレス。 VNCサーバーのパスワードを入力すると、必要な操作を行うためのGUIアクセスが可能になります。
場合によっては、リモートの場所でスクリプトを実行していました。ポスターの状況では、Piを安全にシャットダウンします。にきび.
ラップトップとRaspberry Piの静的IPを構成します。 rapberryPIで次のように構成します。
pi@rpi>Sudo nano /etc/network/interfaces
次に、ラップトップに接続するために必要に応じて以下を構成します。
iface eth0 inet static
address 192.168.1.81
netmask 255.255.255.0
broadcast 192.168.1.255
raspberry Piで静的IPを構成します。
Sudo nano /etc/network/interfaces
次に追加します:
iface eth0 inet static
address 169.254.0.2
netmask 255.255.255.0
broadcast 169.254.0.255
その後、ssh経由でラズベリーにアクセスできます
ssh [email protected]
イーサネットケーブルとDHCPサーバーのみを使用してRPiに接続する場合のWindowsユーザー向けの手順を以下に示します。 RPiで処理できるため、クロスオーバーケーブルは必要ありません。これを写真で文書化したブログ投稿があります here のほうがわかりやすいかもしれません。
ダウンロード
Windows用DHCPサーバー をダウンロードします(ダウンロードリンクは こちら です)。 Zipファイルを解凍し、dhcpwizアプリケーションを開きます。これにより、DHCPサーバーが構成されます。
DHCPサーバーの構成
最初の画面で次にヒットします。
2番目の画面で、「ローカルエリア接続」行を探し、そのIPアドレスが0.0.0.0
であり、ステータスがenabled
であることを確認します。 RPiからラップトップにイーサネットケーブルを接続し、Piの電源を入れます。 IPアドレスが169.254.*.*
に変わるまで、この画面で更新を押します。それ以外の場合は、ローカルエリア接続のネットワーク設定を変更する必要があります(静的IP/DNSではないことを確認してください)。このローカルエリア接続の行をクリックして、次にヒットします。
HTTP (Web Server)
を確認してください。これにより、RPiのIPアドレスを見つけやすくなります。次へ。
デフォルトを使用し、Writing the INI file
画面が表示されるまで「次へ」を押します。 Overwrite existing file
を確認し、Write INI file
ボタンを押します。次に[次へ]をクリックします。
最後の画面で、Run DHCP server immediately
を確認し、 `Finishを押します。
DHCPサーバーとRaspberry PiのIPアドレスの取得
これにより、前のウィザードで作成した構成を使用して、実際のDHCPサーバーが起動します。 Continue as tray app
ボタンをクリックすると、DHCPサーバーがシステムトレイに最小化されます。
1秒から5分後のどこでも、ラップトップとRPiの新しいIPアドレスを含むシステムトレイにアラートが表示されます。このアラートは非常に迅速であり、おそらく見逃すことでしょう。通常、RPiのIPは169.254.0.2
ですが、*.01
またはそれ以外の場合もあります。 http://localhost/dhcpstatus.xml でDHCPサーバーのWeb UIにアクセスする方が簡単です。これにより、ホスト名がIPアドレスとともに「raspberrypi」としてリストされます。
これで、PuTTYまたはリモートデスクトップをRPiに組み込み、そのワイヤレス設定または任意の操作を構成できます。
トラブルシューティング
これは多少面倒です。接続が切断されたように見え、IPアドレスを使用してSSHで戻すことができませんでした。通常、Piを再起動してIPアドレスを再度取得できます。 RPiとDHCPサーバーの両方を再起動する必要がある場合があります。時々私はこれを複数回しなければなりません。ある時点で15分間接続できなかったとき、dhcpsrv2.5.1フォルダー内のすべてのファイルを新しいフォルダーにコピーして、再試行しました。すぐに機能しました。
クロスオーバーイーサネットケーブルを使用できます- http://en.wikipedia.org/wiki/Ethernet_crossover_cable
RPiがDCHPクライアントであると仮定した場合、ノートブックで単純なDHCPサーバーを実行して、RPiにIPアドレスを割り当てるのが最適です。
はい、ラズベリーをルーターなしでPCに直接接続できます。そのためには、ラズベリーとコンピューターが同じサブネット上にあり、両方に静的IPが構成されている必要があります(2つのデバイス間にイーサネットケーブルが接続されています)。
理想的な構成は次のとおりです。
Rethberryon eth0:IP:192.168.1.10 SubNet:255.255.255.0
PC:IP:192.168.1.11 SubNet 255.255.255.0
ラズベリーに手動IPを設定するには、 このガイド に従ってください。
お使いのPCでは、ネットワークアダプター設定で手動IPを設定できます。手順はオペレーティングシステムによって異なります。
2つの静的IPを構成したら、IPセット(192.168.1.10)を使用してSSH経由でraspberryに接続できます。
別の簡単な方法は、GPIOにラズベリーをオフにするボタンを取り付けることです! こちらをご覧ください!
私のために働いたのは、ニコール・フィニーとチロ・サンティリの答えと他の場所からのいくつかの答えの組み合わせでした。
2つのことを行う必要があります。piでsshをアクティブにし、静的IPを使用するようにpiを構成します。
ssh
というファイルをsdカードのブートパーティションに追加します(ルートパーティションの/boot
フォルダーではありません)。これは他の場所でよく文書化されています。
PiのSDカードで/etc/dhcpcd.conf
を開き、静的IPの例のコメントを外します(40行目から始まります)。アドレスを設定します
# Example static IP configuration:
interface eth0
static ip_address=10.42.0.182/24
static routers=10.42.0.1
static domain_name_servers=10.42.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
まず、ラップトップにnetworkmanager
(GUIを使用)がインストールされていることを確認してください。次に、dnsmasq
がnotサービスとして実行されていることを確認します。systemctl status dnsmasq
このコマンドでサービスが停止していることが表示されれば、問題ありません。
次に、networkmanager
を設定する必要があります。 /etc/NetworkManager/NetworkManager.conf
を開き、上部に次の2行を追加します。
[main]
DNS=dnsmasq
次に再起動します。この手順は不要な場合があります。 NetworkManager
サービスを再起動するだけで十分な場合があります。次に、NetworkManager
GUI(通常は画面の隅にあるアイコンからアクセス)に移動し、Edit Connections...
を選択します。ポップアップするウィンドウで、+
アイコンをクリックして新しい接続を作成します。タイプとしてEthernet
を選択し、Create...
を押します。 IPv4 Settings
タブに移動し、メソッドShared to other computers
を選択します。接続に適切な名前を付けて保存します。
Raspberry Piを接続し、ラップトップがイーサネット接続として新しい接続を使用していることを確認します。もしそうなら、あなたのpiはあなたのpcからIPが与えられているはずです。これを見つけるには、最初にifconfig
を実行します。これにより、ネットワークインターフェースごとに1つずつ、テキストのブロックがいくつか得られます。 enp0s25
やeth0
のようなものに興味があります。次のような行が必要です。inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
ブロードキャストアドレス(この場合は10.42.0.255
)を確認します。私のものと異なる場合は、piの電源を切り、SDカードをラップトップに戻し、static ip_address
を最初の3つの数字がブロードキャストアドレスと同じものに変更します。また、static routers
と最初のdomain_name_servers
をラップトップのinet
アドレスに変更します。パイの電源を入れ直して接続します。 ifconfig
を再度実行して、アドレスが変更されていないことを確認します。
ssh [email protected]
connection refused
を取得した場合、piはssh
サーバーを実行していません。 Host unreachable
を受け取ったら、ごめんなさい。
これが誰かを助けることを願っています!