娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年11月10日(星期日)

正在發生

2021年11月10日 | mini2440 uboot使用nfs方式引導內核,文件系統

發布者:心靈捕手 來源: eefocus關鍵字:mini2440  uboot  引導內核  文件系統 手機看文章 掃描二維碼
隨時隨地手機看文章

看了一段時間的u-boot了,到今天才真正完全實現u-boot引導內核和文件系統,順利開機,在此記錄完整過程


1、首先如果你u-boot還沒有一直也沒有關系,這里上傳了一個已經移植好的u-boot,版本問2010.03,多謝tekkaman分享的這個源碼


分享下載地址:u-boot-2010.03

編譯uboot的過程就不在多說了,解壓到你希望的目錄下執行make,當時事前安裝好交叉編譯工具,這個相信大家都會


編譯完成之后生成uboot.bin文件,使用mini2440自帶的USB下載方式下載到開發板,選擇v命令下載即可


開機界面如下,你的可能不完全顯示的一樣,這是經過我修改的


U-Boot 2010.03 (Jun 20 2013 - 08:43:59)

 

Modified by Seal (king_haitao@163.com)

Study Linux and love linux forever!!

Study u-boot

 

I2C:   ready

DRAM:  64 MB

Flash:  2 MB

NAND:  256 MiB

Video: 240x320x16 20kHz 62Hz

In:    serial

Out:   serial

Err:   serial

USB slave is enable!

Net:   dm9000

Hit any key to stop autoboot:  0 

[u-boot@MINI2440]#

然后就要開始考慮怎么下載內核了,不錯,要引導內核首先你需要把內核下載的你的內存中,那么首先配置好你的下載環境是最重要的


2、linux nfs安裝與配置


ubuntu下安裝、配置nfs服務的步驟如下: 


安裝nfs 


Ubuntu上默認是沒有安裝nfs服務器的,因此我們首先安裝nfs服務器端: 


$sudo apt-get install nfs-kernel-server 


在一些文檔中,提出還需要使用apt-get來手動安裝nfs的客戶端nfs-common,以及端口映射器portmap,但其實這是沒有必要的,因為在安裝nfs-kernel-server時,apt會自動為我們把它們安裝好。


配置/etc/exports 


nfs允許掛載的目錄及權限在文件/etc/exports中進行了定義。 


例如,我們要將根目錄下的rootfs目錄共享出來,那么我們需要在/etc/exports文件末尾添加如下一行:


/rootfs *(rw,sync,no_root_squash)


其中: /rootfs是要共享的目錄,*代表允許所有的網絡段訪問,rw是可讀寫權限,sync是資料同步寫入內存和硬盤,no_root_squash是nfs客戶端分享目錄使用者的權限,如果客戶端使用的是root用戶,那么對于該共享目錄而言,該客戶端就具有root權限。


nfs的安裝如果大家還有疑問網上可以多查查


接下就要配置pc端和我們開發板端的ip等,以達到我們使用nfs這種方式下載image的目的


從新啟動nfs


/etc/init.d/nfs-kernel-server restart

掛載方法:


mount 192.168.1.103:/root/tftpboot  /test


嵌入式要mount 的時候 使用


mount -o nolock 192.168.1.103:/root/tftpboot /mnt/net


3、配置開發板ip和主機ip


我的配置參數:


開發板ip:192.168.1.102


主機ip(pc端ip):192.168.1.103


uboot啟動起來的使用printenv查看默認參數,包括開發板ip、server ip,還有其他一些啟動參數


[u-boot@MINI2440]# printenv

bootdelay=5

baudrate=115200

ethaddr=08:08:11:18:12:27

netmask=255.255.255.0

tekkaman=bmp d 70000

 stdin=serial

stdout=serial

stderr=serial

ethact=dm9000

ipaddr=192.168.1.102

serverip=192.168.1.103

gatewayip=192.168.1.1

bootcmd=nfs 0x30008000 192.168.1.103:/root/tftpboot/w35_image.img ;bootm 30008000

bootargs=root=/dev/nfs rw nfsroot=192.168.1.103:/root/tftpboot/rootfs ip=192.168.1.102:192.168.1.1::255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M

 

Environment size: 460/131068 bytes

[u-boot@MINI2440]# 

