OpenWrt: tftp를 통해 프로그램 다운로드
7630 단어 openwrt
tftp 서버 구축 TFTP
Trivial File Transfer Protocol
, 단순 파일 전송 프로토콜)은 UDP
프로토콜을 바탕으로 클라이언트와 서버 간에 간단한 파일 전송을 하는 프로토콜로 비용이 많이 들지 않고 복잡하지 않은 응용 장소에 적합하다.tftp
프로토콜은 작은 파일 전송을 위해 설계되어 서버에서만 파일을 얻거나 서버에 파일을 쓸 수 있으며 디렉터리를 열거하거나 인증할 수 없습니다.
삽입식Linux
개발에서 TFTP 프로토콜은 많은 장소에서 사용되고 심지어 없어서는 안 될 것이다. 특히 내부 핵 디버깅 단계에서 U-Boot
프로토콜을 통해 서버에서 핵을 불러오고 실행하면 편리하고 빠르다.
일반적인 릴리스에는 기본적으로 tftp
서비스와 tftp
서버가 설치되어 있지 않습니다.tftp
서비스는 네트워크 수호 프로세스 서비스 프로그램에 의존하여 설치tftp
또는 업그레이드 버전inetd
을 선택한 다음 설치xinetd
와tftp
를 선택한 다음 tftp-server
프로필을 수정하거나 만들고, 마지막으로 재가동/etc/xinetd.d/tftp
, 시작xinetd
서비스를 할 수 있습니다.
설치tftp
:$ sudo apt-get install xinetd
설치xinetd
및tftp
:$ sudo apt-get install tftp tftpd
또는 설치tftpd
의 향상된 버전tftp
:$ sudo apt-get install tftp-hpa tftpd-hpa
작성tftp-hpa
파일은 다음과 같습니다.# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/opt/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
여기에서 /etc/default/tftpd-hpa
설정된 TFTP_DIRECTORY
디렉토리는 /var/tftpboot
서버의 디렉토리이며 액세스 권한을 tftp
로 설정합니다.$ sudo mkdir -pv /opt/tftpboot/
$ sudo chmod 777 /opt/tftpboot/
서비스 시작 또는 재가동777
:$ sudo service tftpd-hpa start // restart
tftpd-hpa
디렉토리에 tftpboot
파일을 만들고 다른 터미널을 시작하여 다음을 입력합니다.$ tftp 127.0.0.1
tftp> get test.txt # test.txt
tftp> q # tftp
터미널 입력 test.txt
명령에서 현재 디렉터리에서 가져온 ls
파일을 볼 수 있습니다.
개발판 기록 프로그램
시작 보드, 시스템은 다음과 같은 로그를 인쇄합니다.U-Boot 1.1.3 (May 31 2017 - 12:06:08)
Board: Ralink APSoC DRAM: 128 MB
relocate_code Pointer at: 87f60000
******************************
Software System Reset Occurred
******************************
flash manufacture id: c2, device id 20 18
find flash: MX25L12805D
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5None)
DRAM component: 1024 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 128 MBytes
Flash component: SPI Flash
Date:May 31 2017 Time:12:06:08
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 575 MHZ ####
estimate memory size =128 Mbytes
RESET MT7628 PHY!!!!!!
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
위와 같은 인터페이스가 나타나면 누릅니다test.txt
.만약 우리가 컴파일된 부품이 문제가 없다는 것을 보장할 수 없다면, 이것은 가장 좋은 옵션이다. 왜냐하면 이것은 메모리 실행에만 다운로드되고 1
코드에 영향을 주지 않기 때문이다.
적절한 flash
주소와 파일 이름을 설정하고 리턴 키를 누르면 다운로드할 수 있습니다.1: System Load Linux to SDRAM via TFTP.
Please Input new ones /or Ctrl-C to discard
Input device IP (192.168.1.1) ==:192.168.0.100
Input server IP (192.168.1.100) ==:192.168.0.103
Input Linux Kernel filename () ==:uImage
netboot_common, argc= 3
NetTxPacket = 0x87FB3380
KSEG1ADDR(NetTxPacket) = 0xA7FB3380
NetLoop,call eth_halt !
NetLoop,call eth_init !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
ETH_STATE_ACTIVE!!
TFTP from server 192.168.0.103; our IP address is 192.168.0.100
Filename 'uImage'.
TIMEOUT_COUNT=10,Load address: 0x80a00000
Loading: Got ARP REPLY, set server/gtwy eth addr (58:00:e3:4b:48:01)
Got it
#################################################################
#################################################################
###############################################################Got ARP REQUEST, return our IP
##
############################
done
Bytes transferred = 1139143 (1161c7 hex)
NetBootFileXferSize= 001161c7
Erasing SPI Flash...
.
Writing to SPI Flash...
.
done
다운로드가 완료되면 시스템은 자동으로 실행되어 다음과 같은 정보를 인쇄합니다.Automatic boot of image at addr 0x80A00000 ...
## Booting image at 80a00000 ...
Image Name: MIPS OpenWrt Linux-3.18.75
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1139079 Bytes = 1.1 MB
Load Address: 80000000
Entry Point: 80000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 128
Starting kernel ...
[ 0.000000] Linux version 3.18.75 (txgcwm@E470) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r49389) ) #5 Sun Oct 22 17:39:20 CST 2017
[ 0.000000] Board has DDR2
[ 0.000000] Analog PMU set to hw control
[ 0.000000] Digital PMU set to hw control
[ 0.000000] SoC Type: MediaTek MT7628AN ver:1 eco:2
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x07ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x07ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000-0x07ffffff]
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[ 0.000000] No valid device tree found, continuing without
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=0000aa00
[ 0.000000] Readback ErrCtl register=0000aa00
[ 0.000000] Memory: 126372K/131072K available (2520K kernel code, 127K rwdata, 516K rodata, 156K init, 186K bss, 4700K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:256
[ 0.000000] Kernel panic - not syncing: Failed to find ralink,mt7620a-sysc node
[ 0.000000] ---[ end Kernel panic - not syncing: Failed to find ralink,mt7620a-sysc node
안타깝게도 이번에 컴파일된 시스템은 정상적으로 작동하지 않았지만 IP
기능이 정확하게 작동하기 시작했다.
다시 시작할 때 tftp
를 누르고 4
환경으로 들어가서 환경 변수를 관찰해 보면 첫 번째 설정이 저장되어 있음을 알 수 있습니다. 정보는 다음과 같습니다.MT7628 # printenv
bootcmd=tftp
bootdelay=1
baudrate=115200
ethaddr="00:AA:BB:CC:DD:10"
tested=1
filesize=1161c7
fileaddr=80A00000
ipaddr=192.168.0.100
serverip=192.168.0.103
autostart=no
bootfile=uImage
stdin=serial
stdout=serial
stderr=serial
Environment size: 226/4092 bytes
참고문
ubuntu에서 tftp 서버 구축 Ubuntu에서 tftp 서버 구축 가장 간단한 방법
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
OpenWrt로 NAT64/DNS64 환경 구축
2021/05/26 추가: OpenWrt의 현재 stable release (19.07)의 Jool 패키지는 버전 3.5.7이지만 다음 OpenWrt 21.02에서는 4.1.5로 업데이트되는 것 같습니다.
Jool ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
$ sudo apt-get install xinetd
$ sudo apt-get install tftp tftpd
$ sudo apt-get install tftp-hpa tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/opt/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
$ sudo mkdir -pv /opt/tftpboot/
$ sudo chmod 777 /opt/tftpboot/
$ sudo service tftpd-hpa start // restart
$ tftp 127.0.0.1
tftp> get test.txt # test.txt
tftp> q # tftp
시작 보드, 시스템은 다음과 같은 로그를 인쇄합니다.
U-Boot 1.1.3 (May 31 2017 - 12:06:08)
Board: Ralink APSoC DRAM: 128 MB
relocate_code Pointer at: 87f60000
******************************
Software System Reset Occurred
******************************
flash manufacture id: c2, device id 20 18
find flash: MX25L12805D
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5None)
DRAM component: 1024 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 128 MBytes
Flash component: SPI Flash
Date:May 31 2017 Time:12:06:08
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 575 MHZ ####
estimate memory size =128 Mbytes
RESET MT7628 PHY!!!!!!
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
위와 같은 인터페이스가 나타나면 누릅니다
test.txt
.만약 우리가 컴파일된 부품이 문제가 없다는 것을 보장할 수 없다면, 이것은 가장 좋은 옵션이다. 왜냐하면 이것은 메모리 실행에만 다운로드되고 1
코드에 영향을 주지 않기 때문이다.적절한
flash
주소와 파일 이름을 설정하고 리턴 키를 누르면 다운로드할 수 있습니다.1: System Load Linux to SDRAM via TFTP.
Please Input new ones /or Ctrl-C to discard
Input device IP (192.168.1.1) ==:192.168.0.100
Input server IP (192.168.1.100) ==:192.168.0.103
Input Linux Kernel filename () ==:uImage
netboot_common, argc= 3
NetTxPacket = 0x87FB3380
KSEG1ADDR(NetTxPacket) = 0xA7FB3380
NetLoop,call eth_halt !
NetLoop,call eth_init !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
ETH_STATE_ACTIVE!!
TFTP from server 192.168.0.103; our IP address is 192.168.0.100
Filename 'uImage'.
TIMEOUT_COUNT=10,Load address: 0x80a00000
Loading: Got ARP REPLY, set server/gtwy eth addr (58:00:e3:4b:48:01)
Got it
#################################################################
#################################################################
###############################################################Got ARP REQUEST, return our IP
##
############################
done
Bytes transferred = 1139143 (1161c7 hex)
NetBootFileXferSize= 001161c7
Erasing SPI Flash...
.
Writing to SPI Flash...
.
done
다운로드가 완료되면 시스템은 자동으로 실행되어 다음과 같은 정보를 인쇄합니다.
Automatic boot of image at addr 0x80A00000 ...
## Booting image at 80a00000 ...
Image Name: MIPS OpenWrt Linux-3.18.75
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1139079 Bytes = 1.1 MB
Load Address: 80000000
Entry Point: 80000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 128
Starting kernel ...
[ 0.000000] Linux version 3.18.75 (txgcwm@E470) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r49389) ) #5 Sun Oct 22 17:39:20 CST 2017
[ 0.000000] Board has DDR2
[ 0.000000] Analog PMU set to hw control
[ 0.000000] Digital PMU set to hw control
[ 0.000000] SoC Type: MediaTek MT7628AN ver:1 eco:2
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x07ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x07ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000-0x07ffffff]
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[ 0.000000] No valid device tree found, continuing without
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=0000aa00
[ 0.000000] Readback ErrCtl register=0000aa00
[ 0.000000] Memory: 126372K/131072K available (2520K kernel code, 127K rwdata, 516K rodata, 156K init, 186K bss, 4700K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:256
[ 0.000000] Kernel panic - not syncing: Failed to find ralink,mt7620a-sysc node
[ 0.000000] ---[ end Kernel panic - not syncing: Failed to find ralink,mt7620a-sysc node
안타깝게도 이번에 컴파일된 시스템은 정상적으로 작동하지 않았지만
IP
기능이 정확하게 작동하기 시작했다.다시 시작할 때
tftp
를 누르고 4
환경으로 들어가서 환경 변수를 관찰해 보면 첫 번째 설정이 저장되어 있음을 알 수 있습니다. 정보는 다음과 같습니다.MT7628 # printenv
bootcmd=tftp
bootdelay=1
baudrate=115200
ethaddr="00:AA:BB:CC:DD:10"
tested=1
filesize=1161c7
fileaddr=80A00000
ipaddr=192.168.0.100
serverip=192.168.0.103
autostart=no
bootfile=uImage
stdin=serial
stdout=serial
stderr=serial
Environment size: 226/4092 bytes
참고문
ubuntu에서 tftp 서버 구축 Ubuntu에서 tftp 서버 구축 가장 간단한 방법
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
OpenWrt로 NAT64/DNS64 환경 구축
2021/05/26 추가: OpenWrt의 현재 stable release (19.07)의 Jool 패키지는 버전 3.5.7이지만 다음 OpenWrt 21.02에서는 4.1.5로 업데이트되는 것 같습니다.
Jool ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
OpenWrt로 NAT64/DNS64 환경 구축2021/05/26 추가: OpenWrt의 현재 stable release (19.07)의 Jool 패키지는 버전 3.5.7이지만 다음 OpenWrt 21.02에서는 4.1.5로 업데이트되는 것 같습니다. Jool ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.