1. 樹莓派 編譯驅動 需要編譯內核嗎
如果不是交叉編譯的的話,需要下載和系統版本相同的linux內核源代碼;如果是交叉編譯的話,還需要安裝交叉編譯工具;詳見http://blog.csdn.net/hcx25909/article/details/16860055
2. 樹莓派 編譯 platform選哪個
1、獲取升級所需源碼
1)下載地址:
官方網址:https://github.com/raspberrypi
上面列出了樹莓派所有的開源軟體:
firmware:樹莓派的交叉編譯好的二進制內核、模塊、庫、bootloader
linux:內核源碼
tools:編譯內核和其他源碼所需的工具——交叉編譯器等
我們只需要以上三個文件即可,下面的工程可以了解一下
documentation:樹莓派離線幫助文檔,教你如何使用、部署樹莓派(樹莓派官方使用教程)
userland:arm端用戶空間的一些應用庫的源碼——vc視頻硬浮點、EGL、mmal、openVG等
hats:Hardware Attached on Top,樹莓派 B+型板子的擴展板資料
maynard:一個gtk寫成的桌面環境
scratch:一個簡易、可視化編程環境
noobs:一個樹莓派鏡像管理工具,他可以讓你在一個樹莓派上部署多個鏡像
weston:一個應用程序
target_fs:樹莓派最小文件系統,使用busybox製作
quake3:雷神之錘3有線開發源碼firmwareb
2)下載方法:
a、網頁直接下載:
點到所需要下載的工程,左上角選版本,右方有一個download ZIP按鈕可直接下載(筆者下載完成後,在linux中解壓提示出錯,windows又非常慢切內核建議不要在windows環境解壓,所以筆者不建議使用這種辦法)
b、使用git下載
$ mkdir raspeberrypi_src
$ cd raspberrypi_src
$ git clone git://github.com/raspberrypi/firmware.git
$ git clone git://github.com/raspberrypi/linux.git
$ git clone git://github.com/raspberrypi/tools.git
會得到三個文件夾:
firmware linux tools
2、編譯、提取內核及其模塊
1)獲得內核配置文件
在運行的樹莓派中運行:
$ls /proc/
可看到一個叫config.gz的文件,他是當前的樹莓派配置選項記錄文件,我們將他拷出,放入我們的內核源碼目錄樹下
$cp /proc/config /home/pi
我們這里使用前面交過的samba拷出並拷入內核源碼目錄下,不熟悉的人可參考前面文章
在linux內核源碼下執行:
$zcat config.gz > .config
2)配置、編譯內核
a、修改內核源碼makefile ARCH類型和編譯器路徑
$vi Makefile +195
找到以上類似代碼,改為如圖所示
b、查看、修改配置選項
$make menuconfig
可出現以下界面
如果不做修改,直接選中exit即可(注意使用鍵盤操作)
c、編譯內核鏡像
$make
在arch/arm/boot目錄下可以看到一個叫zImage的文件,就是我們新的內核
但是樹莓派需要另外一種格式的鏡像,需要進行處理一下,執行以下命令
$cd tools/mkimage
$./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
即可在當前文件夾下看到一個叫:kernel.img的文件,就是我們需要的新內核了
d、提取moles
上一步其實不但編譯出來了內核的源碼,一些模塊文件也編譯出來了,這里我們提取一下
$cd raspberrypi_src
$mkdir moles
$cd linux
$ make moles_install INSTALL_MOD_PATH=../moles
即可在moles得到我們需要的模塊文件
2、升級RPi的kernel、Firmware、lib
將SD卡拔下插在電腦上(可使用讀卡器)
1)升級內核
將新編好的內核拷入SD卡,改名為:kernel_new.img
打開boot目錄下
找到config.txt文件,加入:kernel=kernel_new.img這一行
2)升級boot
將firmware/boot/目錄下 以下文件拷入SD卡boot目錄:fbootcode.bin fixup.dat fixup_cd.dat start.elf
3)更新vc庫及內核moles
將第3步d步中編譯出來的moles/lib/moles拷入樹莓派文件系統/lib下
3. 能不能告訴我樹莓派與其他的Linux開發板比如正點原子的alpha開發板的區別呢
對於開發板,我玩過很多,感覺沒什麼太大區別,對於初學者,資料要詳細,一般都是交怎麼玩,只要學會怎麼燒寫uboot、內核,怎麼編譯uboot、內核,怎麼搭建開發環境,一般會給交叉編譯工具鏈,uboot Linux內核 qt庫等源碼包,他們都是編譯過得,按照步驟來,都完成了,剩下的路就要看自己的了,如果是應用程序開發,不用太管硬體和驅動方向,和Windows上面編程差不多,如果你是玩硬體的,學學linux驅動開發,linux系統移植,這些方面手冊一般都沒有,需要論壇上面找或者相關書籍,我用過ARM9(天嵌的),A8(友善之臂的),H3(友善的),感覺下來,基礎資料都差不多,都能教你基本操作,具體選什麼方向,還得看自己
4. 如何為樹莓派2編譯內核
入手一塊樹莓派2開發板,想利用樹莓派這個平台總結一些內核和應用程序調試手段。目前已經為樹莓派安裝了一個arch linux系統。要總結linux內涵調試手段,搭建相應的實驗環境,必須重新編譯內核才行。所以一個新的編譯樹莓派2內核的任務就是第一要緊的事情。
首先在ubuntu編譯機器上建立編譯工作目錄
raspberry
|-kernel
|-moles
|-mounts
|-scripts
下載源代碼,編譯工具,編譯腳本
下載源代碼
cd ~/raspberry/kernel
git clone https://github.com/raspberrypi/linux.git
git clone很容易被中斷,中斷不能進行斷點續傳,運行上面的命令之後,在kernel目錄下面又會形成一個linux的目錄。
下載編譯工具
git clone https://github.com/raspberrypi/tools.git
運行上面的命令之後就會在kernel目錄下會形成一個tool目錄
編譯腳本下載
cd ~/raspberry/kernel/scripts
git init
git remote add origin https://github.com/veccsolutions/RaspberryPi2Scripts.git
git pull origin master
目前已經將編譯需要的代碼,工具,腳本都准備妥當,那就開始吧
編譯過程
1,配置內核
到~/raspberry/kernel/linux目錄
運行命令 make ARCH=arm CROSS_COMPILE=~/raspberry/kernel/linux/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-bcm2708hardfp-linux-gnueabi- bcm2709_defconfig
該目錄中存在4個文件夾,本例使用gcc-linaro-arm-linux-gnueabihf-raspbian 或 gcc-linaro-arm-linux-gnueabihf-raspbian-x64。前者對應32位系統後者對應64位系統。
arm-bcm2708hardfp-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian
arm-bcm2708-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian-x64
2,利用腳本編譯內核
進入到目錄目錄~/raspberry/kernel/scripts
./makekernel.sh
3,安裝內核
安裝內核的工作主要是將boot分區中的kernel image替換掉,同時將moles中的ko文件做相應的拷貝,同時將firmware中的相應文件做拷貝。moles,和firmware在root分區下面。
5. 如何使用樹莓派去進行linux嵌入式開發
樹莓派更像是一個玩具~我們可以通過Python快速構建一個自己的系統,就像樂高玩具,所有的部件都有了,已經封裝的很完善,重點就是看看我們可以組裝出什麼新奇好玩的東西~這很cool,很geek~有本書叫玩轉樹莓派,題主可以去看看~但是其中涉及到的嵌入式知識其實並不多~嵌入式是個龐大的系統,深入學習還是需要正規開發板和大量的軟體,操作系統以及硬體知識,當然最重要的是去實踐勒~去編譯uboot,製作文件系統,學習內核框架~慢慢的才可以認知到系統的本質,做linux還是從頭開始吧。
6. 樹莓派運行wine時出現錯誤代碼c0000018
樹莓派3B是卡片電腦,內存為1GB,一般運行Linux。Linux兩種主流的內存分配方法2G/2G和3G/1G,樹莓派系統後期優化性能,使用2G/2G。(注:樹莓派內核3.x仍舊採用3G/1G)
Wine提供Windows API,Winehq官網提供的Wine都是兼容3G/1G的Linux內核。這導致Wine在樹莓派3B上運行時會出現內存地址映射,用戶數據空間地址映射失敗。這些錯誤都是wine-preload發出的。
我提供兩種解決方案。
方法一,編譯新的Linux內核:(本地編譯,在樹莓派上操作)
1.更新軟體包:sudo apt-get update
2.安裝git(已經有的可以跳過):sudo apt-get install git
2.同步內核源碼:git clone --depth=1 https://github.com/raspberrypi/linux (注:此代碼只同步.git項目倉庫中的master分支)
然後,你可以睡一覺。真的,掛油管也沒用,下載很慢的。
3.生成配置文件:先進入clone下來的文件夾,然後執行 make bcm2709_defconfig 會在該目錄下生成.config配置文件。
4.執行命令: KERNEL=kernel7
5.修改.config文件:sudo nano .config查找# CONFIG_VMSPLIT_3G is not set 將其改為CONFIG_VMSPLIT_3G=y 再查找 CONFIG_VMSPLIT_2G=y 將其改為 # CONFIG_VMSPLIT_2G is not set 保存
6.執行命令:make -j4 zImage moles dtbs 此時你又可以再睡一覺,大約需要5個小時,注意散熱。
7.安裝:sudo make moles_install
sudo scripts/mkknlimg arch/arm/boot/zImage /boot/kernel3g.img
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
8.執行reboot重啟
方法二,舊版本的wine是沒有預載入器,可能使用舊版本就不會報錯了。
7. 可以在樹莓派上做開發嗎裝個Eclipse for Linux在上面做Android開發能拉得起嗎誰試過
如果你能忍受運行效率,是可以的,即便是2代,也只有1G內存,你自己衡量。
8. 樹莓派3 怎麼cp文件/boot
內核編譯完向/tftpboot/目錄拷貝映像文件mbootpImage失敗應該沒配置tftp伺服器存/tftpboot/目錄
需要tftp伺服器忽略拷貝內核映像文件命令掉:
vim arch/arm/boot/Makefile # 假設CPUarm
掉類似 cp ... mbootpImage /tftp 命令
9. 樹莓派make menuconfig怎麼修改
你這個是編譯驅動,應該下載對應Linux內核的頭文件才能編譯通過
10. 樹莓派內核 編譯好怎麼弄sd卡上
將內核編譯好,自己寫了一個hello world的驅動程序,弄到了BBB上insmod,於是出現了今天的主角---Invaild mole format 這種情況的原因一般是編譯驅動時用的內核和開發板上的內核版本不一樣。參見http://blog.csdn.net/zhenxisuiyuan/article/de...