上面打印出來的參數請參照設置,特別是以下說到的幾個參數格外小心,他們直接關系到你的image是否可以成功下載,成功被引導,文件系統是否成功掛載并啟動


其實為了使用nfs而設定的參數為以下以下幾個:

ipaddr(開發板ip)


serverip(pc端作為服務器的ip)


gatewayip(使主機ip和開發板ip在同一個網段內)


bootcmd用于啟動時下載image到指定的內存地址,同時使用bootm命令引導內核啟動


bootargs 用于使用nfs方式掛載我們創建好的文件系統


其他參數從字面大家也可以理解,設置方法很簡單,舉例說明,設置bootcmd的方法


setenv bootcmd 'nfs 0x30008000 192.168.1.103:/root/tftpboot/w35_image.img ;bootm 30008000'

其他設置方法依次類推,值得注意的是:設置完成必須保持到內存,下一次啟動才會生效,使用saveenv命令


4、如何實現使用nfs下載image到指定內存


首先需要制作能被u-boot直接引導的內核image,通常,kernel的啟動需要u-boot提供一些參數信息,比如ramdisk在RAM中的地址。經過編譯后的u-boot在根目錄下的tools目錄中,會有個叫做mkimage的工具,他可以給zImage添加一個header,也就是說使得通常我們編譯的內核zImage添加一個數據頭信息部分,我們把添加頭后的image通常叫uImage,uImage是可以被u-boot直接引導的內核鏡像。


mkimage工具的使用介紹如下:


使用: 中括號括起來的是可選的

mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image

選項:

-A:set architecture to 'arch' //用于指定CPU類型,比如ARM

-O:set operating system to 'os' //用于指定操作系統,比如Linux

-T:set image type to 'type' //用于指定image類型,比如Kernel

-C:set compression type 'comp' //指定壓縮類型

-a:set load address to 'addr' (hex) //指定image的載入地址

-e:set entry point to 'ep' (hex) //內核的入口地址,一般為image的載入地址+0x40(信息頭的大小)

-n:set image name to 'name' //image在頭結構中的命名

-d:use image data from 'datafile' //無頭信息的image文件名

-x:set XIP (execute in place) //設置執行位置


先將u-boot下的tools中的mkimage復制到主機的/usr/local/bin目錄下,這樣就可以在主機的任何目錄下使用該工具了。


首先請確認你的uboot配置信息是否與我上面說到的一致,很重中,決定成敗


現在我們進入kernel生成目錄(一般是arch/arm/boot目錄),然后執行如下命令,就會在該目錄下生成一個uImage.img的鏡像文件,把他復制到你的nfs配置好的目錄下,我的是/root/tftpboot,這就是我們所說的uImage。當然你現在不想編譯內核也沒有關系,使用mini2440自帶的image,我的是zImage_W35,打開終端,現操作如下:


root@ubuntu:~/tftpboot# ls

file  rootfs  u-boot.bin  uImage  zImage_W35

root@ubuntu:~/tftpboot# mkimage -n 'mini2440_linux' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage_W35 w35_image.img

Image Name:   mini2440_linux

Created:      Fri Jun 21 08:37:58 2013

Image Type:   ARM Linux Kernel Image (uncompressed)

Data Size:    2266616 Bytes = 2213.49 kB = 2.16 MB

Load Address: 30008000

Entry Point:  30008040

root@ubuntu:~/tftpboot# ls

file  rootfs  u-boot.bin  uImage  w35_image.img  zImage_W35

root@ubuntu:~/tftpboot# chmod 777 w35_image.img 

root@ubuntu:~/tftpboot# ls

file  rootfs  u-boot.bin  uImage  w35_image.img  zImage_W35

root@ubuntu:~/tftpboot#

一定要記住修改文件的可執行權限,否則下載時可能提示你找不到文件,我最終生成的image名字就是w35_image.img

接下來你可以重啟開發板看結果了


U-Boot 2010.03 (Jun 20 2013 - 08:43:59)

 

Modified by Wang,Hai-Tao (king_haitao@163.com)

Study Linux and love linux forever!!

Study u-boot

 

I2C:   ready

DRAM:  64 MB

Flash:  2 MB

NAND:  256 MiB

Video: 240x320x16 20kHz 62Hz

In:    serial

Out:   serial

Err:   serial

USB slave is enable!

Net:   dm9000

Hit any key to stop autoboot:  0 

