2010年12月10日 星期五

Macbuntu for 10.04

  • download macbuntu

wget https://downloads.sourceforge.net/project/macbuntu/macbuntu-10.04/v2.2/Macbuntu-10.04.tar.gz

  • 解壓縮

tar zxvf Macbuntu-10.04.tar.gz


  • 安裝

cd Macbuntu-10.04
. install.sh

選擇語系的時候  請選擇Latin (不要選擇Chinese)
否則安裝完會出現中文正常  英文亂碼的現象



Reference:
http://www.ubuntuhome.com/make-ubuntu-look-like-mac-osx-in-seconds-using-macbuntu.html
http://tieba.baidu.com/f?kz=912480315

透過Facebook分享

2010年12月9日 星期四

修改啟動服務init.rc並只產生ramdisk.img

  • set baudrate 38400 to ttymxc2


參考此篇 (應該說是照抄 ><) -

serial programming


#include <stdio.h>
#include <termios.h>
#include <fcntl.h>

void setparameter(void)
{
int tty;
struct termios tio;

tty = open("/dev/ttymxc1",O_RDWR | O_NOCTTY | O_NONBLOCK);
tcgetattr(tty,&tio);

tio.c_cflag = B38400 | CS8 | CLOCAL | CREAD;
tcflush(tty,TCIFLUSH);
tcsetattr(tty,TCSANOW,&tio);

close(tty);
}


int main(int argc,char *argv[])
{
FILE *fd;
int i;

printf("set ttymxc1 baudrate for rdr3300\n");

setparameter();

return 0;
}




makefile

ARCH=arm
CROSS_COMPILE=/home/nelsonchung/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
CC=$(CROSS_COMPILE)gcc
LD=$(CROSS_COMPILE)ld


all:
$(CC) uart2gps.c -o uart2gps -static

clean:
rm uart2gps

有賴Auron學長之前的教學
現在會build給imx51使用的程式

  • build application 

make

把程式放到root裡面

checko說 需要修改init.rc

/device/fsl/imx5x/init.rc 與 /out/target/product/imx51_bbg/root/init.rc相同

所以修改/device/fsl/imx5x/init.rc 

在build的時候 應該會將imx5x下的init.rc copy到root folder下


init.rc裡面

發現有這樣子的內容

# create basic filesystem structure
    mkdir /data/misc 01771 system misc
    mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
    mkdir /data/misc/bluetooth 0770 system system
    mkdir /data/misc/keystore 0700 keystore keystore
    mkdir /data/misc/vpn 0770 system system
    mkdir /data/misc/systemkeys 0700 system system
    mkdir /data/misc/vpn/profiles 0770 system system
    # give system access to wpa_supplicant.conf for backup and restore
    mkdir /data/misc/wifi 0770 wifi wifi
    chmod 0770 /data/misc/wifi
    chmod 0660 /data/misc/wifi/wpa_supplicant.conf
    mkdir /data/local 0771 shell shell
    mkdir /data/local/tmp 0771 shell shell
    mkdir /data/data 0771 system system
    mkdir /data/app-private 0771 system system
    mkdir /data/app 0771 system system
    mkdir /data/property 0700 root root

    # create dalvik-cache and double-check the perms
    mkdir /data/dalvik-cache 0771 system system
    chown system system /data/dalvik-cache
    chmod 0771 /data/dalvik-cache

    # create the lost+found directories, so as to enforce our permissions
    mkdir /data/lost+found 0770
    mkdir /cache/lost+found 0770

    # double check the perms, in case lost+found already exists, and set owner
    chown root root /data/lost+found
    chmod 0770 /data/lost+found
    chown root root /cache/lost+found
    chmod 0770 /cache/lost+found

去初始化data folder

難怪我一開始分割好的data沒有資料

一開機完就有資料

原來是在這邊做的

加入
service uart2gps /system/bin/uart2gps
    oneshot
到init.rc

預期希望執行此程式一次就好

要記得將uart2gps放到/system/bin/下 就重新make snod產生一個新的system.img

產生ramdisk.img
acp -fpt device../init.rc out/.../root/init.rc
mkbootfs out/../root | minigzip > ramdisk.img
還要轉成uramdisk.img




透過Facebook分享

makefile中 : 與 :=的差別

這篇得知

由於Makefile會將檔案所有內容展開之後
在決定變數的值

如果你要在當下就決定變數值  而不要被後面的修改在改變

就要使用:=

:
代表makefile的規格 (而非用於變數宣告)
target: dependencies
Commands

透過Facebook分享

/dev/null vs /dev/zero

dd if=/dev/null of=a.img bs=1M count=50


0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.3351e-05 s, 0.0 kB/s



dd if=/dev/zero of=b.img bs=1M count=50


50+0 records in
50+0 records out
52428800 bytes (52 MB) copied, 0.120844 s, 434 MB/s

產生的結果不同


-rw-r--r--  1 nelsonchung nelsonchung         0 2010-12-09 16:34 a.img
-rw-r--r--  1 nelsonchung nelsonchung  52428800 2010-12-09 16:34 b.img

可以把/dev/zero想成一個會產生0的鍵盤
所以b.img是一個全部值為0的檔案



透過Facebook分享

將busybox加入android中

  • 設定環境



============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.2
TARGET_PRODUCT=imx51_bbg
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=FRF85B
============================================



  • add busybox to /out/target/product/dependonyourplatform/system/bin


> make snod

將system內容打包成system.img (內容大小從原本的108863488變成110743552)

這樣子的方式可以讓你不用在重新build android就加入你已經build的程式


將產生出來的system.img mount起來

