需要工具:
1.Linux內(nèi)核源碼包,可在http://www.kernel.org/pub/linux/kernel/中去下載自己需要的版本,我們這里我們使用的內(nèi)核為 linux-3.0.8.tar。
2.需要掛載的芯片源碼,這里使用三星的S5PV210為例,代碼包為rootfs_fs210.tgz的一個(gè)壓縮包
3.交叉工具鏈,toolchain-4.5.1-farsight.tar.bz2。
1.我們要移植配置Linux-3.0.8系統(tǒng),這里我是直接在用戶目錄下使用Samba直接建立個(gè)共享文件夾的,在Windows中直接把想要需要的文件放在其中,然后在linux中操作文件。正如下圖所示,將.bz2文件放在s5PV210文件下,并解壓為一個(gè)linux-3.0.8的一個(gè)文件。解壓:tar -xvf linux-3.0.8.tar.bz2,等待解壓完成。
2.解壓完成后我們進(jìn)入到linux-3.0.8文件中,找到我們的Makefile文件,sudo vim makefile打開該文件,將我們要掛載的芯片進(jìn)行填寫ARCH ?= arm,CROSS_COMPILE ?= arm-none-linux-gnueabi-,修改完成后,保存退出即可。
3.為了實(shí)現(xiàn)我們能夠掛載s5PV210芯片,我們需要對(duì)系統(tǒng)進(jìn)行配置。執(zhí)行語句 make s5pv210_defconfig 系統(tǒng)會(huì)默認(rèn)給我們配置一些相應(yīng)的設(shè)置。如下圖所示即可。
4.對(duì)linux內(nèi)核的裁剪,選擇我們需要的功能,這樣有利于我們進(jìn)行驅(qū)動(dòng)開發(fā),也減少不必要的麻煩。
在Linux源碼的根目錄下,執(zhí)行make menuconfig配置,界面如下圖所示。
注意:
1.如果提示缺少ncurse 實(shí)行sudo apt-get install libncurses5-dev命令進(jìn)行安裝即可。
2.如果終端必修能夠容下這個(gè)面板,要不然也會(huì)報(bào)錯(cuò)。
接下來就是我們對(duì)linux系統(tǒng)進(jìn)行裁剪了,先說明,按空格鍵進(jìn)行選中,[*]表示選中,上下左右鍵進(jìn)行上下左右操作。
General setup --->
[*] Configure standard kernel features (expert users) --->
System Type --->
(0) S3C UART to use for low-level messages //這里面將01改為00,表示使用串口1進(jìn)行信息輸出
Kernel Features --->
Memory split (3G/1G user/kernel split) ---> //選中常用的4G大小分配,3G的用戶內(nèi)存,1G的系統(tǒng)內(nèi)存。
[*] Networking support --->
Networking options --->
<*> Packet socket
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: multicasting
[*] IP: kernel level autoconfiguration
[*] IP: BOOTP support
Device Drivers --->
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> DM9000 support
File systems --->
[*] Network File Systems (NEW) --->
<*> NFS client support
[*] NFS client support for NFS version 3
[*] NFS client support for the NFSv3 ACL protocol extension
[*] Root file system on NFS
到此我們就將需要的linux剪輯完畢,退出保存即可。
5.移植網(wǎng)卡驅(qū)動(dòng)
打開我們的文件 vi arch/arm/mach-s5pv210/mach-smdkv210.c
修改網(wǎng)卡的mac地址:
static struct dm9000_plat_data smdkv210_dm9000_platdata = {
.flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM,
.dev_addr = { 0x00, 0x09, 0xc0, 0xff, 0xec, 0x99 }, // 設(shè)置為座位號(hào)碼
};
修改結(jié)構(gòu)體數(shù)組smdkv210_dm9000_resources為:
static struct resource smdkv210_dm9000_resources[] = {
[0] = {
.start = 0x88000000, //地址端口
.end = 0x88000000 + 0x3,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = 0x88000000 + 0x4, //數(shù)據(jù)端口
.end = 0x88000000 + 0x4 + 0x3,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = IRQ_EINT(10), //中斷號(hào)
.end = IRQ_EINT(10),
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
},
};
修改該函數(shù)
static void __init smdkv210_dm9000_init(void)
{
/*時(shí)序配置:需要技術(shù)支持*/
unsigned int tmp;
gpio_request(S5PV210_MP01(1), 'nCS1');
s3c_gpio_cfgpin(S5PV210_MP01(1), S3C_GPIO_SFN(2));
gpio_free(S5PV210_MP01(1));
tmp = (5 << S5P_SROM_BCX__TACC__SHIFT);
__raw_writel(tmp, S5P_SROM_BC1);
tmp = __raw_readl(S5P_SROM_BW);
tmp &= (S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS1__SHIFT);
tmp |= (1 << S5P_SROM_BW__NCS1__SHIFT);
__raw_writel(tmp, S5P_SROM_BW);
}
6.編譯內(nèi)核
進(jìn)入linux內(nèi)核的源碼根目錄,執(zhí)行如下命令:make -j2 zImage
farsight@ubuntu:~/s5pv210/linux-3.0.8$ cp -raf arch/arm/boot/zImage /tftpboot/
等待內(nèi)核編譯完成即可。(該編譯有點(diǎn)久)
編譯完成后執(zhí)行 cp -raf arch/arm/boot/zImage /tftpboot/ ,將zImage cp到tftpboot中。
7.接下來是對(duì)我們需要交叉編譯的工具包進(jìn)行配置,該文件我放在系統(tǒng)目錄下的opt文件下如下:
經(jīng)過解壓之后,得到toolchain-4.5.1-farsight文件,在當(dāng)前目錄下執(zhí)行sudo vi ~/.bashrc語句,對(duì)文件進(jìn)行添加配置信息export PATH=/opt/toolchain-4.5.1-farsight/bin:$PATH ,添加完成后,保存退出即可。
8.從上我們也可知道,我也把需要掛載的文件也放在了/opt目錄下,此時(shí)我們也對(duì)該文件進(jìn)行解壓 sudo tar -xvf rootfs_fs210.tgz ,解壓得到rootfs文件。加壓之后我們就對(duì)NFS進(jìn)行配置。
配置NFS文件系統(tǒng)
/opt$ sudo vi /etc/exports //打開NFS配置文件
/opt/rootfs *(subtree_check,rw,no_root_squash,async) //將該信息添加到其中即可。
sudo exportfs -a //最后將其掛載
上一篇:【Linux-設(shè)備樹】.dtb文件的反匯編
下一篇:DDR 2/3/4 和LPDDR
推薦閱讀最新更新時(shí)間:2025-06-26 21:49




