日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

6410移植linux3.3.5

發布時間:2024/9/3 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6410移植linux3.3.5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

Linux 3.3.5系統移植????2

LED驅動移植????8

按鍵驅動移植????9

LCD驅動移植????11

DM9000網卡驅動移植????14

搭建NFS網絡文件系統????25

移植觸摸屏驅動????38

移植Qt4.8.1????42

tslib移植及測試????42

移植qt-everywhere-opensource-src-4.8.1????45

?


Linux 3.3.5系統移植

  • 將arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp為mach-my6410.c;
  • 打開arch/arm/mach-s3c6410/下的Kconfig,仿照MACH_SMDK6410做一個菜單項:

    config MACH_MY6410

    ????bool "MY6410"

    ????select CPU_S3C6410

    ????select SAMSUNG_DEV_ADC

    ????select S3C_DEV_HSMMC

    ????select S3C_DEV_HSMMC1

    ????select S3C_DEV_I2C1

    ????select SAMSUNG_DEV_IDE

    ????select S3C_DEV_FB

    ????select S3C_DEV_RTC

    ????select SAMSUNG_DEV_TS

    ????select S3C_DEV_USB_HOST

    ????select S3C_DEV_USB_HSOTG

    ????select S3C_DEV_WDT

    ????select SAMSUNG_DEV_BACKLIGHT

    ????select SAMSUNG_DEV_KEYPAD

    ????select SAMSUNG_DEV_PWM

    ????select HAVE_S3C2410_WATCHDOG if WATCHDOG

    ????select S3C64XX_SETUP_SDHCI

    ????select S3C64XX_SETUP_I2C1

    ????select S3C64XX_SETUP_IDE

    ????select S3C64XX_SETUP_FB_24BPP

    ????select S3C64XX_SETUP_KEYPAD

    ????help

    ???? Machine support for the Pillar MY6410

  • 打開arch/arm/tools/mach-types文件,這里面存的是機器ID必須要和uboot里面的ID保持一致,將其283行復制添加在后面并修改為:

    smdk6410????????MACH_SMDK6410????????SMDK6410????????1626

  • xx6410??MACH_XX6410??XX6410??1626 這個機器ID和UBOOT里的機器ID相同時才能啟動內核;

  • 修改BSP文件mach-my6410.c,內容如下:

    將mach-mach-my6410.c文件中的所有smdk6410改成my6410(不要改大寫SMDK6410的)

    MACHINE_START(MY6410, "MY6410")//這個要和Kconfig里的MACH-MY6410匹配?

  • 在當前目錄的Makefile最后一行加上 obj-$(CONFIG_MACH_MY6410)?+= mach-my6410.o
  • 修改頂層的Makefile:

    ?ARCH ?= arm

    ?CROSS_COMPILE ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-

  • 復制arch/arm/configs/下的s3c6400-defconfig文件,然后將其保存為.config,配置內核支持EABI,再選中XX6410 board這一項,保存退出;
  • 執行make menuconfig對內核進行配置:

    執行make編譯

    執行make zImage生成zImage

    將uboot根目錄下的mkimage拷貝到/user/bin目錄下

    執行make uImage生成uImage

  • 通過以上幾步linux內核移植完了,剩下就移植驅動了。

    這里需要注意,每一次修改Kconfig文件都需要make menuconfig對內核進行配置。

    ?

    LED驅動移植

  • Linu內核下drivers/leds/leds-gpio.c實現了一個體系結構無關的GPIO LED驅動,使用此LED 驅動,開發者不需要修改一行代碼,只需要在 BSP 的板文件(對于OK6410 為arch/arm/mach-s3c6410/mach-my6410.c)中定義相關的platform設備和數據。在 MY6410開發板上,GPM0~GPM3 實現了四個 LED,因此其對應的platform 信息如下:

    arch/arm/mach-s3c6410/mach-my6410.c:

    static struct gpio_led my6410_leds[] ={

    ????[0]= {

    ????????.name = "LED1",

    ????????.gpio = S3C64XX_GPM(0),

    ????????},

    ????[1]= {

    ????????.name = "LED2",

    ????????.gpio = S3C64XX_GPM(1),

    ????????},

    ????[2]= {

    ????????.name = "LED3",

    ????????.gpio = S3C64XX_GPM(2),

    ????????},

    ????[3]= {

    ????????.name = "LED4",

    ????????.gpio = S3C64XX_GPM(3),

    ????????},????

    };

    static struct gpio_led_platform_data my6410_gpio_led_pdata ={

    ????.num_leds????= ARRAY_SIZE(my6410_leds),

    ????.leds ????????=my6410_leds,

    };

    static struct platform_device my6410_device_led ={

    ????.name????= "leds-gpio",

    ????.id????????= -1,

    ????.dev????={

    ????.platform_data = &my6410_gpio_led_pdata,

    ????},

    };

  • 將&my6410_device_led添加到static struct platform_device *my6410_devices[] __initdata中。
  • 配置內核:

    Device Drivers --->

    ????[*] LED Support --->

    ????????<*> LED Support for GPIO connected LEDs

    下載內核后開發板上的四個LED這時候已經全部都亮了

  • ?

    按鍵驅動移植

  • Linux內核下的drivers/input/keyboard/gpio_keys.c 實現了一個體系結構無關的 GPIO 按鍵驅動,使用此按鍵驅動,開發者不需要修改一行代碼,只需要在BSP 的板文件(對于 MY6410為arch/arm/mach-s3c6410/mach-my6410.c)中定義相關的platform 設備和數據。在 MY6410開發板上,用 GPN0~GPN5實現了DOWN、ENTER、HOME、UP、TAB、END 六個按鍵,因此其對應的 platform 信息如下:

    arch/arm/mach-s3c6410/mach-my6410.c:

    static struct gpio_keys_button my6410_buttons[] = {

    ????{

    ????????.gpio????????= S3C64XX_GPN(0),

    ????????.code????????= KEY_UP,

    ????????.desc????????= "Up",

    ????????.active_low????= 1,

    ????????.wakeup????????= 0,

    ????},

    ????{

    ????????.gpio????????= S3C64XX_GPN(1),

    ????????.code????????= KEY_DOWN,

    ????????.desc????????= "Down",

    ????????.active_low????= 1,

    ????????.wakeup????????= 0,

    ????},

    ????{

    ????????.gpio????????= S3C64XX_GPN(2),

    ????????.code????????= KEY_LEFT,

    ????????.desc????????= "Left",

    ????????.active_low????= 1,

    ????????.wakeup????????= 0,

    ????},

    ????{

    ????????.gpio????????= S3C64XX_GPN(3),

    ????????.code????????= KEY_RIGHT,

    ????????.desc????????= "Right",

    ????????.active_low????= 1,

    ????????.wakeup????????= 0,

    ????},

    ????{

    ????????.gpio????????= S3C64XX_GPN(4),

    ????????.code????????= KEY_ENTER,

    ????????.desc????????= "Enter",

    ????????.active_low????= 1,

    ????????.wakeup????????= 0,

    ????},

    ????{

    ????????.gpio????????= S3C64XX_GPN(5),

    ????????.code????????= KEY_ESC,

    ????????.desc????????= "Esc",

    ????????.active_low????= 1,

    ????????.wakeup????????= 0,

    ????}

    };

    static struct gpio_keys_platform_data my6410_button_data ={

    ????.buttons????=my6410_buttons,

    ????.nbuttons????=ARRAY_SIZE(my6410_buttons),

    };

    static struct platform_device my6410_device_button????= {

    ????.name????????="gpio-keys",

    ????.id????????????= -1,

    ????.dev????????= {

    ????.platform_data =&my6410_button_data,

    ????},

    };

  • 將& my6410_device_button添加到static struct platform_device *my6410_devices[] __initdata中
  • 配置linux內核

    Device Drivers --->

    ????Input device support --->

    ????????[*] Keyboards --->

    ???????????? <*> GPIO Buttons

    在移植按鍵驅動時候可能出現一下錯誤:

    arch/arm/mach-s3c64xx/mach-my6410.c:298: error: array type has incomplete element type

    arch/arm/mach-s3c64xx/mach-my6410.c:300: error: field name not in record or union initializer

    arch/arm/mach-s3c64xx/mach-my6410.c:300: error: (near initialization for 'my6410_buttons')

    arch/arm/mach-s3c64xx/mach-my6410.c:301: error: field name not in record or union initializer

    arch/arm/mach-s3c64xx/mach-my6410.c:301: error: (near initialization for 'my6410_buttons')

    arch/arm/mach-s3c64xx/mach-my6410.c:302: error: field name not in record or union initializer

    arch/arm/mach-s3c64xx/mach-my6410.c:302: error: (near initialization for 'my6410_buttons')

    arch/arm/mach-s3c64xx/mach-my6410.c:303: error: field name not in record or union initializer

    arch/arm/mach-s3c64xx/mach-my6410.c:303: error: (near initialization for 'my6410_buttons')

    arch/arm/mach-s3c64xx/mach-my6410.c:304: error: field name not in record or union initialize

    ………………..

    ………………………

    ……………………………………

    可以看出這個錯誤提示的意思是沒有找到定義的數組,然后其他的就引起一連串的錯誤,解決的辦法很簡單就是把

    #include <linux/gpio_keys.h>

    這個頭文件添加進去就可以了。

    ?

    ?

  • ?

    今天已經就做這么多吧,人都快累垮了。。。。。。明天繼續。。。。。。

    LCD驅動移植

  • 向mach-my6410.c里面填入相應的平臺信息:

    static struct s3c_fb_pd_win my6410_fb_win0 = {

    ????/* this is to ensure we use win0 */

    ????.win_mode????= {

    ????????.left_margin????= 2,

    ????????.right_margin????= 2,

    ????????.upper_margin????= 2,

    ????????.lower_margin????= 2,

    ????????.hsync_len????= 41,

    ????????.vsync_len????= 10,

    ????????.xres????????= 480,

    ????????.yres????????= 272,

    ????},

    ????.max_bpp????= 32,

    ????.default_bpp????= 16,

    };

  • pixclock?=?1000000?/?DCLK?=?1000000?/?9?=?111111

    left_margin?=?Thb?=?2

    right_margin?=?Thf?=?2

    hsync_len?=?Thp?=?41

    upper_margin?=?Tvb?=?2

    lower_margin?=?Tvf?=?2

    vsync_len?=?Tvp?=?10

    xres?=?Thd?=?480

    Yres?=?Tvd?=?272

    static struct map_desc my6410_iodesc[] = {

    ????{

    ????????/* LCD support */

    ????????.virtual = (unsigned long)S3C_VA_LCD,

    ????????.pfn = __phys_to_pfn(S3C_PA_FB),

    ????????.length = SZ_16K,

    ????????.type = MT_DEVICE,

    ????},

    };

  • 然后將28內核中的drviers/video/samsung拷貝到drviers/video/目錄下
  • 修改drviers/video/的Kconfig文件,在文件中加入

    source "drivers/video/samsung/Kconfig"

  • 修改修改drviers/video/的Makefie文件,再最后一行添加:

    obj-$(CONFIG_FB_S3C_EXT) += samsung/

  • 在arch/arm/plat-samsung/include/plat/map-base.h里面添加
  • ????

    #define S3C_VA_LCD S3C_ADDR(0x01100000) ????/* LCD */

  • 在include/generated/atuoconfig.h里面添加

    #define CONFIG_FB_S3C_EXT_NUM 4

  • 把drivers/video/samsung/s3cfb_fimd4x.c里面的
  • 第1417行:

    s3c6410_pm_do_save(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));

    改成

    s3c_pm_do_save(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));

    第1438行

    s3c6410_pm_do_restore(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));

    改成

    s3c_pm_do_restore(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));

  • 配置內核:

    Device Drivers --->

  • Graphics support --->

    <*> Support for frame buffer devices ---> (里面的都空選)

    <*> Support for frame buffer devices --->

    [ ] Backlight & LCD device support --->

    <*> S3C Framebuffer Support (eXtended)(修改Kconfig之后才有這個選)

    Select LCD Type (4.3 inch 480x272 TFT LCD) --->

    (X) 4.3 inch 480x272 TFT LCD

    <*> Advanced options for S3C Framebuffer

    Select BPP(Bits Per Pixel) (16 BPP) --->

    (4) Number of Framebuffers

    [ ] Enable Virtual Screen

    [*] Enable Double Buffering

    Console display driver support --->

    <*> Framebuffer Console support

    [*] Bootup logo --->(顯示小企鵝)

    [*] Standard 224-color Linux logo

    如果驅動移植成功內核啟動的時候會打印一下信息:

    S3C_LCD clock got enabled :: 133.000 Mhz

    LCD TYPE :: LTE480WV will be initialized

    Window[0] - FB1: map_video_memory: clear ffd80000:0007f800

    FB1: map_video_memory: dma=5f900000 cpu=ffd80000 size=0007f800

    Window[0] - FB2: map_video_memory: clear ffdbfc00:0003fc00

    FB2: map_video_memory: dma=5f93fc00 cpu=ffdbfc00 size=0003fc00

    Console: switching to colour frame buffer device 60x34

    fb0: s3cfb frame buffer device

    Window[1] - FB1: map_video_memory: clear ffd00000:0007f800

    FB1: map_video_memory: dma=5f980000 cpu=ffd00000 size=0007f800

    Window[1] - FB2: map_video_memory: clear ffd3fc00:0003fc00

    FB2: map_video_memory: dma=5f9bfc00 cpu=ffd3fc00 size=0003fc00

    fb1: s3cfb frame buffer device

    Window[2] - FB1: map_video_memory: clear ffcc0000:0003fc00

    FB1: map_video_memory: dma=5fa00000 cpu=ffcc0000 size=0003fc00

    fb2: s3cfb frame buffer device

    Window[3] - FB1: map_video_memory: clear ffc80000:0003fc00

    FB1: map_video_memory: dma=5fa40000 cpu=ffc80000 size=0003fc00

    fb3: s3cfb frame buffer device

    在LCD還會顯示小企鵝:

    相應的驅動程序都在

    drviers/video/Samsung/s3cfb.c目錄下

    ?

    ?

    今天就為這驅動搞了一天,其實早就可以成功的,TMMD的不知道是不是手賤還是怎么的,

    竟然把System Type --->

    [* ] SMDK6400

    選上了,最后系統一直打印都是SMDK6400的信息。幸好我靠

    printk(KERN_INFO "DEBUG\n\n\n\n");

    找到了原因。

    以后有時間好好對LCD驅動做一下分析。

    DM9000網卡驅動移植

  • Linux內核里面已經 支持了dm9000的網卡驅動,所以驅動程序我們不需要寫了,只需要添加 相應的平臺信息。在linux-3.3.5/arch/arm/mach-s3c64xx/mach-my6410.c里面添加都文件#include <linux/dm9000.h>
  • 在linux-3.3.5/arch/arm/mach-s3c64xx/mach-my6410.c里面添加以下平臺信息:

    #define S3C64XX_PA_DM9000????(0x18000000)

    #define S3C64XX_SZ_DM9000????SZ_1M

    static struct resource my6410_dm9000_resources[] = {

    [0] = {

    .start= S3C64XX_PA_DM9000,

    .end= S3C64XX_PA_DM9000 + 3,

    .flags= IORESOURCE_MEM,

    },

    [1] = {

    .start= S3C64XX_PA_DM9000 + 4,

    .end= S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1,

    .flags= IORESOURCE_MEM,

    },

    [2] = {

    .start= IRQ_EINT(7),

    .end= IRQ_EINT(7),

    .flags= IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,

    },

  • };

    ?

    static struct dm9000_plat_data my6410_dm9000_platdata = {

    .flags= DM9000_PLATF_16BITONLY,

    .dev_addr= { 0x08, 0x90, 0x00, 0xa0, 0x90, 0x90 },

    };

    ?

    static struct platform_device my6410_device_dm9000 = {

    .name= "dm9000",

    .id= 0,

    .num_resources= ARRAY_SIZE(my6410_dm9000_resources),

    .resource= my6410_dm9000_resources,

    .dev= {

    .platform_data = &my6410_dm9000_platdata,

    }

    };

    然后在static struct platform_device *my6410_devices[] __initdata =里面添加

    &my6410_device_dm9000,

  • 配置內核,這里網絡配置的選項很多,但都要根據實際選對:
  • ?

    ?

  • 出現的問題及解決方案:
  • 編譯的時候出現:

    SYSMAP System.map

    SYSMAP .tmp_System.map

    Inconsistent kallsyms data

    This is a bug - please report about it

    Try make KALLSYMS_EXTRA_PASS=1 as a workaround

    make: *** [vmlinux] 錯誤 1

  • 這樣的錯誤沒有任何提示,經過總結,我發現這樣的錯誤出現的原因就是內核中有些設備沒有配置但是在BSP里面卻定義了,或者是 BSP里面定義了,但是內核沒有配置。

    解決方法是把static struct platform_device *my6410_devices[] __initdata里面一些三星的東西去掉,其實如果從一個空模版移植是不會出現這類問題的,這里我還是有些偷懶。修改以后的內容如下:

    static struct platform_device *my6410_devices[] __initdata = {

    #ifdef CONFIG_SMDK6410_SD_CH0

    &s3c_device_hsmmc0,

    #endif

    &my6410_device_button,

    &my6410_device_led,

    &my6410_device_dm9000,

    #ifdef CONFIG_SMDK6410_SD_CH1

    &s3c_device_hsmmc1,

    #endif

    &s3c_device_i2c0,

    //&s3c_device_i2c1,

    &s3c_device_fb,

    &s3c_device_ohci,

    &s3c_device_usb_hsotg,

    &samsung_asoc_dma,

    //&s3c64xx_device_iisv4,

    //&samsung_device_keypad,

    ?

    #ifdef CONFIG_REGULATOR

    //&my6410_b_pwr_5v,

    #endif

    //&my6410_lcd_powerdev,

    ?

    //&my6410_smsc911x,

    //&s3c_device_adc,

    //&s3c_device_cfcon,

    &s3c_device_rtc,

    &s3c_device_ts,

    //&s3c_device_wdt,

    };

  • 啟動過程中出現這樣的問題:
  • smsc911x: failed to claim resource 0(這個提示原來在這兒我怎么沒有發現

    ------------[ cut here ]------------

    WARNING: at drivers/base/core.c:194 device_release+0x74/0x80()

    Device 'platform-lcd.0' does not have a release() function, it is broken and must be fixed.

    Modules linked in:

    [<c0013e1c>] (unwind_backtrace+0x0/0xf8) from [<c001d968>] (warn_slowpath_common+0x4c/0x64)

    [<c001d968>] (warn_slowpath_common+0x4c/0x64) from [<c001da14>] (warn_slowpath_fmt+0x30/0x40)

    [<c001da14>] (warn_slowpath_fmt+0x30/0x40) from [<c0175d6c>] (device_release+0x74/0x80)

    [<c0175d6c>] (device_release+0x74/0x80) from [<c0126ac0>] (kobject_release+0x44/0x78)

    [<c0126ac0>] (kobject_release+0x44/0x78) from [<c0179910>] (platform_add_devices+0x54/0x68)

    [<c0179910>] (platform_add_devices+0x54/0x68) from [<c03826c4>] (customize_machine+0x20/0x30)

    [<c03826c4>] (customize_machine+0x20/0x30) from [<c00087a8>] (do_one_initcall+0x11c/0x170)

    [<c00087a8>] (do_one_initcall+0x11c/0x170) from [<c037f564>] (kernel_init+0x84/0x128)

    [<c037f564>] (kernel_init+0x84/0x128) from [<c000f28c>] (kernel_thread_exit+0x0/0x8)

    ---[ end trace 1b75b31a2719ed1c ]---

    ------------[ cut here ]------------

    WARNING: at drivers/base/core.c:194 device_release+0x74/0x80()

    Device 'samsung-keypad' does not have a release() function, it is broken and must be fixed.

    Modules linked in:

    [<c0013e1c>] (unwind_backtrace+0x0/0xf8) from [<c001d968>] (warn_slowpath_common+0x4c/0x64)

    [<c001d968>] (warn_slowpath_common+0x4c/0x64) from [<c001da14>] (warn_slowpath_fmt+0x30/0x40)

    [<c001da14>] (warn_slowpath_fmt+0x30/0x40) from [<c0175d6c>] (device_release+0x74/0x80)

    [<c0175d6c>] (device_release+0x74/0x80) from [<c0126ac0>] (kobject_release+0x44/0x78)

    [<c0126ac0>] (kobject_release+0x44/0x78) from [<c0179910>] (platform_add_devices+0x54/0x68)

    [<c0179910>] (platform_add_devices+0x54/0x68) from [<c03826c4>] (customize_machine+0x20/0x30)

    [<c03826c4>] (customize_machine+0x20/0x30) from [<c00087a8>] (do_one_initcall+0x11c/0x170)

    [<c00087a8>] (do_one_initcall+0x11c/0x170) from [<c037f564>] (kernel_init+0x84/0x128)

    [<c037f564>] (kernel_init+0x84/0x128) from [<c000f28c>] (kernel_thread_exit+0x0/0x8)

    ---[ end trace 1b75b31a2719ed1d ]---

    ------------[ cut here ]------------

    WARNING: at drivers/base/core.c:194 device_release+0x74/0x80()

    Device 'samsung-i2s.2' does not have a release() function, it is broken and must be fixed.

    Modules linked in:

    [<c0013e1c>] (unwind_backtrace+0x0/0xf8) from [<c001d968>] (warn_slowpath_common+0x4c/0x64)

    [<c001d968>] (warn_slowpath_common+0x4c/0x64) from [<c001da14>] (warn_slowpath_fmt+0x30/0x40)

    [<c001da14>] (warn_slowpath_fmt+0x30/0x40) from [<c0175d6c>] (device_release+0x74/0x80)

    [<c0175d6c>] (device_release+0x74/0x80) from [<c0126ac0>] (kobject_release+0x44/0x78)

    [<c0126ac0>] (kobject_release+0x44/0x78) from [<c0179910>] (platform_add_devices+0x54/0x68)

    [<c0179910>] (platform_add_devices+0x54/0x68) from [<c03826c4>] (customize_machine+0x20/0x30)

    [<c03826c4>] (customize_machine+0x20/0x30) from [<c00087a8>] (do_one_initcall+0x11c/0x170)

    [<c00087a8>] (do_one_initcall+0x11c/0x170) from [<c037f564>] (kernel_init+0x84/0x128)

    [<c037f564>] (kernel_init+0x84/0x128) from [<c000f28c>] (kernel_thread_exit+0x0/0x8)

    ---[ end trace 1b75b31a2719ed1e ]---

    出現這個這個錯誤的原因根據提示可以知道那個玩意兒沒有得到資源。

    原來它在arch/arm/mach-s3c64xx/include/mach/map.h ?被這樣定義

    #define S3C64XX_PA_XM0CSN1 (18000000)

    這個剛好我我們定義的DM9000的物理地址相同

    所以就沖突了。解決方法很簡單,就是把

    static struct platform_device *my6410_devices[] __initdata里面的

    //&my6410_smsc911x,注釋掉。

  • 最后系統啟動信息如下:
  • SMDK6410 # bootm c0008000

    ## Booting image at c0008000 ...

    Image Name: Linux-3.3.5

    Created: 2012-05-10 8:00:27 UTC

    Image Type: ARM Linux Kernel Image (uncompressed)

    Data Size: 1987128 Bytes = 1.9 MB

    Load Address: 50008000

    Entry Point: 50008000

    Verifying Checksum ... OK

    OK

    ?

    Starting kernel ...

    ?

    Uncompressing Linux... done, booting the kernel.

    Booting Linux on physical CPU 0

    Linux version 3.3.5 (root@superzuo) (gcc version 4.2.2) #38 Thu May 10 16:00:17 CST 2012

    CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387d

    CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache

    Machine: my6410

    Memory policy: ECC disabled, Data cache writeback

    CPU S3C6410 (id 0x36410101)

    S3C24XX Clocks, Copyright 2004 Simtec Electronics

    camera: no parent clock specified

    S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000

    S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000

    mout_apll: source is fout_apll (1), rate is 532000000

    mout_epll: source is epll (1), rate is 24000000

    mout_mpll: source is mpll (1), rate is 532000000

    usb-bus-host: source is clk_48m (0), rate is 48000000

    audio-bus: source is mout_epll (0), rate is 24000000

    audio-bus: source is mout_epll (0), rate is 24000000

    audio-bus: source is mout_epll (0), rate is 24000000

    irda-bus: source is mout_epll (0), rate is 24000000

    camera: no parent clock specified

    CPU: found DTCM0 8k @ 00000000, not enabled

    CPU: moved DTCM0 8k to fffe8000, enabled

    CPU: found DTCM1 8k @ 00000000, not enabled

    CPU: moved DTCM1 8k to fffea000, enabled

    CPU: found ITCM0 8k @ 00000000, not enabled

    CPU: moved ITCM0 8k to fffe0000, enabled

    CPU: found ITCM1 8k @ 00000000, not enabled

    CPU: moved ITCM1 8k to fffe2000, enabled

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

    Kernel command line: noinitrd root=/dev/mtdblock3 rootfstype=yaffs2 console=ttySAC0 init=/linuxrc video=fb:AT070TN83

    PID hash table entries: 1024 (order: 0, 4096 bytes)

    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)

    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)

    Memory: 256MB = 256MB total

    Memory: 255740k/255740k available, 6404k reserved, 0K highmem

    Virtual kernel memory layout:

    vector : 0xffff0000 - 0xffff1000 ( 4 kB)

    DTCM : 0xfffe8000 - 0xfffec000 ( 16 kB)

    ITCM : 0xfffe0000 - 0xfffe4000 ( 16 kB)

    fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

    vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)

    lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)

    modules : 0xbf000000 - 0xc0000000 ( 16 MB)

    .text : 0xc0008000 - 0xc037e238 (3545 kB)

    .init : 0xc037f000 - 0xc03a0000 ( 132 kB)

    .data : 0xc03a0000 - 0xc03c8440 ( 162 kB)

    .bss : 0xc03c9024 - 0xc03fe3eb ( 213 kB)

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

    NR_IRQS:246

    VIC @f6000000: id 0x00041192, vendor 0x41

    VIC @f6010000: id 0x00041192, vendor 0x41

    Console: colour dummy device 80x30

    Calibrating delay loop... 528.79 BogoMIPS (lpj=2643968)

    pid_max: default: 32768 minimum: 301

    Mount-cache hash table entries: 512

    CPU: Testing write buffer coherency: ok

    Setting up static identity map for 0x50299118 - 0x50299174

    gpiochip_add: registered GPIOs 38 to 53 on device: GPF

    gpiochip_add: registered GPIOs 74 to 89 on device: GPI

    gpiochip_add: registered GPIOs 91 to 102 on device: GPJ

    gpiochip_add: registered GPIOs 161 to 176 on device: GPO

    gpiochip_add: registered GPIOs 178 to 192 on device: GPP

    gpiochip_add: registered GPIOs 194 to 202 on device: GPQ

    gpiochip_add: registered GPIOs 144 to 159 on device: GPN

    gpiochip_add: registered GPIOs 0 to 7 on device: GPA

    gpiochip_add: registered GPIOs 9 to 15 on device: GPB

    gpiochip_add: registered GPIOs 17 to 24 on device: GPC

    gpiochip_add: registered GPIOs 26 to 30 on device: GPD

    gpiochip_add: registered GPIOs 32 to 36 on device: GPE

    gpiochip_add: registered GPIOs 55 to 61 on device: GPG

    gpiochip_add: registered GPIOs 137 to 142 on device: GPM

    gpiochip_add: registered GPIOs 63 to 72 on device: GPH

    gpiochip_add: registered GPIOs 104 to 119 on device: GPK

    gpiochip_add: registered GPIOs 121 to 135 on device: GPL

    NET: Registered protocol family 16

    fb frame buffer device

    s3c64xx_dma_init: Registering DMA channels

    PL080: IRQ 73, at d0804000, channels 0..8

    PL080: IRQ 74, at d0806000, channels 8..16

    S3C6410: Initialising architecture

    bio: create slab <bio-0> at 0

    usbcore: registered new interface driver usbfs

    usbcore: registered new interface driver hub

    usbcore: registered new device driver usb

    s3c-i2c s3c2440-i2c.0: slave address 0x10

    s3c-i2c s3c2440-i2c.0: bus frequency set to 64 KHz

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

    cfg80211: Calling CRDA to update world regulatory domain

    ROMFS MTD (C) 2007 Red Hat, Inc.

    io scheduler noop registered

    io scheduler deadline registered

    io scheduler cfq registered (default)

    start plist test

    end plist test

    LCD probe

    ?

    S3C_LCD clock got enabled :: 133.000 Mhz(LCD驅動是OK的

    LCD TYPE :: LTE480WV will be initialized

    Window[0] - FB1: map_video_memory: clear ffd80000:0007f800

    FB1: map_video_memory: dma=5f900000 cpu=ffd80000 size=0007f800

    Window[0] - FB2: map_video_memory: clear ffdbfc00:0003fc00

    FB2: map_video_memory: dma=5f93fc00 cpu=ffdbfc00 size=0003fc00

    Console: switching to colour frame buffer device 60x34

    fb0: s3cfb frame buffer device

    Window[1] - FB1: map_video_memory: clear ffd00000:0007f800

    FB1: map_video_memory: dma=5f980000 cpu=ffd00000 size=0007f800

    Window[1] - FB2: map_video_memory: clear ffd3fc00:0003fc00

    FB2: map_video_memory: dma=5f9bfc00 cpu=ffd3fc00 size=0003fc00

    fb1: s3cfb frame buffer device

    Window[2] - FB1: map_video_memory: clear ffcc0000:0003fc00

    FB1: map_video_memory: dma=5fa00000 cpu=ffcc0000 size=0003fc00

    fb2: s3cfb frame buffer device

    Window[3] - FB1: map_video_memory: clear ffc80000:0003fc00

    FB1: map_video_memory: dma=5fa40000 cpu=ffc80000 size=0003fc00

    fb3: s3cfb frame buffer device

    jkq debug VIDCON0 is 353

    Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled

    s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 69) is a S3C6400/10

    console [ttySAC0] enabled

    s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 70) is a S3C6400/10

    s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 71) is a S3C6400/10

    s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 72) is a S3C6400/10

    brd: module loaded

    loop: module loaded

    at24 0-0050: 1024 byte 24c08 EEPROM, writable, 1 bytes/write

    S3C24XX NAND Driver, (c) 2004 Simtec Electronics

    dm9000 Ethernet Driver, V1.31(DM9000網卡驅動是OK的

    eth0: dm9000a at d0816000,d0a00004 IRQ 108 MAC: 08:90:00:a0:90:90 (platform data)

    PPP generic driver version 2.4.2

    PPP BSD Compression module registered

    PPP Deflate Compression module registered

    PPP MPPE Compression module registered

    NET: Registered protocol family 24

    libertas_sdio: Libertas SDIO driver

    libertas_sdio: Copyright Pierre Ossman

    usbcore: registered new interface driver rt73usb

    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI

    s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1

    s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000

    s3c2410-ohci s3c2410-ohci: init err (00000000 0000)

    ohci_hcd: can't start s3c24xx

    s3c2410-ohci s3c2410-ohci: startup error -75

    s3c2410-ohci s3c2410-ohci: USB bus 1 deregistered

    s3c2410-ohci: probe of s3c2410-ohci failed with error -75

    mousedev: PS/2 mouse device common for all mice

    s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling

    s3c-rtc s3c64xx-rtc: rtc core: registered s3c as rtc0

    i2c /dev entries driver

    sdhci: Secure Digital Host Controller Interface driver

    sdhci: Copyright(c) Pierre Ossman

    usbcore: registered new interface driver usbhid

    usbhid: USB HID core driver

    lib80211: common routines for IEEE802.11 drivers

    VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5

    input: gpio-keys as /devices/platform/gpio-keys/input/input0

    s3c-rtc s3c64xx-rtc: setting system clock to 2000-07-27 04:53:53 UTC (964673633)

    VFS: Cannot open root device "mtdblock3" or unknown-block(0,0)

    Please append a correct "root=" boot option; here are the available partitions:

    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

    [<c0013e1c>] (unwind_backtrace+0x0/0xf8) from [<c001db00>] (panic+0x8c/0x200)

    [<c001db00>] (panic+0x8c/0x200) from [<c037fc20>] (mount_block_root+0x10c/0x2b0)

    [<c037fc20>] (mount_block_root+0x10c/0x2b0) from [<c037ff7c>] (prepare_namespace+0x14c/0x1dc)

    [<c037ff7c>] (prepare_namespace+0x14c/0x1dc) from [<c037f5c8>] (kernel_init+0xe8/0x128)

    [<c037f5c8>] (kernel_init+0xe8/0x128) from [<c000f28c>] (kernel_thread_exit+0x0/0x8)

    ?

    搭建NFS網絡文件系統

  • 制作文件系統的工具就是傳說中的瑞士軍刀busybox在他的官網http://www.busybox.net?下載最新的版本為busybox-1.20.0
  • 修改busybox的makefile:

    CROSS_COMPILE ?= arm-linux-

    ARCH ?= arm

  • Make menuconfig配置busybox

    Busybox Settings --->

    ????Build Options --->

    Installation Options ("make install" behavior) --->

    Busybox Library Tuning --->

  • 編譯busybox執行

    Make install

    這時候會提示一個錯誤提示說:

    miscutils/ubi_tools.c:63:26: error: mtd/ubi-user.h: No such file or directory
    miscutils/ubi_tools.c: In function 'ubi_tools_main':
    miscutils/ubi_tools.c:133: error: 'UBI_DEV_NUM_AUTO' undeclared (first use in this function)
    miscutils/ubi_tools.c:133: error: (Each undeclared identifier is reported only once
    miscutils/ubi_tools.c:133: error: for each function it appears in.)
    miscutils/ubi_tools.c:134: error: 'UBI_VOL_NUM_AUTO' undeclared (first use in this function)
    miscutils/ubi_tools.c:153: error: storage size of 'req' isn't known
    miscutils/ubi_tools.c:161: error: 'UBI_IOCATT' undeclared (first use in this function)
    miscutils/ubi_tools.c:153: warning: unused variable 'req'

  • make[1]: *** [miscutils/ubi_tools.o] 錯誤 1
    make: *** [miscutils] 錯誤 2

    出現這么多的錯誤,核心問題就是出現在miscutils/ubi_tools.c:63:26: error: mtd/ubi-user.h: No such file or directory這個上面,無法找到mtd/ubi-user.h頭文件,查閱了相關資料后,原來這是一個Linux下新支持的UBI文件系統,需要手 工加入。從Linux3.3.5的include\mtd\ubi-user.h拷貝到busybox下的include\mtd下,如果 busybox下的include沒有mtd文件夾,那就先建立一個mtd文件夾,然后復制了。這樣做了之后,編譯就OK了。出現下面的信息就說明編譯成 功了。

  • 建立根目錄,這里我們直接寫一個腳本程序運create_rootfs.sh行就可以了,腳本的內容如下:

    #!/bin/sh
    echo "------Create rootfs directons start...--------"
    mkdir rootfs?
    cd rootfs?
    echo "--------Create root,dev....----------"
    mkdir root dev etc boot tmp var sys proc lib mnt home usr
    mkdir etc/init.d etc/rc.d etc/sysconfig
    mkdir usr/sbin usr/bin usr/lib usr/modules
    echo "make node in dev/console dev/null"
    mknod -m 600 dev/console c 5 1
    mknod -m 600 dev/null c 1 3
    mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
    mkdir var/lib var/lock var/run var/tmp
    chmod 777 tmp
    chmod 777 var/tmp
    echo "-------make direction done---------"

    運行腳本執行:

    ./ create_rootfs.sh

    ls rootfs

    boot? dev? etc? home? lib? mnt? proc? root? sys? tmp? usr? var

  • etc/inittab 系統init進程配置文件,并更改權限 chmod +x inittab

    ::sysinit:/etc/init.d/rcS
    ::askfirst:-/bin/sh #沒有這就不行,就不能打開console控制臺。
    ::restart:/sbin/init
    ::ctrlaltdel:/sbin/reboot
    ::shutdown:/bin/umount -a -r
    ::shutdown:/sbin/swapoff –a

  • etc/init.d/rcS系統啟動加載項文件,并更改權限chmod +x etc/init.d/rcS

    #!/bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    runlevel=S
    prevlevel=N
    umask 022
    export PATH runlevel prevlevel
    mount -a
    mkdir /dev/pts
    mount -t devpts devpts /dev/pts #用于telnet登錄時使用

    echo /sbin/mdev > /proc/sys/kernel/hotplug
    mdev -s
    mkdir -p /var/lock
    /bin/hostname -F /etc/sysconfig/HOSTNAME

  • etc/fstab 系統掛載文件系統列表文件

    #device mount-point type option dump fsck order?
    proc /proc proc defaults 0 0?
    sysfs /sys sysfs defaults 0 0?
    mdev /dev ramfs defaults 0 0
    none /var ramfs defaults 0 0
    none /tmp ramfs defaults 0 0

  • etc/profile用戶環境配置文件

    # Ash profile
    # vim: syntax= sh
    # No core file by defaults
    # ulimit - S - c 0> / dev/ null 2> & 1

    USER="id -un"?
    LOGNAME=$USER
    PS1="[\u@\h \w]#"? #\w 目錄將顯示全路徑
    PATH=$PATH
    HOSTNAME= '/bin/hostname'?
    alias cls="clear"
    export USER LOGNAME PS1 PATH?

  • /etc/passwd shadow 用戶文件以及密碼

    把主機的passwd shadow 文件拷貝到/etc下

    # cp /etc/passwd??rootfs/etc
    # cp /etc/group rootfs/etc
    # cp /etc/shadow rootfs/etc

  • etc/sysconfig/HOSTNAME的內容為你自己的名字即可,內容為"Pillar"

    gedit /etc/sysconfig/HOSTNAME??然后鍵入 Pillar

  • 在busybox目錄下會看見 _install目錄,里面有/bin /sbin l inuxr三個文件
    將這三個目錄或文件拷到第一步所建的rootfs文件夾下。

    #cp bin/ sbin/ linuxrc /home/rootfs -ra?

    在把_install目錄的usr里面的bin,sbin也按照剛才的方法拷貝到rootfs目錄下

    切記一定要帶上-a的參數,因為bin目錄里大部分都是鏈接,如果不帶-a的參數,拷過去之后會做相應的復制,不再是鏈接的形式

    將交叉編譯器下的lib下的庫拷貝到lib文件夾下
    cp /usr/local/arm/4.2.2-eabi/lib/* ./

  • 這時候rootfs目錄下的tree應該是這個樣子的:

    .

    ├── bin

    │?? ├── addgroup -> busybox

    │?? ├── adduser -> busybox

    │?? ├── ash -> busybox

    │?? ├── base64 -> busybox

    │?? ├── busybox

    │?? ├── cat -> busybox

    │?? ├── catv -> busybox

    │?? ├── chattr -> busybox

    │?? ├── chgrp -> busybox

    │?? ├── chmod -> busybox

    │?? ├── chown -> busybox

    │?? ├── conspy -> busybox

    │?? ├── cp -> busybox

    │?? ├── cpio -> busybox

    │?? ├── cttyhack -> busybox

    │?? ├── date -> busybox

    │?? ├── dd -> busybox

    │?? ├── delgroup -> busybox

    │?? ├── deluser -> busybox

    │?? ├── df -> busybox

    │?? ├── dmesg -> busybox

    │?? ├── dnsdomainname -> busybox

    │?? ├── dumpkmap -> busybox

    │?? ├── echo -> busybox

    │?? ├── ed -> busybox

    │?? ├── egrep -> busybox

    │?? ├── false -> busybox

    │?? ├── fdflush -> busybox

    │?? ├── fgrep -> busybox

    │?? ├── fsync -> busybox

    │?? ├── getopt -> busybox

    │?? ├── grep -> busybox

    │?? ├── gunzip -> busybox

    │?? ├── gzip -> busybox

    │?? ├── hostname -> busybox

    │?? ├── hush -> busybox

    │?? ├── ionice -> busybox

    │?? ├── iostat -> busybox

    │?? ├── ip -> busybox

    │?? ├── ipaddr -> busybox

    │?? ├── ipcalc -> busybox

    │?? ├── iplink -> busybox

    │?? ├── iproute -> busybox

    │?? ├── iprule -> busybox

    │?? ├── iptunnel -> busybox

    │?? ├── kill -> busybox

    │?? ├── linux32 -> busybox

    │?? ├── linux64 -> busybox

    │?? ├── ln -> busybox

    │?? ├── login -> busybox

    │?? ├── ls -> busybox

    │?? ├── lsattr -> busybox

    │?? ├── lzop -> busybox

    │?? ├── makemime -> busybox

    │?? ├── mkdir -> busybox

    │?? ├── mknod -> busybox

    │?? ├── mktemp -> busybox

    │?? ├── more -> busybox

    │?? ├── mount -> busybox

    │?? ├── mountpoint -> busybox

    │?? ├── mpstat -> busybox

    │?? ├── mt -> busybox

    │?? ├── mv -> busybox

    │?? ├── netstat -> busybox

    │?? ├── nice -> busybox

    │?? ├── pidof -> busybox

    │?? ├── ping -> busybox

    │?? ├── ping6 -> busybox

    │?? ├── pipe_progress -> busybox

    │?? ├── powertop -> busybox

    │?? ├── printenv -> busybox

    │?? ├── ps -> busybox

    │?? ├── pwd -> busybox

    │?? ├── reformime -> busybox

    │?? ├── rev -> busybox

    │?? ├── rm -> busybox

    │?? ├── rmdir -> busybox

    │?? ├── rpm -> busybox

    │?? ├── run-parts -> busybox

    │?? ├── scriptreplay -> busybox

    │?? ├── sed -> busybox

    │?? ├── setarch -> busybox

    │?? ├── setserial -> busybox

    │?? ├── sh -> busybox

    │?? ├── sleep -> busybox

    │?? ├── stat -> busybox

    │?? ├── stty -> busybox

    │?? ├── su -> busybox

    │?? ├── sync -> busybox

    │?? ├── tar -> busybox

    │?? ├── touch -> busybox

    │?? ├── true -> busybox

    │?? ├── umount -> busybox

    │?? ├── uname -> busybox

    │?? ├── usleep -> busybox

    │?? ├── vi -> busybox

    │?? ├── watch -> busybox

    │?? └── zcat -> busybox

    ├── boot

    ├── dev

    │?? ├── console

    │?? └── null

    ├── etc

    │?? ├── fstab

    │?? ├── group

    │?? ├── init.d

    │?? │?? └── rcS

    │?? ├── inittab

    │?? ├── passwd

    │?? ├── profile

    │?? ├── rc.d

    │?? ├── resolv.conf

    │?? ├── shadow

    │?? └── sysconfig

    │?? └── HOSTNAME

    ├── home

    ├── lib

    ├── linuxrc -> bin/busybox

    ├── mnt

    │?? ├── data

    │?? ├── etc

    │?? ├── jffs2

    │?? ├── temp

    │?? └── yaffs

    ├── proc

    ├── root

    ├── sbin

    │?? ├── acpid -> ../bin/busybox

    │?? ├── adjtimex -> ../bin/busybox

    │?? ├── arp -> ../bin/busybox

    │?? ├── blkid -> ../bin/busybox

    │?? ├── blockdev -> ../bin/busybox

    │?? ├── bootchartd -> ../bin/busybox

    │?? ├── depmod -> ../bin/busybox

    │?? ├── devmem -> ../bin/busybox

    │?? ├── fbsplash -> ../bin/busybox

    │?? ├── fdisk -> ../bin/busybox

    │?? ├── findfs -> ../bin/busybox

    │?? ├── freeramdisk -> ../bin/busybox

    │?? ├── fsck -> ../bin/busybox

    │?? ├── fsck.minix -> ../bin/busybox

    │?? ├── getty -> ../bin/busybox

    │?? ├── halt -> ../bin/busybox

    │?? ├── hdparm -> ../bin/busybox

    │?? ├── hwclock -> ../bin/busybox

    │?? ├── ifconfig -> ../bin/busybox

    │?? ├── ifdown -> ../bin/busybox

    │?? ├── ifenslave -> ../bin/busybox

    │?? ├── ifup -> ../bin/busybox

    │?? ├── init -> ../bin/busybox

    │?? ├── insmod -> ../bin/busybox

    │?? ├── klogd -> ../bin/busybox

    │?? ├── loadkmap -> ../bin/busybox

    │?? ├── logread -> ../bin/busybox

    │?? ├── losetup -> ../bin/busybox

    │?? ├── lsmod -> ../bin/busybox

    │?? ├── makedevs -> ../bin/busybox

    │?? ├── man -> ../bin/busybox

    │?? ├── mdev -> ../bin/busybox

    │?? ├── mkdosfs -> ../bin/busybox

    │?? ├── mke2fs -> ../bin/busybox

    │?? ├── mkfs.ext2 -> ../bin/busybox

    │?? ├── mkfs.minix -> ../bin/busybox

    │?? ├── mkfs.vfat -> ../bin/busybox

    │?? ├── mkswap -> ../bin/busybox

    │?? ├── modinfo -> ../bin/busybox

    │?? ├── modprobe -> ../bin/busybox

    │?? ├── nameif -> ../bin/busybox

    │?? ├── pivot_root -> ../bin/busybox

    │?? ├── poweroff -> ../bin/busybox

    │?? ├── raidautorun -> ../bin/busybox

    │?? ├── reboot -> ../bin/busybox

    │?? ├── rmmod -> ../bin/busybox

    │?? ├── route -> ../bin/busybox

    │?? ├── runlevel -> ../bin/busybox

    │?? ├── setconsole -> ../bin/busybox

    │?? ├── slattach -> ../bin/busybox

    │?? ├── start-stop-daemon -> ../bin/busybox

    │?? ├── sulogin -> ../bin/busybox

    │?? ├── swapoff -> ../bin/busybox

    │?? ├── swapon -> ../bin/busybox

    │?? ├── switch_root -> ../bin/busybox

    │?? ├── sysctl -> ../bin/busybox

    │?? ├── syslogd -> ../bin/busybox

    │?? ├── tunctl -> ../bin/busybox

    │?? ├── udhcpc -> ../bin/busybox

    │?? ├── vconfig -> ../bin/busybox

    │?? ├── watchdog -> ../bin/busybox

    │?? └── zcip -> ../bin/busybox

    ├── sys

    ├── tmp

    ├── usr

    │?? ├── bin

    │?? │?? ├── [ -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── [[ -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── add-shell -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── arping -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── awk -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── basename -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── beep -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── bunzip2 -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── bzcat -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── bzip2 -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── cal -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── chat -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── chpst -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── chrt -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── chvt -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── cksum -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── clear -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── cmp -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── comm -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── crontab -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── cryptpw -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── cut -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── dc -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── deallocvt -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── diff -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── dirname -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── dos2unix -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── du -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── dumpleases -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── eject -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── env -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── envdir -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── envuidgid -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── ether-wake -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── expand -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── expr -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── fdformat -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── fgconsole -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── find -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── flock -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── fold -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── free -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── ftpget -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── ftpput -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── fuser -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── groups -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── hd -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── head -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── hexdump -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── hostid -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── id -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── ifplugd -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── install -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── ipcrm -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── ipcs -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── kbd_mode -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── killall -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── killall5 -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── last -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── less -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── logger -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── logname -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lpq -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lpr -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lsof -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lspci -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lsusb -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lzcat -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lzma -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── lzopcat -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── md5sum -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── mesg -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── microcom -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── mkfifo -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── mkpasswd -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── nc -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── nmeter -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── nohup -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── nslookup -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── od -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── openvt -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── passwd -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── patch -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── pgrep -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── pkill -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── pmap -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── printf -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── pscan -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── pstree -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── pwdx -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── readahead -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── readlink -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── realpath -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── remove-shell -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── renice -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── reset -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── resize -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── rpm2cpio -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── rtcwake -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── runsv -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── runsvdir -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── rx -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── script -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── seq -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── setkeycodes -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── setsid -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── setuidgid -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── sha1sum -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── sha256sum -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── sha512sum -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── showkey -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── smemcap -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── softlimit -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── sort -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── split -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── strings -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── sum -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── sv -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tac -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tail -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tcpsvd -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tee -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── telnet -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── test -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tftp -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tftpd -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── time -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── timeout -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── top -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tr -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── traceroute -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── traceroute6 -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── tty -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── ttysize -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── udpsvd -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── unexpand -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── uniq -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── unix2dos -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── unlzma -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── unlzop -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── unxz -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── unzip -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── uptime -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── users -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── uudecode -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── uuencode -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── vlock -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── volname -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── wall -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── wc -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── wget -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── which -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── who -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── whoami -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── whois -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── xargs -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── xz -> http://www.cnblogs.com/bin/busybox

    │?? │?? ├── xzcat -> http://www.cnblogs.com/bin/busybox

    │?? │?? └── yes -> http://www.cnblogs.com/bin/busybox

    │?? ├── lib

    │?? ├── modules

    │?? └── sbin

    │?? ├── brctl -> http://www.cnblogs.com/bin/busybox

    │?? ├── chpasswd -> http://www.cnblogs.com/bin/busybox

    │?? ├── chroot -> http://www.cnblogs.com/bin/busybox

    │?? ├── crond -> http://www.cnblogs.com/bin/busybox

    │?? ├── dhcprelay -> http://www.cnblogs.com/bin/busybox

    │?? ├── dnsd -> http://www.cnblogs.com/bin/busybox

    │?? ├── fakeidentd -> http://www.cnblogs.com/bin/busybox

    │?? ├── fbset -> http://www.cnblogs.com/bin/busybox

    │?? ├── ftpd -> http://www.cnblogs.com/bin/busybox

    │?? ├── httpd -> http://www.cnblogs.com/bin/busybox

    │?? ├── inetd -> http://www.cnblogs.com/bin/busybox

    │?? ├── loadfont -> http://www.cnblogs.com/bin/busybox

    │?? ├── lpd -> http://www.cnblogs.com/bin/busybox

    │?? ├── nanddump -> http://www.cnblogs.com/bin/busybox

    │?? ├── nandwrite -> http://www.cnblogs.com/bin/busybox

    │?? ├── nbd-client -> http://www.cnblogs.com/bin/busybox

    │?? ├── ntpd -> http://www.cnblogs.com/bin/busybox

    │?? ├── popmaildir -> http://www.cnblogs.com/bin/busybox

    │?? ├── rdate -> http://www.cnblogs.com/bin/busybox

    │?? ├── rdev -> http://www.cnblogs.com/bin/busybox

    │?? ├── readprofile -> http://www.cnblogs.com/bin/busybox

    │?? ├── sendmail -> http://www.cnblogs.com/bin/busybox

    │?? ├── setfont -> http://www.cnblogs.com/bin/busybox

    │?? ├── setlogcons -> http://www.cnblogs.com/bin/busybox

    │?? ├── svlogd -> http://www.cnblogs.com/bin/busybox

    │?? ├── telnetd -> http://www.cnblogs.com/bin/busybox

    │?? ├── ubiattach -> http://www.cnblogs.com/bin/busybox

    │?? ├── ubidetach -> http://www.cnblogs.com/bin/busybox

    │?? ├── ubimkvol -> http://www.cnblogs.com/bin/busybox

    │?? ├── ubirmvol -> http://www.cnblogs.com/bin/busybox

    │?? ├── ubirsvol -> http://www.cnblogs.com/bin/busybox

    │?? ├── ubiupdatevol -> http://www.cnblogs.com/bin/busybox

    │?? └── udhcpd -> http://www.cnblogs.com/bin/busybox

    └── var

    ├── lib

    ├── lock

    ├── run

    │?? └── utmp

    └── tmp

    ?

    30 directories, 365 files

  • 修改uboot的bootargs為下面內容:

    setenv bootargs noinitrd root=/dev/nfs ip=192.168.1.104:192.168.1.103:192.168.1.1:255.255.255.0::eth0:off nfsroot=192.168.1.103:/home/superzuo/rootfs,nolock,proto=tcp consloe=ttySAC0,115200

    其中192.168.1.104為開發板的IP地址(用print命令可以查看)

    192.168.1.103為虛擬機的IP地址

    192.168.1.1為路由器的網關,在電腦上可以用ipconfig /all命令查看

    255.255.255.0為子網掩碼,在電腦上可以用ipconfig /all命令查看

    先備份一下之前用yaffs2的啟動

    noinitrd root=/dev/mtdblock3 rootfstype=yaffs2 console=ttySAC0 init=/linuxrc video=fb:AT070TN83

  • 使開發板支持域名解析:
  • 配置內核:

    [*] Networking support --->

    File systems --->

    ????[*] Network File Systems --->

  • 啟動開發板就可以看見一下信息:

    Registering the dns_resolver key type

    VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5

    input: gpio-keys as /devices/platform/gpio-keys/input/input0

    s3c-rtc s3c64xx-rtc: setting system clock to 2000-07-27 09:18:46 UTC (964689526)

    dm9000 dm9000.0: eth0: link down

    IP-Config: Complete:

    device=eth0, addr=192.168.1.104, mask=255.255.255.0, gw=192.168.1.1,

    host=192.168.1.104, domain=, nis-domain=(none),

    bootserver=192.168.103.0, rootserver=192.168.1.103, rootpath=

    dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1

    VFS: Mounted root (nfs filesystem) on device 0:10.

    Freeing init memory: 156K

    ?

    Please press Enter to activate this console.

    Pillar

    [root@Pillar /]#ls

    bin dev home linuxrc proc sbin tmp var

    boot etc lib mnt root sys usr

    這說明NFS已經完全掛載上了,這比飛凌官網提供的系統好多了,我這里文件系統支持文件路徑顯示和主機信息顯示。

    在啟動的過程中可能 會碰到一個問題:

    Starting pid 768, console /dev/console: '/etc/init.d/rcS'?(這個錯誤就在啟動信息的最后一行一定要注意)

    解決的方法是在主機給rcS修改權限:

    ??chmod -R 777 init.d/*

    最后來一個啟動信息最后的截圖:

  • 今天就搞了一個dm9000和一個nfs網絡文件系統。。。。。。。。

    移植觸摸屏驅動

  • 以下copy 是指需要飛凌提供的內核里的驅動源碼, dev-ts.c ?ts 板載初始化和platform 資源初始化 文件。

    arch/arm/mach-s3c64xx/mach-smdk6410.c

    注銷掉頭文件 ?#include<plat/ts.h>
    添加頭文件 ? ?#include<mach/ts.h>
    copy arch/arm/mach-s3c64xx/include/mach/ts.h 到目標內核目錄

    copy arch/arm/mach-s3c64xx/dev-ts.c 到目標內核目錄在 arch/arm/mach-s3c64xx/Makefile 中添加?
    ? ?obj-$(CONFIG_TOUCHSCREEN_S3C) ? += dev-ts.o

    在里面 添加宏定義arch/arm/mach-s3c64xx/dev-ts.c

    ????#define SZ_256 0x00000100

    添加頭文件#include <linux/slab.h>,這就有很多linux3.3和2.6不同的地方

  • 添加 ts ?設備初始化 ,在smdk6410_machine_init () ?結構體中
  • ????//s3c24xx_ts_set_platdata(NULL);

    ????s3c_ts_set_platdata(&s3c_ts_platform);

    ?

    ????添加結構體s3c_ts_platform

    static struct s3c_ts_mach_info s3c_ts_platform __initdata = {

    ????.delay????????????= 10000,

    ????.presc????????????= 49,

    ????.oversampling_shift????= 2,

    ????.resol_bit????????= 12,????????

    ????.s3c_adc_con????????= ADC_TYPE_2,????

    ?

    };

  • 把飛凌官方的s3c-tc.c拷貝到drivers/input/touchscreen/這里建議拷貝他3.0的系統的
  • 修改 drivers/input/touchscreen/Makefile?
    ? ? ? ? ? 添加 obj-$(CONFIG_TOUCHSCREEN_S3C) ? ? += s3c-ts.o
  • 修改 drivers/input/tourch/screen/Kconfig
    ? ? ? ? ? 添加 config TOUCHSCREEN_S3C?

    config TOUCHSCREEN_S3C

    tristate "S3C touchscreen driver"

    depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5P64XX || ARCH_S5PC1XX

    default y

    help

    Say Y here to enable the driver for the touchscreen on the

    S3C SMDK board.

  • 注釋掉arch/arm/plat-samsung/devs.c里面大概1223到1277行的如下代碼:

    /* Touchscreen */

    ?

    //#ifdef CONFIG_PLAT_S3C24XX

    /*static struct resource s3c_ts_resource[] = {

    ????[0] = DEFINE_RES_MEM(S3C24XX_PA_ADC, S3C24XX_SZ_ADC),

    ????[1] = DEFINE_RES_IRQ(IRQ_TC),

    };

    ?

    struct platform_device s3c_device_ts = {

    ????.name????????= "s3c2410-ts",

    ????.id????????= -1,

    ????.dev.parent????= &s3c_device_adc.dev,

    ????.num_resources????= ARRAY_SIZE(s3c_ts_resource),

    ????.resource????= s3c_ts_resource,

    };

    ?

    void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)

    {

    ????s3c_set_platdata(hard_s3c2410ts_info,

    ???????????? sizeof(struct s3c2410_ts_mach_info), &s3c_device_ts);

    }

    */

    //#endif /* CONFIG_PLAT_S3C24XX */

    ?

    /*#ifdef CONFIG_SAMSUNG_DEV_TS

    static struct resource s3c_ts_resource[] = {

    ????[0] = DEFINE_RES_MEM(SAMSUNG_PA_ADC, SZ_256),

    ????[1] = DEFINE_RES_IRQ(IRQ_TC),

    };

    */

    /*static struct s3c2410_ts_mach_info default_ts_data __initdata = {

    ????.delay????????????= 10000,

    ????.presc????????????= 49,

    ????.oversampling_shift????= 2,

    };

    ?

    struct platform_device s3c_device_ts = {

    ????.name????????= "s3c64xx-ts",

    ????.id????????= -1,

    ????.num_resources????= ARRAY_SIZE(s3c_ts_resource),

    ????.resource????= s3c_ts_resource,

    };

    ?

    void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *pd)

    {

    ????if (!pd)

    ????????pd = &default_ts_data;

    ?

    ????s3c_set_platdata(pd, sizeof(struct s3c2410_ts_mach_info),

    ???????????? &s3c_device_ts);

    }

    */

    //#endif /* CONFIG_SAMSUNG_DEV_TS */

  • 在arch/arm/ plat-samsung/include/plat/regs-adc.h的后面添加以下代碼:

    #define S3C_ADCREG(x) ????????????(x)

    ?

    #define S3C_ADCCON???? ????????S3C_ADCREG(0x00)

    #define S3C_ADCTSC???? ????????S3C_ADCREG(0x04)

    #define S3C_ADCDLY???? ????????S3C_ADCREG(0x08)

    #define S3C_ADCDAT0???? ????????S3C_ADCREG(0x0C)

    #define S3C_ADCDAT1???? ????????S3C_ADCREG(0x10)

    #define S3C_ADCUPDN????????????S3C_ADCREG(0x14)

    #define S3C_ADCCLRINT????????????S3C_ADCREG(0x18)

    #define S3C_ADCMUX????????????S3C_ADCREG(0x1C)

    #define S3C_ADCCLRWK????????????S3C_ADCREG(0x20)

    ?

    /* ADCCON Register Bits */

    #define S3C_ADCCON_RESSEL_10BIT????????(0x0<<16)

    #define S3C_ADCCON_RESSEL_12BIT????????(0x1<<16)

    #define S3C_ADCCON_ECFLG????????(1<<15)

    #define S3C_ADCCON_PRSCEN????????(1<<14)

    #define S3C_ADCCON_PRSCVL(x)????????(((x)&0xFF)<<6)

    #define S3C_ADCCON_PRSCVLMASK????????(0xFF<<6)

    #define S3C_ADCCON_SELMUX(x)????????(((x)&0x7)<<3)

    #define S3C_ADCCON_SELMUX_1(x)????????(((x)&0xF)<<0)

    #define S3C_ADCCON_MUXMASK????????(0x7<<3)

    #define S3C_ADCCON_RESSEL_10BIT_1????(0x0<<3)

    #define S3C_ADCCON_RESSEL_12BIT_1????(0x1<<3)

    #define S3C_ADCCON_STDBM????????(1<<2)

    #define S3C_ADCCON_READ_START????????(1<<1)

    #define S3C_ADCCON_ENABLE_START????????(1<<0)

    #define S3C_ADCCON_STARTMASK????????(0x3<<0)

    ?

    /* ADCTSC Register Bits */

    #define S3C_ADCTSC_UD_SEN????????(1<<8)

    #define S3C_ADCTSC_YM_SEN????????(1<<7)

    #define S3C_ADCTSC_YP_SEN????????(1<<6)

    #define S3C_ADCTSC_XM_SEN????????(1<<5)

    #define S3C_ADCTSC_XP_SEN????????(1<<4)

    #define S3C_ADCTSC_PULL_UP_DISABLE????(1<<3)

    #define S3C_ADCTSC_AUTO_PST????????(1<<2)

    #define S3C_ADCTSC_XY_PST(x)????????(((x)&0x3)<<0)

    ?

    /* ADCDAT0 Bits */

    #define S3C_ADCDAT0_UPDOWN????????(1<<15)

    #define S3C_ADCDAT0_AUTO_PST????????(1<<14)

    #define S3C_ADCDAT0_XY_PST????????(0x3<<12)

    #define S3C_ADCDAT0_XPDATA_MASK????????(0x03FF)

    #define S3C_ADCDAT0_XPDATA_MASK_12BIT????(0x0FFF)

    ?

    /* ADCDAT1 Bits */

    #define S3C_ADCDAT1_UPDOWN????????(1<<15)

    #define S3C_ADCDAT1_AUTO_PST????????(1<<14)

    #define S3C_ADCDAT1_XY_PST????????(0x3<<12)

    #define S3C_ADCDAT1_YPDATA_MASK????????(0x03FF)

    #define S3C_ADCDAT1_YPDATA_MASK_12BIT????(0x0FFF)

    #endif /* __ASM_ARCH_REGS_ADC_H */

    ?

    ?

    ?

  • 配置內核:

    ?

    System Type --->

    ????[*] ADC common driver support

  • Device Drivers --->

    ????Input device support --->

    ????????[*] Touchscreens --->

    <*> S3C touchscreen driver (只選這一個,其他的不要選)

    <*> Event interface

  • 如果觸摸屏驅動沒有問題的會就會出現以下驅動信息:
  • S3C Touchscreen driver, (c) 2008 Samsung Electronics

    S3C TouchScreen got loaded successfully : 12 bits

    input: S3C TouchScreen as /devices/virtual/input/input0

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    移植Qt4.8.1

    tslib移植及測試

    在采用觸摸屏的移動終端中,觸摸屏性能的調試是個重要問題之一,因為電磁噪聲的緣故,觸摸屏容易存在點擊不準確、有抖動等問題。

      Tslib是一個開源的程序,能夠為觸摸屏驅動獲得的采樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅動的適配層,為上層的應用提供了一個統一的接口。

  • 在https://github.com/kergoth/tslib下載了最新的tslib
  • 為虛擬機里的Linux系統安裝工具:

    sudo apt-get?install autoconf

    sudo apt-get?install automake

    sudo apt-get?install libtool

  • 解壓后編譯

    mv xxx(解壓后名字) tslib ?//名字改為tslib?

    cd tslib

    ./autogen.sh?

    mkdir tmp

    echo?"ac_cv_func_malloc_0_nonnull=yes"?>arm-linux.cache

    ./configure?--host=arm-linux?--cache-file=arm-linux.cache?--prefix=$(pwd)/tmp

    make

    make install

  • 打開tmp目錄,里面有四個文件夾,分別是bin、etc、include、lib。將etc目錄下的ts.conf里的第2行去掉注釋。即:

    # module_raw input

    改為:

    module_raw input

  • 將bin/etc/lib目錄下的文件及連接拷貝到文件系統下對應同名目錄。include目錄估計是編譯應用程序時用的,在此可以不使用
  • 在文件系統的/etc/profile后面添加以下環節變量:

    export USER LOGNAME PS1 PATH

    export TSLIB_TSDEVICE=/dev/event0

    export TSLIB_CALIBFILE=/etc/pointercal

    export TSLIB_CONFFILE=/etc/ts.conf

    export TSLIB_PLUGINDIR=/lib/ts

    export TSLIB_CONSOLEDEVICE=none

    export TSLIB_FBDEVICE=/dev/fb0

  • 重啟開發板執行env命令,查看是否有以下環境變量:

    TSLIB_TSDEVICE=/dev/event0

    USER=id -un

    HOME=/

    TSLIB_FBDEVICE=/dev/fb0

    PS1=[\u@\h \w]#

    TSLIB_PLUGINDIR=/lib/ts

    TSLIB_CONSOLEDEVICE=none

    LOGNAME=id -un

    TERM=vt102

    PATH=/sbin:/usr/sbin:/bin:/usr/bin

    TSLIB_CONFFILE=/etc/ts.conf

    SHELL=/bin/sh

    PWD=/

    TSLIB_CALIBFILE=/etc/pointercal

    這個TSLIB_TSDEVICE=/dev/event0環境變量所指的位置很重要,錯了就會出現

    ts_open:ts_open no such file or directory這樣的錯誤

  • 執行ts_test命令,就會出現以下畫面:

    如果出現-/bin/sh: ts_test: not found這樣的錯誤,說明交叉編譯器里面的庫沒有拷貝進來,對于交叉編譯器4.3.2是arm-none-linux-gnueabi/libc/lib

    執行ts_calibrate命令就會出現以下畫面:

  • 移植qt-everywhere-opensource-src-4.8.1

  • 解壓qt-everywhere-opensource-src-4.8.1,在解壓目錄下我們自己先寫一個autu.sh的腳本,腳本內容如下:
  • ./configure -prefix /usr/local/Qt \
    > -no-qt3support \
    > -qt-zlib \
    > -qt-libtiff \
    > -qt-libpng \
    > -qt-libmng \
    > -qt-libjpeg \
    > -make libs \
    > -nomake examples \ (因為這個是arm版本,所以編譯出來的程序只能在arm開發板上運行,編譯時把這些給去掉,加快編譯過程)
    > -nomake demos \
    > -nomake docs \
    > -no-nis \
    > -no-cups \
    > -no-iconv \
    > -xplatform qws/linux-arm-g++ \
    > -embedded arm \
    > -little-endian \
    > -qt-freetype \
    > -depths 8,16,24,32 \
    > -qt-gfx-linuxfb \
    > -no-gfx-transformed \
    > -no-gfx-qvfb \
    > -no-gfx-vnc \
    > -no-gfx-multiscreen \
    > -qt-kbd-usb \
    > -qt-kbd-tty \
    > -qt-mouse-pc \
    > -no-glib \
    > -qt-mouse-tslib

    -I /usr/local/Tslib/include \

    -L /usr/local/tslib/lib
    make
    make install

    至于這些選項的含義搭建可以直接到Qt官網上去查。

    如果最后出現這個錯誤:

    ./autoconfig.sh: 行 37: -I/usr/local/tslib/include: 沒有那個文件或目錄最后直接用

    export QMAKE_INCDIR=/usr/local/tslib/include/

    ???????? export QMAKE_LIBDIR=/usr/local/tslib/lib/

    這樣的設置經驗證好像只有在arm-linux-gcc-4.4.1的版本中可行

  • 在rootfs/usr/下新建一個文件為qtlib,將/usr/local/Qt/lib下的所有文件復制到qtlib目錄下
  • 設置環境變量:將rootfs/etc/profile里面添加一下環境變量:

    export QTDIR=/usr/qilib

    export QPEDIR=$QTDIR

    export QT_PLUGIN_PATH=/usr/qilib

    export T_ROOT=/usr/tslib

    export PATH=$QTDIR/:$PATH

    export QWS_MOUSE_PROTO=Tslib:/dev/event0

    export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR

    export QT_QWS_FONTDIR=/usr/qilib/fonts

  • 修改啟動設置,修改rootfs/etc/init.d/rcS,添加一下內容:

    source /etc/profile

    echo "" > /dev/tty1

    echo "" > /dev/tty1

    echo "Designer is Pillar !" > /dev/tty1

    echo "Staring touch calibrate..." > /dev/tty1

    echo "" > /etc/tty1

    sleep 1

    /bin/ts_calibrate & #開機運行ts_calibrate

    到這里qt-everywhere-opensource-src-4.8.1就移植完了

  • ?

    嵌入式Qt開發環境搭建

  • 下載Qt集成開發環境

    http://qt.nokia.com/downloads/sdk-linux-x11-32bit-cpp-offline

    執行一下命令安裝:

  • ????chmod u+x Qt_SDK_Lin32_offline_v1_2_en.run ./Qt_SDK_Lin32_offline_v1_2_en.run

    配置集成

  • 開發環境
  • 新建工程,然后:

    最后可以用file 命令查看文件屬性

    將文件拷貝到rootfs目錄下:

    執行:./books

    就可以運行。

  • 修改啟動文件讓開機就運行改文件,在rootf/etc/init.d/rcS文件中添加以下內容:

    if [ -f "$TSLIB_CALIBFILE" ];

    then

    books -qws&

    else

    ts_calibrate

  • 運行應用程序常見文件及錯誤分析:
  • Cannot create semaphore /tmp/qtembedded-root/QtEmbedded-0

    這是說明系統禁止了鎖,可以在內核配置的第一個 generated配置里面找到:

    [*] System V IPC

    選上它,重新編譯,再次燒入內核

  • Illegal instruction

    庫添加錯誤,一定要正確的添加交叉編譯器的庫和qt-everywhere-opensource-src-4.8.1編譯生成的庫

  • Segmentation fault
  • 編譯應用程序的編譯器不對,推薦從內核到文件系統都用同一個交叉編譯器,經驗證

    arm-linux-gcc-4.4.1這個編譯器穩定性不錯

    ?

    ?

    ?

    ?

    這兩天就搞了和Qt相關的這些事,錯不多所有的的東西都是在5天的時間內搞定的,今天早上是6點鐘起來寫文檔,不知道什么時候,我自己變得這么瘋狂。

    還有很多問題沒有解決:

  • 本來想搞個opia的,比如Qt Extended,其實就是Qtopia.我搞的時候才發現:

    Qt Extended是由Nokia的子公司Qt Software(前稱Trolltech)所開發。2009年3月3日,Qt Software宣布Qt Extended不再繼續作為獨立產品而開發,部份功能整合進Qt Framework。別人都終止了,所以就不提供源碼了,網上有很多源碼可以都可以下載,但是大多數都是別人改過的。飛凌的提供的源碼也被他改的亂七八糟,我死都編譯不過去,既然連源碼都找不到,我移植就沒有辦法下手了。

  • 還有一個交叉編譯器的庫的問題。仔細一點你會發現我用的arm-linux-gcc-4.4.1里面有好的的lib還有好的名字是重復的。大家可以看看這篇文章對交叉編譯器的理解http://wenku.baidu.com/view/45f3b6f29e31433239689382.html
  • ?

    ?文章來源http://www.cnblogs.com/zuobaozhu/archive/2012/05/13/2498092.html#_Toc324535492

    總結

    以上是生活随笔為你收集整理的6410移植linux3.3.5的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    91九色蝌蚪视频在线 | 成年人网站免费在线观看 | 狠狠狠色丁香综合久久天下网 | 国产品久精国精产拍 | www婷婷 | av经典在线| 亚洲综合色丁香婷婷六月图片 | 九九九视频精品 | 精品国产1区 | 五月婷婷激情 | 欧美亚洲国产精品久久高清浪潮 | 日本99热 | 九九欧美视频 | 免费看成人av | 亚洲人在线视频 | 91在线看视频 | 在线观影网站 | 能在线观看的日韩av | 国产成人亚洲精品自产在线 | 五月婷婷视频在线 | 性日韩欧美在线视频 | 超碰在线人人 | 天天躁日日躁狠狠 | aaa亚洲精品一二三区 | 国产中文字幕91 | 91桃花视频 | 国产视频资源在线观看 | 亚洲成a人片综合在线 | 天天操夜夜拍 | 日韩久久精品一区 | 欧美在线观看视频一区二区三区 | 96视频免费在线观看 | 日日夜夜天天久久 | 亚洲激情 在线 | 亚洲精品黄色 | 久草 | 亚洲精品av中文字幕在线在线 | 成人av电影免费 | 天天干人人插 | 久久精品99久久久久久 | 九精品| 亚洲成a人片综合在线 | 免费看的黄色片 | 久久久久国产a免费观看rela | 中文字幕在线看视频 | 中文字幕视频观看 | 天天草av | 亚洲人片在线观看 | 日韩精品专区 | 精品久久久久久久久久岛国gif | 日韩精品免费一区二区 | 国产精品com | 亚洲精品乱码久久久久久蜜桃不爽 | 99久久精品电影 | www国产亚洲精品久久麻豆 | 深爱五月激情网 | 日本久久久影视 | 亚洲成人精品在线观看 | 久久在线精品 | 国产精品免费看久久久8精臀av | 人人玩人人添人人澡超碰 | 国产又粗又长的视频 | 国产精品一区电影 | 中文字幕激情 | 夜夜躁天天躁很躁波 | 在线观看v片 | 久久视频中文字幕 | 国产 精品 资源 | 日韩r级电影在线观看 | 久久综合久久综合久久综合 | 五月婷婷丁香网 | 久久视频这里只有精品 | 国产精品精品久久久久久 | 欧美 另类 交 | 视色网站| 日本久久中文字幕 | 国产一级久久 | 亚洲精品系列 | 免费的国产精品 | 99精品免费久久久久久久久 | 久久免费看 | 亚洲天堂va | 色婷婷久久久综合中文字幕 | 狠狠色噜噜狠狠 | 99精品国产免费久久久久久下载 | 少妇自拍av | 亚洲欧美成人在线 | 爱爱av网站 | 99色国产| 天天操夜操视频 | 天堂网在线视频 | 国产精品你懂的在线观看 | 久久综合五月天 | 久草在线在线视频 | a黄色 | 日韩二区在线 | 国产精品av一区二区 | 欧美日韩一级久久久久久免费看 | 国产日本在线播放 | 中文在线亚洲 | 美女天天操 | 久久综合久久综合这里只有精品 | 欧美日韩高清一区二区 | 草久视频在线观看 | 久草视频在线免费看 | 天天操导航 | 激情五月婷婷网 | 天天干夜夜夜 | 97色国产 | av电影在线播放 | 国内精品久久久久久久久 | 中国老女人日b | 亚洲精品久久久久中文字幕m男 | 国产不卡av在线 | 一本一本久久aa综合精品 | 色资源在线| 日韩av影片在线观看 | 在线精品视频免费播放 | 成人99免费视频 | 激情伊人五月天久久综合 | 超碰国产在线 | 欧美一级看片 | 日本精品在线视频 | 97综合视频 | 欧美成人精品欧美一级乱 | 色婷婷激婷婷情综天天 | 亚洲免费观看视频 | 免费精品国产va自在自线 | av一级片 | 免费观看www7722午夜电影 | 日韩av高潮 | 美女视频黄免费的 | 91最新中文字幕 | 国产黄色在线看 | 国产精品高清免费在线观看 | 伊人中文网 | 久久精品男人的天堂 | 精品一区二区亚洲 | 成人福利av | 一本到视频在线观看 | 丁香婷婷激情五月 | 9999精品 | av网站免费线看精品 | 欧美日韩aa | 爱色av.com | 亚洲在线资源 | 激情五月综合 | 五月天色综合 | 东方av免费在线观看 | 中文字幕一区二区三区在线观看 | 国产日韩精品在线观看 | 在线探花| 成年人在线免费看片 | 成人av免费在线 | 国产精品99久久久精品免费观看 | 午夜精品久久久久久久爽 | 狠狠综合 | 国产99黄| 国产视频一二三 | 99久在线精品99re8热视频 | 在线a视频免费观看 | 大片网站久久 | 日韩av图片 | 91精品小视频 | 午夜美女视频 | 日黄网站 | 欧美一级电影片 | 伊人婷婷综合 | 综合激情网 | 久久8精品 | 久久免费国产电影 | 婷婷色伊人 | 中文字幕久久网 | 在线免费观看一区二区三区 | 一区中文字幕在线观看 | 美女视频又黄又免费 | 黄色av影院| 精品999| 综合国产视频 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 91麻豆精品国产91久久久久久 | 色狠狠干| 久久免费99精品久久久久久 | 9ⅰ精品久久久久久久久中文字幕 | 午夜精品视频免费在线观看 | 午夜精品在线看 | 国产成人av一区二区三区在线观看 | 久久极品 | aaa亚洲精品一二三区 | 成人a级黄色片 | 99视频导航| 婷婷亚洲综合五月天小说 | 精品中文字幕在线 | 日日爽夜夜爽 | 欧美日韩破处 | 中文字幕在线观看完整 | 亚洲电影一级黄 | 特级毛片在线 | 一级黄色片在线观看 | 91一区一区三区 | 亚洲欧洲视频 | 久久av在线播放 | 中文字幕色在线 | 一区二区中文字幕在线 | 国产91大片| 日韩精品一区二区电影 | 成人黄色毛片 | 成人av视屏 | 日韩久久视频 | 又大又硬又黄又爽视频在线观看 | 午夜视频99 | 欧美成人影音 | 中文字幕在线专区 | 九九热精品视频在线观看 | 国产精品女人久久久久久 | 亚洲一区二区三区四区精品 | 国产精品网在线观看 | 国产免费观看久久 | 又色又爽的网站 | 亚洲视频综合 | 超碰公开在线观看 | 亚洲专区 国产精品 | 手机av在线网站 | 91精品婷婷国产综合久久蝌蚪 | 欧美日韩高清一区二区 | 超碰在线cao | 在线免费观看涩涩 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 日韩一级网站 | 美女网站视频免费都是黄 | 亚洲国产中文在线 | 99re中文字幕 | 中文字幕日本在线 | 亚洲激情在线视频 | 欧美精品在线观看免费 | 国产一区二区三精品久久久无广告 | 久久a v电影 | 久久久久国产免费免费 | 日韩一级电影在线 | 中文字幕在线播放第一页 | 丰满少妇久久久 | 国产精品乱看 | 天天躁日日 | 97超碰总站 | 日韩动漫免费观看高清完整版在线观看 | 黄色av免费看 | 91九色国产| 午夜精品一区二区三区在线视频 | 99免费在线观看 | a级片韩国 | 日韩黄色在线电影 | 1000部国产精品成人观看 | 亚洲dvd| 久久免费久久 | 国产精品美女久久久久久久久 | 国产精品久久久久久99 | 日韩高清一区 | 久久国产精品99久久久久久老狼 | 三级黄色网络 | 国产精品第十页 | 亚洲一区av | 99re热精品视频 | 亚洲视频在线视频 | 夜夜夜夜夜夜操 | 久久国产影院 | 久久99这里只有精品 | 91精品伦理 | 国产在线欧美日韩 | 中文伊人 | 碰超在线97人人 | 亚洲少妇自拍 | 最新日韩电影 | 人人爽人人乐 | 国产99久久精品一区二区永久免费 | 日韩专区av | 国产成人三级三级三级97 | 五月花激情 | 亚洲午夜精品福利 | 欧美a√在线| 久久精品一区二区三区视频 | 国产视频一区二区在线 | 亚洲精品18p| 精品国产免费人成在线观看 | 1024手机基地在线观看 | 色欧美日韩 | 国产黄免费 | 9999在线 | 国产18精品乱码免费看 | 国产在线观看h | 国产小视频在线看 | 国产在线欧美 | 亚洲精品久久久久久久不卡四虎 | 日韩黄在线观看 | 国产成人精品国内自产拍免费看 | 国产小视频国产精品 | 毛片www| 狠狠狠色丁香婷婷综合久久88 | av成人免费在线观看 | 色吊丝在线永久观看最新版本 | 欧美激情视频一区二区三区免费 | 国产精品午夜免费福利视频 | 久久久黄视频 | 超黄视频网站 | 婷婷国产在线观看 | 日韩黄色在线观看 | 蜜桃传媒一区二区 | 日日夜夜人人天天 | 国产九色视频在线观看 | 久久综合日| 天天做天天爱天天爽综合网 | 欧美视频xxx | 麻豆91在线播放 | 一区二区三区电影在线播 | 日韩午夜视频在线观看 | 久久开心激情 | 免费看的黄色片 | 亚洲午夜精品久久久久久久久 | 亚洲激情 在线 | 97色狠狠| 国内精品视频一区二区三区八戒 | 午夜在线免费观看 | 亚洲精品美女久久17c | 国产精品一区二区久久久久 | 亚洲电影影音先锋 | 丁香激情五月 | 麻豆视频在线免费观看 | 日韩亚洲国产中文字幕 | 国产一级特黄电影 | 欧美激情片在线观看 | 热九九精品 | 999色视频 | 国产视频在线一区二区 | 热re99久久精品国产66热 | 国产精品黄色在线观看 | 国产精品久久久久久久婷婷 | 国产黄大片在线观看 | 精品成人免费 | 国内精品美女在线观看 | 国产精品99免费看 | 草久草久| av黄免费看| 国产精品99久久久久久久久 | 日韩高清av在线 | 亚洲免费a | 欧美不卡在线 | 国产经典三级 | 日韩av中文在线观看 | 国产福利精品在线观看 | 在线观看自拍 | 精品国产一区二区三区噜噜噜 | 麻豆免费在线视频 | 蜜臀aⅴ国产精品久久久国产 | 天天插狠狠干 | 国产99久久久国产精品 | www.久久久.com | 夜夜夜 | 国产99亚洲 | 波多野结衣在线中文字幕 | 午夜三级理论 | 精品视频免费久久久看 | 日韩免费三级 | 天天干天天爽 | 久草视频在线免费 | 欧美另类高清 | 日韩欧美不卡 | 九色最新网址 | 久久伊人精品天天 | 免费高清影视 | 九九爱免费视频在线观看 | 天天操狠狠操网站 | 欧美色黄 | 免费看污黄网站 | 婷婷丁香国产 | 久久免费精彩视频 | 亚洲黄色在线观看 | 色综合久久久久 | 日韩国产精品毛片 | 激情五月综合网 | 九九热国产 | 国产自在线观看 | 狠狠色狠狠色终合网 | 国产最新在线 | 久草在线视频国产 | 视频在线观看入口黄最新永久免费国产 | 天天天天爱天天躁 | 精品国产乱码一区二区三区在线 | 久久爱影视i| 国产成人久久av | 欧美日韩国产一二三区 | 91成人免费电影 | 国产爽视频 | 亚洲成av人片一区二区梦乃 | 四虎永久视频 | 91视频在线免费看 | 欧美日韩性生活 | 久久免费美女视频 | 日韩精品一区二区三区三炮视频 | 一本一道波多野毛片中文在线 | 亚洲精品高清在线 | 99在线免费观看视频 | 丁香六月久久综合狠狠色 | 亚洲国产一区在线观看 | 欧美另类性 | 国产原创在线 | 欧美黑人巨大xxxxx | 2022国产精品视频 | 日韩免费在线视频 | 最近更新好看的中文字幕 | 天堂麻豆 | 黄色一级大片在线免费看国产一 | 欧美另类美少妇69xxxx | 蜜臀av在线一区二区三区 | 国产成人亚洲精品自产在线 | 亚洲成人黄色在线观看 | 美女网站久久 | 欧美一区二区在线免费观看 | 视频二区在线 | 国产裸体永久免费视频网站 | 色播六月天 | 亚洲综合网站在线观看 | 美女视频黄频 | 天天爽综合网 | 亚洲精品乱码久久久久久9色 | 久久99精品久久久久久清纯直播 | 久久精视频 | 国产在线传媒 | 国产精品扒开做爽爽的视频 | 国产视频不卡一区 | 色婷婷久久久综合中文字幕 | 久久优| 国产色网站 | 国产玖玖精品视频 | 国产99精品在线观看 | 五月天婷婷综合 | 天天操月月操 | 在线观看片 | 亚洲毛片久久 | 久草视频资源 | 久青草国产在线 | 天堂网av在线 | 中文字幕一区二区三区四区久久 | 日韩婷婷 | 国产精品久久久久久久毛片 | 久久精品资源 | 久久99操| 日韩中文字幕国产 | 一色屋精品视频在线观看 | 免费日韩 精品中文字幕视频在线 | 国产精品成人免费 | 欧美一级视频在线观看 | 欧美国产日韩在线观看 | 亚洲年轻女教师毛茸茸 | 一区二区三区www | 国产精品亚 | 国产精品 日韩 | 久久99热国产 | 久久成人国产精品 | 97成人免费| 久久国产精品免费一区二区三区 | 国产99久久久国产精品免费看 | 亚洲欧美日韩精品久久久 | 区一区二区三在线观看 | 九九交易行官网 | 丁香花在线观看免费完整版视频 | 视频在线91| 91视频在线播放视频 | 五月天婷婷综合 | 中文十次啦 | 日女人免费视频 | 亚洲精品国产精品久久99热 | 久久99精品波多结衣一区 | 免费下载高清毛片 | av在线永久免费观看 | av中文字幕在线播放 | 国产成人精品不卡 | 香蕉网站在线观看 | 亚洲欧美日韩不卡 | 欧美日韩大片在线观看 | 亚洲电影在线看 | 天天综合天天做天天综合 | 日本99精品 | 免费网站色 | 国产一区视频在线 | 91视频大全 | 99情趣网视频 | 特级a老妇做爰全过程 | 999国内精品永久免费视频 | 精品在线视频一区二区三区 | 91av视屏 | 日韩黄色中文字幕 | 久久久久国产免费免费 | 日本三级香港三级人妇99 | 91福利在线观看 | 99色在线观看视频 | 天天爽夜夜爽精品视频婷婷 | 欧美夫妻性生活电影 | 一级一级一片免费 | 在线草 | 成人毛片一区 | 丁香国产视频 | 伊人亚洲综合网 | 久久精品国产99国产 | 日本九九视频 | 国产精品粉嫩 | 91精品国产99久久久久 | 久久99国产精品二区护士 | 久久精品在线 | 亚洲 欧洲av| 国产精品人人做人人爽人人添 | 岛国一区在线 | aa级黄色大片 | 日韩精品电影在线播放 | 亚洲a在线观看 | 亚洲精品综合一区二区 | 成人免费亚洲 | 亚洲精品在线网站 | 久久艹艹 | 一级黄毛片| av成人在线播放 | 色综合天天色综合 | 免费大片av | 天天艹天天操 | 欧美少妇xxx | 亚洲九九九在线观看 | 久久精品久久久久 | 四虎在线免费观看 | 99精品在线观看视频 | 日韩伦理片hd | 特黄特色特刺激视频免费播放 | 操久久免费视频 | av在线最新 | 天天搞夜夜骑 | 九九热99视频 | 亚洲欧洲精品久久 | 国内精品久久久久 | 国产精品综合久久久 | 九九精品久久久 | 干天天 | 婷婷四房综合激情五月 | 国产一区不卡在线 | 久久久高清视频 | 久久久久久国产一区二区三区 | 国产免费二区 | 久久免费的精品国产v∧ | 亚洲精品成人av在线 | 久久精品爱爱视频 | 91精品国产99久久久久久红楼 | 91亚洲网 | 日韩欧美高清一区二区三区 | 日韩精品高清视频 | 亚洲精品久久久久久久不卡四虎 | 免费看毛片在线 | 激情综合网五月婷婷 | 久久激情影院 | 国产精品久久久999 国产91九色视频 | 免费的成人av | 91.精品高清在线观看 | 久久精品理论 | 久久精品一区二区三区四区 | 免费观看v片在线观看 | 亚洲精品成人网 | 97色在线观看 | 在线免费黄色片 | 人人精品 | 国产视频在线播放 | 91精品在线麻豆 | 激情视频在线观看网址 | 成人免费91 | 亚洲精品久久久久999中文字幕 | 成人超碰在线 | 精品乱码一区二区三四区 | 成人一级片免费看 | 欧美亚洲一级片 | 欧美a级成人淫片免费看 | 91香蕉视频黄色 | 97色噜噜 | 91热这里只有精品 | 波多野结衣电影一区二区 | 久久国产高清 | 国产午夜激情视频 | 成人欧美日韩国产 | 超碰在线人人97 | 00av视频| 天天爽天天射 | 久久香蕉国产精品麻豆粉嫩av | 国产高清av在线播放 | 777奇米四色 | 久久午夜国产 | 国产在线观看xxx | 成人91av | 91精品小视频 | 欧美福利片在线观看 | 国产亚洲精品久久久久久电影 | 99久久日韩精品免费热麻豆美女 | 天堂黄色片 | 日日操日日插 | 亚洲国产日韩在线 | 亚洲干视频在线观看 | 国产精品va在线观看入 | 欧美日韩视频在线观看免费 | 天天干天天干天天射 | 中文字幕一区二区三区久久蜜桃 | 麻豆成人小视频 | 在线观看国产区 | 色婷婷六月 | 婷久久 | 91九色在线视频观看 | 国产亚洲婷婷免费 | 黄色a一级视频 | 最新日韩在线 | 99草在线视频| av中文在线观看 | 特级片免费看 | 韩国精品在线观看 | 日韩精品一区二区三区外面 | 国产成人精品久久亚洲高清不卡 | 日韩视频在线不卡 | 亚洲国产激情 | 在线日韩 | 久久久麻豆视频 | 天堂视频中文在线 | 天堂av在线7 | 日韩免费视频 | 国产精品18毛片一区二区 | 久草视频资源 | 亚洲精品99久久久久中文字幕 | 黄色亚洲在线 | 久久99热国产 | 国产99久久久国产精品免费看 | 手机av资源 | 日韩欧美高清视频在线观看 | 国产尤物一区二区三区 | 韩日电影在线免费看 | 国产免费中文字幕 | 久久久受www免费人成 | 久久人操 | 综合伊人av | 99re视频在线观看 | 国产精品video爽爽爽爽 | 人人爽人人爽人人 | 国产小视频你懂的在线 | 一区二区中文字幕在线播放 | www.黄色网.com| 精品国内自产拍在线观看视频 | 免费高清国产 | 在线国产能看的 | 草久热| 国产色视频一区 | a√资源在线 | 夜夜骑日日操 | 麻豆精品国产传媒 | 午夜久久美女 | 碰碰影院 | 五月婷婷一区二区三区 | 99久久婷婷国产综合亚洲 | 亚洲成人资源在线 | 乱男乱女www7788 | 欧美精品日韩 | 99久久国产免费看 | 一区二区三区在线观看中文字幕 | 国产精品高潮呻吟久久av无 | 免费久久网 | 亚洲视频 中文字幕 | 国产日韩在线看 | 久久激情视频 久久 | 8x成人免费视频 | 丁香激情五月婷婷 | 日本高清xxxx | 亚洲一区二区高潮无套美女 | 深爱五月激情网 | 国产99久久久精品 | 欧美天堂久久 | 狠狠色噜噜狠狠狠狠 | 精品国产一区二区三区四区在线观看 | www天天干 | 在线观看网站黄 | 日韩毛片在线免费观看 | 人人干在线 | 日韩欧美在线中文字幕 | 日韩久久精品一区 | 97视频精品 | 九九热只有这里有精品 | 久久久亚洲国产精品麻豆综合天堂 | 亚洲视频在线播放 | 97在线成人 | 夜夜夜影院 | 蜜桃视频在线观看一区 | 精品久久免费看 | 九九热视频在线 | 国产色视频123区 | 五月天电影免费在线观看一区 | 日韩资源在线播放 | 亚洲欧美日韩精品久久奇米一区 | 99久久国产免费,99久久国产免费大片 | 最近中文字幕免费大全 | 天天操天天射天天添 | 久草在线免费色站 | 国产精品色婷婷 | 久久精品久久精品久久 | 婷婷激情av | 国产精品免费看 | 日韩中文字幕亚洲一区二区va在线 | 深夜免费福利网站 | 日韩在线观看小视频 | 波多野结衣精品视频 | 69国产精品成人在线播放 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 天天摸日日摸人人看 | 久久久久日本精品一区二区三区 | 精品在线观看一区二区 | 欧美日韩中文在线 | 国产视频精品免费 | 日本三级吹潮在线 | 国产精品一区二区久久 | 久久久免费在线观看 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | av在线电影网站 | 最近中文字幕完整高清 | 97在线免费视频观看 | 深爱五月网| 五月色综合 | 国产精品久久久久久久久久久免费 | 三级av小说| 国产精品99久久久久久宅男 | 久久久久久久精 | 香蕉视频久久 | 久久五月天婷婷 | zzijzzij亚洲成熟少妇 | 欧美91精品| av青草| 97精品国产97久久久久久春色 | 亚洲最新av在线网址 | 91.dizhi永久地址最新 | 在线观看中文字幕网站 | 人人草在线观看 | 99视频精品| 91视频一8mav | 中文字幕在线国产 | 天天摸夜夜添 | 人人干,人人爽 | 免费在线观看的av网站 | 亚洲精品国 | 亚洲成av人片在线观看香蕉 | 久久久蜜桃一区二区 | 久久综合加勒比 | 日韩精品在线观看视频 | 最新99热| 久久99久久99免费视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久九九国产精品 | 特及黄色片| 在线播放日韩av | 欧美在线观看禁18 | 狠狠色狠狠色综合日日92 | 亚洲成av片人久久久 | 999一区二区三区 | 日韩肉感妇bbwbbwbbw | 婷婷午夜天 | 亚洲精品美女久久久久 | 热热热热热色 | 久久最新网址 | 亚洲在线色 | 在线观看色网 | 国产91av视频在线观看 | 久久精品一区二区国产 | 日韩免费电影网站 | 伊人夜夜 | 日韩综合一区二区 | av色综合| 免费一级片在线观看 | 久久亚洲精品国产亚洲老地址 | 精品国产伦一区二区三区免费 | 999国内精品永久免费视频 | 国产一区二区三区网站 | 天天综合在线观看 | 中文字幕色网站 | 久久一二三四 | 亚洲免费永久精品国产 | 美女国产网站 | 91av在线视频免费观看 | 国产精品专区h在线观看 | 国产美女被啪进深处喷白浆视频 | 国产一级二级av | 日本精品中文字幕在线观看 | 国产精品久久久久一区二区三区共 | 91视频成人免费 | 欧美天天综合 | 国产免费国产 | 天天操天天操一操 | 成年人在线视频观看 | 国产最新91 | 又粗又长又大又爽又黄少妇毛片 | 九九免费观看视频 | 国产精品久久久久久久电影 | 亚洲激情在线观看 | 久久综合九色综合97婷婷女人 | 成人91在线观看 | 欧美国产高清 | 在线观看中文字幕 | 国产视频欧美视频 | 亚洲精品在线网站 | 欧美亚洲xxx | 天天综合导航 | 国产日产精品久久久久快鸭 | 天天操导航 | 欧美亚洲国产日韩 | 国产黄色在线看 | 日韩二区三区 | 久久国产手机看片 | 国产在线播放一区 | 亚洲国产精品成人精品 | wwxxxx日本 | 色噜噜在线观看视频 | 91麻豆精品国产自产在线 | 日韩在线短视频 | 天天弄天天操 | 在线观看精品视频 | 久久国产欧美日韩精品 | 2019中文字幕网站 | 夜夜骑天天操 | 久久国产午夜精品理论片最新版本 | 99久久9 | 午夜视频导航 | 69绿帽绿奴3pvideos | 波多野结依在线观看 | 99精品欧美一区二区三区黑人哦 | 在线观看一级视频 | 久久成人视屏 | 97av色| 亚洲成av人片一区二区梦乃 | 国产91全国探花系列在线播放 | 国产一级视频在线观看 | 成人一区二区三区中文字幕 | 日韩精品一区二区在线观看视频 | 国产夫妻av在线 | 91精选| 久久久精品在线观看 | 国产在线黄 | 精品在线观看国产 | 日韩在线激情 | .国产精品成人自产拍在线观看6 | 81精品国产乱码久久久久久 | 久久午夜免费视频 | 免费看的国产视频网站 | 免费观看一区二区三区视频 | av丝袜制服 | a级免费观看 | 欧美精品一区在线发布 | 亚洲亚洲精品在线观看 | 在线观看视频一区二区 | 久草在线91 | 91桃色免费观看 | 久一在线 | 福利在线看片 | 欧美日韩另类在线 | 2023av在线| 婷婷六月综合亚洲 | 精品免费99久久 | 久久综合狠狠综合久久狠狠色综合 | 久久精品免费播放 | 色亚洲激情 | 天天操夜| 国产精品免费视频观看 | 一级免费av| 国产亚洲精品久久久久久移动网络 | 国产精品免费视频观看 | 国产精品麻豆果冻传媒在线播放 | 国产精品第一页在线 | 欧美一级性生活片 | 韩国av免费在线观看 | 免费在线观看av的网站 | 国产麻豆果冻传媒在线观看 | 久久久久久久影视 | 日韩理论在线视频 | 色视频 在线 | 91黄色成人 | 国产小视频在线看 | 婷婷干五月 | 国产精品日韩在线播放 | 五月婷婷,六月丁香 | 黄色电影在线免费观看 | 欧美日韩综合在线 | 欧美久草在线 | 免费在线日韩 | 奇米777777| 黄色软件视频大全免费下载 | 欧美性色黄 | 日本巨乳在线 | 欧美xxxx性xxxxx高清 | 免费高清男女打扑克视频 | 在线观看一级 | 麻豆视频免费播放 | 免费网址在线播放 | 精品99免费视频 | 欧美天天干 | 97在线精品 | 黄色三级免费看 | 91精品久久久久久久久久久久久 | 中文字幕乱码电影 | 在线中文字幕一区二区 | 在线成人中文字幕 | 免费观看黄 | 国产精品一区在线观看你懂的 | 久久情网 | 91av在| 人人讲| 91片黄在线观看 | 日韩欧美有码在线 | 日日操网| 中文字幕4 | 日韩在线观看网站 | 天堂在线一区二区 | 欧美日韩国产在线精品 | 一本一本久久a久久精品牛牛影视 | 国产高清专区 | 91精品国产成人观看 | 国产情侣一区 | 中文国产在线观看 | 免费精品人在线二线三线 | 国产最新在线视频 | 黄色免费网| www四虎影院| 精品一区免费 | 亚洲日本欧美 | 国产色爽 | 国产亚洲精品久久 | 亚洲国产精品人久久电影 | 日韩色区 | 在线高清一区 | 中文字幕在线观看一区二区 | 亚洲综合在线播放 | 久久激情五月激情 | 久久国产一区二区 | 成人毛片一区 | 九九欧美视频 | 色视频在线免费 | 日批网站免费观看 | 成人免费xxx在线观看 | 97视频一区| 亚洲精品福利在线 | 黄色免费观看网址 | 最近中文字幕在线播放 | 五月天精品视频 | 婷婷视频在线观看 | 国产手机视频在线播放 | 欧美老女人xx | 99在线热播 | 99麻豆久久久国产精品免费 | 国产视频精品久久 | 国产伦理一区 | 夜夜爽夜夜操 | 中文字幕成人av | 国产精品在线看 | 久久精品精品 | 美女视频a美女大全免费下载蜜臀 | 天天舔夜夜操 | 精品一区二区三区在线播放 | 91最新网址| www.色婷婷 | 国产精品一区二区免费 | 欧美精品一区二区性色 | 日韩久久久久久久久久久久 | 色网址99 | 欧美精品乱码久久久久久 | 色av资源网| 欧美一级日韩免费不卡 | 97av色 | 亚洲一区av| 国产精品久久一区二区三区, | 国产午夜精品免费一区二区三区视频 | 黄色av网站在线免费观看 | 精品国产一区二区三区男人吃奶 | 亚洲精品午夜久久久久久久久久久 | 午夜久久精品 | 欧美另类xxx | 成人污视频在线观看 | 久久精品欧美一区二区三区麻豆 | 国产精品久久久久久久久久久不卡 | 91激情视频在线播放 | 日韩精品视频网站 | 伊人手机在线 | 免费三级大片 | av黄免费看 | 欧美国产日韩久久 | 国产一区在线视频 | 精品99免费视频 | 三级在线视频播放 | 国产精品久久久久久麻豆一区 | 欧美亚洲国产精品久久高清浪潮 | 激情五月色播五月 | 亚洲精品在线观看视频 | 亚洲精品国产精品国自产观看 | 国产主播99 | 91日韩在线视频 | 亚洲一级国产 | 在线日本看片免费人成视久网 | 天天操天天操天天操天天操天天操天天操 | 国产黄色电影 |