저는 Raspberry Pi로 풍선 프로젝트를 진행하고 있습니다. 잠재적으로 Raspberry Pi를 복구하면 시골 지역에있을 가능성이 높으므로 해당 시점에서 안전하게 Pi를 끄고 싶습니다.
근처에 라우터 나 네트워크가 없으면 이더넷 케이블이있는 Raspberry Pi를 랩톱에 직접 연결할 수있는 방법이 있는지 궁금합니다.
저는 Raspberry Pi로 풍선 프로젝트를 진행하고 있습니다. 잠재적으로 Raspberry Pi를 복구하면 시골 지역에있을 가능성이 높으므로 해당 시점에서 안전하게 Pi를 끄고 싶습니다.
근처에 라우터 나 네트워크가 없으면 이더넷 케이블이있는 Raspberry Pi를 랩톱에 직접 연결할 수있는 방법이 있는지 궁금합니다.
답변:
우분투를위한 솔루션입니다 (이 아이디어는 Windows 또는 Mac에서도 작동합니다). 오늘 방금 시도해 보았고 매력처럼 작동합니다.
재료
우분투의 전제 조건
네트워크 관리자 설치
$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에 로그인합니다 (-Y, X- 포워딩)
$ssh -Y pi@10.42.0.96
보라! 이제 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
이 사이트가 작동하지 않으면 미러 사이트 (예 : mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb)에서 직접 .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 연결도 작동하고 있음을 보여줍니다.
network-manager
기본 "네트워크 설정"GUI를 사용하기 만하면됩니다. 그리고 "편집"대신 "추가"를 클릭해야합니다. 대한 필요가 없습니다 nmap
그냥 cat /var/lib/misc/dnsmasq.leases
. 참조 : interlockroc.org/2012/12/06/raspberry-pi-macgyver
라우터 없음 + 화면 없음 + 일반 이더넷 케이블 + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10
먼저 보안을 위해 기본적으로 비활성화되어있는 Pi에서 SSH 서버를 활성화해야합니다.
화면 + 키보드 또는 UART (아래 참조)와 같은 비 SSH 방법을 통해 Pi에 이미 쉘이있는 경우 다음을 실행하십시오.
sudo systemctl enable ssh
sudo service sshd start
/raspberrypi/58478/ssh-not-working-with-fresh-install에 설명 된대로 이것은 부팅간에 지속됩니다.
그렇지 않으면 호스트에 SD 카드를 삽입 ssh
하고 boot/
파티션 에 file이라는 마법의 빈 파일을 만듭니다 .
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
그리고 이동 :
+
로그인 (새 연결 추가)호스트에서 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 pi@10.42.0.160
또한 다음이 있습니다 .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를 지원하는 경우 크로스 오버 케이블이 필요 하지 않습니다 . 이는 2012 년 레노버 T430 내가 테스트 예를 들면 포함, 최근 하드웨어의 경우 이있는 에 "인텔 82579LM 기가비트 네트워크 연결" 문서를 자동 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 참조 : /unix/307390/what-is-the-difference-between- ttys0-ttyusb0- 및 -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
이 포함됩니다. 두 번째 파티션에는 실제 Linux 루트 파일 시스템이 포함됩니다.
이제 컴퓨터를 다음과 같이 Pi에 연결합니다.
3 개의 케이블 만 연결하면됩니다.
https://www.raspberrypi.org/documentation/usage/gpio/README.md 에도 문서화되어 있습니다.
접지를 5V에 연결하지 않도록주의하십시오. 이미 2 개의 UART를 USB 칩에 구 웠고 RPI UART를 그렇게해서 1 개를 구 웠습니다!
5V를 5V에 전혀 연결할 필요가 없습니다. 나는 당신이 그렇게 파이에 전원을 공급할 수 있다고 생각하지만 이것은 나쁜 생각이라고 읽었습니다. 일반적인 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
또한보십시오
RPI SE에 대한 유사한 질문 : /raspberrypi/3867/ssh-to-rpi-without-a-network-connection
나는 이것을 성공적으로 구현하고 테스트했습니다. 내 프로젝트와 같은 상황에서 라우터 나 Wi-Fi없이 Raspberry Pi에 연결하고 싶습니다. 단순한 이더넷 케이블입니다.
ssh putty 프로그램을 사용하여 주소를 다음과 같이 입력하십시오.
raspberrypi.local
로그인하여 단말기에 접속할 수 있습니다.
또는 VNC 서버가 설정되어 있으면 VNC 서버를 사용하고
raspberrypi.local : 1
서버 주소에서. VNC 서버 암호를 입력하면 이제 원하는 작업을 수행 할 수있는 GUI 액세스 권한이 있습니다.
원격 위치에서 스크립트를 실행했을 수 있습니다. 포스터 상황에서 Pi를 안전하게 종료하십시오. 단순 여드름.
elderberryphi.local
다음은 이더넷 케이블과 DHCP 서버를 사용하여 RPi에 연결하는 Windows 사용자를위한 지침입니다. RPi가 처리 할 수 있으므로 크로스 오버 케이블이 필요하지 않습니다. 여기에 더 쉽게 따라갈 수있는 사진과 함께 이것을 문서화 한 블로그 게시물이 있습니다 .
다운로드
Windows 용 DHCP 서버를 다운로드합니다 (다운로드 링크는 여기 ). zip 파일의 압축을 풀고 DHCP 서버를 구성 할 dhcpwiz 응용 프로그램을 엽니 다.
DHCP 서버 구성
첫 번째 화면에서 다음을 누르십시오.
두 번째 화면에서 "로컬 영역 연결"행을 찾아 해당 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
하고 '마침'을 누르십시오.
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 서버의 웹 UI에 액세스하는 것이 더 쉽습니다 . 그러면 호스트 이름이 IP 주소와 함께 "raspberrypi"로 나열됩니다.
이제 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가 구성되어 있어야합니다 (그리고 두 장치 사이에 이더넷 케이블이 연결됨).
이상적인 구성은 다음과 같습니다.
eth0의 Raspberry : IP : 192.168.1.10 서브넷 : 255.255.255.0
사용자 PC : IP : 192.168.1.11 SubNet 255.255.255.0
라즈베리에서 수동 IP를 설정하려면 이 가이드를 따를 수 있습니다.
PC의 네트워크 어댑터 설정에서 수동 IP를 설정할 수 있으며 절차는 운영 체제에 따라 다릅니다.
두 개의 고정 IP를 구성한 경우 IP 세트 (192.168.1.10)를 사용하여 SSH를 통해 라즈베리에 연결할 수 있습니다.
또 다른 간단한 방법 은 GPIO에 버튼을 연결하여 라즈베리를 끄는 것입니다! 여기를보세요!
나를 위해 일한 것은 Nicole Finnie와 Ciro Santilli의 답변과 다른 곳의 답변의 조합이었습니다.
파이에서 ssh를 활성화하고 고정 IP를 사용하도록 파이를 구성하는 두 가지 작업을 수행해야합니다.
sd 카드 ssh
의 부팅 파티션 에 있는 파일을 추가합니다 ( /boot
루트 파티션 의 폴더가 아님 ). 이것은 잘 문서화 된 다른 장소입니다.
/etc/dhcpcd.conf
pi의 SD 카드를 열고 정적 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
되어 있지 서비스로 실행 :
systemctl status dnsmasq
서비스가 당신에게 다음,있는 거 좋은 정지 된이 명령을 인쇄하는 경우.
다음으로 설정해야합니다 networkmanager
. /etc/NetworkManager/NetworkManager.conf
맨 위에 다음 두 줄을 열고 추가합니다.
[main]
DNS=dnsmasq
그런 다음 재부팅하십시오. 이 단계는 필요하지 않을 수 있습니다. NetworkManager
서비스 를 다시 시작하는 것으로 충분할 수 있습니다 . 이제 NetworkManager
GUI (일반적으로 화면 모서리에있는 아이콘으로 액세스)로 이동하고 Edit Connections...
팝업 창에서 +
아이콘을 클릭하여 새 연결을 만듭니다. Ethernet
유형으로 선택 하고를 누릅니다 Create...
. IPv4 Settings
탭으로 이동 하여 방법을 선택합니다 Shared to other computers
. 연결에 좋은 이름을 지정하고 저장하십시오.
Raspberry Pi를 연결하고 노트북이 새 연결을 이더넷 연결로 사용하고 있는지 확인합니다. 그렇다면 이제 파이에 PC에서 IP가 제공됩니다. 먼저를 실행하여 찾을 수 있습니다 ifconfig
. 이렇게하면 각 네트워크 인터페이스에 하나씩 여러 텍스트 블록이 제공됩니다. 당신은 같은 것입니다 사람에 관심이 enp0s25
나 eth0
.
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
브로드 캐스트 주소 (이 경우 10.42.0.255
) 를 보는 것과 유사한 내용을 읽는 행이 있어야합니다 . 내 것과 다른 경우 파이의 전원을 끄고 SD 카드를 노트북에 다시 넣어 static ip_address
처음 세 개의 숫자가 브로드 캐스트 주소와 동일한 것으로 변경합니다 . 도 변경하십시오static routers
domain_name_servers
노트북의 첫 번째 및inet
주소. 파이의 전원을 다시 켜고 연결하십시오. ifconfig
다시 실행 하여 주소가 변경되지 않았는지 확인합니다.
ssh pi@10.42.0.182
을 받으면 connection refused
파이가 ssh
서버를 실행하지 않습니다 . 을 받으면 host unreachable
죄송합니다.
이것이 누군가를 돕기를 바랍니다!