設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- LTC3772EDDB 演示板,550kHz 降壓型 DC/DC 轉(zhuǎn)換器,VIN = 2.75V-8V,VOUT = 3.3V @ 2A
- 用于大功率通用離線電源的 NCP1379 準(zhǔn)諧振電流模式控制器的典型應(yīng)用
- 用于 CRT 顯示器的 92W、-15V、5V、6.3V、15V、80V、200V AC 到 DC 多輸出電源
- 來自多個(gè)輸入源的 LTC3622EDE-23/5 雙路輸出降壓型穩(wěn)壓器的典型應(yīng)用電路
- AKD4644-B,帶有內(nèi)置 MIC/HP/RCV 放大器的 AK4644 立體聲編解碼器評(píng)估板
- 使用 Analog Devices 的 AD8033AKS 的參考設(shè)計(jì)
- LT6657BHMS8-1.25 負(fù)分流模式基準(zhǔn)的典型應(yīng)用電路
- CN0130
- 用于便攜式的 12 位 8 通道 DAC
- 使用 ROHM Semiconductor 的 BD12IA5WEFJ 的參考設(shè)計(jì)
- BOE(京東方)聯(lián)合榮耀打造榮耀Magic V5 以領(lǐng)先LTPO技術(shù)打造行業(yè)新標(biāo)桿
- 華為ADS 4發(fā)布:多傳感器融合,提升自動(dòng)駕駛安全性
- 曉鶯說:線控制動(dòng)變革風(fēng)云
- 大眾商用車推出AirConsole 將其信息娛樂系統(tǒng)擴(kuò)展為游戲機(jī)
- 福州大學(xué)發(fā)明新機(jī)器視覺傳感器 可使機(jī)器人對(duì)極端光照做出超快反應(yīng)
- 蘋果獲沉浸式虛擬顯示器相關(guān)的專利
- 英特爾汽車“折戟”,十年布局一夜歸零
- 寶馬自動(dòng)充電機(jī)器人概念驗(yàn)證成功,引領(lǐng)無人充電新時(shí)代
- 智駕模式下LQR最優(yōu)算法在EPS中的應(yīng)用研究
- 6月超17款人形機(jī)器人新品推出
- 歐盟斥巨資發(fā)展先進(jìn)制程計(jì)劃遇冷,技術(shù)及客戶來源是核心
- 產(chǎn)業(yè)鏈進(jìn)入下一競(jìng)爭(zhēng)階段:在整合中實(shí)現(xiàn)“內(nèi)卷”
- 小米和Sisvel達(dá)成和解
- 臺(tái)媒:芯片短缺蔓延至硅晶圓,各大廠商積極擴(kuò)產(chǎn)應(yīng)對(duì)
- Arm首席執(zhí)行官:被英偉達(dá)收購(gòu)了,好于獨(dú)立IPO
- 回頭率爆表!俄羅斯無人機(jī)公司研發(fā)出“空中出租車”!
- MF47萬用表的內(nèi)部測(cè)量電路的介紹
- 關(guān)于對(duì)“十四五”國(guó)家重點(diǎn)研發(fā)計(jì)劃“儲(chǔ)能與智能電網(wǎng)技術(shù)”專項(xiàng)征求意見的通知
- 國(guó)產(chǎn)機(jī)器人發(fā)展同質(zhì)化嚴(yán)重 國(guó)產(chǎn)機(jī)器人如何彎道超車
- 物流機(jī)器人市場(chǎng)分析
- STC89S52與AT89S52替換問題
- wifi6視頻解說
- 關(guān)于恒壓充電器的一個(gè)問題
- 關(guān)于Keil的單步調(diào)試
- IAR調(diào)試只不返回到main函數(shù)
- 用proteus給msp430仿真是沒回都出現(xiàn)這問題,請(qǐng)問是咋回事,不論是進(jìn)行什么實(shí)驗(yàn)
- 用M3實(shí)現(xiàn)UART
- 【DIY--手機(jī)】季夏木槿:即將完工的手機(jī)
- 學(xué)fpga到底得學(xué)什么呀,現(xiàn)在越來越迷茫了,隨著學(xué)習(xí)的深入,感覺沒有個(gè)清晰的步驟
- 尋:3.7V鋰電池充電、升壓、電量、開關(guān),SOP8芯片