• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 一起来做mini2440的Android的根文件系统 复制链接 | 浏览器收藏 | 打印
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
楼主  发表于: 2009-09-01 21:20

 一起来做mini2440的Android的根文件系统

一直以来都在用比人的Android文件系,想自己做一个
S3C2440属于armv4类型的CPU,freeruner项目的Android介绍了如何从源码来编译
Android系统,详细步骤如下面的网站:
http://wiki.openmoko.org/wiki/Android_porting
目前状态:编译PASS,但启动后不会出现logo,一直处于黑屏状态
Android的粉丝们,如果感兴趣的话,git代码后,看是否能成功的做好这个系统,
有问题的话QQ49121715交流
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
1楼  发表于: 2009-09-02 10:27
我捣鼓了很久了,android在跑,但就是没有UI
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
2楼  发表于: 2009-09-02 12:01
git下的freeruner android已经在原生打好了ARMV4的补丁,也就是benno大侠的补丁。
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
3楼  发表于: 2009-09-08 11:58
不知道怎么样改才能出现图形界面,实际上从logcat看,系统是在运行的
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
4楼  发表于: 2009-09-08 19:47
版主到底是牛人,关于触摸屏校准的问题请看这篇博客:
http://wuzhenzhi.21ic.org/user1/2537/archives/2009/61231.html
shinelk大侠的校准引入了tslib,实际上的谷歌手机是没这个的,这篇blog介绍在驱动程序时怎么处理坐标的
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
5楼  发表于: 2009-09-08 20:20
步骤如下:
$ mkdir ~/mydroid
$ cd ~/mydroid
repo init -u git://git.koolu.org/freerunner/platform/manifest.git -b koolu-1.0
repo sync
make TARGET_PRODUCT=freerunner
编译不过时安装过下面的 fakeroot、iblzo2-dev
编译PASS后,在mydroid运行下面的脚本,脚本如下:

#./cp_android_OS release
#!/bin/sh

ANDROID_OUT=./out
ANDROID_DEVICE=freerunner
EXPORT_ROOT=`pwd`/export

Usage()
{
    echo "Usage: $0 release|debug"
}

CopyAndroid()
{
    if [ -d $1 ]
    then
        echo "Copying from $1 to $EXPORT_ROOT..."
        sudo rm -rf $EXPORT_ROOT/
        sudo mkdir -p $EXPORT_ROOT/root

        # Copy the image...
        cd $1
        tar cf - root | (cd $EXPORT_ROOT; sudo tar xf -)
        tar cf - system | (cd $EXPORT_ROOT/root; sudo tar xf -)

        # Change owner and permissions...
        cd $EXPORT_ROOT
        sudo chown -R root:root root
        sudo chmod -R 777 root
    else
        echo "$1 does not exist!"
    fi
}

if [ $# != 1 ]
then
    Usage
else
    case $1 in
        release)
        CopyAndroid $ANDROID_OUT/target/product/$ANDROID_DEVICE/
        ;;
        debug)
        CopyAndroid $ANDROID_OUT/debug/target/product/$ANDROID_DEVICE/
        ;;
        *)
        Usage
    esac
fi
这样在mydroid/export下出现/root文件夹
就是制作好的根文件系统size为44.3M

修改下面的init.rc文件:
除去所有mout命令,
    # Open up access to GSM interface
    #chown radio /dev/s3c2410_serial0

    # Open up access to GPS interface
    #chmod 666 /dev/s3c2410_serial1
    注释掉这两行,否则不能输入命令
内核启动信息:                                                      
Warning: unable to open an initial console.                                    
init: cannot open '/initlogo.rle'                                              
init: cannot find '/system/bin/playmp3', disabling 'bootsound'                  
init: cannot find '/system/bin/flash_image', disabling 'flash_recovery'        
sh: can't access tty; job control turned off      
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
6楼  发表于: 2009-09-08 20:25
$ mkdir ~/mydroid
$ cd ~/mydroid
repo init -u git://git.koolu.org/freerunner/platform/manifest.git -b koolu-1.0
repo sync
make TARGET_PRODUCT=freerunner
编译不过时安装过下面的 fakeroot、iblzo2-dev
编译PASS后,在mydroid运行下面的脚本,脚本如下:

#./cp_android_OS release
脚本内容如下:
#!/bin/sh

ANDROID_OUT=./out
ANDROID_DEVICE=freerunner
EXPORT_ROOT=`pwd`/export

Usage()
{
    echo "Usage: $0 release|debug"
}

