歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux3.5 移植到QQ2440V3

前言

很久沒碰板子了,這次又要重新拾起,把每一步跌宕記錄下來以便後查,之前記錄過移植到FL2440板子上,那塊板子送人了,又在網上100塊買了個二手的QQ2440V3,不過似乎什麼資料都沒有,只能一點一點摸索了,還好板子裡的supervivi還在,並且裡邊有默認的Linux系統,去年我曾經移植過3.0在上邊,不過沒有備份東西,這次重來吧。

這次就以現成的supervivi為根基,一步一步搭建起Linux系統,再把驅動和應用逐個實現。

第一步:准備下開發環境
這次就不換硬盤了,直接虛擬機弄個Ubuntu 12.04,目前最新的Linux Desktop,一切為了方便,重心放在板子開發上,環境弄個方便順手不影響項目卡殼的。

1. unbuntu 700M下載地址

http://mirrors.ustc.edu.cn/ubuntu-releases/12.04/

安裝ubuntu時把虛擬機網卡斷開,加速安裝。

裝完後,重啟系統,連接虛擬機網卡,安裝gcc編譯器,sudo apt-get install build-essential --yes,裝完發現是4.6版的。

更新源sudo gedit /etc/apt/sources.list

 

2. 內核源碼80M下載地址

http://www.kernel.org/ 選擇

mainline: 3.5


 Full source,3.5.4那個stable速度太慢了。

3. 交叉編譯器(arm-linix-gcc)下載地址

gcc-4.5-arm-linux-gnueabi (4.5.3-12ubuntu2cross1.61) [universe]

http://packages.ubuntu.com/zh-cn/precise/gcc-4.5-arm-linux-gnueabi

 i3864,717.2 kB11,579.0 kB[文件列表] 亞洲 mirrors.163.com/ubuntu/

(在安裝好的ubuntu裡面連好網絡,執行命令安裝應該也可以sudo apt-cache search arm-linux後sudo apt-get install arm-linux)

4. 嘗試把源碼包和交叉編譯器弄到虛擬機ubuntu裡面

用vmware-tools,建立主機和虛擬機共享文件夾,用來來回拷貝文件。從vmware安裝包的linux.iso加載到虛擬機,拷貝並解壓tar文件,進入解壓後目錄執行sudo ./vmware-install.pl默認安裝,發現查找linux include的時候,卡住了,不知道include 在哪。
首先uname -r 結果是3.2.0-29-generic-pae

於是嘗試輸入/usr/src/3.2.0-29-generic-pae/include,結果又報錯說version不符,

於是嘗試更改/usr/src/3.2.0-29-generic-pae/include/linux/version.h 加一行#define UTS_RELEASE "3.2.0-29-generic-pae"

再來,結果說linux/autoconf.h不存在,要編譯內核,搜索這個問題,人家說在include下sudo ln -s ../generated/autoconf.h ./,嘗試後

再來,結果編譯開始了,但報錯,說asm/semaphore.h找不到,網上查說系統版本高,而虛擬機版本低。

5.於是去支持開源,選了德國的virtualbox虛擬機,直接可以讀取ubuntu系統的vmdk。

前進的道路總是會卡殼的,想辦法換個思路繞過哨卡吧。

進入系統將vmware-tools卸載 sudo /usr/bin/vmware-uninstall.pl

虛擬機加載光盤,選擇虛擬文件,在virtualbox安裝後目錄下有個guest addition.iso,加載後自動運行引導安裝。

裝完,設置好虛擬機的共享文件夾位置,名字取share,就可以

sudo mkdir /mnt/share

sudo mount -t vboxsf share /mnt/share

ls /mnt/share 後就有東西了。

windows下面准備好的交叉編譯器和內核可以放到共享文件夾後操作了。

雙擊arm-linux-gcc***.deb安裝。將Linux3.5內核拷貝出來。

6. 測試arm-linux-gcc

arm-linux-gnueabi-gcc-4.5 --version

成功回顯

Copyright © Linux教程網 All Rights Reserved