各位小伙伴在使用ElfBoard開發(fā)板的過程中,必然會有拷貝文件到開發(fā)板中的這個操作,通??梢酝ㄟ^U盤進(jìn)行拷貝,但是為了更方便的傳輸文件,還可以通過搭建網(wǎng)絡(luò)服務(wù)的方式進(jìn)行文件傳輸,下面給小伙伴們介紹一些常用的網(wǎng)絡(luò)服務(wù)的搭建和使用。
首先ubuntu的網(wǎng)絡(luò)模式需要設(shè)置為橋接模式,電腦主機(jī)、ubuntu主機(jī)、開發(fā)板三者的ip要處于同一網(wǎng)段,且ubuntu主機(jī)要能上外網(wǎng),同時還要關(guān)閉ubuntu和windows防火墻(關(guān)閉ubuntu防火墻:sudo ufw disable)。
本文中使用的三者的ip分別如下:
電腦主機(jī)ip:192.168.0.64
Ubuntu主機(jī)ip:192.168.0.51
開發(fā)板ip:192.168.0.232
然后參照以下的操作步驟就可以進(jìn)行網(wǎng)絡(luò)服務(wù)的搭建和使用。
TFTP服務(wù)搭建
TFTP(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議),是TCP/IP協(xié)議族中用來在客戶機(jī)和服務(wù)器之間進(jìn)行簡單文件傳輸?shù)膮f(xié)議,開銷很小。TFTP通常用于內(nèi)核調(diào)試。在嵌入式Linux開發(fā)過程中,內(nèi)核調(diào)試是其中一個基礎(chǔ)、重要的環(huán)節(jié)。調(diào)試內(nèi)核通常是與 Bootloader配合使用,只需在Bootloader中實現(xiàn)了網(wǎng)卡驅(qū)動和TFTP客戶端,就可以使用TFTP進(jìn)行傳輸內(nèi)核。使用TFTP協(xié)議傳輸文件,還需要在主機(jī)安裝TFTP服務(wù)端,可以在 Linux系統(tǒng)下實現(xiàn),也可以在Windows系統(tǒng)下實現(xiàn),下面在Linux(Ubuntu)系統(tǒng)下安裝TFTP服務(wù)端進(jìn)行測試。
1.安裝服務(wù)器、客戶端和守護(hù)進(jìn)程
elf@ubuntu:~$ sudo apt-get install tftp-hpa tftpd-hpa xinetd
2.服務(wù)器配置
首先,在/home/elf目錄下建一個tftpboot,并把屬性改成任意用戶可讀寫:
elf@ubuntu:~$ mkdir tftpboot elf@ubuntu:~$ chmod 777 tftpboot
然后,進(jìn)入目錄 /etc/xinetd.d/,并在其中新建文件tftp,把指定的內(nèi)容加入到tftp文件中:
elf@ubuntu:~$ cd /etc/xinetd.d/ elf@ubuntu:~$ sudo vim tftp
添加以下內(nèi)容到tftp文件:
service tftp { disable = no 138 socket_type = dgram protocol = udp wait = yes user = elf server = /usr/sbin/in.tftpd server_args = -s /home/elf/tftpboot -c per_source = 11 cps = 100 2 }
最后,修改配置文件/etc/default/tftpd-hpa:
elf@ubuntu:~$ sudo vim /etc/default/tftpd-hpa
修改為:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/elf/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure -l -c -s"
注意:將“TFTP_DIRECTORY” 改為新建tftpboot目錄所在的路徑。
3. 重新啟動服務(wù)
elf@ubuntu:~$ sudo /etc/init.d/xinetd reload [ ok ] Reloading xinetd configuration (via systemctl): xinetd.service. elf@ubuntu:~$ sudo /etc/init.d/xinetd restart [ ok ] Restarting xinetd (via systemctl): xinetd.service. elf@ubuntu:~$ sudo /etc/init.d/tftpd-hpa restart [ ok ] Restarting tftpd-hpa (via systemctl):tftpd-hpa.service.
4. 測試服務(wù)器
測試一下,在/tftpboot文件夾下新建立一個文件 :
elf@ubuntu:~/tftpboot$ touch abc
進(jìn)入另外一個文件夾:
elf@ubuntu:~/tftpboot$ cd /home/ elf@ubuntu:/home$ sudo tftp 192.168.0.51 //192.168.0.51為本機(jī)IP tftp> get abc tftp> quit elf@ubuntu:/home$ ls abc elf
如果可以下載abc文件說明服務(wù)器已經(jīng)安裝成功。
NFS服務(wù)搭建
在嵌入式Linux開發(fā)中,需要在Linux主機(jī)編寫程序代碼,然后編譯程序,生成的二進(jìn)制程序文件要傳輸?shù)侥繕?biāo)機(jī)上才能調(diào)試、運(yùn)行。那么如何更快、更便捷地傳輸文件,提高開發(fā)工作的效率呢?NFS無疑是最好的選擇。通過NFS服務(wù),主機(jī)將用戶指定的目錄通過網(wǎng)絡(luò)共享給目標(biāo)機(jī)(和windows的文件網(wǎng)絡(luò)共享類似)。目標(biāo)機(jī)可以直接運(yùn)行存放于Linux主機(jī)共享目錄下的二進(jìn)制程序,這樣調(diào)試程序時十分方便、高效。
NFS即網(wǎng)絡(luò)文件系統(tǒng)(Network File-System),可以通過網(wǎng)絡(luò)讓不同機(jī)器、不同系統(tǒng)之間可以實現(xiàn)文件共享。通過NFS,可以訪問遠(yuǎn)程共享目錄,就像訪問本地磁盤一樣。
1. ubuntu下搭建nfs服務(wù)器的方法
軟件下載安裝:
elf@ubuntu:~$ sudo apt-get install nfs-kernel-server nfs-common portmap
創(chuàng)建NFS的目錄為nfs_rootfs,并在該目錄下新建測試文件test;
elf@ubuntu:~$ mkdir nfs_rootfs elf@ubuntu:~$ cd nfs_rootfs/ elf@ubuntu:~/nfs_rootfs$ touch test elf@ubuntu:~/nfs_rootfs$ ls test
修改配置文件:
elf@ubuntu:~/nfs_rootfs$ sudo vim /etc/exports
在文件中添加以下配置:
/nfs_rootfs *(rw,sync,no_root_squash,no_subtree_check) /home/elf/nfs_rootfs *(rw,sync,no_root_squash,no_subtree_check)
重啟配置文件和服務(wù):
elf@ubuntu:~/nfs_rootfs$ sudo exportfs -rv elf@ubuntu:~/nfs_rootfs$ sudo /etc/init.d/rpcbind restart elf@ubuntu:~/nfs_rootfs$ sudo /etc/init.d/nfs-kernel-server restart
2. 驗證
在開發(fā)板上驗證nfs服務(wù)器,執(zhí)行完以下命令將nfs服務(wù)器掛載到開發(fā)板的/mnt目錄:
root@ELF1:~# mount -t nfs4 -o vers=4 172.16.0.51:/home/elf/nfs_rootfs /mnt/
掛載成功后,查看/mnt目錄,會看到剛才解壓的文件系統(tǒng):
root@ELF1:~# ls /mnt/ test
SSH服務(wù)搭建
SSH為SecureShell的縮寫,由IETF的網(wǎng)絡(luò)小組(Network Working Group)所制定的建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。SSH是較可靠,專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。SSH最初是UNIX系統(tǒng)上的一個程序,后來又迅速擴(kuò)展到其他操作平臺,目前為止,幾乎所有UNIX平臺,包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix等,都可運(yùn)行。
1. 在系統(tǒng)開發(fā)過程中經(jīng)常會遇到下列情形
(1)Linux主機(jī)不在本地,但又要使用或者維護(hù)這臺計算機(jī);
(2)一個嵌入式Linux產(chǎn)品不方便接調(diào)試串口,需要進(jìn)行維護(hù);
(3)在遠(yuǎn)程機(jī)器和本地機(jī)器之間進(jìn)行文件傳輸。
如果遠(yuǎn)程目標(biāo)系統(tǒng)已經(jīng)開啟了SSH服務(wù),通過SSH可以輕松解決以上問題。使用SSH服務(wù),一方面需要在遠(yuǎn)程系統(tǒng)上安裝SSH服務(wù),另一方面要在本地系統(tǒng)上安裝SSH客戶端,常見的SSH客戶端有 putty、SSH Secure Shell Client 等。
2. SSH有以下幾個知識要點
(1)SSH是安全的加密協(xié)議,用于遠(yuǎn)程連接Linux服務(wù)器;
(2)SSH默認(rèn)端口是22號端口,安全協(xié)議版本SSHv2,除了SSHv2版本之外還有SSHv1版本(有漏洞,不安全);
(3)SSH服務(wù)端主要包含兩個服務(wù)功能SSH遠(yuǎn)程連接和SFTP服務(wù);
(4)Linux SSH客戶端包含SSH遠(yuǎn)程連接命令以及遠(yuǎn)程拷貝scp命令等。
3. 安裝SSH
(1)在Ubuntu(Linux主機(jī))終端鍵入以下指令,安裝SSH服務(wù):
elf@ubuntu:/$ sudo apt-get install ssh
(2)啟動SSH服務(wù):
elf@ubuntu:/$ sudo service ssh start
(3)查看SSH服務(wù)的狀態(tài):
elf@ubuntu:/$ sudo service ssh status ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-08-23 17:19:57 CST; 45s ago Main PID: 7383 (sshd) Tasks: 1 (limit: 2292) CGroup: /system.slice/ssh.service └─7383 /usr/sbin/sshd -D 8月 23 17:19:57 ubuntu systemd[1]: Starting OpenBSD Secure Shell server... 8月 23 17:19:57 ubuntu sshd[7383]: Server listening on 0.0.0.0 port 22. 8月 23 17:19:57 ubuntu sshd[7383]: Server listening on :: port 22. 8月 23 17:19:57 ubuntu systemd[1]: Started OpenBSD Secure Shell server.
(4)關(guān)閉SSH服務(wù):
elf@ubuntu:/$ sudo service ssh stop
(5)測試方法:
在Windows主機(jī)通過putty訪問Linux系統(tǒng),打開putty界面,使用SSH登錄,ip設(shè)置Linux主機(jī)的ip,端口號默認(rèn)為22。
第一次登錄,會提示如下警告,點擊“是”即可:
登錄時,輸入用戶名與密碼完成登錄。
關(guān)于網(wǎng)絡(luò)服務(wù)搭建和使用的相關(guān)操作就介紹到這里,希望本篇文章能夠幫助大家在學(xué)習(xí)嵌入式開發(fā)的過程中提供幫助。
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19158瀏覽量
306443 -
嵌入式開發(fā)
+關(guān)注
關(guān)注
18文章
1033瀏覽量
47635 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5095瀏覽量
97806
發(fā)布評論請先 登錄
相關(guān)推薦
評論