> mkdir system-another

> mount -o loop system.img system-another

> ls system-another


alsa_amixer        busybox       dhcpcd        getprop    iptables      mke2fs       pand          renice     servicemanager  surfaceflinger  vold
alsa_aplay         cat           dispd         gzip       keystore      monkey       ping          resize2fs  setconsole      svc             watchprops
alsa_ctl           check_prereq  dmesg         hciattach  keystore_cli  mount        pm            rild       setprop         sync            wipe
am                 chmod         dnsmasq       hd         kill          mtpd         pppd          rm         sh              system_server   wpa_cli
applypatch         chown         dumpstate     id         linker        mv           printenv      rmdir      showlease       tc              wpa_supplicant
applypatch_static  cmp           dumpsys       ifconfig   ln            nandread     ps            rmmod      skia_test       testid3
app_process        dalvikvm      dvz           iftop      log           ndc          qemud         route      sleep           toolbox
audioloop          date          e2fsck        ime        logcat        netcfg       qemu-props    run-as     smd             top
bash               dbus-daemon   flash_image   input      logwrapper    netd         racoon        schedtest  stagefright     tune2fs
bluetoothd         dd            fsck_msdos    insmod     ls            netstat      radiooptions  schedtop   stapio          umount
bmgr               debuggerd     gdbjithelper  installd   lsmod         newfs_msdos  reboot        sdptool    staprun         updater
bootanimation      dexopt        gdbserver     ioctl      mediaserver   notify       record        sendevent  start           vdc
bugreport          df            getevent      ionice     mkdir         omx_tests    recovery      service    stop            vmstat

果然看到busybox

將system.img放到sd卡上

開機執行  可以直接run 

busybox

以前是放到data folder下要執行需要

cd data
./busybox ls .....

現在
busybox ls....

透過Facebook分享

system.img and ramdisk.img的生成

system.img 是由 dd 將 system folder轉出生成
ramdisk.img 是由 dd 將 root folder轉出生成

android在build過程  會將各個需要的東西 放到system or root folder去
android使用android.mk來build所需要的東西

img格式是一個檔案
不是設備
linux掛載的時候需要用mount -o loop A.img B
將A.img 掛載到/dev/loopx下
在將/dev/loopx掛載給B

最後  你就可以操作B folder的時候  就等於在操作A.img
加檔案 刪除檔案  同時也會改變A.img

產生一個200M的A.img
dd if=/dev/zero of=A.img bs=1M count=200

mkfs.ext4 A.img

產生一個目錄
sudo mkdir system-another

掛載
sudo mount -o loop A.img system-another

cd system-another

vim test.txt

:wq

卸載
umount system-another

 此時text.txt已經在A.img裡面

透過Facebook分享

啟動thread on linux

使用kthread_run
第一個參數  function name
第二個參數  可以設成NULL, 除非你有要傳入的data
第三個參數  namefmt (猜測應該是這個thread的稱呼)


Reference:
http://blog.chinaunix.net/u1/35356/showart_1422907.html


在hub.c看到hub_port_init會一直被執行到
原來是因為usb_hub_init的地方有用kthread_run去run一個thread

當hub port改變的時候就會run到

透過Facebook分享

取消Touchpad滾動功能 under sl410

Lenovo sl410
Ubuntu 10.04

可以使用Ubuntu 10.04內建滑鼠軟體
系統->偏好設定->滑鼠->觸碰板

捲動方式
調整成"已停用"



透過Facebook分享

Trackpoint 滑鼠中鍵 啟動滾動功能 under sl410

Machine: lenovo sl410
Ubuntu 10.04

啟動方式

sudo vim /usr/lib/X11/xorg.conf.d/20-thinkpad.conf

輸入以下內容

Section “InputClass”
Identifier “Trackpoint Wheel Emulation”
MatchProduct “TrackPoint”
MatchDevicePath “/dev/input/event*”
Driver “evdev”
Option “EmulateWheel” “true”
Option “EmulateWheelButton” “2″
Option “Emulate3Buttons” “false”
Option “XAxisMapping” “6 7″
Option “YAxisMapping” “4 5″
EndSection

update--2011-08-29
Section "InputClass"
Identifier "Trackpoint Wheel Emulation"
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "Emulate3Buttons" "false"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection

sudo reboot now

重開機後就可以用嚕

Reference:
http://psung.blogspot.com/2010/04/thinkpad-trackpoint-scrolling-in-ubuntu.html
http://www.fovweb.com/fov/ubuntu-thinkpad.html

透過Facebook分享

2010年12月7日 星期二

酷音輸入

ibus-chewing


sudo apt-get install ibus-chewing


透過Facebook分享

install kscope on ubuntu 10.04

This software is good when you want to trace big codes with many function and define

1. download deb

http://ftp.aarnet.edu.au/debian/pool/main/k/kscope/kscope_1.6.2-1_i386.deb


2. download library

http://web.mit.edu/~mkgray/afs/bar/usr/lib/libkateinterfaces.so.0

sudo cp libkateinterfaces.so.0 /usr/lib

3. run kscope

Reference:

http://www.linuxidc.net/thread-1020-1-1.html
http://spyker729.blogspot.com/2010/02/ubuntu-910-kscope.html

透過Facebook分享

2010年12月6日 星期一

busybox: tar package缺少-append選項

Tomasz問tar套件缺少 -append該怎麼辦呢

Mikhail說

很簡單, 只需要implement他並將patch教出來

看來

給自己一個目標

訂個時間點

將發現缺少又需要的東西交個patch

lsusb有少嗎?

透過Facebook分享