hi3516 컴파일 SSH
3516 컴파일 SSH
필수 조건
네트워크 확인
LAN에서 사용되지 않는 IP를 확인합니다.참고할 수 있다https://jingyan.baidu.com/article/e6c8503ca1dd67e54e1a1841.html;
또는 명령,arp-a 사용하기;이 단계는 다음에 sshd 서버의 네트워크 IP를 설정할 때 랜의 다른 IP와 충돌하지 않기 위해서입니다.
예를 들어 arp-a 이후 랜의 모든 IP는 다음과 같다.usernamedeMacBook-Pro:~ panxiaogong$ arp -a
? (192.168.0.1) at 94:d9:b3:d1:6a:60 on en0 ifscope [ethernet]
? (192.168.0.101) at 58:6b:14:53:d4:5b on en0 ifscope [ethernet]
? (192.168.0.103) at 34:ab:37:33:db:3e on en0 ifscope [ethernet]
? (192.168.0.105) at ac:e4:b5:7e:42:cd on en0 ifscope [ethernet]
? (224.0.0.251) at 1:0:5e:0:0:fb on en0 ifscope permanent [ethernet]
? (239.255.255.250) at 1:0:5e:7f:ff:fa on en0 ifscope permanent [ethernet]
그래서 Hi3516의 IP를 사용하지 않은 192.168.0.106 등등으로 설정할 수 있습니다.
컴파일 기준 설정
시스템/etc/profile 또는 사용자 디렉터리에 있습니다.bashrc에서 CXX와 CC 설정하기;예를 들어hi3516에서 실행되는 프로그램을 생성하려면export CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
export CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
이 단계의 목적은 뒤에 configure가 스크립트를 컴파일할 때 사용하고 싶은 컴파일러로 자동으로 추가하는 것입니다.컴파일 환경 자체가 실행할 수 있는 프로그램, 예를 들어 ubuntu의 실행 가능한 프로그램을 만들려면 위의 두 가지를 주석하는 것을 기억하십시오.
또 다른 제안된 컴파일 방식은 컴파일 도구를 수정하지 않고 ssh에서 다운로드한configure 파일을 직접 보고 컴파일 환경을 수정하는 것이다.
필요한 소프트웨어 패키지 다운로드
1. zlib-1.2.11.tar.gz
2.openssl-1.1.1
3.openssh
주의: 우선 Openssh를 다운로드한 다음 Openssh에 대응하는 버전의 문서 지도를 읽고 지원되는 zlib와openssl 버전을 보는 것을 권장합니다.zlib와openssl은 모두openssh를 컴파일하는 데 필요한 것입니다.
번역하다
zlib 컴파일
./configure --prefix=/home/panxiaogong/work/3516/3rdparty/install
usernamedeMacBook-Pro:~ panxiaogong$ arp -a
? (192.168.0.1) at 94:d9:b3:d1:6a:60 on en0 ifscope [ethernet]
? (192.168.0.101) at 58:6b:14:53:d4:5b on en0 ifscope [ethernet]
? (192.168.0.103) at 34:ab:37:33:db:3e on en0 ifscope [ethernet]
? (192.168.0.105) at ac:e4:b5:7e:42:cd on en0 ifscope [ethernet]
? (224.0.0.251) at 1:0:5e:0:0:fb on en0 ifscope permanent [ethernet]
? (239.255.255.250) at 1:0:5e:7f:ff:fa on en0 ifscope permanent [ethernet]
export CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
export CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
./configure --prefix=/home/panxiaogong/work/3516/3rdparty/install
CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DDEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
# -Wstrict-prototypes -Wmissing-prototypes
SFLAGS=-O3 -fPIC -D_LARGEFILE64_SOURCE=1
CROSS=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-
LDFLAGS= -L. libz.a
LDSHARED=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc -E
STATICLIB=libz.a
SHAREDLIB=libz.so
SHAREDLIBV=libz.so.1.2.4
SHAREDLIBM=libz.so.1
LIBS=$(STATICLIB) $(SHAREDLIB) $(SHAREDLIBV)
AR=$(CROSS)ar rc
RANLIB=$(CROSS)ranlib
부록
ssh는 비교적 흔히 볼 수 있는 명령이기 때문에 로그인이 실패하거나 연결이 실패했을 때 더 자세한 정보를 알고 싶으면 다음과 같은 방식으로 링크 과정을 볼 수 있습니다.
ssh -vvv [email protected]
이렇게 하면 상세한 링크 로그를 인쇄할 수 있다.v의 개수는 ssh 링크의 로그 등급, 즉 로그의 상세도를 결정합니다.이 매개 변수의 상세한 내용은 통과할 수 있다
man ssh
make install
./config no-asm no-async shared --prefix=/home/panxiaogong/work/3516/3rdparty/install --cross-compile-prefix=arm-himix200-linux-
no-asm: 교차 컴파일 과정에서 어셈블리 코드 코드를 사용하지 않고 컴파일 과정을 가속화하는 것입니다. 왜냐하면 그 어셈블리 코드는arm 형식에 지원되지 않기 때문입니다.
shared: 동적 연결 라이브러리를 생성합니다.
zlib: 압축 라이브러리 지원
--prefix: make install 후 디렉터리를 생성하는 경로를 지정하고 수정하지 않으면 기본적으로 OPENSSLDIR 디렉터리(/usr/local/ssl)
참조:https://www.jianshu.com/p/5f260723f5f8
CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
CFLAG= -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -O3 -Wall
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERS
PEX_LIBS=
EX_LIBS= -ldl -lz
EXE_EXT=
ARFLAGS=
AR= $(CROSS)ar $(ARFLAGS) r
RANLIB= $(CROSS)ranlib
RC= windres
NM= $(CROSS)nm
PERL=/usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion
MAKEDEPPROG=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
주의, 여기 - I를 추가해야 하는지, 내가 여기에 추가해야 하는지
CFLAGS를 찾아서 이걸 지우면 돼요.
./configure --host=arm-linux --with-libs --with-zlib=/home/panxiaogong/work/3516/3rdparty/install --with-ssl-dir=/home/panxiaogong/work/3516/3rdparty/install --disable-etc-default-login --prefix=/home/panxiaogong/work/3516/3rdparty/install
--with-zlib 이 매개 변수의 목적은 방금 생성된 zlib를 추가합니다.
1. 필요한 원본 코드를 다운로드하여 구글의 최신 버전으로 직접 mkdir-p~/arm/fs;mkdir-p~/arm/source 다운로드 zlib:zlib-1.2.3.tar.gz 다운로드 ssl: openssl-0.9.8d.tar.gz 다운로드 ssh: openssh-4.6p1.tar.gz
2. 컴파일
# 설치 경로 install에 있는 동적 라이브러리를lib로 압축합니다.tar
# 이 단계의 목적은 동적 라이브러리 간의 링크 파일 관계의 실효를 방지하는 것이다
tar -cvf lib.tar *
# 그런 다음 lib.tar는 tftp를 사용하여 목표판에 놓고 압축을 풀기
tar -xvff lib.tar
scp
sftp
sftp-server
ssh
ssh-add
ssh-agent
ssh-keygen
ssh-keyscan
ssh-keysign
ssh_config
sshd
sshd_config
scp
sftp
ssh
ssh-add
ssh-agent
ssh-keygen
ssh-keyscan
mkdir -p/var/empty/sshd
chmod 755/var/empty
export PATH=$PATH:/usr/local/bin
ssh-keygen -q -t ed25519 -f ssh_host_ed25519_key -C '' -N ''
ssh-keygen -q -t rsa -f ssh_host_rsa_key -C '' -N ''
ssh-keygen -q -t dsa -f ssh_host_dsa_key -C '' -N ''
chmod 600 ssh_host_ed25519_key
chmod 644ssh_host_ed25519_key.pub
chmod 600 ssh_host_rsa_key
chmod 644 ssh_host_rsa_key.pub
chmod 600 ssh_host_dsa_key
chmod 644 ssh_host_dsa_key.pub
4. 테스트
대상판 시작 sshd:
일단 3516 위에.
adduser sshd
그리고 판자의 IP를 설정해야 돼요.
ifconfig eth0 172.10.10.83 netmask 255.255.255.0
route add default gw 172.10.10.1# 게이트웨이
그 중에서 스위치 주소 172.10.10.1은 ssh 로그인을 하고 싶은 3516의 본 컴퓨터의 스위치와 일치하여 ipconfig 또는ifconfig를 통해 볼 수 있다
#/usr/sbin/sshd -f/usr/local/etc/sshd_config &
//개발판에서 이 명령을 실행할 때//Privilege separation user sshd does not exist//개발판 시스템에adduser shhd//또는/etc/passwd에 다음 줄을 추가해야 합니다.
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
호스트: [email protected](개발판의 IP)//루트 비밀번호가 바로 당신의 컴퓨터의 루트 비밀번호입니다.
이식 완료 대상판 시작 sshd: #/usr/sbin/sshd 호스트: $ssh [email protected]하지만 문제가 있으면 많은 실수를 할 수 있다. 고수가 나에게/root/를 삭제하라고 말했다.ssh/known_hosts
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.