Câu hỏi

26/04/2013 21:36
Làm ơn chỉ cho em cách cài đặt UML Linux với được không?
Danh sách câu trả lời (1)

Cài đặt và điều chỉnh môi trường nền
Để cài đặt UML Linux, chúng ta cần có một số điều chỉnh nhỏ cho môi trường nền, bao gồm: cài đặt các công cụ của UML linux và biên dịch lại hạt nhân với một bản vá SKAS (Separate Kernel Address Space) của dự án UML Linux (Bản vá này cho phép chương trình hạt nhân thực thi trong một không gian bộ nhớ tách biệt với không gian bộ nhớ của hạt nhân nền).
Vá và biên dịch hạt nhân
(Nếu bạn dùng UML ở chế độ theo dõi luồn - thread tracing mode - thì bước này không cần thiết)
Các bước tiến hành cài đặt:
Tải về mã nguồn của hạt nhân linux từ http://www.kernel.org, chúng ta cần phải lựa chọn phiên bản có khả năng làm việc tốt với UML, trong bài viết này chúng ta sử dụng phiên bản linux-2.6.8.1 (hay còn được gọi là vanilla kernel 2.6.8.1).
# cd ~/kernel/
# wget ftp://ftp.us.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.1.tar.bz2
Tải bản vá SKAS cho hạt nhân nền. Chúng ta có thể tải về từ trang tải về của dự án UML. Tuy nhiên, bản vá này có thể tải về từ trang tải về của tác giả - trang này được cập nhật thường xuyên hơn. Với linux-2.6.8.1 chúng ta sử dụng bản vá mới nhất host-skas3-2.6.7-v5.patch, mặc dù đây là bản vá cho hạt nhân linux-2.6.7 nhưng nó vẫn làm việc tốt với hạt nhân linux-2.6.8.1:
# wget http://www.user-mode-linux.org/~blaisorblade/patches/host-skas3-2.6.7-v5.patch
Xả nén vào nới thích hợp. Thông thường mã nguồn của hạt nhân được đặt trong /usr/src, tuy nhiên nếu chúng ta muốn biên dịch hạt nhân bằng tài khoản thông thường, chúng ta có thể chọn một vị trí mà tài khoản đó có quyền ghi, ở đây chúng ta xả nén vào ~/kernel:
# tar jxvpf linux-2.6.8.1.tar.bz2
Tiến hành vá hạt nhân vanilla kernel linux-2.6.8.1:
# cd linux-2.6.8-1
# patch -p1 --dry-run < ../host-skas3-2.6.7-v4.patch
# patch -p1 < ../host-skas3-2.6.7-v4.patch
Cấu hình hạt nhân môi trường nền, quá trình được tiến hành thông thường tuy nhiên cần phải nhớ kích hoạt tính năng hỗ trợ /proc/mm trong mục "Processor type and features":
# make mrproper
# make menuconfig
# make all
(Chúng ta cũng có thể sử dụng các công cụ xconfig hoặc menuconfig)
Tiến hành cài đặt hạt nhân mới biên dịch vào hệ thống:
# su
# make modules_install
# mount /boot
# make install
# vi /boot/grub/grub.conf (chỉnh lại cấu hình grub)
(Tùy vào từng môi trường/cá nhân mà các bước tiếng hành có thể tùy biến)
Cài đặt công cụ của UML Linux
Rất nhiều đặc điểm của hạt nhân UML cần được hỗ trợ bởi các chương trình chạy ở không gian người dùng (user space) của môi trường nền. Do vậy một số công cụ trợ giúp được xây dựng và phân phối trên trang chủ của UML. Người dùng cần phải tải về và cài đặt nhưng công cụ này trong môi trường nền. Những chương trình này bao gồm:
1.
port-helper - được sử dụng bởi consoles để kết nối tới xterms hoặc ports
2.
tunctl - Công cụ cấu hình dùng để thiết lập và xoá các thiết bị TAP
3.
uml_net - Setuid binary chương trình tự động cấu hình thiết bị tap
4.
uml_switch - bộ chuyển đổi ảo, sử dụng cho daemon transport
Lưu ý rằng mỗi bản vá của hạt nhân UML sẽ yêu cầu một phiên bản phân phối tương ứng của các công cụ uml. nếu bạn không theo dõi mailing lists,thì phải đảm bảo là bạn sử dụng phiên bản phát hành mới nhất nếu bạn gặp các vấn đề với hạt nhân UML thì cũng cần lưu ý tới vấn đề tương thích giữa công cụ trợ giúp và hạt nhân UML.
Tải về, biên dịch và cài đặt công cụ uml_utilities:
# wget http://ovh.dl.sourceforge.net/sourceforge/user-mode-linux/uml_utilities_20040406.tar.bz2
# tar jxvpf uml_ultilities_20040406.tar.bz2
# cd tools
# make && make install
Biên dịch và cài đặt "chương trình hạt nhân" UML
Tải về và tạo mã nguồn UML
Xả nén mã nguồn của hạt nhân vanilla linux-2.6.8.1 vào một vị trí khác:
# mkdir uml-2.6.8.1
# cd uml-2.6.8.1
# tar jxvpf ../linux-2.6.8.1.tar.bz2
Tải về bản vá UML mới nhất của dự án UML Linux:
# wget http://ovh.dl.sourceforge.net/sourceforge/user-mode-linux/uml-patch-2.6.8.1-1.bz2
(Người dùng nên vào trang tải về của dự án UML Linux để chọn một mirror gần nhất)
Và chúng ta cũng cần một bản vá nhỏ điểu chỉnh hệ thống tmpfs, bản vá này là cần thiết cho chương trình hạt nhân UML.
Để có mã nguồn của chương trình UML linux, Chúng ta tiến hành vá lần lượt từng bản vá:
# cd linux-2.6.8.1
# bzcat ../uml-patch-2.6.8.1-1.bz2 | patch -p1 --dry-run
# bzcat ../uml-patch-2.6.8.1-1.bz2 | patch -p1
# patch -p1 --dry-run < ../tmpfs.patch
# patch -p1 < ../tmpfs.patch
(khi vá bản vá tmpfs.patch chúng ta sẽ gặp một sỗ trục trặc, nhưng đơn giản là bỏ qua và tiếp tục tiến hành)
Tiến hành cấu hình và biên dịch chương trình hạt nhân UML
Để cấu hình hạt nhân uml, bạn có thể sử dụng các công cụ cấu hình thông thường như: oldconfig, menuconfig, xconfig. Tuy nhiên bạn cần chỉ rõ kiến trúc hệ thống bạn sẽ biên dịch, ở đây thay vì các kiến trúc thông thường: x86, ia64,.. . Bạn cần phải chỉ rõ kiến trúc biên dịch là "User Mode" thông qua tham số chỉ thị "ARCH=um".
# make ARCH=um xconfig
Quá trình biên dịch hạt nhân uml được tiến hành với tham số chỉ thị "ARCH=um" và mục tiêu biên dịch là "linux" thay vì bzImage, bzdisk,...:
# make ARCH=um linux
Quá trình biên dịch này sẽ cho kết quả là một tập tin nhị phân trong thư mục chính của mã nguồn hạt nhân uml:
# ll
........................
-rwxr-xr-x 1 tuanndh users 25M Thg 10 7 07:27 linux
........................
đây chính là chương trình hạt nhân uml, cùng với các tài nguyên "ảo" chương trình này sẽ đem tới cho bạn một môi trường uml linux mới. Như bạn thấy tập tin này có kích thước khá lớn, bạn có thể giảm nhỏ kích thước của tập tin này:
# strip linux
# ll
........................
-rwxr-xr-x 1 tuanndh users 3,0M Thg 10 7 07:29 linux
........................
Để thuận lợi trong sử dụng, bạn nên chép tập tin này vào một thư mục có trong biến môi trường $PATH của bạn:
# echo $PATH
/bin:/usr/bin:/usr/local/bin:/opt/bin:~/bin:
# copy linux /usr/local/bin
Chúc
bạn thành công!
Để cài đặt UML Linux, chúng ta cần có một số điều chỉnh nhỏ cho môi trường nền, bao gồm: cài đặt các công cụ của UML linux và biên dịch lại hạt nhân với một bản vá SKAS (Separate Kernel Address Space) của dự án UML Linux (Bản vá này cho phép chương trình hạt nhân thực thi trong một không gian bộ nhớ tách biệt với không gian bộ nhớ của hạt nhân nền).
Vá và biên dịch hạt nhân
(Nếu bạn dùng UML ở chế độ theo dõi luồn - thread tracing mode - thì bước này không cần thiết)
Các bước tiến hành cài đặt:
Tải về mã nguồn của hạt nhân linux từ http://www.kernel.org, chúng ta cần phải lựa chọn phiên bản có khả năng làm việc tốt với UML, trong bài viết này chúng ta sử dụng phiên bản linux-2.6.8.1 (hay còn được gọi là vanilla kernel 2.6.8.1).
# cd ~/kernel/
# wget ftp://ftp.us.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.1.tar.bz2
Tải bản vá SKAS cho hạt nhân nền. Chúng ta có thể tải về từ trang tải về của dự án UML. Tuy nhiên, bản vá này có thể tải về từ trang tải về của tác giả - trang này được cập nhật thường xuyên hơn. Với linux-2.6.8.1 chúng ta sử dụng bản vá mới nhất host-skas3-2.6.7-v5.patch, mặc dù đây là bản vá cho hạt nhân linux-2.6.7 nhưng nó vẫn làm việc tốt với hạt nhân linux-2.6.8.1:
# wget http://www.user-mode-linux.org/~blaisorblade/patches/host-skas3-2.6.7-v5.patch
Xả nén vào nới thích hợp. Thông thường mã nguồn của hạt nhân được đặt trong /usr/src, tuy nhiên nếu chúng ta muốn biên dịch hạt nhân bằng tài khoản thông thường, chúng ta có thể chọn một vị trí mà tài khoản đó có quyền ghi, ở đây chúng ta xả nén vào ~/kernel:
# tar jxvpf linux-2.6.8.1.tar.bz2
Tiến hành vá hạt nhân vanilla kernel linux-2.6.8.1:
# cd linux-2.6.8-1
# patch -p1 --dry-run < ../host-skas3-2.6.7-v4.patch
# patch -p1 < ../host-skas3-2.6.7-v4.patch
Cấu hình hạt nhân môi trường nền, quá trình được tiến hành thông thường tuy nhiên cần phải nhớ kích hoạt tính năng hỗ trợ /proc/mm trong mục "Processor type and features":
# make mrproper
# make menuconfig
# make all
(Chúng ta cũng có thể sử dụng các công cụ xconfig hoặc menuconfig)
Tiến hành cài đặt hạt nhân mới biên dịch vào hệ thống:
# su
# make modules_install
# mount /boot
# make install
# vi /boot/grub/grub.conf (chỉnh lại cấu hình grub)
(Tùy vào từng môi trường/cá nhân mà các bước tiếng hành có thể tùy biến)
Cài đặt công cụ của UML Linux
Rất nhiều đặc điểm của hạt nhân UML cần được hỗ trợ bởi các chương trình chạy ở không gian người dùng (user space) của môi trường nền. Do vậy một số công cụ trợ giúp được xây dựng và phân phối trên trang chủ của UML. Người dùng cần phải tải về và cài đặt nhưng công cụ này trong môi trường nền. Những chương trình này bao gồm:
1.
port-helper - được sử dụng bởi consoles để kết nối tới xterms hoặc ports
2.
tunctl - Công cụ cấu hình dùng để thiết lập và xoá các thiết bị TAP
3.
uml_net - Setuid binary chương trình tự động cấu hình thiết bị tap
4.
uml_switch - bộ chuyển đổi ảo, sử dụng cho daemon transport
Lưu ý rằng mỗi bản vá của hạt nhân UML sẽ yêu cầu một phiên bản phân phối tương ứng của các công cụ uml. nếu bạn không theo dõi mailing lists,thì phải đảm bảo là bạn sử dụng phiên bản phát hành mới nhất nếu bạn gặp các vấn đề với hạt nhân UML thì cũng cần lưu ý tới vấn đề tương thích giữa công cụ trợ giúp và hạt nhân UML.
Tải về, biên dịch và cài đặt công cụ uml_utilities:
# wget http://ovh.dl.sourceforge.net/sourceforge/user-mode-linux/uml_utilities_20040406.tar.bz2
# tar jxvpf uml_ultilities_20040406.tar.bz2
# cd tools
# make && make install
Biên dịch và cài đặt "chương trình hạt nhân" UML
Tải về và tạo mã nguồn UML
Xả nén mã nguồn của hạt nhân vanilla linux-2.6.8.1 vào một vị trí khác:
# mkdir uml-2.6.8.1
# cd uml-2.6.8.1
# tar jxvpf ../linux-2.6.8.1.tar.bz2
Tải về bản vá UML mới nhất của dự án UML Linux:
# wget http://ovh.dl.sourceforge.net/sourceforge/user-mode-linux/uml-patch-2.6.8.1-1.bz2
(Người dùng nên vào trang tải về của dự án UML Linux để chọn một mirror gần nhất)
Và chúng ta cũng cần một bản vá nhỏ điểu chỉnh hệ thống tmpfs, bản vá này là cần thiết cho chương trình hạt nhân UML.
Để có mã nguồn của chương trình UML linux, Chúng ta tiến hành vá lần lượt từng bản vá:
# cd linux-2.6.8.1
# bzcat ../uml-patch-2.6.8.1-1.bz2 | patch -p1 --dry-run
# bzcat ../uml-patch-2.6.8.1-1.bz2 | patch -p1
# patch -p1 --dry-run < ../tmpfs.patch
# patch -p1 < ../tmpfs.patch
(khi vá bản vá tmpfs.patch chúng ta sẽ gặp một sỗ trục trặc, nhưng đơn giản là bỏ qua và tiếp tục tiến hành)
Tiến hành cấu hình và biên dịch chương trình hạt nhân UML
Để cấu hình hạt nhân uml, bạn có thể sử dụng các công cụ cấu hình thông thường như: oldconfig, menuconfig, xconfig. Tuy nhiên bạn cần chỉ rõ kiến trúc hệ thống bạn sẽ biên dịch, ở đây thay vì các kiến trúc thông thường: x86, ia64,.. . Bạn cần phải chỉ rõ kiến trúc biên dịch là "User Mode" thông qua tham số chỉ thị "ARCH=um".
# make ARCH=um xconfig
Quá trình biên dịch hạt nhân uml được tiến hành với tham số chỉ thị "ARCH=um" và mục tiêu biên dịch là "linux" thay vì bzImage, bzdisk,...:
# make ARCH=um linux
Quá trình biên dịch này sẽ cho kết quả là một tập tin nhị phân trong thư mục chính của mã nguồn hạt nhân uml:
# ll
........................
-rwxr-xr-x 1 tuanndh users 25M Thg 10 7 07:27 linux
........................
đây chính là chương trình hạt nhân uml, cùng với các tài nguyên "ảo" chương trình này sẽ đem tới cho bạn một môi trường uml linux mới. Như bạn thấy tập tin này có kích thước khá lớn, bạn có thể giảm nhỏ kích thước của tập tin này:
# strip linux
# ll
........................
-rwxr-xr-x 1 tuanndh users 3,0M Thg 10 7 07:29 linux
........................
Để thuận lợi trong sử dụng, bạn nên chép tập tin này vào một thư mục có trong biến môi trường $PATH của bạn:
# echo $PATH
/bin:/usr/bin:/usr/local/bin:/opt/bin:~/bin:
# copy linux /usr/local/bin
Chúc
bạn thành công!
Trả lời câu hỏi
Câu hỏi lĩnh vực Lập trình
Rao vặt Siêu Vip