2010年5月11日 星期二

嵌入式網頁伺服器 - BOA

BOA是一種精簡的WEB SERVICE在嵌入式系統中有很高的應用價值~

如何移植BOA Web Server 到嵌入式開發板呢?請參照下列步驟~在BOA伺服器中
支援用C語言寫的 CGI程式~所以我們可以透過一些CGI程式來達到控制硬體目標~!
Step 1 下載BOA 原始碼
    下載 boa-0.94.13.tar.gz
#tar zxvf boa-0.94.13.tar.gz
Step 2 產生一個Makefile
#./src/configure -host=arm-linux
Step 3 修改Makefile檔案內的編譯器路徑
CC = arm-linux-gcc
CPP = arm-linux-gcc -E
#make
#arm-linux-strip boa
Step 4 設定BOA
  修改BOA原始檔src的boa.conf 這個設定檔 並放到根目錄系統/etc/boa
Port 80
User root
Group root
ErrorLog /dev/console
AccessLog /dev/null
ServerName test
DocumentRoot /www
DirectoryIndex index.html
Step 5 把編譯好的boa執行檔 複製到/bin 並啟動boa
#./boa&

2010年5月9日 星期日

cs8900在2.6.14上的移植

添加驅動程序源代碼,這涉及到以下幾個方面。

  
1、把cs8900.c和cs8900.h兩個針對2.6.14的內核的驅動程序源代碼,將其放在drivers/net/arm/目錄下面。
#cp cs8900.c ./drivers/net/arm/
#cp cs8900.h ./drivers/net/arm/
並在cs8900_probe()函數中,memset (&priv,0,sizeof (cs8900_t));函數之後添加如下兩條語句:
__raw_writel(0x2211d110,S3C2410_BWSCON);
__raw_writel(0x1f7c,S3C2410_BANKCON3);
2、修改drivers/net/arm/目錄下的Kconfig文件,在最後添加如下內容:
Config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
help
Support for CS8900A chipset based Ethernet cards. If you have a network (Ethernet) card of this type, say Y and read the Ethernet-HOWTO, available from as well as . To compile this driver as a module, choose M here and read. The module will be called cs8900.o.
內核系統配置文件由2.4版本的config.in變成了2.6版本Kconfig文件,在這個文件裡面添加如上內容,則在運行make menuconfig或者make xconfig命令的時候就會出現:
[ ] CS8900 support
這一選項。
3、修改drivers/net/arm/目錄下的Makefile文件,在最後添加如下內容:
obj-$(CONFIG_ARM_CS8900) += cs8900.o
2.6版本內核的Makefile文件也與2.4版本的有所不同。添加以上語句,就會使內核在編譯的時候根據配置將cs8900A的驅動程序以模塊或靜態的方式編譯到內核當中。
4、在/arch/arm/mach-s3c2410/mach-smdk2410.c文件中,找到smdk2410_iodesc[]結構數組,添加如下如下內容:{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE}
修改之後變成了:
static struct map_desc smdk2410_iodesc[] __initdata = {
/* nothing here yet */
/* Map the ethernet controller CS8900A */ {vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE}
};
添加#include <asm-arm/arch-s3c2410/smdk2410.h>
由於在驅動程序的開發的時候,在驅動程序當中所用到的跟設備有關的地址都是虛擬地址,也就是說驅動程序操作的都是虛擬地址,那麼要使驅動程序對設備的操作反映到設備上去,就得將設備的物理地址映射到正確的虛擬地址上去,從而保證驅動程序對虛擬地址的操作也就是對相應的物理地址操作。以上添加的語句就是為了將網卡的物理地址(0x19000000)映射到vSMDK2410_ETH_IO所指向的虛擬地址上去,上面的結構還定義了網卡虛擬地址所佔用的區間,也就是從vSMDK2410_ETH_IO開始的SZ_1M大小的去間,並指定了該區間所指向的域(的屬性)。
5、在include/asm-arm/arch-s3c2410/目錄下創建smdk2410.h文件,其內容為:
#ifndef _INCLUDE_SMDK2410_H_
#define _INCLUDE_SMDK2410_H_
#include <linux/config.h>
#define pSMDK2410_ETH_IO 0x19000000
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
#endif // _INCLUDE_SMDK2410_H_
因為在網卡驅動程序當中,用到了一些常量,所以特意在此添加這個頭文件。這個頭文件定義了網卡的物理地址、虛擬地址以及網卡佔用的中斷線。
6、配置、編譯內核。在內核頂層目錄當中鍵入:
#make smdk2410_defconfig
由於2.6的內核默認就支持了S3C2410,所以就有一個默認的內核配置文件。裡面只是包括了一個簡單的配置,要使網卡編譯進內核,還要進行手工配置。
#make menuconfig
Networking support --->
Ethernet (10 or 100Mbit) --->
[*] CS8900 support
將剛才添加的網卡驅動程序靜態添加到內核當中。
最後進行內核編譯。
#make
然後將鏡像下載到開發板中去,這樣就搞定了。通過nfs可以進入終端命令行了。

