NHỮNG CÂU HỎI THƯỜNG GẶP VỀ LINUX - Trang 36

Những câu hỏi thường gặp về Linux

Tùy chọn -m486 của GCC, được dùng để biên dịch chương trình x486, chủ yếu tối ưu vài điềm. Chúng
làm cho chương trình lớn hơn một chút và nhanh hơn một tí trên máy 486. Chúng vẫn chạy trên 386,
mặc dù hiệu suất kém hơn.

Tuy nhiên, từ phiên bản 1.3.35, kernel dùng chỉ thỉ riêng của 486 hoặc Pentium nếu được cấu hình cho
486 hoặc Pentium, vì thế nên không thể chạy trên 386.

GCC có thể được cấu hình cho 385 hoặc 486: khác biệt duy nhất là cấu hình cho 386 dùng tùy chọn
-m386

làm mặc định còn 486 dùng -m486 làm mặc định. Trong cả hai trường hợp, những tùy chọn này

có thể bị ghi đè bằng cách sửa

/usr/lib/gcc-lib/i*-linux/

n.n.n

/specs

.

Một bản alpha cho GCC biết tối ưu cho 586 như thế nào, nhưng nó không đáng tin cậy lắm, đặc biệt với
các thiết lập tối ưu. Pentium GCC có ở ftp://tsx-11.mit.edu/pub/linux/ALPHA/pentium-gcc/.

GCC 486 nguyên thủy tạo mã tốt hơn cho Pentium bằng cách dùng -m386, or ít nhất cũng nhỏ hơn.

H:

Lệnh “

gcc -O6

” làm cái gì?

Đ:

Hiện thời thì cũng như -O2 (GCC 2.5) hoặc -O3 (GCC 2.6, 2.7). Bất kỳ số nào lớn hơn số này điều

làm như nhau. Tập tin

Makefiles

của các kernel mới dùng -O2, và bạn cũng nên làm như vậy.

H:

linux/*.h

asm/*.h

ở đâu?

Đ:

Các thư mục

/usr/include/linux/

/usr/include/asm/

thường là các liên kết trỏ tới thư

mục chứa kernel header, thường nằm tại

/usr/src/kernel*/

.

Nếu bạn không có mã nguồn kernel, hãy tải chúng về. Hãy tham khảo câu trả lời: (“Làm thế nào để
nâng cấp/biên dịch lại hạt nhân

”)

Sau khi tải, dùng rm để xóa những tập tin cũ, và ln để tạo liên kết:

$ rm -rf /usr/include/linux /usr/include/asm

$ ln -sf /usr/src/linux/include/linux /usr/include/linux

$ ln -sf /usr/src/linux/include/asm-

<architecture> /usr/include/asm

Các tập tin assembly nằm trong các thư mục riêng biệc cho từng hệ máy, vì thế bạn cần liên kết

/usr/src/include/asm

tới

/usr/src/linux/include/asm-i386

trên máy PC, tới

/usr/src/linux/include/asm-sparc

trên máy Sun Sparc, tới

/usr/src/linux/include/asm-ppc

trên PPC, và tương tự thế.

Bạn cũng sẽ nhận ra cần “make config” như trong mã nguồn kernel mới, để tạo

linux/autoconf.h

.

H:

Phải làm gì với lỗi khi biên dịch hạt nhân?

Đ:

Xem câu hỏilinux/*.h và asm/*.h ở đâu?.

Hãy nhớ rằng khi bạn “patch” kernel, bạn phải dùng tùy chọn “

-p0

” hoặc “

-p1

”. Nếu không, có thể sẽ

patch sai. Xem tài liệu patch để biết chi tiết.

ld: unrecognized option ‘-qmagic’

” nghĩa là bạn cần có bộ liên kết mới hơn, từ

ftp://tsx-11.mit.edu/pub/linux/packages/GCC/, trong tập tin

binutils-2.8.1.0.1.bin.tar.gz

.

35

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.