dm9000 i/o: 0x20000300, id: 0x90000a46 

DM9000: running in 16 bit mode

MAC: 08:08:11:18:12:27

operating at 100M full duplex mode

Using dm9000 device

File transfer via NFS from server 192.168.1.103; our IP address is 192.168.1.102

Filename '/root/tftpboot/w35_image.img'.

Load address: 0x30008000

Loading: #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #####################################################

done

Bytes transferred = 2266680 (229638 hex)

## Booting kernel from Legacy Image at 30008000 ...

   Image Name:   mini2440

   Created:      2013-06-20  16:34:41 UTC

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    2266616 Bytes =  2.2 MB

   Load Address: 30008000

   Entry Point:  30008040

   Verifying Checksum ... OK

   XIP Kernel Image ... OK

OK

 

Starting kernel ...

 

Uncompressing Linux................................................................................................................................................... done, booting the kernel.

Linux version 2.6.32.2-FriendlyARM (root@localhost.localdomain) (gcc version 4.4.3 (ctng-1.6.1) ) #18 Wed Apr 13 20:06:31 HKT 2011

CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177

CPU: VIVT data cache, VIVT instruction cache

Machine: FriendlyARM Mini2440 development board

Memory policy: ECC disabled, Data cache writeback

CPU S3C2440A (id 0x32440001)

S3C24XX Clocks, (c) 2004 Simtec Electronics

S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz

CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256

Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.103:/root/tftpboot/rootfs ip=192.168.1.102:192.168.1.1::255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M

PID hash table entries: 256 (order: -2, 1024 bytes)

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

Memory: 64MB = 64MB total

Memory: 60084KB available (4176K code, 451K data, 156K init, 0K highmem)

SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Hierarchical RCU implementation.

NR_IRQS:85

irq: clearing pending status 02000000

irq: clearing subpending status 00000002

Console: colour dummy device 80x30

console [ttySAC0] enabled

Calibrating delay loop... 201.93 BogoMIPS (lpj=504832)

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

NET: Registered protocol family 16

S3C2440: Initialising architecture

S3C2440: IRQ Support

S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics

DMA channel 0 at c4808000, irq 33

DMA channel 1 at c4808040, irq 34

DMA channel 2 at c4808080, irq 35

DMA channel 3 at c48080c0, irq 36

S3C244X: Clock Support, DVS off

bio: create slab at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

s3c-i2c s3c2440-i2c: slave address 0x10

s3c-i2c s3c2440-i2c: bus frequency set to 98 KHz

s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 2048 (order: 2, 16384 bytes)

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

TCP: Hash tables configured (established 2048 bind 2048)

TCP reno registered

NET: Registered protocol family 1

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

NetWinder Floating Point Emulator V0.97 (double precision)

yaffs Apr 13 2011 18:29:56 Installing. 

msgmni has been set to 117

alg: No test for stdrng (krng)

io scheduler noop registered (default)

Console: switching to colour frame buffer device 40x15

fb0: s3c2410fb frame buffer device

backlight       initialized

leds    initialized

buttons initialized

pwm     initialized

adc     initialized

s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440

s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440

s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440

loop: module loaded

S3C24XX NAND Driver, (c) 2004 Simtec Electronics

s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns

[1] [2] [3] [4] [5]
關鍵字:mini2440  uboot  引導內核  文件系統 引用地址:mini2440 uboot使用nfs方式引導內核,文件系統

上一篇:uboot移植到mini2440
下一篇:記錄一下自己在mini2440上面 使用uboot的曲折的經歷

推薦閱讀