2010年5月6日 星期四

TeraTerm Pro - 取代超級終端機

<p>
Windows 內建的超級終端機(HyperTerminal),有使用過的應該都知道問題很多,
</p>
<p>
[@more@]經常跑出亂碼、甚至程式當掉,可以說是年久失修的工具阿,連 Vista 都將它拿掉了,
</p>
<p>
不過有許多 router、硬體設備仍是要透過 Serial Port 去做 debug、設定等等,<a href="http://ttssh2.sourceforge.jp/" target="_blank">TeraTerm Pro</a> ,
</p>
<p>
擁有比超級終端機簡潔的畫面,原有的功能都沒少,還增加了 UTF8/SSH/telnet/Macro&hellip;,
</p>
<p>
在 Vista 上跑也沒問題,所以,換掉超級終端機吧!
</p>
<p>
‧<a href="http://ttssh2.sourceforge.jp/" target="_blank">TeraTerm Pro 專案網頁</a><br />
.<a href="http://sourceforge.jp/projects/ttssh2/files/" target="_blank">下載頁面</a>
</p>

2010年3月9日 星期二

VirtualBox 2.2.4 for fedora code 10 x86_64

this paper say how to install virtualbox for fedora code 10 x86_64fast ~ we can go to this link download virtualbox
http://www.virtualbox.org/wiki/Linux_Downloads
then you will to run the machine,you will got a message that the VirtualBox Kernel had not been setup.

I ran:
Code:
/etc/init.d/vboxdrv setup
It failed, saying that kernel files were not found.
Code:
Stopping VirtualBox kernel module                          [  OK  ]
Recompiling VirtualBox kernel module                       [FAILED]
(Look at /var/log/vbox-install.log to find out what went wrong)
The logfile printed out the following:
Code:
which: no dkms in (/sbin:/usr/sbin:/bin:/usr/bin)
Makefile:127: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
 
so you mast run some commands if you already have the packages installed.

Code:
# yum groupinstall "Development Tools"
# yum groupinstall "Development Libraries"
# yum install unifdef rpm-build
Now to make old config and modules because vboxdrv complains about it
Code:
$ cd ~/usr/src/kernels/2.6.27.25-170.2.72.fc10.x86_64/
$ make oldconfig
$ make prepare
$ make
vboxdrv failed during module compilation, so I decided to build the entire kernel just to make sure. Do not run 'make install' since we don't need it.
Code:
# export KERN_DIR=/usr/src/kernels/2.6.27.25-170.2.72.fc10.x86_64/
# /etc/init.d/vboxdrv setup
Stopping VirtualBox kernel module                          [  OK  ]
Recompiling VirtualBox kernel module                       [  OK  ]
Starting VirtualBox kernel module                          [  OK  ]

2010年2月9日 星期二

linux 文字模式啟動無線網路

如果您有一張無線 (802.11)網路卡,您將需要在繼續前先設定好您的無線網路。如要查看目前的設定,您可以使用 iwconfig。執行 iwconfig 將會列出類似以下的訊息:
 
# iwconfig wlan0
wlan0      IEEE 802.11bg ESSID:"Defaule"
Mode:Managed  Frequency:2.462GHz  Access Point:00:0D:5B:DD:CC:FC
Bit Rate:11Mb/s   Tx-Power=20 dBm
Sensitivity=0/65535
Retry limit:16   RTS thr:off
Fragment thr:off
Power Management:off
Link Quality:71/100 Signal level:-50 dBm Rx invalid  nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
注意: 有些網路卡的裝置名稱或許是 wlan0 或 ra0 而不是 eth0。不要加任何參數執行 iwconfig 確認裝置的名稱。
 
對於大部份的使用者,只需要更改兩個重要的設定,ESSID(無線網路名稱)或是 WEP 金錀。如果 ESSID 和無限網路連接點已經顯示出您沒有使用 WEP,那您的網路已經好了。如果您需要更改您的 ESSID,或是加入一個 WEP 金錀,您可以執行以下指令:
(這將會把網路名稱設定為 "Defaule")
# iwconfig eth0 essid Defaule

(這將設定一個 hex WEP 金錀)
# iwconfig eth0 key 0123456789

(這將設定一個 ASCII 金錀 - 起始為 "s:")
# iwconfig eth0 key s:密碼
您將可以再次使用 iwconfig 來確認您的設定。當您的無線網路已經可以使用,您將可以從下一個部份繼續設定
設定您的網路需要三個步驟。第一,我們將使用 ifconfig 設定我們的 IP 位置。然後我們將需要 route(路由)到我們的 gateway 上。然後在將名稱伺服器放到 /etc/resolv.conf
要設定 IP 位置,您將需要您的 IP 位置,廣播位置和 netmask。然後執行以下指令,將 ${IP_ADDR} 更改成您的 IP 位置, ${BROADCAST} 為您的廣播位置和 ${NETMASK} 為您的 netmask:
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
現在使用 route 設定您的路由。將 ${GATEWAY} 更改為您的 gateway IP 位置:
# route add default gw ${GATEWAY}
接著編輯resolv.conf
vi /etc/resolv.conf

現在將您的 nameserv (名稱服務器)按照以下的版面填入。請確定將 ${NAMESERVER1}${NAMESERVER2} 更改為相關的名稱服務器的位置: 
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
這樣就可以開始使用你的無線網路了..!!!

2009年12月19日 星期六

Linux作業系統中記憶體buffer和cache的區別

Free

  free 命令相對於top 提供了更簡潔的查看系統記憶體使用情況:
 
  $ free
  total used free shared buffers cachedMem: 255268 238332 16936 0 85540 126384-/+ buffers/cache: 26408 228860Swap: 265000 0 265000
 
Mem:表示物理記憶體統計
  -/+ buffers/cached:表示物理記憶體的緩存統計
  Swap:表示硬盤上交換分區的使用情況。
 
  系統的總物理記憶體:255268Kb256M),但系統當前真正可用的記憶體b並不是第一行free 標記的 16936Kb,它僅代表未被分配的記憶體。
 
  我們使用total1used1free1used2free2 等名稱來代表上面統計數據的各值,12 分別代表第一行和第二行的數據。
 
  total1:表示物理記憶體總量。
 
  used1:表示總計分配給緩存(包含buffers cache )使用的數量,但其中可能部分緩存並未實際使用。
 
  free1:未被分配的記憶體。
 
  shared1:共用記憶體,一般系統不會用到。
 
  buffers1:系統分配但未被使用的buffers 數量。
 
  cached1:系統分配但未被使用的cache 數量。buffer cache 的區別見後面。
 
  used2:實際使用的buffers cache 總量,也是實際使用的記憶體總量。
 
  free2:未被使用的buffers cache 和未被分配的記憶體之和,這就是系統當前實際可用記憶體。
 
  可以整理出如下等式:
  total1 = used1 + free1total1 = used2 + free2used1 = buffers1 + cached1 + used 2f ree2 = buffers1 + cached1 + free1
 
  buffer cache 的區別
  A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.
 
  更詳細的解釋參考:Difference Between Buffer and Cache
 
  對於共用記憶體(Shared memory),主要用於在UNIX 環境下不同進程之間共用數據,是進程間通信的一種方法,一般的應用程式不會申請使用共用記憶體,筆者也沒有去驗證共用記憶體對上面等式的影響。如果你有興趣,請參考:What is Shared Memory?
 
  cache buffer的區別:
  Cache:高速緩存,是位於CPU與主記憶體間的一種容量較小但速度很高的記憶體。由於CPU的速度遠高於主記憶體,CPU直接從記憶體中存取數據要等待一定時間週期,Cache中保存著CPU剛用過或迴圈使用的一部分數據,當CPU再次使用該部分數據時可從Cache中直接調用,這樣就減少了CPU的等待時間,提高了系統的效率。Cache又分為一級Cache(L1 Cache)和二級Cache(L2 Cache)L 1 C ache集成在CPU內部,L 2 C ache早期一般是焊在主板上,現在也都集成在CPU內部,常見的容量有256KB512KB L2 Cache
 
  Buffer:緩衝區,一個用於存儲速度不同步的設備或優先級不同的設備之間傳輸數據的區域。通過緩衝區,可以使進程之間的相互等待變少,從而使從速度慢的設備讀入數據時,速度快的設備的操作進程不發生間斷。
 
  Free中的buffercache:(它們都是佔用記憶體):
 
  buffer : 作為buffer cache的記憶體,是塊設備的讀寫緩衝區
 
  cache: 作為page cache的記憶體, 文件系統的cache
 
  如果 cache 的值很大,說明cache住的文件數很多。如果頻繁訪問到的文件都能被cache住,那麼磁片的讀IO bi會非常小。

2009年11月5日 星期四

建立root fs 系統檔案

製作root.cramfs系统檔案

主機:
ubuntu 8.04 (linux-2.6.24-19)
gcc-4.2

目標板:
s3c2440
linux-2.6.26
cramfs


工具:
busybox-1.9.2
arm-linux-gcc-4.0.3
-------------------------------------------------------------
參考資料:
BusyBox——嵌入式Linux中的瑞士軍刀
使用busybox-1.9.2製作根文件系統
使用Busybox製作CRAMFS文件系統成功
-------------------------------------------------------------
1. 修改Makefile



#ARCH        ?= $(SUBARCH)

#CROSS_COMPILE    ?=
ARCH        := arm
CROSS_COMPILE    :=  /usr/local/arm/4.0.3/bin/arm-linux-


2. 修改applets/applets.c中的警告信息



//#if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__)

#if 0
#warning Static linking against glibc produces buggy executables
#warning (glibc does not cope well with ld --gc-sections).
#warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400
#warning Note that glibc is unsuitable for static linking anyway.
#warning If you still want to do it, remove -Wl,--gc-sections
#warning from scripts/trylink and remove this warning.
#error Aborting compilation.
#endif


這段警告的意思是告訴你最好用uclibc編譯,而不是用glibc因為glibc比較大,busybox在嵌入式系統中運用比較多,所以會有這樣的要求。
如果沒有註解掉這段警告或者沒有採用uclibc的話,在make install的時候則會出現如下的錯誤:


applets/applets.c:15:2: warning: #warning Static linking against glibc produces buggy executables

applets/applets.c:16:2: warning: #warning (glibc does not cope well with ld --gc-sections).
applets/applets.c:17:2: warning: #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400
applets/applets.c:18:2: warning: #warning Note that glibc is unsuitable for static linking anyway.
applets/applets.c:19:2: warning: #warning If you still want to do it, remove -Wl,--gc-sections
applets/applets.c:20:2: warning: #warning from scripts/trylink and remove this warning.
applets/applets.c:21:2: #error Aborting compilation.
make[1]: *** [applets/applets.o] 錯誤 1
make: *** [applets] 錯誤 2


3. 設定busybox
首先可以先恢復一下預設設定




$ make defconfig

然後,設定busybox可以採用如下命令:


$ make menuconfig





$ make xconfig


配置內容參考
使用busybox-1.9.2製作根文件系統
使用Busybox製作CRAMFS文件系統成功

4. 編譯busybox


$ make install


如果成功,會有如下信息:


--------------------------------------------------

You will probably need to make your busybox binary
setuid root to ensure all configured applets will
work properly.
--------------------------------------------------

並在busybox/_install 目錄下會生成下列文件:

drwxr-xr-x  5 wang wang 4096 2008-09-10 17:32 .

drwxr-xr-x 32 wang wang 4096 2008-09-10 17:32 ..
drwxr-xr-x  2 wang wang 4096 2008-09-10 17:32 bin
lrwxrwxrwx  1 wang wang   11 2008-09-10 17:32 linuxrc -> bin/busybox
drwxr-xr-x  2 wang wang 4096 2008-09-10 17:32 sbin
drwxr-xr-x  4 wang wang 4096 2008-09-10 17:32 usr


5. 修改_install/bin/busybox的屬性


$ chmod 755 ./_install/bin/busybox


必須要要修改屬性,否則在busybox中很多命令會受限制

6. 打包_install文件夾的內容
首先要刪除_install/linuxrc文件,這個文件將在後面重新被創建,這裡先刪除


$ rm ./_install/linuxrc


然後將剩下的三個文件夾打包起來




$ tar cvf 1.tar ./_install/


7. 建立cramfs所需的一些目錄
   首先創建一個文件夾,作為暫時存放cramfs的臨時目錄,以方便在其下建立文件系統。所有命令如下


$ mkdir /opt/rootfs

$ cd /opt/rootfs
$ mkdir bin dev etc home lib mnt proc sbin sys tmp  var usr
$ mkdir etc/init.d


(其中假設你的普通用戶已經取得/opt的操作所有權或者也可以放在用戶目錄下完成; 總之,對於rootfs及其以下目錄,當前用戶必須擁有讀、寫和執行的所有權)

8. 準備啟動所需的文件:linuxrc、rcS、inittab、fstab四個文件
(以下均假定當前路徑在/opt/rootfs)
a. linuxrc

$ vim linuxrc


內容:


#!/bin/sh

echo "mount /etc as ramfs"
/bin/mount -f -t cramfs -o remount,ro /dev/bon/2 /
/bin/mount -t ramfs ramfs /var
/bin/mkdir -p /var/tmp
/bin/mkdir -p /var/run
/bin/mkdir -p /var/log
/bin/mkdir -p /var/lock
/bin/mkdir -p /var/empty
#/bin/mount -t usbdevfs none /proc/bus/usb

exec /sbin/init


更改其所有權:



$ chmod 775 linuxrc



b. rcS


$ vim etc/init.d/rcS


內容:





#!/bin/sh


# mount all filesystem defined in "fstab"
echo "#mount all......."
/bin/mount -a



更改其所有權:


$ chmod 775 etc/init.d/rcS


c. inittab



$ vim etc/inittab

內容:


# This is run first except when booting

::sysinit:/etc/init.d/rcS

# Start an "askfirst" shell on the console
#::askfirst:-/bin/bash
::askfirst:-/bin/sh

# Stuff to do when restarting the init process
::restart:/sbin/init

# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r


d. fstab



$ vim etc/fstab


內容:

none        /proc        proc    defaults    0 0

