學習筆記 核心編譯測試自己編寫的驅動之環境搭建

2021-09-25 07:25:00 字數 2818 閱讀 9686

主要是檢查交叉編譯工具鏈位置有沒有設定對。cross_compile ?= /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-

確認arch ?= arm。主要目的是為了編譯時能找到arch/arm目錄。

最後只要出現:configuration written to .config這句話,就證明我們的操作是正確的。如果沒有出現這句話,就有錯誤。

可能出現的錯誤1:ncurses庫沒裝

錯誤資訊:

*** unable to find the ncurses libraries or the

*** required header files.

*** 'make menuconfig' requires the ncurses libraries.

***

*** install ncurses (ncurses-devel) and try again.

解決方案:apt-get install libncurses5-dev(參考了:

可能出現的錯誤2:螢幕太小

錯誤資訊:

your display is too small to run menuconfig!

it must be at least 19 lines by 80 columns.

解決方案:全屏,或者是把字型調小。

配置網路部分,主要是使能config_ip_pnp以在2中能夠看到root file system on nfs選項

networking support 

networking options

tcp/ip networking

ip: kernel level autoconfiguration

[*] ip: dhcp support

[*] ip: bootp support

[*] ip: rarp support

配置開啟nfs服務

file systems  --->	

network file systems --->

<*> nfs client support

[*] nfs client support for nfs version 3

[*] nfs client support for the nfsv3 acl protocol extension

[*] nfs client support for nfs version 4 (experimental)

[*] nfs client support for nfsv4.1 (developer only)

[*] root file system on nfs

可能出現的錯誤1:莫名其妙的錯誤,可以試試先make distclean

**本身的錯誤:具體問題具體分析,下面只是其中一種情況:

can't use 'defined(@array)' (maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.

/home/gec/desktop/zhu_five/kernel/kernel/makefile:138: recipe for target 'kernel/timeconst.h' failed

make[1]: *** [kernel/timeconst.h] error 255

makefile:883: recipe for target 'kernel' failed

make: *** [kernel] error 2

解決方案:將kernel/timeconst.pl中第373行的defined()去掉只留下@val就可以正常編譯了。

編譯完成後得到的核心映象不在原始碼樹的根目錄下,在arch/arm/boot這個目錄下。得到的映象名是zimage

把編譯好的zimage 放到tftp伺服器的目錄下

連線tftp伺服器在開發板uboot中設定set bootcmd 'tftp 0x30008000 zimage;bootm 0x30008000'

原本的是:set bootcmd 'movi read kernel 30008000;bootm 30008000

在uboot中掛載root(ip根據實際使用更改):setenv bootargs root=/dev/nfs nfsroot=192.168.1.141:/home/gec/desktop/zhu_five/nfsroot ip=192.168.1.41:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttysac2,115200

原本的是 :setenv bootargs console=ttysac2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3

* 引數詳解

* 192.168.1.141 虛擬機器ip

* /home/gec/desktop/zhu_five/nfsroot nfs伺服器目錄

* 192.168.1.10 開發板ip

* 192.168.1.141 虛擬機器ip

* 192.168.1.1 閘道器

* 255.255.255.0 子網掩碼

編譯自己的Ubuntu核心

很多時候我們在使用ubuntu的時候,想修改一下核心配置,然後編譯,安裝到ubuntu中。這也是進行ubuntu核心開發的前提。有很多方法可以獲得ubuntu核心 但是下面兩種非常方便。uname r顯示當前核心的版本號,apt get source則用來獲取package的source code ...

編譯自己的Ubuntu核心

很多時候我們在使用ubuntu的時候,想修改一下核心配置,然後編譯,安裝到ubuntu中。這也是進行ubuntu核心開發的前提。有很多方法可以獲得ubuntu核心 但是下面兩種非常方便。uname r顯示當前核心的版本號,apt get source則用來獲取package的source code ...

學習筆記 測試計畫編寫

一般在產品需求確認 測試需求分析完成後進行測試計畫編寫。測試計畫應該包含的內容 測試範圍 明確需要測試那些模組。產品的具體業務需求有哪些,產品是web端的還是移動端的,還是都有。測試策略 明確怎麼測。對不同業務需求具體要有哪些測試型別 測試場景 測試方法等等。資源安排 測試人員的安排,測試環境是怎樣...