|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我的Linux-2.6.16 For AT91RM9200開(kāi)發(fā)過(guò)程(含nand的YAFFS2) |
| 作者:mail_zang 欄目:ARM技術(shù) |
1、安裝 從 www.kernel.org 上下載Linux2.6.16版的kernel,解壓到 /usr/src/arm/linux-2.6.16 從http://maxim.org.za/AT91RM9200/2.6/ 上下載針對(duì)RM9200的補(bǔ)丁,文件名:2.6.16-at91.PATCH.gz,復(fù)制到 /usr/src/arm/linux-2.6.16,然后在命令行界面中執(zhí)行 zcat 2.6.16-at91.PATCH.gz |PATCH -p1 從http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar下載YAFFS2補(bǔ)丁 yaffs2.tar.gz 解壓縮后到文件目錄下運(yùn)行 sh PATCH-ker.sh ../linux-2.6.16 把YAFF2加到內(nèi)核中去; 下載GCC編譯器,文件名:arm-linux-gcc-3.4.1.tar.bz2,解壓到 /usr/local/arm/3.4.1 2、修改 打開(kāi)內(nèi)核原代碼根目錄下的Makefile,找到如下兩行: ARCH ?=$(SUBARCH) CROSS_COMPILE ?= 修改為: ARCH ?=arm CROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux- 3、編譯內(nèi)核 執(zhí)行如下命令: make at91RM9200dk_defconfig make menuconfig 改 Boot options 選項(xiàng)下的 Z-BOOT-ROM-TEXT 為0x21000000 Z-BOOT-ROM-BSS 為0x21100000 make zImage 4、運(yùn)行 在開(kāi)發(fā)板上運(yùn)行u-boot后 tftp 21000000 zImage tftp 21100000 Ramdisk go 21000000 運(yùn)行過(guò)程: NJZD-Boot> tftp 21000000 zImage TFTP from server 192.168.1.50; our IP address is 192.168.1.200 Filename 'zImage'. Load address: 0x21000000 Loading: ################################################################# ################################################################# ####################################################### done Bytes transferred = 946828 (e728c hex) NJZD-Boot> tftp 21100000 linux4 TFTP from server 192.168.1.50; our IP address is 192.168.1.200 Filename 'linux4'. Load address: 0x21100000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# #################################### done Bytes transferred = 2511823 (2653cf hex) NJZD-Boot> go 21000000 ## Starting application at 0x21000000 ... Uncompressing Linux.............................................................. done, booting the kernel. Linux version 2.6.16 (root@localhost.localdomain) (gcc version 3.4.1) #3 Mon Aug 7 12:02:11 UTC 2006 CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T) Machine: ATMEL AT91RM9200-DK Warning: bad configuration page, trying to continue MEMORY policy: ECC disabled, Data cache writeback Clocks: CPU 179 MHz, MASTER 59 MHz, main 18.432 MHz CPU0: D VIVT write-back cache CPU0: I cache: 16384 bytes, associativity 64, 32 byte LINEs, 8 sets CPU0: D cache: 16384 bytes, associativity 64, 32 byte LINEs, 8 sets Built 1 zonelists Kernel command LINE: mem=32M console=ttyS0,115200 initrd=0x21100000,6000000 root=/dev/ram0 rw AT91: 128 gpio irqs in 4 banks PID hash table entries: 256 (order: 8, 4096 bytes) Console: colour DUMMY DEVICE 80x30 Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) MEMORY: 32MB = 32MB total MEMORY: 24548KB available (1544K code, 342K data, 88K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok checking if image is initramfs...it isn't (no cpio MAGIC); looks like an initrd Freeing initrd MEMORY: 5859K NET: Registered protocol family 16 NetWinder Floating Point EMULATOR V0.97 (double PRECISION) JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc. io scheduler noop registered io scheduler anticipatory registered (default) AT91 Real Time Clock driver. AT91 SPI driver loaded AT91 Watchdog Timer enabled (5 seconds, nowayout=1) at91_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL at91_usart.1: ttyS1 at MMIO 0xfffc4000 (irq = 7) is a AT91_SERIAL RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize eth0: LINK now 100-FullDuplex eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (12:34:56:78:9a:bc) eth0: DAVICOM 9196 PHY (Copper) physmap FLASH DEVICE: 200000 at 10000000 phys_mapped_FLASH: Found 1 x16 DEVICEs at 0x0 in 16-bit bank SUPPORT for command set 0001 not present gen_probe: No supported Vendor Command Set found at91_nand: init by njzd-zsh. No SmartMedia card inserted. at91_nand: probe of at91_nand failed with error 6 at91_cf: irqs det #64, io #0 udc: at91_udc version 8 March 2005 mice: PS/2 mouse DEVICE common for all mice i2c /dev entries driver at91_i2c at91_i2c: AT91 i2c bus driver. NET: Registered protocol family 2 IP route cache hash table entries: 512 (order: -1, 2048 bytes) TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP RENO registered TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 17 RAMDISK: Compressed image found at block 0 VFS: Mounted root (ext2 fileSYSTEM). Freeing init MEMORY: 88K INIT: version 2.74 booting /dev/tty1: File exists INIT: Entering runlevel: 3 Starting SYSTEM logger: syslogd Starting interfaces execvp: Permission denied Starting rtc AT91RM9200DK login: 本人能力有限希望有更多的朋友加入進(jìn)來(lái)讓更多人能更快地在自已板子上跑起linux-2.6!! 本人能力有限希望有更多的朋友加入進(jìn)來(lái)讓更多人能更快地在自已板子上跑起linux-2.6!! * - 本貼最后修改時(shí)間:2006-8-7 16:02:32 修改者:mail_zang |
| 2樓: | >>參與討論 |
| 作者: wangkj 于 2006/8/7 17:07:00 發(fā)布:
這只是起步,后面的驅(qū)動(dòng)移植難度不小 繼續(xù)努力呀 |
|
| 3樓: | >>參與討論 |
| 作者: mail_zang 于 2006/8/7 20:03:00 發(fā)布:
學(xué)習(xí)中 學(xué)習(xí)中,謝前輩提點(diǎn) |
|
| 4樓: | >>參與討論 |
| 作者: avantech 于 2006/8/7 22:04:00 發(fā)布:
不錯(cuò) 我們也很快推出LINUX2.6內(nèi)核的S3C2410A開(kāi)發(fā)板平臺(tái) |
|
| 5樓: | >>參與討論 |
| 作者: shockwave 于 2006/8/8 9:33:00 發(fā)布:
2.6.16我早跑起來(lái)了。 在NAND上已經(jīng)建立了yaffs,并且不使用ramdisk,將根文件系統(tǒng)放在NAND的yaffs上運(yùn)行,這樣內(nèi)存釋放不少,而且修改一些根文件也方便。樓主有空我們多交流交流。 |
|
| 6樓: | >>參與討論 | |||
| 作者: mail_zang 于 2006/8/8 15:46:00 發(fā)布:
你跑起來(lái)又不共享,鄙視中
你跑起來(lái)又不共享,鄙視中 |
||||
| 7樓: | >>參與討論 |
| 作者: wangkj 于 2006/8/8 16:01:00 發(fā)布:
同意樓上的 我的不公開(kāi)是因?yàn)楣镜脑,要是我自己的就公開(kāi)了。要有職業(yè)道德。 |
|
| 8樓: | >>參與討論 |
| 作者: shockwave 于 2006/8/9 9:51:00 發(fā)布:
回mail_zang 共享?我不會(huì)拒絕共享我的成果。但我沒(méi)寫文檔(移植筆記什么的)。我回帖是希望大家多交流多學(xué)習(xí),不是告訴其他人我也跑起來(lái)了。 回wangkj 同意樓上的 我的不公開(kāi)是因?yàn)楣镜脑颍俏易约旱木凸_(kāi)了。要有職業(yè)道德。 搞的你就好像有職業(yè)道德一樣,你用的還不是GPL的東西,修改后還是要遵守GPL的,你不公開(kāi)就是沒(méi)職業(yè)道德!我搞的就是為自己?還不是一樣為公司搞的。公開(kāi)不公開(kāi)的其實(shí)是文檔問(wèn)題,代碼大家都有。這樣可以多些交流的網(wǎng)友。我也是偷懶沒(méi)寫文檔,有空的時(shí)候還是要去寫寫。 |
|
| 9樓: | >>參與討論 |
| 作者: 568569 于 2006/8/9 14:21:00 發(fā)布:
頂 支持 支持樓住 |
|
| 10樓: | >>參與討論 |
| 作者: 沒(méi)事偷著樂(lè) 于 2006/8/9 16:44:00 發(fā)布:
ARM技術(shù)交流群28593557!! ARM技術(shù)交流群28593557!! |
|
| 11樓: | >>參與討論 |
| 作者: mail_zang 于 2006/8/9 16:58:00 發(fā)布:
還有誰(shuí)改過(guò)"at91_nand_probe"函數(shù)的沒(méi)? 本人用AT91RM9200移植2.6的內(nèi)核,在添加NAND驅(qū)動(dòng)時(shí)發(fā)現(xiàn)怎么也檢測(cè)不到NAND(在U-BOOT 中是可以對(duì)其操作的),后來(lái)把"at91_nand_probe"函數(shù)中的 /*if (host->board->det_pin) { if (at91_get_gpio_value(host->board->det_pin)) { printk ("No SmartMedia card inserted.\n"); res = ENXIO; goto out; } } Change Here By zsh 060809-13:35 */ 給屏蔽了,可還是檢測(cè)不到NAND,想請(qǐng)教高手幫忙告知還要改什么地方的!! 謝謝! |
|
| 12樓: | >>參與討論 |
| 作者: mail_zang 于 2006/8/9 17:00:00 發(fā)布:
有誰(shuí)改過(guò)"at91_nand_probe"函數(shù)的沒(méi)? 本人用AT91RM9200移植2.6的內(nèi)核,在添加NAND驅(qū)動(dòng)時(shí)發(fā)現(xiàn)怎么也檢測(cè)不到NAND(在U-BOOT 中是可以對(duì)其操作的),后來(lái)把"at91_nand_probe"函數(shù)中的 /*if (host->board->det_pin) { if (at91_get_gpio_value(host->board->det_pin)) { printk ("No SmartMedia card inserted.\n"); res = ENXIO; goto out; } } Change Here By zsh 060809-13:35 */ 給屏蔽了,可還是檢測(cè)不到NAND,想請(qǐng)教高手幫忙告知還要改什么地方的!! 謝謝! |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |