当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [讨论]转个dopod699运行linux的帖子。如有更多人参与进来就好了!!!
帖子发表于 : 2008-08-13 13:51 

注册: 2008-04-20 8:51
帖子: 146
送出感谢: 0 次
接收感谢: 0 次
本贴为O2 XDA IIi安装Linux系统的,同样适用于DOPOD 699等相同硬件配置的手机。


前段时间本想研究O2 XDA IIi的WM5或WM6 ROM,但是未果,国外站点也没有太多的资料,无意中发现国外有些论坛在讨论PPC上安装Linux系统的话题,很感兴趣。既然咱们的699现在不能刷WM5或WM6,那就再NB一点有什么不可以呢?咱们直接就玩Linux。

(也许有些DX已经实现699刷WM5或6,只是我还没看到699的相关帖子,只是知道修改XIP可以,但是没试成功,哪位知道请提供相关资料,万分感谢!)

本教程所提到的启动工具和镜像以及PPC上的Linux系统,在本帖最后提供下载。
如果想要定制编译内核,PC机上用到的Linux操作系统请自行安装或下载镜像文件在Windows下用Vmware虚拟机安装。
由于工作需要,本人使用的是RedHat Linux Server 5,其实任何一个支持U盘和可以访问互联网的Linux系统都可以,甚至是Windos系统都可以,只是编译环境和软件的问题,Windos下编译环境不成问题,只是缺少制作ext2分区和将tar.gz压缩包解压到ext2分区的软件,我相信这样的软件是一定可以找到的,只是为了方便,本人就以Linux系统为例,毕竟手机系统也是Linux,一家人说话方便嘛,至于Windows系统下操作会遇到的一些问题我们稍后再说。
按此帖中的方法在其它PPC系统上也同样可以根据实际情况安装Linux,但是如果安装在其它型号硬件系统上需要重新编译image,需要的朋友可以把手机型号发上来。有空我会把image放上。

好了,开始吧,

先来看一下我们的699配置:

网络频率:GSM/GPRS;900/1800/1900MHz
重 量 :190 克
尺寸/体积:130×69×19mm
屏幕参数:65536色TFT彩色屏幕;240×320像素,3.5英寸
操作系统:Windows Mobile 2003 Second Edition for Pocket PC
处理器:Intel PXA272 520MHz
这么强的配置怎么会没有WM5或WM6呢?大多数的理由是硬件配置的问题。
不同硬件配置的手机安装同一个Linux也是不一定可行的,应用程序上的当然没问题,但是涉及到系统启动中加载的驱动,要么选择兼容(稳定性稍差),要么选择跳过(功能缺失),否则,系统是无法启动的。
想要在其它基于Windows系统的手机上安装Linux,需要针对不同的硬件配置编译内核,对于WM系统就是要重新开发驱动。Linux也正是在这样的时候才能显示出来他开源的优势。

先说安装系统,咱们最后再说定制系统和Windows下制作系统遇到的一些问题。
1.下载启动软件:boot.zip
2.下载系统软件:system.tar.bz2
3.将系统用SPB BACKUP备份到SD卡,因为手机会硬启。
4.将SD卡备份,也就是把SD卡上所有内容复制到台式机硬盘,因为需要重新为SD卡分区。
5.找一台Linux系统的电脑,或者在Windows上安装Vmware虚拟机安装一个Linux,系统要支持U盘。
6.将SD卡插入读卡器,连接Linux,在Vmware下需要选择VM-Removable Device-USB Device。
7.为SD卡分区。当SD卡连接上以后Linux会认出USB设备,
如果系统硬盘是IDE的,SD卡应该为/dev/sda
如果硬盘时SATA的,SD卡应该为/dev/sdb
某些读卡器也许会认出有多个盘,那就执行
ls/dev/sd* -l
看看到底是哪个,如果看到/dev/sda1,/dev/sda2之类的则代表第一个分区和第二个分区。
找到SD卡所代表的设备后(此处就拿SD卡为/dev/sdb)执行
fdisk /dev/sdb
输入p回车,再次看一下磁盘信息是不是SD卡。如果不是就按q退出,以免误删分区。如果是SD卡,那就继续按以下输入为SD卡分区。
o
回车
n
回车
p
回车
1
回车
不敲任何东西
直接回车
以下为分区大小,请先看说明再输入。
+10M
回车(以上数字是本人为128M的测试卡分的第一个分区,+10M为想要为SD卡划出的第一个分区的大小,如果是2G的卡,完全可以写+1800M,Linux分区用150M足够了)
以下为创建第二个分区
n
回车
p
回车
2
回车
什么都不敲
连续按两次回车
t
回车
1
回车
6
回车
w
回车
mkdosfs空格/dev/sdb1
回车
mke2fs空格/dev/sdb2
回车
至此,分区工作已经完成并已经为SD卡的分区建立了文件系统格式。