CopyAndroid()
{
    if [ -d $1 ]
    then
        echo "Copying from $1 to $EXPORT_ROOT..."
        sudo rm -rf $EXPORT_ROOT/
        sudo mkdir -p $EXPORT_ROOT/root

        # Copy the image...
        cd $1
        tar cf - root | (cd $EXPORT_ROOT; sudo tar xf -)
        tar cf - system | (cd $EXPORT_ROOT/root; sudo tar xf -)

        # Change owner and permissions...
        cd $EXPORT_ROOT
        sudo chown -R root:root root
        sudo chmod -R 777 root
    else
        echo "$1 does not exist!"
    fi
}

if [ $# != 1 ]
then
    Usage
else
    case $1 in
        release)
        CopyAndroid $ANDROID_OUT/target/product/$ANDROID_DEVICE/
        ;;
        debug)
        CopyAndroid $ANDROID_OUT/debug/target/product/$ANDROID_DEVICE/
        ;;
        *)
        Usage
    esac
fi
这样在mydroid/export下出现/root文件夹
就是制作好的根文件系统size为44.3M

修改下面的init.rc文件:
除去所有mout命令,
    # Open up access to GSM interface
    #chown radio /dev/s3c2410_serial0

    # Open up access to GPS interface
    #chmod 666 /dev/s3c2410_serial1
    注释掉这两行,否则不能输入命令
内核启动信息:                                                      
Warning: unable to open an initial console.                                    
init: cannot open '/initlogo.rle'                                              
init: cannot find '/system/bin/playmp3', disabling 'bootsound'                  
init: cannot find '/system/bin/flash_image', disabling 'flash_recovery'        
sh: can't access tty; job control turned off      

#logcat -d>/error
#cat error
由于log信息太长,我放在附件里,请kasim大侠帮忙看看,我没折了,好像很多用koole android都遇到和我类似的问题,不知道你是不是
修改代码了,或者是有了别的版本的android代码
[ 此帖被jeefjiang在2009-09-08 20:31重新编辑 ]
描述:logcat
附件: jeef.rar (6 K) 下载次数:43
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
7楼  发表于: 2009-09-09 12:19
恩,谢谢了,不过不能显示UI应该和音频驱动没什么关系,我用带有音频驱动的内核一样会出现这个现象。请问你的Linux内核编译和文件系统的编译时分开进行的吧
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
8楼  发表于: 2009-09-09 14:35
恩,那是当然的,
Zygote forks a new VM instance for the System Service process and starts the service。
我觉得UI能看到,应该启动Surface Flinger
Just do it
级别: 侠客
UID: 2754
精华: 4
发帖: 66
金钱: 2435 两
威望: 873 点
贡献值: 40 点
综合积分: 212 分
注册时间: 2008-12-07
最后登录: 2016-04-13
9楼  发表于: 2009-09-13 19:16
感谢kasim大侠,cupcake的分支用现在终于已经可以看到图像界面了
不过又出现了一个新的问题
正如你所说,启动后自动关机,参考blog对cupcake代码做如下更改:

Android 系统启动时检测电源状态,若检测不到 battery level
  则自动把battery level设置为 0 ,并自动关机,无法进入系统。
  为调试方便,绕过电源管理。

  为解决此问题需修改
  frameworks/base/services/jni/com_android_server_BatteryService.cpp
      
   1、void setIntField(JNIEnv* env, jobject obj, const char* path,
jfieldID fieldID)函数中置 jint value = 1;

       2、在android_server_BatteryService_update 中 置电池状态为Full,
Good :
        
    if (readFromFile(BATTERY_STATUS_PATH, buf, SIZE) > 0)
        env->SetIntField(obj, gFieldIds.mBatteryStatus,
gConstants.statusFull);

    if (readFromFile(BATTERY_HEALTH_PATH, buf, SIZE) > 0)
        env->SetIntField(obj,
gFieldIds.mBatteryHealth,gConstants.healthGood);

    if (readFromFile(BATTERY_TECHNOLOGY_PATH, buf, SIZE) > 0)
        env->SetObjectField(obj, gFieldIds.mBatteryTechnology,
env->NewStringUTF("1"));
更改后不再关机:UI显示:
NO SERVICES
5:53 AM
03-26-2000
CONNECT YOUR CHARGER
SCREEN LOCKED
PRESS MENU TO UNLOCK
我按K2键,屏幕依然锁着,进入不了HOME
用的内核时android版主的内核,kasim大侠说要选
power supply class驱动,这个是内核config选项吗?
好像找不到
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go