Hà Nội, tháng 7 năm 2012
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ
======================
BÀI BÁO CÁO
THỰC TẬP TỐT NGHIỆP
Giáo viên hướng dẫn:
Ths. Nguyễn Trung Hiếu
Chương 2: Giới thiệu tổng quan về Viện Tự Động Hóa KTQS 3
2.1 Sơ lược lịch sử hình thành và phát triển Viện Tự Động Hóa KTQS: 3
2.2 Lĩnh vực nghiên cứu và phát triển của đơn vị: 4
2.3 Mô hình tổ chức: 5
2.3.1 Cơ cấu chung: 5
2.3.2 Cơ cấu phòng Đồng Bộ: 6
Chương 3: Tìm hiểu, xử lý, biên dịch linux nhúng trên kit Mini 2440: 7
*Mô tả công việc: 7
3.1 Cài đặt Linux trên kit Mini 2440: 7
3.1.1 Nạp qua NFS: 7
3.1.2 Nạp qua Sdcard: 9
3.2 Thực hiện biên dịch nhân Kernel: 12
3.2.1 Nguyên lý Boot Opera System 12
3.2.2 Quá trình compile nhân Kernel. 13 Phần 2 Phần thực tập chuyên sâu: 14
Chương 1: Tổng quan về quá trình thực tập: 14
1.3 Thời gian thực tập: 03 tuần (08/07 đến 01/08/2012) 14
1.4 Địa điểm thực tập: Học viện Công Nghệ Bưu Chính Viễn Thông 14
1.3 Mục Đích thực tập: 14
những bỡ ngỡ do sự khác biệt giữa học lý thuyết trong trường và thực tiễn cụ thể của
công việc.
Em xin cảm ơn các thầy, các cô trong khoa “Kỹ thuật Điện-Điện tử” - Học viện
Công nghệ Bưu chính Viễn thông đã dạy dỗ, chỉ bảo và tạo điều kiện cho chúng em hoàn
thành học phần thực tập tốt nghiệp đạt kết quả tốt nhất và hoàn thiện kiến thức cho bản
thân.
Em xin cảm ơn các cô, các chú, các anh, các chị trong Viện Tự Động, đặc biệt là các
cô, các chú, các anh, các chị trong phòng đồng bộ đã tạo điều kiện, hướng dẫn và giúp đỡ
để chúng em có thể được tham gia và thực hiện công việc cụ thể tại đơn vị, hoàn thành tốt
khóa thực tập .
Trong thời gian thực tập em đã được nghiên cứu, tìm hiểu, thực hành về “quá trình
biên dịch, xây dựng chương trình khởi động trên nền linux chạy cho kit Mini 2440”, và
mở rộng hơn là xây dựng một hệ điều hành linux nhúng tối ưu hóa dựa trên Kernel Unix
có sẵn nhằm phục vụ những mục đích nhất định.
Vậy em xin báo cáo về quá trình thực tập của mình trong thời gian qua, và những
công việc em đã được trực tiếp tham gia. EM XIN CHÂN THÀNH CẢM ƠN!
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 2
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 3 1.4 Kết quả đạt được:
- Tham gia trược tiếp vào một số giai đoạn của quá trình nghiên cứu chế tạo,
sản xuất cụ thể.
- Viết báo cáo thu hoạch sau khi hoàn thành thời gian thực tập tại đơn vị.
Chương 2: Giới thiệu tổng quan về Viện Tự Động Hóa KTQS và các lĩnh vực
nghiên cứu của viện
2.1 Sơ lược lịch sử hình thành và phát triển Viện Tự Động Hóa KTQS:
Viện tự động hóa KTQS là một trong những viện trực thuộc Viện Khoa
Học và Công nghệ Quân sự.
- Năm 1947, thành lập Nha nghiên cứu kỹ thuật thuộc Cục Quân giới, Bộ
Tổng tư lệnh Quân đội quốc gia Việt Nam. Kỹ sư, thiếu tướng Trần Đại Nghĩa được
bổ nhiệm làm Cục trưởng kiêm Giám đốc đầu tiên của Nha nghiên cứu kỹ thuật
Quân giới. Đây là cơ quan nghiên cứu khoa học kỹ thuật và công nghệ quân sự đầu
tiên của Việt Nam và là tổ chức tiền thân của Viện Khoa học và Công nghệ Quân
sự, Viện Thiết kế Vũ khí, Viện Thuốc phóng- Thuốc nổ và các Viện, Phân viện
nghiên cứu của Quân đội Việt Nam.
- Năm 1950, Nha nghiên cứu kỹ thuật Quân giới đổi tên thành Viện Nghiên
cứu Quân giới trực thuộc Tổng cục Cung cấp, Bộ Tổng tư lệnh Quân đội Quốc gia
Việt Nam. Viện trưởng là Kỹ sư Nguyễn Trinh Tiếp, Viện phó là Kỹ sư Hoàng
Đình Phu và Kỹ sư Phạm Đồng Điện.
- Năm 1960, Cục Nghiên cứu Kỹ thuật (Viện Kỹ thuật Quân sự), trực thuộc
Tổng cục Hậu cần, Bộ Quốc phòng Việt Nam được thành lập trên cơ sở Viện
Nghiên cứu Quân giới. Cục trưởng là Thiếu tướng Trần Sâm, phó chủ nhiệm Tổng
cục Hậu cần kiêm nhiệm; Cục phó là Đại tá, kỹ sư Hoàng Đình Phu.
- Ngày 10 tháng 9 năm 1974, Thực hiện Nghị quyết của Quân ủy Trung ương
nước
- Triển khai ứng dụng, thành tựu khoa học kỹ thuật công nghệ. Thiết kế,phát
triển, sản xuất, bảo dưỡng các thiết bị chuyên dụng quân sự.
- Nghiên cứu khoa học, xây dựng quy trình công nghệ.
- Chuyển giao công nghệ, thực hiện các nhiệm vụ khoa học, ký thuật.
- Hợp tác khoa học kỹ thuật và công nghệ với các cơ sở nghiên cứu.
- Tham gia các hoạt động kinh tế gắn với chức năng nhiệm vụ chuyên môn.
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 5 2.3 Mô hình tổ chức:
2.3.1 Cơ cấu chung:
- Viện KHCNQS: là cơ quan quản lý cấp cao của Viện tự động hóa KTQS,
- Trưởng phòng: Giám sát, quản lý nhân viên trong phòng, quyết định một số
công việc trong khả năng và quyền hạn của mình.
- Phó phòng: Hỗ trợ, giúp đỡ trưởng phòng thực hiện tốt công việc quản lý và
giám sát các nhân viên và quá trình nghiên cứu, hoạt động của phòng, thay mặt cho
trưởng phòng quyết định một số công việc trong quyền hạn của mình.
- Nhân viên: là những người trực tiếp thực hiện công việc, nghiên cứu, chế
tạo, sản xuất các sản phẩm theo yêu cầu của Viện và đáp ứng công việc theo nhóm
của mình.
- Các nhân viên trong phòng trao đổi trực tiếp với nhau giúp thực hiện liên
kết tốt hơn giữa các bộ phận, giữa phần cứng và phần mềm
Trưởng phòng
Phó phòng
Nhóm phần mềm
Nhóm phần cứng
Nhân
viên 1
Nhân
viên 2
Nhân
*Các bước chính:
- Cài đặt uboot thay cho Super vivi có sẵn trên kit
- Cài đặt NFS
- Cài đặt TFTP
- Cấu hình IP trên PC
*Chuẩn bị:
- Board mini 2440 ( nand 256MB )
- Cài đặt minicom hoặc putty giao tiếp rs232.
- File ảnh của u-boot, kernel 2.6.32 dạng uImage, RFS GPE và Qtopia
ở dạng không nén.
- Cáp usb, cáp rs232, cáp rs232 to usb, cáp mạng.
* Thực hiện:
Step1: cài đặt minicom
+ Trên terminal gõ sudo apt-get install minicom
+ Khởi động minicom bằng lệnh sudo minicom
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 8
+ Trên cửa sổ cài đặt minicom chọn Serial port setup cài đặt các thông
số như: Bps/par/bits 115200 8N1, Hardware Flow Control: No.
+ Chọn save setup dfl để lưu mặc định cho thiết lập.
+ Chọn exit
Step2: cài đặt uboot.
+ Gạt sang NOR trên kit, kết nối máy tính qua usb, rs232, reset board.
Chọn q trên giao diện minicom ở terminal.
+ Đặt trước trên ram khoảng trống đủ để cho uboot load vào.
Supervivi> load ram 0x31000000 239016 u
+ Trên cửa sổ terminal khác. Duyệt đến thư mục chứa file uboot bằng
/home/mrtee/mini2440/RFS *(rw,sync,no_root_squash,subtree_check)
+ Restart NFS server bằng lệnh: sudo service nfs-kernel-server restart
Step 4: cài đặt TFTP
+ Cài đặt gói: sudo apt-get install dnsmasq
+ Mở file conf bằng lệnh : sudo gedit /etc/dnsmasq.conf
+ Bỏ uncomment và edit lại các dòng sau, đường dẫn đến file uImage:
enable-tftp
tftp-root=/home/mrtee/mini2440
+ Restart fpft server bằng lệnh: sudo service dnsmasq restart
Step 5: Cài đặt biến environment
- setenv ipaddr 192.168.1.2
- setenv serverip 192.168.1.1
- setenv netmask 255.255.255.0
- setenv root_nfs /home/mrtee/mini2440/RFS
- setenv set_root_nfs 'setenv root_nfs root=/dev/nfs rw
nfsroot=${serverip}:${root_nfs}'
- setenv ifconfig_static 'setenv ifconfig
ip=${ipaddr}:${serverip}::${netmask}:mini2440:eth0 '
- setenv set_bootargs_nfs 'run set_root_nfs; setenv bootargs
${bootargs_base} ${bootargs_init} ${mini2440} ${root_nfs}
${ifconfig}'
- setenv bootcmd 'tftp 0x31000000 uImage;bootm 0x31000000'
- run ifconfig_static
- run set_bootargs_nfs
Step 6: Kiểm tra lại các biến môi trường bằng lệnh printenv
* Kết quả đạt được:
- Load thành công Linux xuống kit.
Supervivi> load ram 0x31000000 239016 u
+ Trên cửa sổ terminal khác. Duyệt đến thư mục chứa file uboot bằng
lệnh cd , liệt kê file ls , thông tin các file ll .
+ Chmod cho thư mục chính chứa các file liên quan trong quá trình
làm:
Sudo chmod –R 777 mini2440
+ Load file uboot.bin xuống ram qua usb bằng s3c2410_boot_usb
Root@ubuntu:~/mini2440$ sudo ./s3c2410_boot_usb u-boot-256M.bin
+ Trở lại cửa sổ ter vivi, gõ lệnh sau để thực thi uboot.
Supervivi> go 0x31000000
+ Thấy thông báo “ Hit any key to stop autoboot” bấm phím bất kỳ.
+ Xem thông tin của nand
MINI2440 # nand info
+ Xóa mọi thứ trên nand
MINI2440 # nand scrub
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 11
+ Tạo phân vùng mới cho nand
MINI2440 # nand createbbt
+ Xem thông tin các phân vùng trên nand
MINI2440 # mtdparts
+ Ghi uboot trên ram lên nand
MINI2440 # nand write 0x31000000 u-boot
Step 3: cài đặt nhân linux xuống kit
+ Set địa chỉ offset khi ghi các biến môi trường vào nand flash, thường
để tránh việc ghi đè lên uboot thì nên bắt đầu từ phân vùng env bằng
lệnh:
3.2 Thực hiện biên dịch nhân Kernel:
3.2.1 Nguyên lý Boot Opera System
- Khi bật công tắc nguồn, Chip load lệnh trực tiếp đến BIOS, BIOS sẽ làm
công việc đầu tiên đó là kiểm tra những phần cứng cơ bản (ổ đĩa cứng, bàn phím,
chuột ) đã được nối vào máy tính. Những phần cứng này sẽ được lần lượt nạp
Driver (BIOS đã có sẵn các driver này) để chúng ta có thể sử dụng các thiết bị này
ngay sau khi khởi động xong.
- Dựa vào những thiết lập trên BIOS, chip sẽ ngạp chương trình khởi động từ
địa chỉ mà BIOS đưa ra. Trong trường hợp này, ta sẽ sét khởi động từ ổ cứng: BIOS
sẽ gửi địa chỉ của ổ cứng và cụ thể là sector đầu tiên của đĩa cứng được gọi là MBR
(Master Boot Record), đến đây, hệ điều hành chưa thực sự được khởi động mà
thực tế chỉ là BIOS đẩy trách nhiệm khởi động tiếp cho MBR.
- Khi truy xuất vào MBR, MBR sẽ không nạp hệ điều hành ngay mà nó sẽ
xác định xem trong đĩa cứng có bao nhiêu phân vùng và hệ điều hành nào đang
chiếm phân vùng đó và phân vùng nào sẽ được ưu tiên khởi động. Để xác định phân
vùng nào được ưu tiên khởi động thì phân vùng đó sẽ được đánh dấu kích hoạt
(đánh dấu Active, chú ý chỉ Primary mới có khả năng có cờ Active). Khi tìm thấy
MBR sẽ nạp Sector đầu tiên của phân vùng đó vào bộ nhớ. Và đến lúc này Sector
đầu tiên của phân vùng đó sẽ thực hiện quá trình nạp các tập tin để khởi động hệ
điều hành. Và Sector đầu tiên của phân vùng được gọi là Boot Sector.
BootSector: là khu chứa thông tin về tập tin chủ trên ổ đĩa. Nó cũng cho
những thông tin quan trọng như là phân vùng lớn như thế nào và bắt đầu phân vùng
ở đâu. Phần quan trọng của “boot sector” là giữ sao lưu chính nó và sao lưu sẽ được
tìm thấy ở phần cuối cùng của phân vùng.
*Trên Linux: Linux sử dụng Grub4Dos để khởi động.
Boot Sector chỉ đến vị trí file GRLDR, grldr sẽ đọc nội dung file Menu.lst để gọi
chương trình. Ở đây, linux sử dụng một tập tin ảnh IMG (Ảnh chụp định dạng đĩa
mềm giống như ISO là file ảnh của ổ CD/DVD) và load vào Ram. File ảnh này
thường được nén với định dạng CAB, Gzip và bị đổi tên đuôi nên ít ai nhận ra.
Chỉnh file.bashrc:
gedit .bashrc
copy đường dẫn : “PATH=PATH:/opt/FriendlyARM/toolchain/4.4.3/bin”
vào dòng cuối cùng trong file .bashrc. Save file lại.
mkdir mini2440
Giải nén file linux.2.6.32.2-mini2440 đã tải về vào thư mục mini2440
cd mini2440/linux-2.6.32.2/
cp config _mini2440_t35 .config
make menuconfig
Thực hiện lựa chọn các tính năng cần có trong kernel.
make uImage
3.2.2.3. Kết quả, kiểm tra:
File uImage được compile đặt trong đường dẫn:
//linux-2.6.32.2/arch/arm/boot.
=>Trong quá trình bung nén, ta có thể thêm bớt các chương trình và thay đổi menu
boot tạo các file trong thư mục scripts, lib và có thể cả trong urs tùy theo mục đích
của từng người!
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 14
Phần 2 Phần thực tập chuyên sâu: Chương 1: Tổng quan về quá trình thực tập:
vượt bậc đem lại tốc độ xử lý cao hơn, dung lượng cao hơn và chuyên nghiệp hơn.
Và thiết bị lưu trữ dữ liệu cầm tay cũng vậy. Còn nhớ cách đây 5 đến 10 năm, mọi
người vẫn sử dụng đĩa mềm làm thiết bị lưu trữ cầm tay, vừa cồng kềnh vừa khó
bảo quản. Và hiện nay, chúng ta sở hữu trong tay những chiếc USB Flash Disk nhỏ
xíu với dung lượng lớn hơn cả nghìn lần những chiếc đĩa mềm kia. Tuy nhiên, do
điều kiện kinh tế không cho phép nên nhiều công ty, nhà máy, bệnh viện, trường
học, và có cả cá nhân mà chưa có điều kiện nâng cấp các thiết bị cũ lên phiên bản
cao hơn. Dễ thấy nhất là trong rất nhiều bệnh viện, các thiết bị hỗ trợ khám chữa
bệnh vẫn còn dùng ổ đĩa mềm làm thiết bị lưu trữ chính, hay những cây đàn Piano
cũ Việc thay toàn bộ số máy đó tốn một khoản tiền không nhỏ. Vậy cần phải có
những thiết bị có khả năng chuyển đổi để có thể sử dụng được USB thay thế cho
những chiếc đĩa mềm kia: Nghiên cứu thiết kế chế tạo mạch chuyển đổi FDD - USB
- Tìm hiểu chuẩn kết nối Floppy Disk Drive, chuẩn USB và phương pháp
truyền nhận dữ liệu của 2 chuẩn này.
- Tìm hiểu cấu tạo và hoạt động của USB Flash Disk Drive.
- Nghiên cứu phương pháp chuyển đổi từ chuẩn FDD sang chuẩn USB để sử
dụng USB flash làm bộ nhớ.
- Thiết kế thiết bị chuyển đổi FDD - USB
2.1 Chuẩn kết nối FDD và cấu tạo ổ đĩa mềm
2.1.1 FDD ( Floppy Disk Drive - Ổ đĩa mềm)
Công dụng: Đọc và ghi dữ liệu vào đĩa mềm.
Thiết kế ban đầu FDD có kích thước 8 inch. Tuy nhiên phiên bản được sử
dụng rộng rãi đầu tiên có kích thước là 5.25 inch . Phiên bản cuối cùng của FDD có
kích thước là 3.5 inch.
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 16
FDD có những định dạng dung lượng đĩa cố định:
2
2
2
2
1
1
Track mỗi mặt
80
80
80
80
40
40
40
40
Sector trên mỗi track
36
18
9
15
9
8
9
8
Byte trên mỗi sector
512
512
512
512
512
Tổng số cluster sẵn sàng
2.863
2.847
713
2.371
354
315
351
313
Cấu tạo:
*Đĩa:
+ Các vòng tròn màu nâu gọi là các
Track: Dữ liệu được lưu trữ tại đây.
+ Phần màu vàng gọi là Sector:
Track là tập hợp các Sectors
+ Đĩa mềm được làm từ nhựa mỏng
có phủ lớp oxit sắt có từ tính lên bề
mặt.
+ Việc ghi, xóa dữ liệu sẽ được thực
hiện bằng cách tác động từ trường
lên bề mặt đĩa.
+ Đĩa mềm có thể xóa và sử dụng lại
nhiều lần.
+ Công nghệ rẻ tiền.
*Các bộ phận chính trong ổ đĩa mềm:
+ Đầu đọc/ ghi ( Read/write heads):
Nằm ở cả hai mặt của đĩa. Cả hai
mặt có thể đồng thời hoạt động.Tuy
vậy, cả hai đầu đọc/ghi sẽ không
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 18 Bảng chức năng các chân của Floppy Controller
Pin
Chức năng
Pin 1
Ground (đất)
Pin 2
Unused ( không sử dụng)
Pin 3
Ground (đất)
Pin 4
Unused ( không sử dụng)
Pin 5
Ground (đất)
Pin 6
Unused ( không sử dụng)
Pin 7
Ground (đất)
Pin 8
Index
Pin 9
Ground (đất)
Pin 10
Ground (đất)
Pin 26
Track 0
Pin 27
Ground (đất)
Pin 28
Write Protect
Pin 29
Ground (đất)
Pin 30
Read Data
Pin 31
Ground (đất)
Pin 32
Seclect Head 1
Pin 33
Ground (đất)
Pin 34
Ground (đất)
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 19
3F4
MST
FDC Ic
Input
3F2
Control
Mạch ngoài
Output
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 20
+ Data Port: Truyền dữ liệu sang cpu và nhận lệnh từ cpu.
+ MST: Đọc trạng thái của FDC Ic và FDD.
Bit
Chức năng
0
FDD 0: Busy in seek mode
1
FDD 1: Busy in seek mode
2
FDD 2: Busy in seek mode
3
FDD 3: Busy in seek mode
4
FDC Busy; Read/Write command in progress
5
Non-DMA mode
4 -7
Turn ON the motor in disk drive 0, 1, 2 or 3 respectively 2.2 Chuẩn kết nối USB và cấu tạo USB Flash disk
2.2.1 Chuẩn kết nối USB
a, USB (Universal Serial Bus) là một chuẩn kết nối tuần tự trong máy tính. USB sử
dụng để kết nối các thiết bị ngoại vi với máy tính, chúng thường được thiết kế dưới dạng
các đầu cắm cho các thiết bị tuân theo chuẩn cắm-là-chạy (plug-and-play) mà với tính
năng gắn nóng (hot swapping) thiết bị (cắm và ngắt các thiết bị không cần phải khởi động
lại hệ thống).
- Cổng USB (Universal Serial Bus) thực chất là một bus nối tiếp được phát triển bởi
một nhóm gồm nhiều công ty: Compaq, DEC, IBM, Intel, Microsoft, NEC và Nortel. Ý
tưởng khi xây dựng cổng USB là phát triển một cổng có thể kết dễ dàng đến nhiều thiết bị
mở rộng khác nhau. Bus USB đã được phát triển qua một số phiên bản sau:
Trần Duy Phong Báo cáo thực tập tốt nghiệp
D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 21
+ USB 1.0: được giới thiệu vào năm 1996, là phiên bản đầu tiên. Tốc độ truyền dữ
liệu giữa máy tính và thiết bị kết nối có thể đạt được là 12Mbit/s.
+ USB 1.1: được giới thiệu vào năm 1997 kế thừa và phát triển từ USB 1.0. Bên
cạnh những tính năng của USB 1.0, USB 1.1 hỗ trợ hai tốc độ truyền là: 12Mbit/s cho
thiết bị (Full speed) và 1,5Mbit/s cho các thiết bị có tốc độ thấp (low speed).
+ USB 2.0: được giới thiệu vào năm 2000, với tính tương thích với các phiên bản
trước đó và thêm lựa chọn tốc độ cao 480Mbit/s (High-Speed). Tháng 12 năm 2000 công
ty ECN đưa ra chuẩn đấu nối kiểu mới (kiểu đầu nối B).
+ USB 3.0 ra đời từ năm 2008, tốc độ có thể gấp hàng chục lần tốc độ của phiên
bản USB 2.0.
dữ liệu tới không. Thường thiết bị gửi tới chủ máy tính 8 byte dữ liệu trong một lần
truyền. Các thiết bị sử dụng kiểu truyền ngắt như bàn phím, chuột hay cũng có thể dùng
cho một thiết bị đo lường khác.
- Truyền theo khối (Bulk Transfers): khi có lượng dữ liệu lớn cần truyền
và cần kiểm soát lỗi truyền, nhưng lại không có yêu cầu thúc ép về thời gian truyền