不然你要我怎么样

彪悍的代码不需要注释

Archive for the ‘Ubuntu’ tag

Ubuntu上构筑iPhone OS3.1.2开发环境(toolchain)

3 comments

在建立编译环境前,请先下载好所需的SDK和Firmware文件:

我的Linux HOST环境为Ubuntu 9.10(Karmic Koala),在这里利用iphonedevonlinux建立toolchain。

首先配置好编译所需的HOST环境,在终端中输入以下命令:

sudo apt-get install  automake bison cpio flex g++ g++-4.3 g++-4.3-multilib gawk gcc-4.3 git-core gobjc-4.3 gzip libbz2-dev libcurl4-openssl-dev libssl-dev  make mount subversion sudo tar unzip uuid uuid-dev wget xar zlib1g-dev

获取iphonedevonlinux源代码:

$ mkdir -p ~/iphone/toolchain
$ cd ~/iphone/toolchain
$ svn checkout http://iphonedevonlinux.googlecode.com/svn/trunk/ ./

目前checkout out的svn版本为83。

拷贝SDK,firmware文件到相应目录:

$ mkdir -p ~/iphone/toolchain/files/firmware
$ mv ./iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg ~/iphone/toolchain/files/
$ mv ./iPhone1,2_3.1.2_7D11_Restore.ipsw ~/iphone/toolchain/files/firmware/

手动设置密匙,注释掉toolchain.sh中下载密匙的代码:

$ gedit ~/iphone/toolchain/toolchain.sh
unzip -d "${TMP_DIR}" -o "${FW_FILE}" "${FW_RESTORE_SYSTEMDISK}"

#if [ -z "$DECRYPTION_KEY_SYSTEM" ] ; then
#echo "We need the decryption key for `basename $FW_RESTORE_SYSTEMDISK`."
#echo "I'm going to try to fetch it from $IPHONEWIKI_KEY_URL...."
#
#IPHONEWIKI_KEY_URL=$( wget --quiet -O - $IPHONEWIKI_KEY_URL | awk '
#BEGIN { IGNORECASE = 1; }
#/name="'${DEVICE}'/  { found_phone=1; }
#/.*'${TOOLCHAIN_VERSION}'.*/ && found_phone { found_firmware=1; }
#/.*href=.*/ && found_firmware { while(sub(/href=|"/,"", $3));; print $3; exit;}
#')

#DECRYPTION_KEY_SYSTEM=`wget --quiet -O - "http://www.theiphonewiki.com"$IPHONEWIKI_KEY_URL | awk '
#BEGIN { IGNORECASE = 1; }
#/.*VFDecrypt.*/  { print $3;}
#'`

DECRYPTION_KEY_SYSTEM="a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6"

if [ ! "$DECRYPTION_KEY_SYSTEM" ] ; then

我们可以利用

$ sudo ./toolchain.sh all

自动编译toolchain,但容易出现很多问题。这里我们采用手动一步步编译:

$ sudo./toolchain.sh headers
$ sudo./toolchain.sh firmware
$ sudo./toolchain.sh darwin_sources
$ sudo./toolchain.sh build

一般来说前三步都不会出现什么问题。(有问题请留言)

最后一步toolchain.sh build中会报错,这时打开~/iphone/toolchain/toolchain/bld/cctools-iphone/make.log,搜索”error:”,在报错的文件中加上:

#include <stdio.h>
#include <stdlib.h>

以下是我修改的文件:
ArchiveReader.hpp MachOReaderDylib.hpp MachOWriterExecutable.hpp OpaqueSection.hpp ld.cpp Options.cpp

重新build即可。注意不要重新checkout代码,不然又要重改一遍。。。

如果出现”It seems like the toolchain built!”,说明toolchain build成功。

之后可以利用apps下的代码测试下toolchain,一般会遇到两个问题:

1. 找不到编译器 arm-apple-darwin9-gcc

在~/.bashrc中添加环境变量即可

$ sudo gedit ~/.bashrc

增加export PATH=~/iphone/toolchain/toolchain/pre/bin:$PATH

2. 提示”ld: library not found for -lobjc”

拷贝以下目录到编译器库中:

mv ~/iphone/toolchain/toolchain/sys/System ~/iphone/toolchain/toolchain/sys/System2
mv ~/iphone/toolchain/toolchain/sys/usr/lib ~/iphone/toolchain/toolchain/sys/usr/lib2
cp ~/iphone/toolchain/sdks/iPhoneOS3.1.2.sdk/System ~/iphone/toolchain/toolchain/sys/
cp ~/iphone/toolchain/sdks/iPhoneOS3.1.2.sdk/usr/lib ~/iphone/toolchain/toolchain/sys/usr/

参考文章:iphonedevonlinux installation

iPhone开发入门(3)—Linux上构筑iPhone OS3.1.2开发环境

转载请注明: 转载自不然你要我怎么样
本文链接地址: Ubuntu上构筑iPhone OS3.1.2开发环境(toolchain)

Written by xiangmocheng

四月 19th, 2010 at 4:57 下午

Posted in Linux

Tagged with ,

Ubuntu下使用svn下载和上传内核源代码

leave a comment

(1) 安装svn

sudo apt-get install subversion

(2) 从库里checkout 最新kernel

svn checkout https://10.136.7.4/svn/Android/SW/6410/urbetter/kernel –username benjamin –password aa123456 –no-auth-cache –non-interactive

(3) 查看本地文件状态

svn status

(4) 查看本地文件和库里的区别

svn diff FILE_PATH

(5) 将修改确认到库里 (建议make distclean之后再上传)

svn commit

如果是新增文件,需要先添加

svn add PATH

如果要将本地新文件和改动的文件全部上传至库里,可以使用

svn status | grep “?” | xargs svn add

(6) 查看帮助

svn help

转载请注明: 转载自不然你要我怎么样
本文链接地址: Ubuntu下使用svn下载和上传内核源代码

Written by xiangmocheng

十二月 7th, 2009 at 4:31 下午

Posted in Linux

Tagged with ,

Ubuntu常用设置

one comment

1. 为Firefox添加下载工具 MultiGet

安装下载工具 MultiGet

$ sudo apt-get install multiget

集成下载工具到FireFox里,使用FlashGot插件, 点击这里下载flashgot最新版,直接拖进FireFox浏览器里即可加载。

FlashGot插件的设置

(1). 打开Flashgot选项,点击“常规”标签页。

(2). 因为下载管理器里面是没有Multiget的,所以点击“新增”,填入Multiget。

(3). 选择程序/usr/bin/multiget

(4). 在参数模板中填写:

[url=URL] [refer=REFERER]

注意,字符是半角的,两个元素之间有一个空格。
(5).勾上添加到邮件菜单

2. 输入法

下载scim-pinyin包并进行安装。

然后用im-switch -c设定默认的语言引擎,或者在系统->首选项->SCIM输入法设置里修改。

安装完要重启(或者logout)。

9.04中用ibus替换scim:

(1). 删除scim

$ sudo apt-get remove scim && sudo apt-get autoremove

如果删除了中文支持就再装一遍

sudo apt-get install language-support-fonts-zh

(2). 加入ibus的PPA源

ibus1.1.0:

$ echo ‘deb http://ppa.launchpad.net/ibus-dev/ppa/ubuntu jaunty main’ >> /etc/apt/sources.list

ibus1.2.0 for 9.04:

$ echo ‘deb http://ppa.launchpad.net/ibus-dev/ibus-1.2-jaunty/ubuntu jaunty main’ >> /etc/apt/sources.list

$ sudo apt-get update

如果出现签名验证错误:

W: GPG签名验证错误: http://ppa.launchpad.net intrepid Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 5A9BF3BB9D1A0061

把后八位拷贝一下来,替换掉下面命令中的后八位数字

sudo apt-key adv –recv-keys –keyserver keyserver.Ubuntu.com 9D1A0061

(3). 安装ibus

$ sudo apt-get install ibus-gtk ibus-pinyin python-xdg
$ im-switch -s ibus -a default

(4). 如果不能正常使用 iBus,将下面代码加入到 $HOME/.bashrc中,并重新登录桌面。

export IBUS_PREFIX=/usr
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

3. 桌面快捷方式以及图标

可以添加桌面快捷方式,也可以添加面板快捷方式。

系统中的图标文件(包括主题图标)主要在/usr/share/icons/以及~/.icons里。这些图标主要都是svg格式,通过eog可以转换为png、jpg等等常用格式。

4. 让Ubuntu桌面显示回收站:

使用快捷键Alt+F2打开运行窗口。键入gconf-editor,打开Gnome配置编辑器,定位到apps\nautilus\desktop。

在右侧找到名为trash_icon_visible的选项,打上勾。其他的桌面图标类似。

Read the rest of this entry »

转载请注明: 转载自不然你要我怎么样
本文链接地址: Ubuntu常用设置

Written by xiangmocheng

十二月 4th, 2009 at 5:15 下午

Posted in Linux

Tagged with