? ? ? ? 今天,三星在SDC2018開發者大會上正式發布旗下首款折疊屏設備——Infinity Flex display(無限折疊屏),內外雙屏可折疊的效果簡直酷炫,給全面屏手機指明了一條新的設計思路。不過,三星并不會馬上將這項技術應用在自家的旗艦機上,至少下一代三星S10系列依然會是直板設計。三星S10真機?(圖源網)  日前,網絡上陸陸續續開始出現三...
(文章來源:中國機器人網) 過去,機器人只能在工廠進行繁重的工作或進行精細的工作。現在,波士頓動力公司靈活的四足機器人Spot可供公司租借以執行各種現實世界的工作,這標志著近年來人機之間的普通交互已經變得多么普遍。盡管Spot具有通用性和堅固性,但它卻被社會視為傳統機器人,即金屬和硬塑料的混合物。許多研究人員堅信, 能夠與人進行安全的...
日前,u-blox全球同步發布高度集成的 GNSS(全球導航衛星系統)技術平臺 u-blox M10,該平臺完全由 u-blox 自主設計,適用于超低功耗高性能定位應用。在運動手表或資產和生物追蹤器等采用極其小巧且需要極長續航時間的應用中,u-blox M10定義了全新的定位性能水平。 可穿戴和資產追蹤市場痛點由于GNSS的高功耗,許多物聯網應用還沒有考慮到GNSS。小...
網絡分析儀能夠精確測量出被測網絡的入射能量、反射能量和傳輸能量,并分析網絡的特性廣泛應用于射頻微波器件、模塊、產品的測量,通過 s 參數、反射參數(反射系數、駐波比、阻抗、回波損耗等)、傳輸參數(增益、插入損耗、傳輸系數、傳輸相移、延時等)的測量,可以精確表征微波元件的質量和一致性。雙端口網絡及 S 參數R&S 的 ZNA 系列網絡分析...

史海拾趣

問答坊 | AI 解惑

PROTEL99操作技巧兩招

1. 解決文字顯示不完整問題 Protel99使用了Windows默認的System字體,但使用中,在對話框中有時會出現文字顯示不完整的問題,解決這個問題的方法是修改Protel99系統默認的System字體。具體方法如下: (1)點擊設計瀏覽主菜單“↓”按鈕,彈出 ...…

查看全部問答∨

大家好

DSP24+28…

查看全部問答∨

如何能夠有效地保護中小型企業數據安全

無論何時,數據都可謂企業運轉的血液。而在這個網絡時代,數據保護更是成為大大小小企業們的不可避免的重要話題。但中小企業所面臨的問題與大型企業相比,其復雜性也不可小視。可以說,其數據管理的復雜性與大型企業不相上下,而其支持力量卻很有限 ...…

查看全部問答∨

μCOS-II 在51單片機

μCOS-II是個不錯的操作系統,體積小,可裝在8位,16位,32位CPU上…

查看全部問答∨

公交車字符串移動顯示

   公交車上那個長字符串移動,并且隨時切換,且都是點陣做起來的。不知用的是什么處理器?    然后,移動怎么個原理? 感覺自己實現起來很難。…

查看全部問答∨

EVC中是不是不支持settimer的SLIDER_TIMER參數??

EVC中是不是不支持settimer的SLIDER_TIMER參數??         mSliderTimer = SetTimer(SLIDER_TIMER, 100, NULL); 報錯是:error C2065: \'SLIDER_TIMER\' : undeclared identifier…

查看全部問答∨

mobile c++有人做過電話功能嗎?如何拒絕來電?

mobile c++有人做過電話功能嗎?如何拒絕來電?…

查看全部問答∨

努力了幾天,STM32終于快要輸出SVPWM了

晚上回家測試波形是否正確, 軟仿好向沒問題了!整個算法一次耗時,4.125us,在10KHz的PWM時占用CPU資源4.125%,硬件是可能更長一點兒,晚上在報告.執行的算法:   模擬的角度發生器,   電壓變化自補嘗 &nbs ...…

查看全部問答∨

【MSP430共享】晶化箱溫度控制系統設計

設計了一種基于Ms P 4 3 0處理器的溫控系統, 介紹了系統主要硬件, 重點介紹了溫度控制系統及其算法的實現, 這里采用的是史密斯一 模糊自調整 P I D控制系統, 該系統通過對傳統的史密斯預估器進行改良, 將該模糊自調整P I D控制器引入史密斯控 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 城步| 怀柔区| 邵东县| 卢湾区| 邻水| 富平县| 合作市| 缙云县| 西盟| 栾川县| 行唐县| 岚皋县| 丰县| 临沧市| 乐清市| 玉林市| 大港区| 九台市| 师宗县| 保德县| 巩义市| 波密县| 嘉荫县| 新乡县| 兴义市| 花莲县| 涿鹿县| 苍山县| 万山特区| 西昌市| 宝坻区| 银川市| 应用必备| 平和县| 石阡县| 吴旗县| 龙胜| 自治县| 谢通门县| 苍梧县| 驻马店市|