TFTP là gì?
TFTP là viết tắt của Trivial File Transfer Protocol, một giao thức truyền tải file, với chức năng rất cơ bản của FTP, được định nghĩa đầu tiên vào năm 1980.
Dựa vào thiết kế đơn giản của nó, TFTP có thể được triển khai trên các bộ nhớ dung lượng nhỏ - một vấn đề quan tâm rất lớn thời bấy giờ. Vì thế, TFTP thực sự hữu hiệu khi dùng để khởi động các bộ máy tính toán nhỏ không có nhiều thiết bị lưu trữ dữ liệu như router, ... Nó cũng được dùng để chuyển dữ liệu ít giữa các thiết bị trong cùng một mạng lưới, ví dụ như firmware của điện thoại IP hoặc là ảnh hệ điều hành khi chúng ta truy cập các thiết bị này từ xa thông qua X Window hay các bootloader, ... trên các thiết bị này.
Bản thân tôi cũng dùng TFTP nhiều lần khi tải các file ảnh của nhân Linux (Linux kernel) từ máy tính cá nhân (gọi là host) xuống board mạch nhúng đang chạy uboot hay bootloader, từ đó, sẽ ghi vào RAM rồi sau đó ghi vào bộ nhớ Flash NAND. Về bản chất, TFTP dựa trên UDP là giao thức không có bắt tay. Khác với TCP là cần phải có pair-socket, UDP không có khái niệm đó. Mọi việc chống mất dữ liệu đều do ứng dụng của người dùng đảm nhiệm, nếu không muốn mất dữ liệu.
Cài đặt và cấu hình TFTP nếu không đúng sẽ không tải được kernel image, và từ đó có thể gây khó khăn cho các bạn sử dụng hệ điều hành nhúng. Hiện tại có rất nhiều bạn đang nghiên cứu ở các phòng thí nghiệm sử dụng các ứng dụng loại này, nên bài viết này mong để giải đáp phần nào thắc mắc đó.
Cài đặt và thiết lập
Ban đầu cần cài đặt TFTP và TFTP Daemon, package này ở trên các phiên bản Ubuntu đều có cả từ Ubuntu 8.04 trở đi đến Ubuntu 9.10, các phiên bản trước chưa có điều kiện test.
1. Cài đặt tftp và các gói có liên quan, bằng cách dùng Terminal hoặc tìm kiếm trong Synaptic
$ sudo apt-get install xinetd tftpd tftp
2. Tạo file /etc/xinetd.d/tftp bằng cách dùng lệnh: $sudo vi /etc/xinetd.d/tftp hoặc $sudo gedit /etc/xinetd.d/tftp và điền vào nội dung sau:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
3. Tạo thử mục /tftpboot đúng theo file cấu hình trên và chmod cho thành 777 để client có thể truy xuất và đọc dữ liệu:
$ sudo mkdir /tftpboot $ sudo chmod -R 777 /tftpboot $ sudo chown -R nobody /tftpboot
4. Khởi động lại dịch vụ tftpd thông qua xinetd
$ sudo /etc/init.d/xinetd restart
5. Thử lại dịch vụ này, chú ý gõ từng lệnh một để thử
Tạo một file test.txt bỏ vào thư mục /tftpboot, chmod thành 777 rồi connect tới địa chỉ IP của chính máy đang dùng (lấy cách dùng ifconfig)
$ echo "Testing" > /tftpboot/test.txt $ chmod 777 /tftpboot/test.txt $ ls -l /tftpboot/ [xem thông báo 1] $ tftp 192.168.1.100 tftp> put test.txt Sent xxx bytes in 0.0 seconds tftp> quit
Kiểm tra lại ngày tháng của file sau khi chuyển:
$ ls -l /tftpboot/
So sánh lại sẽ thấy file sau dùng lệnh ls có ngày tháng mới hơn so với file trước, chứng tỏ quá trình truyền nhận TFTP đã okie.
Bài viết có tham khảo thêm của wikipedia và davidsudjiman.info
Các bài viết liên quan:
- Installing and setting TFTPD in Ubuntu Hướng dẫn này cực kì hay về tạo TFTPD trong Ubuntu. Mình tìm được khi đang tìm cách setup TFTPD với Davinci Project. Copy lại để làm tài liệu khi quên còn đọc.TFTPD là giao thức mình dùng để truyền file giữa host PC và target là cái board TMS320DM355. Tham khảo thêm về giao [...]...
- Cài đặt RealPlayer 11 Multimedia Player trên Ubuntu Intrepid (8.10) Qua thích cài đặt lại Ubuntu vì làm việc trên 2 PC một lúc mà, dọn dẹp lại cho khuân khổ sau một thời gian nghịch, có quá nhiều package được cài đặt, thử nghiệm đủ thứ, ... Bây giờ có nhiều kinh nghiệm hơn tí, nên tìm cách tối ưu hơn, đã biết phần [...]...
- Tăng dung lượng ổ cứng khi format ext3/ext4 trên Ubuntu Tình hình là mới tậu vài ổ 1.5T của WD vài tháng trước, nhưng khi format xong bằng GParted cứ thấy kì kì là dung lượng sử dụng của nó rất kinh khủng lên tới 87GB. Lưu ý: ext4 đã được sử dụng rất rộng rãi, thể hiện ở tính ưu việt rõ rệt của [...]...
- Biên dịch một gói phần mềm trên Ubuntu [Howto] Mình mất công dịch hướng dẫn này tại Help của Ubuntu và thêm nhận xét của mình, hi vọng bạn đang tìm kiếm có thể dễ dàng tìm thấy điều mình cần. Trong trình quản lý phần mềm Synaptic (Ubuntu) ta dễ dàng tìm thấy rất nhiều gói phần mềm hoặc phần mềm của hãng [...]...
- Hướng dẫn cài đặt Sun JRE trên Ubuntu 10.04 (Lucid Lynx) Phiên bản Ubuntu 10.04 ra mắt mới vài ngày, có nhiều cái thay đổi mà chúng ta cần chú ý, cũng như cập nhật, ngoài chuyện cài đặt bộ gõ tiếng Việt, giờ đến vụ cài đặt Java cho nó Trên các phiên bản Ubuntu từ 9.10 trở về trước thì vẫn luôn tồn tại [...]...
- Cài đặt Xilinx ISE trên Ubuntu Chào các bạn. Nay mới được mua cái KIT Spartan 3E nên quyết định cài phần mềm Xilinx ISE trên Ubuntu dùng cho sướng . Nhưng sẽ bắt gặp một số vấn đề nhỏ, nếu ai gặp vấn đề gì thì có thể comment ở đây mình sẽ giúp. Cách cài đặt phần mềm Xilinx [...]...



{ 2 comments… read them below or add one }
T không xài Ubuntu nên mấy cái này nghe chừng có vẻ kó quá bác à ! hi hi
Không sao, TFTP là một chuẩn mà. Có thể dùng trên Windows, sẽ hướng dẫn sau