none        /dev/pts    devpts    mode=0622    0 0
tmpfs        /dev/shm    tmpfs    defaults    0 0


9. 建立節點console、null
否則就會提示「Warning: unable to open an initial console. Kernel panic - not syncing: Attempted to kill init!」的類似錯誤。
創建時,必須以root身份才可以



sudo mknod -m 600 dev/console c 5 1

sudo mknod -m 666 dev/null c 1 3


10. 使用之前打包的_install
將剛才在busybox的_install下的三個文件夾的打包文件複製到rootfs目錄,解壓後刪除打包文件。


$ tar xvf 1.tar

$ rm 1.tar


11. 複製常用的lib文件
我用的是開發板的文件系統中的lib/下的文件,直接拷貝過來用

12. 建立cramfs


$ cd /opt

$ mkcramfs rootfs s3c2440.cramfs


如果沒有mkcramfs命令,請執行下面指令安裝



$sudo apt-get install cramfsprogs


13. 燒錄文件系統到開發板並啟動

啟動信息:


Read chip id = ec76

Nand flash status = c0
Set boot params = root=/dev/mtdblock2 init=/linuxrc load_ramdisk=0 console=ttySAC1,115200 mem=65536K devfs=mount display=shp480
Load Kernel...
Linux version 2.6.26 (wang@wang-desktop) (gcc version 4.1.0) #7 Thu Sep 4 17:18:03 CST 2008
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
Machine: SMDK2440
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz
S3C24XX Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
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 in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: root=/dev/mtdblock2 init=/linuxrc load_ramdisk=0 console=ttySAC1,115200 mem=65536K devfs=mount display=shp480
irq: clearing pending ext status 00056200
irq: clearing pending ext status 00000200
irq: clearing subpending status 00000092
PID hash table entries: 256 (order: 8, 1024 bytes)
timer tcon=00590000, tcnt a2c1, tcfg 00000200,00000000, usec 00001eb8
Console: colour dummy device 80x30
console [ttySAC1] enabled
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: 61708KB available (2732K code, 277K data, 124K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 192 bytes
NET: Registered protocol family 16
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
DMA channel 0 at c4800000, irq 33
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000c0, irq 36
S3C244X: Clock Support, DVS off
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
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
NetWinder Floating Point Emulator V0.97 (double precision)
msgmni has been set to 120
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
Console: switching to colour frame buffer device 30x40
fb0: s3c2410fb frame buffer device
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
brd: module loaded
usbcore: registered new interface driver ub
dm9000 Ethernet Driver, V1.30
Linux video capture interface: v2.00
NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=1, 10ns Twrph0=4 40ns, Twrph1=1 10ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
s3c2410_nand_update_chip: chip c3d784bc: 9
NAND_ECC_NONE selected by board driver. This is not recommended !!
Scanning device for bad blocks
Bad eraseblock 357 at 0x00594000
Bad eraseblock 3335 at 0x0341c000
Bad eraseblock 3995 at 0x03e6c000
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00030000 : "boot"
0x00030000-0x00200000 : "kernel"
0x00200000-0x02000000 : "rootfs"
0x02000000-0x04000000 : "ext-fs1"
usbmon: debugfs is not available
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 390 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
Registered led device: led4
Registered led device: led5
Registered led device: led6
Registered led device: led7
TCP cubic registered
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
VFS: Mounted root (cramfs filesystem) readonly.
Freeing init memory: 124K
mount /etc as ramfs
init started: BusyBox v1.9.2 (2008-09-05 13:54:16 CST)
starting pid 813, tty '': '/etc/init.d/rcS'
#mount all.......
mount: mounting none on /dev/pts failed: No such file or directory
mount: mounting tmpfs on /dev/shm failed: No such file or directory
# starting mdev....
******************************************
 linux-2.6.26 boot           
 2008-9-5            
                      
******************************************

Please press Enter to activate this console.
starting pid 815, tty '': '/bin/sh'
/ #
/ #


就可以進入console了~~!!