1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

[lập trình nhúng] Hướng dẫn biên dịch và cài đặt kernel linux cho kit KM9260.!

Thảo luận trong 'Lập trình nhúng' bắt đầu bởi linhdong, 27 Tháng ba 2012.

  1. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Các Bước Biên Dịch Và Cài Đặt Kernel Linux


    I- Biên Dịch Kernel:

    1.Cài đặt trình biên dịch chéo ( Cross Compiler) vào linux.

    + download gói arm-2009q3-67-arm-none-linux-gnueabi-.tar.bz2 chứa các trình biên dịch cần thiết cho quá trình biên dịch nhân hệ điều hành linux. Sau đó đổi tên thành arm-linux-compiler.tar.bz2
    + Tiến hành thêm đường dẫn đến trình biên dịch vào biến môi trường PATH hoặc vào file bash.bashrc nằm trong thư mục /etc/profile . tổng quát : export PATH=$PATH: (đường dẫn). Kiểm tra lại dùng lệnh : #arm-none-linux-gnueabi-gcc nếu thấy xuất hiện# arm-none-linux-gnueabi-gcc : no input file thì thao tác trên thành công, ngược lại sẽ thông báo command not found.

    2.Cài đặt chương trình tạo ảnh của nhân hệ điều hành

    + Giải nén tar -jxvf uboot-mkimage.tar.bz2
    + cd uboot-mkimage
    + make
    + chmod 777 mkimage
    + cp mkimage /bin

    3.Giải nén và config kernel linux

    + tar –jxvf kernel-linux-2.6.27.tar.bz2
    + cd linux-2.6.27
    + make menuconfig

    + download bản vá : linux-2.6.27-km9260-11102009.diff và chạy dùng lệnh :
    Cat ../ linux-2.6.27-km9260-11102009.diff|patch –p1
    è Tìm hiểu thêm về ý nghĩa của bản vá kernel linux.
    + Tiến hành cấu hình và config:
    $ cd linux-2.6.27
    $ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- km9260_defconfig

    Có thể cấu hình theo kiểu giao diện menu như sau:
    $ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
    4.Biên dịch linux image
    $ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

    II- Cài đặt Kernel:

    Các bạn có thể load và chạy thử trên RAM bằng cách sau:
    $ tftp 0x20000000 uImage
    $ bootm 0x20000000

    Tuy nhiên tại vì uImage nằm ở RAM nên lần chạy tiếp theo thì sẽ không được vì lúc này uImage đã bị xóa sạch. Vì vậy bạn phải xóa 1 vùng nhớ và chép uImage lên Nand Flash dùng lệnh sau:
    $nand erase 0 0x200000
    $tftp 0x20000000 uImage

    - Phạm Văn Đồng -
  2. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Các bạn trong nhóm thảo luận nhau để hiểu về các lệnh trong quá trình thực hiện và ý nghĩa của bản vá linux nữa..!
  3. Ronal_DTVT09_SPKT New Member

    Số bài viết: 11
    Đã được thích: 0
    Điểm thành tích: 0
  4. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
  5. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    [lập trình nhúng]Tìm hiểu mối liên hệ nội dung trong 2 file .diff và file km926defconfig..!

    Vừa rồi trong quá trình tìm hiểu biên dịch kernel thì mới tò mò xem thực hư trong quá trình thực thi việc patch nó làm gì trong đó,sau đó vô trong thư mục kernel tìm đến file km9260_defconfig mở lên thử xem (file này có được sau khi patch) sau đó mở tiếp xem nội dung file .diff là gì. Cuối cùng so sánh nội dung 2 file đó xem có tìm ra được gì để vọc không? mọi người thử xem nhé..!
    Với lại sau khi make menuconfig và save lại thì nó sẽ lưu file config đó ở đâu. Mình có thể không cần vào menuconfig mà tìm đến file config dùng gedit mở nó ra và sửa trực tiếp được không.
    Và cuối cùng tò mò lắm là cách Mr. Phương tạo file patch đó? mình phải tìm hiểu để sau này giả sử như chính mình phát triển 1 thiết bị nào đó thì mình sẽ tự tạo file patch riêng cho mình..!
    Có đính kèm 2 cái file đó bên dưới,mọi người dùng notepad++ mở lên xem cho rõ nhan..!
  6. chury90 New Member

    Số bài viết: 29
    Đã được thích: 0
    Điểm thành tích: 0
    Re: [lập trình nhúng]Tìm hiểu mối liên hệ nội dung trong 2 file .diff và file km926defconfig..!

    qua quá trình biên dịch kenel cho kit SAM9260 mới nhận thấy bản linux 2.6.30 là bản dễ thở nhất, file patch đã có đầy đủ cho AT91.
    ai quan tâm có thể download tại http://www.at91.com/linux4sam/bin/view/Linux4SAM/LinuxKernel rồi về biên dịch thử, có vấn đề gì xin liên hệ ngodoanspkt@gmail.com chúng ta cùng trao đổi !nếu không rõ về cấu hình phần cứng của kit thì bạn dùng lệnh: make menuconfig
    tạo ra file .config (chú ý bạn không cần chỉnh sửa gì hết) sau đó bạn vào đây ftp://www.at91.com/pub/linux/2.6.30-at91/at91sam9260ek_defconfig lưu file với tên at91sam9260ek_defconfig.config sau đó bạn dùng lệnh: cp /đường dẫn/at91sam9260ek_defconfig.config .config ! sau đó thì bạn dung lệnh để build kenel như thường ! chúc thành công!
  7. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Chú Ý: nếu các bạn download file patch dạng at91sam9260ek_defconfig thì các bạn chép file này vào thư mục linux đã giải nén sau đó dùng lệnh : cp at91sam9260ek_defconfig .config là xem như đã vá xong cho bản linux này.
  8. langtu_buon171 Member

    Số bài viết: 52
    Đã được thích: 0
    Điểm thành tích: 6
  9. diepa9k39 New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này