|
06 20 |
Linux porting on different platform HowTo(1)作者: Joey 日期: 2008-06-20 18:20 |
這篇主要是介紹如何porting Linux到不同platform的步驟,並且把該修改的檔案和kernel該選的選項稍微介紹一下,會順代提一下debug的方式
因為小弟最近在忙其它的專案,所以這篇HowTo我把它分成幾個部份分開發表,而我打算以NoMMU的QT2410 Linux做為此次移植的目標.
準備的工具我列如下
1. ELDK(Embedded Linux Development Kit): ftp://ftp.denx.de/pub/eldk/4.1/arm-linux-x86-uclibc/iso/arm-2007-01-22-uclibc-src.iso
2.uClinux 2.6.14:http://opensrc.sec.samsung.com/
3.Segger J-Link ICE
ELDK的安裝我在前一篇網誌中(u-boot porting guide)有提過,所以略過不提,而uClinux 2.6.14的patch方法請詳細的閱讀此網頁
至於ICE,其實國內有人在賣,用Google找一下都一卡車
以上三個工具都準備好後,就開始以下的步驟
1.新增arch number和name 至arch/arm/tools/mach-types
2.新增arch/arm/mach-qt2410和include/asm-arm/arch-qt2410/資料夾
3.把arch/arm/espd_4510b下的檔案複製到arch/arm/mach-qt2410,再把include/asm-arm/arch-espd_4510b/下的檔案複製到include/asm-arm/arch-qt2410/,我們會拿4510的移植檔當範本是有原因的,因為它夠簡單
4.修改arch/arm/mach-qt2410的Kconfig和arch/arm/mm/Kconfig以符合我們的架構和cpu type
5.把arch/arm/mach-qt2410下的檔案精簡化,去掉不必要的function,並把arch/arm/kernel/head-nommu.S這個檔案複製到arch/arm/mach-qt2410,並更名為head.S
6.因為我們要用ICE debug,所以要修改arch/arm/mach-qt2410/head.S,新增兩行如下
試著編譯核心(make zImage),底下是我的config檔
編譯完後,開啟arm-elf-insight(arm-elf-insight與ICE的使用方法請看此網誌(u-boot porting guide),載入vmlinux檔案後,單步追縱到start_kernel即可,

因為我們到目前為止的步驟只是幫我們新的架構建一個殼,其實還有一些跟平台有關的檔案要修改,例如irq,timer…等…待續
因為小弟最近在忙其它的專案,所以這篇HowTo我把它分成幾個部份分開發表,而我打算以NoMMU的QT2410 Linux做為此次移植的目標.
準備的工具我列如下
1. ELDK(Embedded Linux Development Kit): ftp://ftp.denx.de/pub/eldk/4.1/arm-linux-x86-uclibc/iso/arm-2007-01-22-uclibc-src.iso
2.uClinux 2.6.14:http://opensrc.sec.samsung.com/
3.Segger J-Link ICE
ELDK的安裝我在前一篇網誌中(u-boot porting guide)有提過,所以略過不提,而uClinux 2.6.14的patch方法請詳細的閱讀此網頁
至於ICE,其實國內有人在賣,用Google找一下都一卡車
以上三個工具都準備好後,就開始以下的步驟
1.新增arch number和name 至arch/arm/tools/mach-types
- qt2410 ARCH_QT2410 QT2410 858
2.新增arch/arm/mach-qt2410和include/asm-arm/arch-qt2410/資料夾
3.把arch/arm/espd_4510b下的檔案複製到arch/arm/mach-qt2410,再把include/asm-arm/arch-espd_4510b/下的檔案複製到include/asm-arm/arch-qt2410/,我們會拿4510的移植檔當範本是有原因的,因為它夠簡單
4.修改arch/arm/mach-qt2410的Kconfig和arch/arm/mm/Kconfig以符合我們的架構和cpu type
5.把arch/arm/mach-qt2410下的檔案精簡化,去掉不必要的function,並把arch/arm/kernel/head-nommu.S這個檔案複製到arch/arm/mach-qt2410,並更名為head.S
6.因為我們要用ICE debug,所以要修改arch/arm/mach-qt2410/head.S,新增兩行如下
- #define qttype 0x35a
- __INIT
- .type stext, %function
- ENTRY(stext)
- mov r0,#0
- ldr r1,=qttype
試著編譯核心(make zImage),底下是我的config檔
- #
- # Automatically generated make config: don't edit
- # Linux kernel version: 2.6.14-hsc0
- # Fri Jun 20 14:56:15 2008
- #
- CONFIG_ARM=y
- # CONFIG_MMU is not set
- # CONFIG_MPU is not set
- CONFIG_NO_MU=y
- CONFIG_UID16=y
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
- #
- # Code maturity level options
- #
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_INIT_ENV_ARG_LIMIT=32
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
- # CONFIG_LOCALVERSION_AUTO is not set
- CONFIG_POSIX_MQUEUE=y
- CONFIG_BSD_PROCESS_ACCT=y
- # CONFIG_BSD_PROCESS_ACCT_V3 is not set
- CONFIG_SYSCTL=y
- CONFIG_AUDIT=y
- CONFIG_HOTPLUG=y
- CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
- CONFIG_INITRAMFS_SOURCE=""
- # CONFIG_EMBEDDED is not set
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_ALL is not set
- CONFIG_KALLSYMS_EXTRA_PASS=y
- CONFIG_PRINTK=y
- CONFIG_BUG=y
- CONFIG_BASE_FULL=y
- CONFIG_EPOLL=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- CONFIG_BASE_SMALL=0
- #
- # Loadable module support
- #
- CONFIG_MODULES=y
- CONFIG_MODULE_UNLOAD=y
- # CONFIG_MODULE_FORCE_UNLOAD is not set
- CONFIG_OBSOLETE_MODPARM=y
- CONFIG_MODVERSIONS=y
- CONFIG_MODULE_SRCVERSION_ALL=y
- CONFIG_KMOD=y
- #
- # System Type
- #
- # CONFIG_ARCH_CLPS7500 is not set
- # CONFIG_ARCH_CLPS711X is not set
- # CONFIG_ARCH_CO285 is not set
- # CONFIG_ARCH_EBSA110 is not set
- # CONFIG_ARCH_CAMELOT is not set
- # CONFIG_ARCH_FOOTBRIDGE is not set
- # CONFIG_ARCH_INTEGRATOR is not set
- # CONFIG_ARCH_IOP3XX is not set
- # CONFIG_ARCH_IXP4XX is not set
- # CONFIG_ARCH_IXP2000 is not set
- # CONFIG_ARCH_L7200 is not set
- # CONFIG_ARCH_PXA is not set
- # CONFIG_ARCH_RPC is not set
- # CONFIG_ARCH_SA1100 is not set
- # CONFIG_ARCH_S3C2410 is not set
- CONFIG_ARCH_QT2410=y
- # CONFIG_ARCH_SHARK is not set
- # CONFIG_ARCH_LH7A40X is not set
- # CONFIG_ARCH_OMAP is not set
- # CONFIG_ARCH_VERSATILE is not set
- # CONFIG_ARCH_IMX is not set
- # CONFIG_ARCH_H720X is not set
- # CONFIG_ARCH_AAEC2000 is not set
- # CONFIG_ARCH_S5C7375 is not set
- # CONFIG_ARCH_S3C24A0 is not set
- # CONFIG_ARCH_S3C2500 is not set
- # CONFIG_ARCH_ATMEL is not set
- # CONFIG_ARCH_S3C3410 is not set
- # CONFIG_ARCH_ESPD_4510B is not set
- # CONFIG_ARCH_S3C44B0 is not set
- # CONFIG_ARCH_P2001 is not set
- # CONFIG_SET_MEM_PARAM is not set
- CONFIG_DRAM_BASE=0x30000000
- CONFIG_DRAM_SIZE=0x04000000
- CONFIG_FLASH_MEM_BASE=0x00400000
- CONFIG_FLASH_SIZE=0x00400000
- #
- # Processor Type
- #
- CONFIG_CPU_32=y
- CONFIG_CPU_ARM920T=y
- CONFIG_CPU_32v4=y
- CONFIG_CPU_ABRT_EV4T=y
- CONFIG_CPU_CACHE_V4WT=y
- CONFIG_CPU_CACHE_VIVT=y
- #
- # Processor Features
- #
- CONFIG_ARM_THUMB=y
- # CONFIG_CPU_MXU_ENABLE is not set
- # CONFIG_CPU_ICACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
- CONFIG_TLS_REG_EMUL=y
- #
- # Bus support
- #
- CONFIG_ISA_DMA_API=y
- #
- # PCCARD (PCMCIA/CardBus) support
- #
- # CONFIG_PCCARD is not set
- #
- # Kernel Features
- #
- # CONFIG_PREEMPT is not set
- # CONFIG_NO_IDLE_HZ is not set
- # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
- CONFIG_SELECT_MEMORY_MODEL=y
- CONFIG_FLATMEM_MANUAL=y
- # CONFIG_DISCONTIGMEM_MANUAL is not set
- # CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_FLATMEM=y
- CONFIG_FLAT_NODE_MEM_MAP=y
- # CONFIG_SPARSEMEM_STATIC is not set
- CONFIG_ALIGNMENT_TRAP=y
- #
- # Boot options
- #
- CONFIG_ZBOOT_ROM_TEXT=0
- CONFIG_ZBOOT_ROM_BSS=0
- CONFIG_CMDLINE="noinitrd root=/dev/mtdblock/2 console=ttySAC0,115200 mem=64M"
- # CONFIG_XIP_KERNEL is not set
- #
- # Floating point emulation
- #
- #
- # At least one emulation must be selected
- #
- CONFIG_FPE_NWFPE=y
- # CONFIG_FPE_NWFPE_XP is not set
- # CONFIG_FPE_FASTFPE is not set
- #
- # Userspace binary formats
- #
- CONFIG_BINFMT_FLAT=y
- # CONFIG_BINFMT_ZFLAT is not set
- # CONFIG_BINFMT_SHARED_FLAT is not set
- # CONFIG_BINFMT_AOUT is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_ARTHUR is not set
- #
- # Power management options
- #
- # CONFIG_PM is not set
- #
- # Networking
- #
- CONFIG_NET=y
- #
- # Networking options
- #
- CONFIG_PACKET=y
- CONFIG_PACKET_MMAP=y
- CONFIG_UNIX=y
- CONFIG_XFRM=y
- CONFIG_XFRM_USER=y
- CONFIG_NET_KEY=m
- CONFIG_INET=y
- CONFIG_IP_MULTICAST=y
- CONFIG_IP_ADVANCED_ROUTER=y
- CONFIG_ASK_IP_FIB_HASH=y
- # CONFIG_IP_FIB_TRIE is not set
- CONFIG_IP_FIB_HASH=y
- CONFIG_IP_MULTIPLE_TABLES=y
- CONFIG_IP_ROUTE_FWMARK=y
- CONFIG_IP_ROUTE_MULTIPATH=y
- # CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
- CONFIG_IP_ROUTE_VERBOSE=y
- # CONFIG_IP_PNP is not set
- CONFIG_NET_IPIP=m
- CONFIG_NET_IPGRE=m
- CONFIG_NET_IPGRE_BROADCAST=y
- CONFIG_IP_MROUTE=y
- CONFIG_IP_PIMSM_V1=y
- CONFIG_IP_PIMSM_V2=y
- # CONFIG_ARPD is not set
- CONFIG_SYN_COOKIES=y
- CONFIG_INET_AH=m
- CONFIG_INET_ESP=m
- CONFIG_INET_IPCOMP=m
- CONFIG_INET_TUNNEL=m
- CONFIG_INET_DIAG=m
- CONFIG_INET_TCP_DIAG=m
- CONFIG_TCP_CONG_ADVANCED=y
- #
- # TCP congestion control
- #
- CONFIG_TCP_CONG_BIC=y
- CONFIG_TCP_CONG_WESTWOOD=m
- CONFIG_TCP_CONG_HTCP=m
- CONFIG_TCP_CONG_HSTCP=m
- CONFIG_TCP_CONG_HYBLA=m
- CONFIG_TCP_CONG_VEGAS=m
- CONFIG_TCP_CONG_SCALABLE=m
- #
- # IP: Virtual Server Configuration
- #
- CONFIG_IP_VS=m
- # CONFIG_IP_VS_DEBUG is not set
- CONFIG_IP_VS_TAB_BITS=12
- #
- # IPVS transport protocol load balancing support
- #
- CONFIG_IP_VS_PROTO_TCP=y
- CONFIG_IP_VS_PROTO_UDP=y
- CONFIG_IP_VS_PROTO_ESP=y
- CONFIG_IP_VS_PROTO_AH=y
- #
- # IPVS scheduler
- #
- CONFIG_IP_VS_RR=m
- CONFIG_IP_VS_WRR=m
- CONFIG_IP_VS_LC=m
- CONFIG_IP_VS_WLC=m
- CONFIG_IP_VS_LBLC=m
- CONFIG_IP_VS_LBLCR=m
- CONFIG_IP_VS_DH=m
- CONFIG_IP_VS_SH=m
- CONFIG_IP_VS_SED=m
- CONFIG_IP_VS_NQ=m
- #
- # IPVS application helper
- #
- CONFIG_IP_VS_FTP=m
- CONFIG_IPV6=m
- CONFIG_IPV6_PRIVACY=y
- CONFIG_INET6_AH=m
- CONFIG_INET6_ESP=m
- CONFIG_INET6_IPCOMP=m
- CONFIG_INET6_TUNNEL=m
- CONFIG_IPV6_TUNNEL=m
- CONFIG_NETFILTER=y
- # CONFIG_NETFILTER_DEBUG is not set
- CONFIG_BRIDGE_NETFILTER=y
- CONFIG_NETFILTER_NETLINK=m
- CONFIG_NETFILTER_NETLINK_QUEUE=m
- CONFIG_NETFILTER_NETLINK_LOG=m
- #
- # IP: Netfilter Configuration
- #
- CONFIG_IP_NF_CONNTRACK=m
- CONFIG_IP_NF_CT_ACCT=y
- CONFIG_IP_NF_CONNTRACK_MARK=y
- CONFIG_IP_NF_CONNTRACK_EVENTS=y
- CONFIG_IP_NF_CONNTRACK_NETLINK=m
- CONFIG_IP_NF_CT_PROTO_SCTP=m
- CONFIG_IP_NF_FTP=m
- CONFIG_IP_NF_IRC=m
- CONFIG_IP_NF_NETBIOS_NS=m
- CONFIG_IP_NF_TFTP=m
- CONFIG_IP_NF_AMANDA=m
- CONFIG_IP_NF_PPTP=m
- CONFIG_IP_NF_QUEUE=m
- CONFIG_IP_NF_IPTABLES=m
- # CONFIG_IP_NF_MATCH_LIMIT is not set
- CONFIG_IP_NF_MATCH_IPRANGE=m
- # CONFIG_IP_NF_MATCH_MAC is not set
- # CONFIG_IP_NF_MATCH_PKTTYPE is not set
- # CONFIG_IP_NF_MATCH_MARK is not set
- # CONFIG_IP_NF_MATCH_MULTIPORT is not set
- CONFIG_IP_NF_MATCH_TOS=m
- CONFIG_IP_NF_MATCH_RECENT=m
- CONFIG_IP_NF_MATCH_ECN=m
- CONFIG_IP_NF_MATCH_DSCP=m
- # CONFIG_IP_NF_MATCH_AH_ESP is not set
- # CONFIG_IP_NF_MATCH_LENGTH is not set
- CONFIG_IP_NF_MATCH_TTL=m
- # CONFIG_IP_NF_MATCH_TCPMSS is not set
- # CONFIG_IP_NF_MATCH_HELPER is not set
- # CONFIG_IP_NF_MATCH_STATE is not set
- # CONFIG_IP_NF_MATCH_CONNTRACK is not set
- CONFIG_IP_NF_MATCH_OWNER=m
- # CONFIG_IP_NF_MATCH_PHYSDEV is not set
- CONFIG_IP_NF_MATCH_ADDRTYPE=m
- # CONFIG_IP_NF_MATCH_REALM is not set
- # CONFIG_IP_NF_MATCH_SCTP is not set
- # CONFIG_IP_NF_MATCH_DCCP is not set
- # CONFIG_IP_NF_MATCH_COMMENT is not set
- # CONFIG_IP_NF_MATCH_CONNMARK is not set
- # CONFIG_IP_NF_MATCH_CONNBYTES is not set
- CONFIG_IP_NF_MATCH_HASHLIMIT=m
- # CONFIG_IP_NF_MATCH_STRING is not set
- CONFIG_IP_NF_FILTER=m
- CONFIG_IP_NF_TARGET_REJECT=m
- CONFIG_IP_NF_TARGET_LOG=m
- CONFIG_IP_NF_TARGET_ULOG=m
- CONFIG_IP_NF_TARGET_TCPMSS=m
- # CONFIG_IP_NF_TARGET_NFQUEUE is not set
- CONFIG_IP_NF_NAT=m
- CONFIG_IP_NF_NAT_NEEDED=y
- CONFIG_IP_NF_TARGET_MASQUERADE=m
- CONFIG_IP_NF_TARGET_REDIRECT=m
- CONFIG_IP_NF_TARGET_NETMAP=m
- CONFIG_IP_NF_TARGET_SAME=m
- CONFIG_IP_NF_NAT_SNMP_BASIC=m
- CONFIG_IP_NF_NAT_IRC=m
- CONFIG_IP_NF_NAT_FTP=m
- CONFIG_IP_NF_NAT_TFTP=m
- CONFIG_IP_NF_NAT_AMANDA=m
- CONFIG_IP_NF_NAT_PPTP=m
- CONFIG_IP_NF_MANGLE=m
- CONFIG_IP_NF_TARGET_TOS=m
- CONFIG_IP_NF_TARGET_ECN=m
- CONFIG_IP_NF_TARGET_DSCP=m
- # CONFIG_IP_NF_TARGET_MARK is not set
- # CONFIG_IP_NF_TARGET_CLASSIFY is not set
- CONFIG_IP_NF_TARGET_TTL=m
- # CONFIG_IP_NF_TARGET_CONNMARK is not set
- CONFIG_IP_NF_TARGET_CLUSTERIP=m
- CONFIG_IP_NF_RAW=m
- # CONFIG_IP_NF_TARGET_NOTRACK is not set
- CONFIG_IP_NF_ARPTABLES=m
- CONFIG_IP_NF_ARPFILTER=m
- CONFIG_IP_NF_ARP_MANGLE=m
- #
- # IPv6: Netfilter Configuration (EXPERIMENTAL)
- #
- CONFIG_IP6_NF_QUEUE=m
- CONFIG_IP6_NF_IPTABLES=m
- # CONFIG_IP6_NF_MATCH_LIMIT is not set
- # CONFIG_IP6_NF_MATCH_MAC is not set
- CONFIG_IP6_NF_MATCH_RT=m
- CONFIG_IP6_NF_MATCH_OPTS=m
- CONFIG_IP6_NF_MATCH_FRAG=m
- CONFIG_IP6_NF_MATCH_HL=m
- # CONFIG_IP6_NF_MATCH_MULTIPORT is not set
- CONFIG_IP6_NF_MATCH_OWNER=m
- # CONFIG_IP6_NF_MATCH_MARK is not set
- CONFIG_IP6_NF_MATCH_IPV6HEADER=m
- # CONFIG_IP6_NF_MATCH_AHESP is not set
- # CONFIG_IP6_NF_MATCH_LENGTH is not set
- CONFIG_IP6_NF_MATCH_EUI64=m
- # CONFIG_IP6_NF_MATCH_PHYSDEV is not set
- CONFIG_IP6_NF_FILTER=m
- CONFIG_IP6_NF_TARGET_LOG=m
- CONFIG_IP6_NF_TARGET_REJECT=m
- # CONFIG_IP6_NF_TARGET_NFQUEUE is not set
- CONFIG_IP6_NF_MANGLE=m
- # CONFIG_IP6_NF_TARGET_MARK is not set
- CONFIG_IP6_NF_TARGET_HL=m
- CONFIG_IP6_NF_RAW=m
- #
- # Bridge: Netfilter Configuration
- #
- CONFIG_BRIDGE_NF_EBTABLES=m
- CONFIG_BRIDGE_EBT_BROUTE=m
- CONFIG_BRIDGE_EBT_T_FILTER=m
- CONFIG_BRIDGE_EBT_T_NAT=m
- CONFIG_BRIDGE_EBT_802_3=m
- CONFIG_BRIDGE_EBT_AMONG=m
- CONFIG_BRIDGE_EBT_ARP=m
- CONFIG_BRIDGE_EBT_IP=m
- CONFIG_BRIDGE_EBT_LIMIT=m
- CONFIG_BRIDGE_EBT_MARK=m
- CONFIG_BRIDGE_EBT_PKTTYPE=m
- CONFIG_BRIDGE_EBT_STP=m
- CONFIG_BRIDGE_EBT_VLAN=m
- CONFIG_BRIDGE_EBT_ARPREPLY=m
- CONFIG_BRIDGE_EBT_DNAT=m
- CONFIG_BRIDGE_EBT_MARK_T=m
- CONFIG_BRIDGE_EBT_REDIRECT=m
- CONFIG_BRIDGE_EBT_SNAT=m
- CONFIG_BRIDGE_EBT_LOG=m
- CONFIG_BRIDGE_EBT_ULOG=m
- #
- # DCCP Configuration (EXPERIMENTAL)
- #
- CONFIG_IP_DCCP=m
- CONFIG_INET_DCCP_DIAG=m
- #
- # DCCP CCIDs Configuration (EXPERIMENTAL)
- #
- CONFIG_IP_DCCP_CCID3=m
- CONFIG_IP_DCCP_TFRC_LIB=m
- #
- # DCCP Kernel Hacking
- #
- # CONFIG_IP_DCCP_DEBUG is not set
- # CONFIG_IP_DCCP_UNLOAD_HACK is not set
- #
- # SCTP Configuration (EXPERIMENTAL)
- #
- CONFIG_IP_SCTP=m
- # CONFIG_SCTP_DBG_MSG is not set
- # CONFIG_SCTP_DBG_OBJCNT is not set
- # CONFIG_SCTP_HMAC_NONE is not set
- # CONFIG_SCTP_HMAC_SHA1 is not set
- CONFIG_SCTP_HMAC_MD5=y
- CONFIG_ATM=m
- CONFIG_ATM_CLIP=m
- # CONFIG_ATM_CLIP_NO_ICMP is not set
- CONFIG_ATM_LANE=m
- # CONFIG_ATM_MPOA is not set
- CONFIG_ATM_BR2684=m
- # CONFIG_ATM_BR2684_IPFILTER is not set
- CONFIG_BRIDGE=m
- CONFIG_VLAN_8021Q=m
- # CONFIG_DECNET is not set
- # CONFIG_LLC2 is not set
- # CONFIG_IPX is not set
- # CONFIG_ATALK is not set
- # CONFIG_X25 is not set
- # CONFIG_LAPB is not set
- # CONFIG_NET_DIVERT is not set
- # CONFIG_ECONET is not set
- # CONFIG_WAN_ROUTER is not set
- CONFIG_NET_SCHED=y
- # CONFIG_NET_SCH_CLK_JIFFIES is not set
- CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
- # CONFIG_NET_SCH_CLK_CPU is not set
- CONFIG_NET_SCH_CBQ=m
- CONFIG_NET_SCH_HTB=m
- CONFIG_NET_SCH_HFSC=m
- CONFIG_NET_SCH_ATM=m
- CONFIG_NET_SCH_PRIO=m
- CONFIG_NET_SCH_RED=m
- CONFIG_NET_SCH_SFQ=m
- CONFIG_NET_SCH_TEQL=m
- CONFIG_NET_SCH_TBF=m
- CONFIG_NET_SCH_GRED=m
- CONFIG_NET_SCH_DSMARK=m
- CONFIG_NET_SCH_NETEM=m
- CONFIG_NET_SCH_INGRESS=m
- # CONFIG_NET_QOS is not set
- CONFIG_NET_CLS=y
- CONFIG_NET_CLS_BASIC=m
- CONFIG_NET_CLS_TCINDEX=m
- CONFIG_NET_CLS_ROUTE4=m
- CONFIG_NET_CLS_ROUTE=y
- CONFIG_NET_CLS_FW=m
- CONFIG_NET_CLS_U32=m
- CONFIG_CLS_U32_PERF=y
- CONFIG_NET_CLS_IND=y
- CONFIG_CLS_U32_MARK=y
- CONFIG_NET_EMATCH=y
- CONFIG_NET_EMATCH_STACK=32
- CONFIG_NET_EMATCH_CMP=m
- CONFIG_NET_EMATCH_NBYTE=m
- CONFIG_NET_EMATCH_U32=m
- CONFIG_NET_EMATCH_META=m
- CONFIG_NET_EMATCH_TEXT=m
- #
- # Network testing
- #
- CONFIG_NET_PKTGEN=m
- # CONFIG_HAMRADIO is not set
- # CONFIG_IRDA is not set
- # CONFIG_BT is not set
- CONFIG_IEEE80211=m
- # CONFIG_IEEE80211_DEBUG is not set
- CONFIG_IEEE80211_CRYPT_WEP=m
- # CONFIG_IEEE80211_CRYPT_CCMP is not set
- # CONFIG_IEEE80211_CRYPT_TKIP is not set
- #
- # Device Drivers
- #
- #
- # Generic Driver Options
- #
- CONFIG_STANDALONE=y
- CONFIG_PREVENT_FIRMWARE_BUILD=y
- CONFIG_FW_LOADER=y
- # CONFIG_DEBUG_DRIVER is not set
- #
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
- #
- # Parallel port support
- #
- # CONFIG_PARPORT is not set
- #
- # Plug and Play support
- #
- #
- # Block devices
- #
- # CONFIG_BLK_DEV_COW_COMMON is not set
- CONFIG_BLK_DEV_LOOP=m
- CONFIG_BLK_DEV_CRYPTOLOOP=m
- CONFIG_BLK_DEV_NBD=m
- CONFIG_BLK_DEV_RAM=y
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=16384
- CONFIG_BLK_DEV_INITRD=y
- # CONFIG_CDROM_PKTCDVD is not set
- #
- # IO Schedulers
- #
- CONFIG_IOSCHED_NOOP=y
- CONFIG_IOSCHED_AS=y
- CONFIG_IOSCHED_DEADLINE=y
- CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
- #
- # SCSI device support
- #
- # CONFIG_RAID_ATTRS is not set
- CONFIG_SCSI=m
- # CONFIG_SCSI_PROC_FS is not set
- #
- # SCSI support type (disk, tape, CD-ROM)
- #
- # CONFIG_BLK_DEV_SD is not set
- # CONFIG_CHR_DEV_ST is not set
- # CONFIG_CHR_DEV_OSST is not set
- # CONFIG_BLK_DEV_SR is not set
- # CONFIG_CHR_DEV_SG is not set
- # CONFIG_CHR_DEV_SCH is not set
- #
- # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
- #
- # CONFIG_SCSI_MULTI_LUN is not set
- # CONFIG_SCSI_CONSTANTS is not set
- # CONFIG_SCSI_LOGGING is not set
- #
- # SCSI Transport Attributes
- #
- # CONFIG_SCSI_SPI_ATTRS is not set
- # CONFIG_SCSI_FC_ATTRS is not set
- # CONFIG_SCSI_ISCSI_ATTRS is not set
- # CONFIG_SCSI_SAS_ATTRS is not set
- #
- # SCSI low-level drivers
- #
- # CONFIG_SCSI_SATA is not set
- # CONFIG_SCSI_DEBUG is not set
- #
- # Multi-device support (RAID and LVM)
- #
- # CONFIG_MD is not set
- #
- # Fusion MPT device support
- #
- # CONFIG_FUSION is not set
- #
- # IEEE 1394 (FireWire) support
- #
- #
- # I2O device support
- #
- #
- # Network device support
- #
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
- # CONFIG_EQUALIZER is not set
- # CONFIG_TUN is not set
- #
- # PHY device support
- #
- CONFIG_PHYLIB=m
- # CONFIG_PHYCONTROL is not set
- #
- # MII PHY device drivers
- #
- CONFIG_MARVELL_PHY=m
- CONFIG_DAVICOM_PHY=m
- CONFIG_QSEMI_PHY=m
- CONFIG_LXT_PHY=m
- CONFIG_CICADA_PHY=m
- #
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=m
- # CONFIG_SMC91X is not set
- # CONFIG_DM9000 is not set
- #
- # Ethernet (1000 Mbit)
- #
- #
- # Ethernet (10000 Mbit)
- #
- #
- # Token Ring devices
- #
- #
- # Wireless LAN (non-hamradio)
- #
- # CONFIG_NET_RADIO is not set
- #
- # Wan interfaces
- #
- # CONFIG_WAN is not set
- #
- # ATM drivers
- #
- # CONFIG_ATM_TCP is not set
- # CONFIG_PPP is not set
- CONFIG_SLIP=m
- CONFIG_SLIP_COMPRESSED=y
- CONFIG_SLIP_SMART=y
- # CONFIG_SLIP_MODE_SLIP6 is not set
- # CONFIG_SHAPER is not set
- CONFIG_NETCONSOLE=m
- CONFIG_NETPOLL=y
- # CONFIG_NETPOLL_RX is not set
- CONFIG_NETPOLL_TRAP=y
- CONFIG_NET_POLL_CONTROLLER=y
- #
- # ISDN subsystem
- #
- # CONFIG_ISDN is not set
- #
- # Input device support
- #
- CONFIG_INPUT=y
- #
- # Userland interfaces
- #
- CONFIG_INPUT_MOUSEDEV=y
- # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
- CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
- CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
- # CONFIG_INPUT_JOYDEV is not set
- # CONFIG_INPUT_TSDEV is not set
- CONFIG_INPUT_EVDEV=y
- # CONFIG_INPUT_EVBUG is not set
- #
- # Input Device Drivers
- #
- # CONFIG_INPUT_KEYBOARD is not set
- # CONFIG_INPUT_MOUSE is not set
- # CONFIG_INPUT_JOYSTICK is not set
- # CONFIG_INPUT_TOUCHSCREEN is not set
- # CONFIG_INPUT_MISC is not set
- #
- # Hardware I/O ports
- #
- CONFIG_SERIO=y
- CONFIG_SERIO_SERPORT=y
- CONFIG_SERIO_RAW=m
- CONFIG_GAMEPORT=m
- # CONFIG_GAMEPORT_NS558 is not set
- # CONFIG_GAMEPORT_L4 is not set
- #
- # Character devices
- #
- CONFIG_VT=y
- CONFIG_VT_CONSOLE=y
- CONFIG_HW_CONSOLE=y
- CONFIG_SERIAL_NONSTANDARD=y
- # CONFIG_COMPUTONE is not set
- # CONFIG_ROCKETPORT is not set
- # CONFIG_CYCLADES is not set
- # CONFIG_DIGIEPCA is not set
- # CONFIG_MOXA_INTELLIO is not set
- # CONFIG_MOXA_SMARTIO is not set
- # CONFIG_ISI is not set
- # CONFIG_SYNCLINKMP is not set
- # CONFIG_N_HDLC is not set
- # CONFIG_RISCOM8 is not set
- # CONFIG_SPECIALIX is not set
- # CONFIG_SX is not set
- # CONFIG_RIO is not set
- # CONFIG_STALDRV is not set
- #
- # Serial drivers
- #
- CONFIG_SERIAL_8250=y
- CONFIG_SERIAL_8250_CONSOLE=y
- CONFIG_SERIAL_8250_NR_UARTS=32
- CONFIG_SERIAL_8250_EXTENDED=y
- CONFIG_SERIAL_8250_MANY_PORTS=y
- CONFIG_SERIAL_8250_SHARE_IRQ=y
- CONFIG_SERIAL_8250_DETECT_IRQ=y
- CONFIG_SERIAL_8250_RSA=y
- #
- # Non-8250 serial port support
- #
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
- # CONFIG_SERIAL_DCC is not set
- CONFIG_UNIX98_PTYS=y
- # CONFIG_LEGACY_PTYS is not set
- #
- # IPMI
- #
- CONFIG_IPMI_HANDLER=m
- # CONFIG_IPMI_PANIC_EVENT is not set
- CONFIG_IPMI_DEVICE_INTERFACE=m
- CONFIG_IPMI_SI=m
- CONFIG_IPMI_WATCHDOG=m
- CONFIG_IPMI_POWEROFF=m
- #
- # Watchdog Cards
- #
- CONFIG_WATCHDOG=y
- # CONFIG_WATCHDOG_NOWAYOUT is not set
- #
- # Watchdog Device Drivers
- #
- CONFIG_SOFT_WATCHDOG=m
- CONFIG_NVRAM=y
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
- # CONFIG_R3964 is not set
- #
- # Ftape, the floppy tape device driver
- #
- CONFIG_RAW_DRIVER=y
- CONFIG_MAX_RAW_DEVS=8192
- #
- # TPM devices
- #
- #
- # I2C support
- #
- # CONFIG_I2C is not set
- #
- # Hardware Monitoring support
- #
- # CONFIG_HWMON is not set
- # CONFIG_HWMON_VID is not set
- #
- # Misc devices
- #
- #
- # Multimedia Capabilities Port drivers
- #
- #
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
- #
- # Digital Video Broadcasting Devices
- #
- # CONFIG_DVB is not set
- #
- # Graphics support
- #
- # CONFIG_FB is not set
- #
- # Console display driver support
- #
- # CONFIG_VGA_CONSOLE is not set
- CONFIG_DUMMY_CONSOLE=y
- #
- # Sound
- #
- # CONFIG_SOUND is not set
- #
- # USB support
- #
- CONFIG_USB_ARCH_HAS_HCD=y
- # CONFIG_USB_ARCH_HAS_OHCI is not set
- # CONFIG_USB is not set
- #
- # USB Gadget Support
- #
- # CONFIG_USB_GADGET is not set
- #
- # MMC/SD Card support
- #
- # CONFIG_MMC is not set
- #
- # File systems
- #
- CONFIG_EXT2_FS=y
- CONFIG_EXT2_FS_XATTR=y
- CONFIG_EXT2_FS_POSIX_ACL=y
- CONFIG_EXT2_FS_SECURITY=y
- # CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- CONFIG_FS_MBCACHE=y
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- CONFIG_FS_POSIX_ACL=y
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
- CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
- # CONFIG_FUSE_FS is not set
- #
- # CD-ROM/DVD Filesystems
- #
- CONFIG_ISO9660_FS=y
- CONFIG_JOLIET=y
- CONFIG_ZISOFS=y
- CONFIG_ZISOFS_FS=y
- CONFIG_UDF_FS=m
- CONFIG_UDF_NLS=y
- #
- # DOS/FAT/NT Filesystems
- #
- CONFIG_FAT_FS=m
- CONFIG_MSDOS_FS=m
- CONFIG_VFAT_FS=m
- CONFIG_FAT_DEFAULT_CODEPAGE=437
- CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
- # CONFIG_NTFS_FS is not set
- #
- # Pseudo filesystems
- #
- CONFIG_PROC_FS=y
- CONFIG_SYSFS=y
- CONFIG_TMPFS=y
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
- # CONFIG_RELAYFS_FS is not set
- #
- # Miscellaneous filesystems
- #
- # CONFIG_ADFS_FS is not set
- # CONFIG_AFFS_FS is not set
- CONFIG_HFS_FS=m
- CONFIG_HFSPLUS_FS=m
- # CONFIG_BEFS_FS is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EFS_FS is not set
- CONFIG_CRAMFS=m
- CONFIG_VXFS_FS=m
- # CONFIG_HPFS_FS is not set
- # CONFIG_QNX4FS_FS is not set
- # CONFIG_SYSV_FS is not set
- # CONFIG_UFS_FS is not set
- #
- # Network File Systems
- #
- CONFIG_NFS_FS=m
- CONFIG_NFS_V3=y
- CONFIG_NFS_V3_ACL=y
- CONFIG_NFS_V4=y
- CONFIG_NFS_DIRECTIO=y
- # CONFIG_NFSD is not set
- CONFIG_LOCKD=m
- CONFIG_LOCKD_V4=y
- CONFIG_NFS_ACL_SUPPORT=m
- CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=m
- CONFIG_SUNRPC_GSS=m
- CONFIG_RPCSEC_GSS_KRB5=m
- # CONFIG_RPCSEC_GSS_SPKM3 is not set
- # CONFIG_SMB_FS is not set
- # CONFIG_CIFS is not set
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
- # CONFIG_9P_FS is not set
- #
- # Partition Types
- #
- CONFIG_PARTITION_ADVANCED=y
- # CONFIG_ACORN_PARTITION is not set
- CONFIG_OSF_PARTITION=y
- CONFIG_AMIGA_PARTITION=y
- # CONFIG_ATARI_PARTITION is not set
- CONFIG_MAC_PARTITION=y
- CONFIG_MSDOS_PARTITION=y
- CONFIG_BSD_DISKLABEL=y
- CONFIG_MINIX_SUBPARTITION=y
- CONFIG_SOLARIS_X86_PARTITION=y
- CONFIG_UNIXWARE_DISKLABEL=y
- # CONFIG_LDM_PARTITION is not set
- CONFIG_SGI_PARTITION=y
- # CONFIG_ULTRIX_PARTITION is not set
- CONFIG_SUN_PARTITION=y
- CONFIG_EFI_PARTITION=y
- #
- # Native Language Support
- #
- CONFIG_NLS=y
- CONFIG_NLS_DEFAULT="utf8"
- CONFIG_NLS_CODEPAGE_437=y
- CONFIG_NLS_CODEPAGE_737=m
- CONFIG_NLS_CODEPAGE_775=m
- CONFIG_NLS_CODEPAGE_850=m
- CONFIG_NLS_CODEPAGE_852=m
- CONFIG_NLS_CODEPAGE_855=m
- CONFIG_NLS_CODEPAGE_857=m
- CONFIG_NLS_CODEPAGE_860=m
- CONFIG_NLS_CODEPAGE_861=m
- CONFIG_NLS_CODEPAGE_862=m
- CONFIG_NLS_CODEPAGE_863=m
- CONFIG_NLS_CODEPAGE_864=m
- CONFIG_NLS_CODEPAGE_865=m
- CONFIG_NLS_CODEPAGE_866=m
- CONFIG_NLS_CODEPAGE_869=m
- CONFIG_NLS_CODEPAGE_936=m
- CONFIG_NLS_CODEPAGE_950=m
- CONFIG_NLS_CODEPAGE_932=m
- CONFIG_NLS_CODEPAGE_949=m
- CONFIG_NLS_CODEPAGE_874=m
- CONFIG_NLS_ISO8859_8=m
- CONFIG_NLS_CODEPAGE_1250=m
- CONFIG_NLS_CODEPAGE_1251=m
- CONFIG_NLS_ASCII=y
- CONFIG_NLS_ISO8859_1=m
- CONFIG_NLS_ISO8859_2=m
- CONFIG_NLS_ISO8859_3=m
- CONFIG_NLS_ISO8859_4=m
- CONFIG_NLS_ISO8859_5=m
- CONFIG_NLS_ISO8859_6=m
- CONFIG_NLS_ISO8859_7=m
- CONFIG_NLS_ISO8859_9=m
- CONFIG_NLS_ISO8859_13=m
- CONFIG_NLS_ISO8859_14=m
- CONFIG_NLS_ISO8859_15=m
- CONFIG_NLS_KOI8_R=m
- CONFIG_NLS_KOI8_U=m
- CONFIG_NLS_UTF8=m
- #
- # Profiling support
- #
- CONFIG_PROFILING=y
- CONFIG_OPROFILE=m
- #
- # Kernel hacking
- #
- # CONFIG_PRINTK_TIME is not set
- CONFIG_DEBUG_KERNEL=y
- CONFIG_MAGIC_SYSRQ=y
- CONFIG_LOG_BUF_SHIFT=17
- CONFIG_DETECT_SOFTLOCKUP=y
- CONFIG_SCHEDSTATS=y
- # CONFIG_DEBUG_SLAB is not set
- # CONFIG_DEBUG_SPINLOCK is not set
- # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
- # CONFIG_DEBUG_KOBJECT is not set
- CONFIG_DEBUG_BUGVERBOSE=y
- CONFIG_DEBUG_INFO=y
- CONFIG_DEBUG_FS=y
- CONFIG_FRAME_POINTER=y
- # CONFIG_DEBUG_USER is not set
- # CONFIG_DEBUG_WAITQ is not set
- # CONFIG_DEBUG_ERRORS is not set
- # CONFIG_DEBUG_LL is not set
- #
- # Security options
- #
- # CONFIG_KEYS is not set
- # CONFIG_SECURITY is not set
- #
- # Cryptographic options
- #
- CONFIG_CRYPTO=y
- CONFIG_CRYPTO_HMAC=y
- CONFIG_CRYPTO_NULL=m
- CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MD5=y
- CONFIG_CRYPTO_SHA1=y
- CONFIG_CRYPTO_SHA256=m
- CONFIG_CRYPTO_SHA512=m
- CONFIG_CRYPTO_WP512=m
- CONFIG_CRYPTO_TGR192=m
- CONFIG_CRYPTO_DES=m
- CONFIG_CRYPTO_BLOWFISH=m
- CONFIG_CRYPTO_TWOFISH=m
- CONFIG_CRYPTO_SERPENT=m
- CONFIG_CRYPTO_AES=m
- CONFIG_CRYPTO_CAST5=m
- CONFIG_CRYPTO_CAST6=m
- CONFIG_CRYPTO_TEA=m
- CONFIG_CRYPTO_ARC4=m
- CONFIG_CRYPTO_KHAZAD=m
- CONFIG_CRYPTO_ANUBIS=m
- CONFIG_CRYPTO_DEFLATE=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
- CONFIG_CRYPTO_CRC32C=y
- # CONFIG_CRYPTO_TEST is not set
- #
- # Hardware crypto devices
- #
- #
- # Library routines
- #
- CONFIG_CRC_CCITT=m
- CONFIG_CRC16=m
- CONFIG_CRC32=y
- CONFIG_LIBCRC32C=y
- CONFIG_ZLIB_INFLATE=y
- CONFIG_ZLIB_DEFLATE=m
- CONFIG_TEXTSEARCH=y
- CONFIG_TEXTSEARCH_KMP=m
- CONFIG_TEXTSEARCH_BM=m
- CONFIG_TEXTSEARCH_FSM=m
編譯完後,開啟arm-elf-insight(arm-elf-insight與ICE的使用方法請看此網誌(u-boot porting guide),載入vmlinux檔案後,單步追縱到start_kernel即可,

因為我們到目前為止的步驟只是幫我們新的架構建一個殼,其實還有一些跟平台有關的檔案要修改,例如irq,timer…等…待續
評論: 0 |
引用: 0 |
閱讀: 3748
發表評論
訂閱
上一篇
返回
下一篇
標籤:


fw_printenv-control u-boot enviroment variables under linux (2009-05-12 16:35)
rpcapd與netcat-測試嵌入式系統的好工具 (2009-04-09 17:06)
udev-強大的device node管理系統 (2009-02-02 20:35)
Framebuffer兩三事-Test On QT2410 (2009-01-12 16:29)
UIO-Linux user space I/O driver (2008-12-15 14:50)
GDB-刺入bug心臟的寶劍 (2008-10-15 16:11)
Telnet daemon-RS232以外的選擇 (2008-10-03 18:57)
在嵌入式系統切換file system-以squashfs和jffs2為例 (2008-10-01 19:44)
Linux kernel module-進入系統核心的鑰匙 (2008-09-12 14:03)