8.接下来需要将刚才下载回来的文件解压缩到SD卡上
首先,需要将新为SD卡的分的两个区加载到系统中。
我们建立两个目录
mkdir /mnt/sdfat
mkdir /mnt/sdext2
然后将SD卡的分区加载上去。
mount –t fat /dev/sdb1 /mnt/sdfat
mount /dev/sdb2 /mnt/sdext2
tar zxvf /dev/root/Desktop/boot.zip /mnt/sdfat
tar jzxvf /dev/root/Desktop/system.tar.bz2 /mnt/sdext2
至此,手机系统已经安装成功了。
把SD卡拿下来插回手机,然后在手机上执行SD卡里的boot.exe,系统会重启,使用SD卡上的系统启动,这样就启动Linux了。

尽情感受一下吧。速度快,功能多。
附件:
1.启动软件:boot.zip http://www.infoxmarket.com/tools/boot.zip
2.系统软件:system.tar.bz2 http://www.infoxmarket.com/tools/system.tar.bz2
3.Windows系统下读取Linux分区的软件这个可以读写EXT2,EXT3分区,比较NB!下载地址 http://www.infoxmarket.com/tools/Ext2Fsd-0.45.exe
4.Linux的zImage镜像,与附件1中的大同小异,只删除一行无用代码。下载地址 http://www.infoxmarket.com/tools/zImage

说明一下:
此Linux无法使用GSM和WIFI功能,无法接打电话,无法使用WIFI上网,红外和蓝牙使用正常。系统重启时需要硬启。由于此Linux只有键盘驱动,没有699的按键驱动,所以进入Linux后,按键无法使用。
本人在699上研究此系统纯粹出于个人爱好,提升PPC的使用价值。所有信息及资源全部免费提供。

Linux下的编译方法,后边慢慢再贴。
本帖旨在抛砖引玉,欢迎感兴趣的朋友一起研究,开发GSM和WIFI功能。

本贴旨在抛砖引玉,欢迎有兴趣的朋友一起研究。


附件:
0.jpg
0.jpg [ 114.39 KiB | 被浏览 1624 次 ]

9.jpg
9.jpg [ 109.3 KiB | 被浏览 1615 次 ]

8.jpg
8.jpg [ 119.48 KiB | 被浏览 1608 次 ]

7.jpg
7.jpg [ 111.5 KiB | 被浏览 1601 次 ]

6.jpg
6.jpg [ 95.69 KiB | 被浏览 1598 次 ]

5.jpg
5.jpg [ 115.31 KiB | 被浏览 1329 次 ]

4.jpg
4.jpg [ 101.8 KiB | 被浏览 1330 次 ]

3.jpg
3.jpg [ 111.59 KiB | 被浏览 1328 次 ]

2.jpg
2.jpg [ 131.34 KiB | 被浏览 1329 次 ]

