ã¿ããããã«ãAndroidã«èªèãããã¾ã§
ã¿ããããã«ãä¹ãããã¨æã£ãåæ©ã¯ã
Android-Embedded-Japan(Googleã°ã«ã¼ã)ã®beaglebordとお散歩できますãèªãã§ããã
æè¿ããããåãã¨ããã¾ã§å°éããã®ã§æé ãã¾ã¨ãã¾ãã
大ããåãã¦ã3ã¤ã®ä½æ¥ãããã¾ããããããå
人ã®ã¾ã¨ããµã¤ããªã©
åèã«ããªãã試è¡é¯èª¤ãã¾ããã
- BealgeBoardåãAndroidã®æ§ç¯
- USB Displayã®æ¥ç¶
- ã¿ããããã«ã®ãã©ã¤ãmodify
BealgeBoardåãAndroidã®æ§ç¯
ããã¤ãæ¹æ³ãããã¨æãã¾ããWebããããã¦æ¯è¼çç°¡åã«è¦ã¤ããã®ã¯
- emblinuxã®è§£èª¬ãã¼ã¸(Android-Eclair porting guide to BeagleBoard - labs.embinux.org)
- solaããã®android-development-environment
ã®2ã¤ã§ãã
emblinuxã§è©¦ãã¦ã¿ã(失æ)
emblinuxã®ã»ãã¯ãAndroid 1.6(Donut)ã§è©¦ããã¨ãã¯åé¡ãªãã£ãã®ã§ããã
Eclairã§ã¯ãã¾ãåãã¾ããã§ããã
å
·ä½çã«ã¯Androidã®ãã¼ãæã«
Cannot load library: load_library[1051]: Library '/system/lib/libwebcore.so' not found
libwebcoreããªãã¨æããã¾ã*1 ã
ç§ã®å ´åã¯ããã§emblinuxããåå¾ããã®ãããããã¦ã
ããçæ¹ãsolaããã®ãã¼ã¸ã«å¾ã£ã¦Android 2.1r2ããã«ããã¾ããã
Android2.1r2ã®uImageã¨RFSãä½æ(æå)
solaããã®ãã¼ã¸ã§è©³ç´°ã解説ããã¦ãã¾ãã®ã§(æçãªæ
å ±ããããã¨ããããã¾ãï¼)
ããã§ã¯å¤å°ãæé ã®è¦ç¹ã¨æ³¨æç¹ã«è§¦ããã®ã¿ã§ãã
ä»åã®æ¹æ³ã§ã¯Androidã®ã½ã¼ã¹ã³ã¼ãã
repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.1_r2
ãããLinux Kernelã®ã¿emblinuxããåå¾ãã¾ãã
詳ããã¯android-development-environmentã§è§£èª¬ããã¦ãã¾ãã
ãæé 4.kernelããã«ããããã§ã
ä¸é¨ã³ã¼ãã«èª¤ããããã¾ããä¸è¨ã®éããåé¿ãã¦ãã ããã
$ cd $ANDROID/kernel
$ wgwt http://android-development-environment.googlecode.com/files/sola_omap3_beagle_android_defconfig-eclair-20100213
$ mv sola_omap3_beagle_android_defconfig-eclair-20091123 arch/arm/configs/sola_omap3_beagle_android_defconfig
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- sola_omap3_beagle_android_defconfig
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage
$ cp $ANDROID/kernel/arch/arm/boot/uImage $ANDROID/vendor/sola/beagle/
ããã§ã3è¡ç®ã®ãã¡ã¤ã«åãç°ãªã£ã¦ãã¾ã(å®è¡æã«ã¨ã©ã¼åãã®ã§ãããæ°ã¥ãã¨æãã¾ã)ã
$ mv sola_omap3_beagle_android_defconfig-eclair-20100213 arch/arm/configs/sola_omap3_beagle_android_defconfig
å¾ããã¹ã¯è§£èª¬éãã(é¢åã§ã)éãã¦ããå¿ è¦ãããã¾ãã
æé ã®éä¸ã§ãBeagleBoardç¨ããããå½ã¦ãéã«ã$ANDROIDãå©ç¨ãã¦ãã¾ãã
$ANDROIDããªãã¨Pathãéããªãã¨æããã¦ãã¾ãã¾ãã(ã¨ãããæããã)
ã¨ãããããæ®éã«ãã«ãï¼Android2.1ã®åä½ç¢ºèªã¾ã§å
ã«ããã®ããããããã¾ã*2ã
USBãã£ã¹ãã¬ã¤ã®æ¥ç¶
GeekleBoardããã®BeagleboardでUSB-LCDなAndroid
ãåèã«ããã¦ããã ãã¾ãããã¿ããããã«ãä¸è¦ãªå ´åãGeekleBoardããç´¹ä»ã®æ¹æ³ã§æçãã«ãã§ãã¾ãã
ã¡ãªã¿ã«ç§ãå©ç¨ããUSBãã£ã¹ãã¬ã¤ãç´¹ä»ããã¦ããSANSUNG SyncMaster U-70ã§ãã
å½å
ã§ã¯ä¹åä¹é»æ©ãªã©ã§åãæ±ããããã¾ããã(価格コム)
ã»ãã®USBãã£ã¹ãã¬ã¤ã§ã¯ãã©ãããã°ããã®ããæ°ã«ãªãã¾ãâ¦*3ã
USBãã£ã¹ãã¬ã¤ã®ããªãã«ã¼(ã¡ãã¤ã)対ç
ä¸è¨æé ã«å¾ãããã«ãããå ´åãUSBãã£ã¹ãã¬ã¤ã§ã®æç»ãã¡ãã¤ãã¾ãã
ãã¬ã¼ã ãããã¡å¦çã«åå ããããä¿®æ£ãããã¯
ビーグル板の冒険ããã«ã¦公開*4ããã¦ãã¾ãã
â»ä¸è¨ä¿®æ£ãããã¯Donut対å¿ã³ã¼ãã§ããã®ã¾ã¾Eclairã«é©ç¨ã§ãããã¯ä¸æã§ã
ä»åã¯ãå®å
¨ã®ããæåãã¼ã¸ãã¾ããã
ã¡ãªã¿ã«Armadillo-500FXã§ãä¼¼ããããªåé¡ãçºçãã¦ããããã§ã
ããªãªã¢ã³ããµã¼ãã¹ããã®サイトã«ãArmadilloåãã®ä¿®æ£ããããå
¬éããã¦ãã¾ãã
ããªãã«ã¼å¯¾çã®ä¸èº«
ãã¼ã°ã«æ¿ã®åéºããã®ä¿®æ£ããã(kernel.patch)ã«ã¯ãã¿ããã¹ã¯ãªã¼ã³ããã¤ã¹ã®è¿½å ãªã©ãä¸ç·ã«æ ¼ç´ããã¦ãã¾ãã
ããªãã«ã¼å¯¾çã®ã¿å¿
è¦ãªå ´åã¯ãä¸è¨ã®å¯¾å¿ãå®æ½ãã¦ãã ãã(å¹æ確èªæ¸ã¿)
kernel/drivers/video/displaylink/displaylink-fb.c
static struct fb_ops displaylink_fb_ops = { .fb_release = displaylink_fb_release, .fb_blank = displaylink_fb_blank, .fb_check_var = displaylink_fb_checkvar, - .fb_set_par = displaylink_fb_setpar, + //.fb_set_par = displaylink_fb_setpar, .fb_pan_display = displaylink_pan_display, };
drivers/video/fbmem.c
fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var) struct fb_fix_screeninfo *fix = &info->fix; unsigned int yres = info->var.yres; int err = 0; - +/* ã³ã¡ã³ãã¢ã¦ã if (var->yoffset > 0) { if (var->vmode & FB_VMODE_YWRAP) { if (!fix->ywrapstep || (var->yoffset % fix->ywrapstep)) @@ -864,7 +864,7 @@ fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var) var->yoffset + yres > info->var.yres_virtual || var->xoffset + info->var.xres > info->var.xres_virtual) return -EINVAL; - +*/ if ((err = info->fbops->fb_pan_display(var, info))) return err; info->var.xoffset = var->xoffset;
ã¿ããããã«ã®è¿½å
ä»åå©ç¨ããã¿ããããã«ã¯
- ã¿ããããã«ã³ã³ããã¼ã©ã¼ BER241-ND(CONTROLLER TOUCH SCRN USB RS232)2,878
- 7ã¤ã³ãã¿ããããã« BER255-ND 5,130
ããããdigikeyããã§è³¼å
¥ãã¾ããã
ä»åãããã¯ããビーグル板の冒険ããã«ã¦公開ããã¦ãã¾ãã
usbtouchscreen.cãããã®å¤æ´ç¹ãåèã«ãªãã¾ãã大å¤ãä¸è©±ã«ãªãã¾ãm(_ _)m
ã«ã¼ãã«å´ã®å¤æ´ã«ãªãã®ã§ãå¤æ´ãããåãã«ããå¿
è¦ã«ãªãã¾ãã
å¿ããã¡ãªã®ã§æ³¨æã
usbtouchscreen.cã®å¤æ´å®äºå¾ãsolaããã®æé ã«å¾ãã°
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- sola_omap3_beagle_android_defconfig
ã®å¾ã«
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- menuconfig
CUIã®ã³ã³ãã£ã°ã¡ãã¥ã¼ã«å ¥ãã¾ãã
Device Drivers > Input Device support > Touchscreens > USB Touchscreen Driver > GenelarTouch Touchscreen device support
ã§ãUSB Touchscreen Driverã¨GenelarTouch Touchscreen device supportãæå¹ã«ãã¦ãã ããã
<*> USB Touchscreen Driver [ ] eGalax, eTurboTouch CT-410/510/700 device support ・・・çç¥ï½¥ï½¥ï½¥ [*] GenelarTouch Touchscreen device support
Exitããããå度uImageãä½æãã¾ã
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage
å·®åã®ã¿ãã«ããã¦ãããã®ã§ååãããããªãæ©ãã¯ãã§ãã
ããã¾ã§ããã¨ã¿ããããã«ãç¹ãã ãã§ãã*5ã
TouchScreenã³ã³ããã¼ã©ã®ã¤ãªãããã§ãããããªã人ããããããããªãã®ã§
ç»åãä¹ãã¦ããã¾ã(ç»åã¯USBæ¥ç¶ã®å ´å)
ã¡ãªã¿ã«ä»åå©ç¨ããã¿ããã¹ã¯ãªã¼ã³ã³ã³ããã¼ã©ã¼ã¯WindowsPCã«ç´æ¥æãã°ãèªèãã¦ä½¿ãã¾ãã*6ã
èªä½Androidããããããã
*1:ãªãã§ä¸ç·ã«makeãããªããã ã・・・
*2:ãã¨ã§ã¿ããããã«ãæ¥ç¶ããéã«ãã«ã¼ãã«ã®åãã«ããå¿ è¦ã«ãªãã¾ã
*3:Linuxã®Kernelã¾ããã¯ä¸å¾æãªã®ã§ããã©ãã«ãé¿ããããã«æ©ç¨®ããããã¾ãã
*4:kernel.patchã®ä¸é¨ãããªãã«ã¼å¯¾çã«è©²å½ãã¾ã
*5:ã¡ãªã¿ã«ç§ã¯20æé以ä¸ããã£ã¦å°éãã¾ãã・・・orz
*6:åä½ç¢ºèªããã ããªããã¡ãããããã