1.jpg
1.jpg [ 570.25 KiB | 被浏览 1329 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-08-13 13:56 

注册: 2008-04-20 8:51
帖子: 146
送出感谢: 0 次
接收感谢: 0 次
本帖照片全部是本人699安装LINUX的真实效果,并非PS,人品还没那么差。

在这里我把可以安装的机型列出来,某些机型WIFI和GSM功能可以正常使用。手头没那么多测试机,没有一一试过。
以下可安装的机型全部出自国外论坛,并非本人猜测:
696 696i 699 700 818 828 838 D900 及同配置不同名的手机如QTEK 2020i,O2 XDAIIi等。

本帖旨在抛砖引玉,希望699的机友一起来努力提升699的价值。有兴趣的朋友欢迎交流。


在这里发两个网站:
http://handhelds.org/
http://www.xda-developers.com

这些网站都有关于PPC安装LINUX的帖子,在某个贴我还曾经见到过PPC上的IPHONE,但是后来没再找到那贴,也许是插件,也许真的是IPHONE移植,希望大家看到后跟贴上图。

由于本人是699的忠实机友,但那些网站大部分并不是针对699的硬件配置,所以本人自己翻译并且实践后将心得体会写在这里。

目前版本的LINUX确实不支持GSM和WIFI,本人正在努力中。但是一个人的力量永远是渺小的,希望广大LINUX爱好着一同努力,这并不是为了699,而是为了所有的PPC,所以我们的努力都是值得的。

http://www.infoxmarket.com


699的LINUX从功能上来讲和WINDOWS的差不多,但是软件比WINDOWS少得多。
699的LINUX从速度上来说比WINDOWS快一些,个人感受,只是打开一个2M的WORD文档试验了一下而已。

其实装LINUX并不会比699现有的系统有什么本质飞跃。只是换一种操作风格而已,感受一下LINUX下的软件设计,增长一下LINUX的知识,我更看重的是在LINUX下的开源,很多软件可以自己定制。



不需要刷机,但是要给机器做好备份,因为有可能会硬启。

这个系统是装在卡上的,然后用引导程序引导启动。

无论出现任何问题,硬启一下就行了。




LINUX 多普达699的GSM驱动源代码
/*
* GSM driver for HTC Alpine
*
* Copyright (C) 2006, Philipp Zabel
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive for
* more details.
*/

#include <linux/module.h>
#include <linux/err.h>
#include <linux/delay.h>
#include <linux/platform_device.h>

#include <asm/io.h>
#include <asm/mach-types.h>

#include <asm/arch/hardware.h>
#include <asm/arch/pxa-regs.h>
#include <asm/arch/serial.h>

int suspending;

/* FIXME: asic5 needs its own driver */

extern void htcalpine_cpld_egpio_set_value(int gpio, int val);

void *asic5_map;

void asic5_egpio_set_value(int gpio, int val) {
int bits = 1<<gpio;
static int egpio;

printk ("asic5_egpio_set_value(%d, %d)\n", gpio, val);

if (val)
egpio |= bits;
else
egpio &= ~bits;

__raw_writew(egpio & 0xffff, asic5_map+0x0);
__raw_writew(egpio>>16, asic5_map+0x2);
}

void asic5_phone_on(void)
{
printk ("asic5_phone_on\n");

__raw_writew((__raw_readw(asic5_map+0x28) | 0x3), asic5_map+0x28);
__raw_writew((__raw_readw(asic5_map+0x04) | 0x1), asic5_map+0x04);

__raw_writew((__raw_readw(asic5_map+0x28) | 0xc), asic5_map+0x28);
__raw_writew((__raw_readw(asic5_map+0x04) & 0xfffd), asic5_map+0x04);

__raw_writew((__raw_readw(asic5_map+0x28) | 0x30), asic5_map+0x28);
__raw_writew((__raw_readw(asic5_map+0x04) | 0x4), asic5_map+0x04);

__raw_writew((__raw_readw(asic5_map+0x28) | 0xc0), asic5_map+0x28);
__raw_writew((__raw_readw(asic5_map+0x04) & 0xfff7), asic5_map+0x04);
}


static void alpine_gsm_reset(void)
{
printk ("GSM Reset\n");

GPSR(36) = GPIO_bit(36);
pxa_gpio_mode(36 | GPIO_OUT);

pxa_gpio_mode (10 | GPIO_IN);
pxa_gpio_mode (108 | GPIO_IN);

asic5_egpio_set_value(0, 0); /* DTR? */

asic5_egpio_set_value(11, 0); /* magician: pxa gpio 11 */
GPCR(87) = GPIO_bit(87);

/* stop display to avoid interference? */
GPCR(GPIO74_LCD_FCLK) = GPIO_bit(GPIO74_LCD_FCLK);

htcalpine_cpld_egpio_set_value(15, 1); /* GSM_POWER */
asic5_egpio_set_value(22, 1); /* ?? */

msleep (150);
GPSR(GPIO74_LCD_FCLK) = GPIO_bit(GPIO74_LCD_FCLK);
msleep (150);
GPCR(GPIO74_LCD_FCLK) = GPIO_bit(GPIO74_LCD_FCLK);

asic5_egpio_set_value(11, 1);

/* FIXME: disable+reenable 86, is this OK? */
GPCR(86) = GPIO_bit(86); // ??
GPSR(86) = GPIO_bit(86); // GSM_RESET
asic5_egpio_set_value(9, 1); /* magician: pxa gpio 26 */
msleep(150);
GPCR(86) = GPIO_bit(86);
msleep(10);

pxa_gpio_mode(36 | GPIO36_FFDCD_MD); /* or just GPIO_IN? */

asic5_phone_on();
}

void alpine_gsm_off(void)
{
printk ("GSM Off\n");

htcalpine_cpld_egpio_set_value(1<<15, 0); /* GSM_POWER */
}

static void alpine_phone_configure (int state)
{
switch (state) {

case PXA_UART_CFG_PRE_STARTUP:
printk( KERN_NOTICE "alpine configure phone: PRE_STARTUP\n");
if (!suspending)
alpine_gsm_reset();
asic5_egpio_set_value(1<<11,0); /* ready to talk */
break;

case PXA_UART_CFG_POST_STARTUP:
printk( KERN_NOTICE "alpine configure phone: POST_STARTUP\n");
break;

case PXA_UART_CFG_PRE_SHUTDOWN:
printk( KERN_NOTICE "alpine configure phone: PRE_SHUTDOWN\n");
if (suspending)
asic5_egpio_set_value(1<<11, 1); /* shut up, please */
else
alpine_gsm_off();
break;

default:
break;
}
}

static void alpine_phone_suspend (struct platform_device *dev, pm_message_t state)
{
suspending = 0 /* should be 1, but we need CPLD irq support first, anyway */;
// return 0;
}

static void alpine_phone_resume (struct platform_device *dev)
{
suspending = 0;
// return 0;
}

struct alpine_phone_funcs {
void (*configure) (int state);
void (*suspend) (struct platform_device *dev, pm_message_t state);
void (*resume) (struct platform_device *dev);
};

static int alpine_phone_probe (struct platform_device *dev)
{
struct alpine_phone_funcs *funcs = (struct alpine_phone_funcs *) dev->dev.platform_data;

printk ("alpine_phone_probe\n");

asic5_map = ioremap (PXA_CS1_PHYS + 0x02000000, 0x1000);

/* configure phone UART */

funcs->configure = alpine_phone_configure;
funcs->suspend = alpine_phone_suspend;
funcs->resume = alpine_phone_resume;

return 0;
}

static int alpine_phone_remove (struct platform_device *dev)
{
struct alpine_phone_funcs *funcs = (struct alpine_phone_funcs *) dev->dev.platform_data;

iounmap(asic5_map);

funcs->configure = NULL;
funcs->suspend = NULL;
funcs->resume = NULL;

return 0;
}

static struct platform_driver phone_driver = {
.probe = alpine_phone_probe,
.remove = alpine_phone_remove,
.driver = {
.name = "htcalpine-phone",
},
};

static __init int alpine_phone_init(void)
{
if (!machine_is_htcalpine())
return -ENODEV;
printk(KERN_NOTICE "alpine Phone Driver\n");

return platform_driver_register(&phone_driver);
}

static __exit void alpine_phone_exit(void)
{
platform_driver_unregister(&phone_driver);
}

module_init(alpine_phone_init);
module_exit(alpine_phone_exit);

MODULE_AUTHOR("Philipp Zabel");
MODULE_DESCRIPTION("HTC Alpine GSM driver");
MODULE_LICENSE("GPL");




GSM已经调好了可以打电话,短信还没顾上研究,目前有待解决的问题还有
1、进入LINUX系统后一直没办法关机,每次都得拔电硬启,很郁闷,正在努力。。。
2、无线和红外还不能用,少了两个很强大的功能,正在努力。。。
3、蓝牙虽然能发现硬件,可是没法正常使用,正在努力。。。

这个LINUX系统经过测试发现很好用,执行起来速度也挺快。现在可能有新版本了,没时间上网,前边提供过几个网站,有兴趣的去看看吧。

奥运期间估计会比较忙,更没时间研究了。慢慢来吧,有兴趣的顶起来!!!


附件:
02.jpg
02.jpg [ 127.98 KiB | 被浏览 1330 次 ]

03.jpg
03.jpg [ 106.79 KiB | 被浏览 1328 次 ]

04.jpg
04.jpg [ 115.33 KiB | 被浏览 1327 次 ]

05.jpg
05.jpg [ 139.1 KiB | 被浏览 1327 次 ]

06.jpg
06.jpg [ 112.91 KiB | 被浏览 1327 次 ]

07.jpg
07.jpg [ 94.42 KiB | 被浏览 1330 次 ]

08.jpg
08.jpg [ 105.43 KiB | 被浏览 1328 次 ]

09.jpg
09.jpg [ 128.85 KiB | 被浏览 1327 次 ]

000.jpg
000.jpg [ 108.6 KiB | 被浏览 1328 次 ]

001.jpg
001.jpg [ 121.85 KiB | 被浏览 1327 次 ]

页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-08-13 13:57 

注册: 2008-04-20 8:51
帖子: 146
送出感谢: 0 次
接收感谢: 0 次
晕,论坛发附件的顺序竟然是倒着的。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-08-14 15:08 

注册: 2007-11-02 16:31
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
支持搂主,楼主精神可嘉。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-08-14 17:26 

注册: 2008-08-13 16:10
帖子: 24
地址: 广东
送出感谢: 0 次
接收感谢: 0 次
:P 支持楼主。虽然看不懂。。但我觉得楼主精彩好啊。。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-08-15 11:47 
头像

注册: 2008-08-01 7:29
帖子: 171
送出感谢: 0 次
接收感谢: 0 次
我想要一个能让ppc与linux系统的电脑进行数据同步的软件有没有?我用u盘模式仅仅是数据的传送!并不能进行同步!麻烦楼主帮我做一个吧!


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-08-15 11:54 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
不能打电话啊? 最好把那句放最前面吧?


_________________
关注我的blog: ε==3


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-08-15 13:29 

注册: 2008-04-20 8:51
帖子: 146
送出感谢: 0 次
接收感谢: 0 次
bones7456 写道:
不能打电话啊? 最好把那句放最前面吧?

已经可以打电话了


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-08-15 15:05 

注册: 2008-08-13 16:10
帖子: 24
地址: 广东
送出感谢: 0 次
接收感谢: 0 次
:lol:


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-08-15 22:43 
头像

注册: 2007-03-17 1:24
帖子: 603
地址: 湖南长沙
送出感谢: 0 次
接收感谢: 0 次
楼上的在做广告吧


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-08-18 15:59 

注册: 2008-08-18 0:45
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
我考!!!真的假的 。。。 我用的是o2 xda life - -!
我是有这心没这胆 。。。
不过能不能在 ppc上也来个双系统???嘿嘿
我的ppc内置rom有1g的空间。。。不知道可不可行


页首
 用户资料  
 
12 楼 
 文章标题 : Re: [讨论]转个dopod699运行linux的帖子。如有更多人参与进来就好了!!!
帖子发表于 : 2009-07-24 15:57 

注册: 2008-03-23 9:28
帖子: 32
送出感谢: 0 次
接收感谢: 0 次
多谢楼主~

先mark下~

也发个网站 http://anytux.org/index.php

:em01


页首
 用户资料  
 
13 楼 
 文章标题 : Re: [讨论]转个dopod699运行linux的帖子。如有更多人参与进来就好了!!!
帖子发表于 : 2009-07-26 0:41 

注册: 2008-09-12 12:32
帖子: 261
送出感谢: 2
接收感谢: 13
真不错,顶LZ!

我现在用的黑莓8800,用着还好,不过做为一个 Linux爱好者, 想尝试下。不知道可不可以试下类似的方法?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译