ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2014年12月26日 星期五

5.0.2 Nexus7 2012

ref:
  • http://forum.xda-developers.com/showthread.php?t=1907796
  • https://developers.google.com/android/nexus/images
這個是另一種方法:http://www.android-apk.com/2014/11/nexus-7-nexus-10-%E5%B9%B3%E6%9D%BF-android-5-0-lollipop-ota-link/


Download, 結果是tgz, 解開。
首先 adb 要能動。
用 adb reboot-bootloader
重開機,進入 bootloader
fastboot oem ublock
停住,畫面上問你Yes, No, touch "Yes"
...
(bootloader) erasing userdata...
(bootloader) erasing userdata done
(bootloader) erasing cache...
(bootloader) erasing cache done
(bootloader) unlocking...
(bootloader) Bootloader is unlocked now.
OKAY [ 11.693s]
finished. total time: 11.693s
接著就可以到剛剛解開的tgz的folder 去run script:
/nakasi-lrx22g$ ./flash-all.sh 
...
(bootloader) Bootloader is already unlocked
OKAY [  0.007s]
finished. total time: 0.007s
erasing 'boot'...
OKAY [  0.027s]
finished. total time: 0.027s
******** Did you mean to fastboot format this partition?
erasing 'cache'...
OKAY [  0.053s]
finished. total time: 0.053s
erasing 'recovery'...
OKAY [  0.028s]
finished. total time: 0.028s
******** Did you mean to fastboot format this partition?
erasing 'system'...
OKAY [  0.090s]
finished. total time: 0.090s
******** Did you mean to fastboot format this partition?
erasing 'userdata'...
OKAY [  1.087s]
finished. total time: 1.087s
sending 'bootloader' (2100 KB)...
OKAY [  0.268s]
writing 'bootloader'...
FAILED (remote: (InvalidState))
finished. total time: 0.408s
rebooting into bootloader...
OKAY [  0.002s]
finished. total time: 0.052s
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
archive does not contain 'vendor.img'
Creating filesystem with parameters:
    Size: 14442037248
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8176
    Inode size: 256
    Journal blocks: 32768
    Label: 
    Blocks: 3525888
    Block groups: 108
    Reserved block group size: 863
Created filesystem with 11/883008 inodes and 96825/3525888 blocks
Creating filesystem with parameters:
    Size: 464519168
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 7088
    Inode size: 256
    Journal blocks: 1772
    Label: 
    Blocks: 113408
    Block groups: 4
    Reserved block group size: 31
Created filesystem with 11/28352 inodes and 3654/113408 blocks
--------------------------------------------
Bootloader Version...: 4.23
Baseband Version.....: N/A
Serial Number........: 015d257xxxxxxxxx
--------------------------------------------
checking product...
OKAY [  0.040s]
checking version-bootloader...
OKAY [  0.023s]
sending 'boot' (5152 KB)...
OKAY [  0.636s]
writing 'boot'...
OKAY [  0.181s]
sending 'recovery' (5688 KB)...
OKAY [  0.691s]
writing 'recovery'...
OKAY [  0.200s]
erasing 'system'...
OKAY [  0.045s]
sending 'system' (648819 KB)...
OKAY [ 77.444s]
writing 'system'...
OKAY [ 31.717s]
erasing 'userdata'...
OKAY [  0.997s]
sending 'userdata' (137526 KB)...
OKAY [ 16.400s]
writing 'userdata'...
OKAY [  8.035s]
erasing 'cache'...
OKAY [  0.039s]
sending 'cache' (9052 KB)...
OKAY [  1.094s]
writing 'cache'...
OKAY [  0.492s]
rebooting...

finished. total time: 138.227s
然後就自己重開了...
進入圓球跑跑畫面.....持續 5 min

開進 android 畫面。

還好,沒有明顯變慢,當然也不會變快。
本來,asus 做的這台就是慢到不行。


第二天:一般還好,有些ap 開啟特別慢,像 chrome, twitter, fb
而且有月用月慢的感覺。
猜測這是 2012 n7 的nandflash 問題。
只有靠 f2fs 才能解決了。

2015/4/20
因為 linux journal login 有問題,一直說我exceeded the device limit,
然後 linux journal 的 mail 又說他 OK
所以我用一樣的方法把 nexus 7 重新燒 4.4.4

2014年12月24日 星期三

ref:
  • http://www.bennee.com/~alex/blog/2014/05/09/running-linux-in-qemus-aarch64-system-emulation-mode/
  • http://gogojesseco.blogspot.tw/2014/05/arm64.html

 ./configure --target-list=aarch64-softmmu
Disabling libtool due to broken toolchain support

ERROR: glib-2.12 gthread-2.0 is required to compile QEMU
ref: http://stackoverflow.com/questions/16931060/installing-qemu-on-lubuntu-13-04
說:
The error message from configure is misleading.

If you run it using bash -x you see:

:
:
+ cc -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -o /tmp/qemu-conf-14056-22808-16535.exe /tmp/qemu-conf-19869-22808-12418.c -Wl,-z,relro -Wl,-z,now -pie -m64 -g
+ return 1
+ test '' = yes
+ bluez=no
+ test no = yes
+ glib_req_ver=2.12
+ query_pkg_config --atleast-version=2.12 gthread-2.0
+ pkg-config --atleast-version=2.12 gthread-2.0
+ error_exit 'glib-2.12 required to compile QEMU'
+ echo

+ echo 'ERROR: glib-2.12 required to compile QEMU'
ERROR: glib-2.12 required to compile QEMU
+ test -n ''
+ echo

+ exit 1
+ rm -f /tmp/qemu-conf-19869-22808-12418.c /tmp/qemu-conf-12208-22808-897.o /tmp/qemu-conf-14056-22808-16535.exe
So you see that what is really missing is gthread-2.0. Now gthread-2.0 is part of the libglib2.0-dev "Development files for the GLib library" that is not installed by default. If you install it, you should be able to get past this stage, and them probably fail because pixman or something els isn't installed, but you wont need to install every glib dev library!

./sudo aptitude install libglib2.0-dev
then do config again:
./configure --target-list=aarch64-softmmu
Disabling libtool due to broken toolchain support
Install prefix    /usr/local
BIOS directory    /usr/local/share/qemu
binary directory  /usr/local/bin
library directory /usr/local/lib
module directory  /usr/local/lib/qemu
libexec directory /usr/local/libexec
include directory /usr/local/include
config directory  /usr/local/etc
local state directory   /usr/local/var
Manual directory  /usr/local/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /home/charles-chang/teatime/qemu-2.2.0
C compiler        cc
Host C compiler   cc
C++ compiler      c++
Objective-C compiler cc
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -g 
QEMU_CFLAGS       -I$(SRC_PATH)/pixman/pixman -I$(BUILD_DIR)/pixman/pixman -I$(SRC_PATH)/dtc/libfdt -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common  -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       aarch64-softmmu
tcg debug enabled no
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
pixman            internal
SDL support       no
GTK support       no
VTE support       no
curses support    yes
curl support      no
mingw32 support   no
Audio drivers     oss
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC TLS support   no
VNC SASL support  no
VNC JPEG support  no
VNC PNG support   no
VNC WS support    no
xen support       no
brlapi support    no
bluez  support    no
Documentation     yes
GUEST_BASE        yes
PIE               yes
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support yes
Install blobs     yes
KVM support       yes
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    yes
fdatasync         yes
madvise           yes
posix_madvise     yes
sigev_thread_id   yes
uuid support      no
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
Trace backends    nop
spice support     no
rbd support       no
xfsctl support    no
nss used          no
libusb            no
usb net redir     no
GLX support       yes
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
GlusterFS support no
Archipelago support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   no
TPM passthrough   yes
QOM debugging     yes
vhdx              no
Quorum            no
lzo support       no
snappy support    no
NUMA host support no

2014年12月22日 星期一

因為 android studio 的 gradle complain 說 jdk 要到 7.
但是 build android source 時,我又要 6.

所以都裝。
然後系統 default 用 6 (update-alternatives)

然後在 android studio 的 Setting 中,選 jdk path 到 openjdk-7-amd64

2014年12月19日 星期五

crossmnt : nfs mount 包含 server mount 的內容

用途:

當 nfs mount server 的目錄下,有mount 其他的 partition 時。
client 端往往只能看到空目錄,不會看到 server mount partition 的內容。

如果要讓 client 也能看到 server mount 的內容。

就要:
  • server 把 mount partition 的 path 也 export (再一次)
  • 那個 partition 的 parent folder 在 exports 裡的宣告,要加上 crossmnt 這個 option


ref: http://unix.stackexchange.com/questions/42131/how-to-properly-export-and-import-nfs-shares-that-have-subdirectories-as-mount-p

2014年12月17日 星期三

inject the HOME key to system

L 先生看到 'Back Button(No root) 這個 ap, 可以作到像 iOS asistant button 的動作。
可以送出 HOME/BACK/MENU

裝還後,他會註冊一個 accessibility service, 要 user 開啟他 才能動作。

所以查了一下 android 的 accessibility service,

發現:
constant: GLOBAL_ACTION_HOME
找一下 framewowk:
在 framework/base/services/java/com/android/server/accessibility/AccessibilityManagerService.java
        public boolean performGlobalAction(int action) {
               ...
               ...
                switch (action) {
                    case AccessibilityService.GLOBAL_ACTION_BACK: {
                        sendDownAndUpKeyEvents(KeyEvent.KEYCODE_BACK);
                    } return true;
                    case AccessibilityService.GLOBAL_ACTION_HOME: {
                        sendDownAndUpKeyEvents(KeyEvent.KEYCODE_HOME);
                    } return true;
                    ...
所以,service 送出 GLOBAL_ACTION_HOME 後,framework 的 action handle 就會模擬出一個 HOME 按鍵動作。

2014年12月16日 星期二

Kconfig, show/hide options and select

Kconfig 的 item,如果沒有 prompt 屬性,就不會在 make menuconfig 顯示出來。

prompt 屬性有兩種表示方法:
  • 直接寫在 type 後面。像: tristate "Soc Sound Card for I2S support"
  • 用 prompt 直接寫一行。像:prompt "Soc Sound Card for I2S support"

沒有在 make menuconfig 列出來的像木,通常是被其他 item select 的項目。
也就是說,如果選了某個 option,則這個option 也要 select

2014年12月12日 星期五

rfkill

rfkill 好像是用來開關所有Wireless 裝置的架構 (Bt, wifi, ..etc)

l$ sudo rfkill list
0: phy0: Wireless LAN
 Soft blocked: yes
 Hard blocked: no
1: tpacpi_bluetooth_sw: Bluetooth
 Soft blocked: no
 Hard blocked: no
2: hci0: Bluetooth
 Soft blocked: no
 Hard blocked: no
列出所有的裝置,和開關狀態。
其中 Hardware 好像是說有些 nb 有實際的switch, button 控制 wifi, bluetooth.
Software 就是軟體的設定狀態。

rfkill 的開/關是用 unblock, block

rfkill block 0 -- 關掉第一個裝置 (phy0 : Wireless LAN)

rfkill 在 kernel 有一個專門的 driver:
net/rfkill/

之後,所有support rfkill 的 driver ,都要寫一個 rfkill 的註冊城市。

        rfkill->rfkill_dev = rfkill_alloc("csrbt-8311", &pdev->dev,
                                          RFKILL_TYPE_BLUETOOTH,
                                          &rfkill_gpio_ops, rfkill);
        if (!rfkill->rfkill_dev) {
                ret = -ENOMEM;
                goto fail_reset;
        }

        ret = rfkill_register(rfkill->rfkill_dev);
        if (ret < 0)
                goto fail_rfkill;

        platform_set_drvdata(pdev, rfkill);

2014年12月11日 星期四

jiffies, msecs_to_jiffies( )

jiffies 是 kernel 內部 tick 的記數。
要是要知道頻率,可以用: msecs_to_jiffies(100) 來看,100ms 是要幾個 jiffies.

2014年12月10日 星期三

遭遇到
Failed to start samba.service: Unit samba.service is masked.
ref: http://aptosid.com/index.php?name=PNphpBB2&file=viewtopic&p=17662

所以看一下,果然,smbd 有起來。
所以應該是:
 sudo service smbd start
芳鄰可以用了。

遭遇到..
W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-amd64/Packages: Hash Sum mismatch
W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-i386/Packages: Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
不知道是因為 google site, down 還是 ?

因為 follow : http://askubuntu.com/questions/502263/hash-sum-mismatch-when-installing-spotify-on-14-04

把 /var/lib/apt/lists/*都刪除,一樣沒效。

2014年12月5日 星期五

raspberry pi, airplay mirror -- xbmc-gamebox

上次測試 raspbmc 已經可以 support airplay 了 (不含 mirror)
現在令一個公司 xbmc-gamebox 補足了 mirro 的功能: ref: http://www.xindawn.com/bbs/viewtopic.php?f=5&t=8&sid=c0e5ff300675e69e30139605d2632cee

就 download sd card image, run 企來,
其他就 follow 上次 raspbmc 就可以。

實測是真的有 mirror 功能。
但是 lag (delay) 大了一些,
所以像一些跑庫,racing 的 game 都不能玩,控制會 delay

還有上次 raspbmc 的 youtube 問題一樣存在。

2014年12月4日 星期四

java.lang.IllegalArgumentException
 at sun.nio.ch.Net.checkAddress(Net.java:24)
 at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:512)
 at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
 at com.android.ddmlib.DeviceMonitor.openAdbConnection(DeviceMonitor.java:261)
 at com.android.ddmlib.DeviceMonitor.deviceMonitorLoop(DeviceMonitor.java:163)
 at com.android.ddmlib.DeviceMonitor.access$000(DeviceMonitor.java:44)
 at com.android.ddmlib.DeviceMonitor$1.run(DeviceMonitor.java:84)
然後是..
java.lang.RuntimeException: Timeout getting device list!
 at net.srcz.android.screencast.Main.waitDeviceList(Unknown Source)
 at net.srcz.android.screencast.Main.initialize(Unknown Source)
 at net.srcz.android.screencast.Main.(Unknown Source)
 at net.srcz.android.screencast.Main.main(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at com.sun.javaws.Launcher.executeApplication(Launcher.java:1822)
 at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1763)
 at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1525)
 at com.sun.javaws.Launcher.run(Launcher.java:131)
 at java.lang.Thread.run(Thread.java:662)

2014年12月3日 星期三

ant 就是 Make ..

用來build java project 的 tool : apache ant
角色上就跟用來 build c project 的 Make 一樣。

那為什麼要特別做一個 tool 呢?
有什麼是 Make 做不到的 ?

這一篇有說明:

大概是因為啟動 javac 的時間很長,所以compile java 傾向於一次 compile 很多 java file.
和 c 一次compile 一個差異很大。

加上 target-depends rules 的更動,不太容易處理階層性的 source code.
所以才重寫了 make 的 tool

所以,就把 ant 當 make 就好了


make 是吃 Makefile
ant 是吃 build.xml (default)

是 xml 格式。
大約也跟 makefile 一樣,定義變數,定義 target, 然後有 action

同意也有 include 的功能。
還有一些定義另外分別開來,叫 property file, 或 config 檔,。

啟動ant 的 command 大概就是:
ant -v -f build.xml
加上 -v 是output message,好方便 verify 動作。


android software developement kit 也使用 ant 作為 build system (雖然後來又改用 grandle)
所以sdk 中有一個 folder: sdk/tools/ant, 裡面有一些寫好的 xml,
讓 developer 直接使用,不用自己再寫 build.xml



ant 雖然是為java 而做,但是他在包裝 jar 時,不會自動 copy resource file (png, wav,..etc)。
所以 jar 中用 getResource("icon.png"), 常常會出現 nullpointerexception.
因為 ant 在包 jar 時,沒有把 icon.png 也包進去。

一般來說,resource 所在位置,就是要跟使用 getResource( ) 的那個 class 在相同的目錄。
ref: http://stackoverflow.com/questions/804150/ant-compile-doesnt-copy-the-resources

就是在 jar 的 action 加上.. https://github.com/checko/androidscreencast_org/commit/fe9083623469a2e8e533179226766b84bfcd09a9

2014年12月2日 星期二

install run-java6 on Debian Jessie

去 http://ghaffarian.net/downloads/Java/JDK/ 下載 jdk-6u45-linux-x64.bin (因為到 oracle 下載要註冊).

ref: http://unix.aspcode.net/view/635395087004115229152482/install-java-sdk-6-wheezy

debiand 沒辦法直接提供 oracle java package (因為 license),但是提供了把 Orcale java 包裝成 deb 的 tool:
apt-get install java-package
包裝 jdk-6u45-linux-x64.bin:
make-jpkg jdk-6u45-linux-x64.bin
安裝剛剛包好的 deb:
dpkg -i oracle-java6-jdk_6u45_amd64.deb

Selecting previously unselected package oracle-java6-jdk.
(Reading database ... 169950 files and directories currently installed.)
Preparing to unpack oracle-java6-jdk_6u45_amd64.deb ...
Unpacking oracle-java6-jdk (6u45) ...
Setting up oracle-java6-jdk (6u45) ...
update-alternatives: using /usr/lib/jvm/jdk-6-oracle-x64/jre/bin/ControlPanel to provide /usr/bin/ControlPanel (ControlPanel) in auto mode
update-alternatives: using /usr/lib/jvm/jdk-6-oracle-x64/jre/lib/amd64/libnpjp2.so to provide /usr/lib/mozilla/plugins/libjavaplugin.so (mozilla-javaplugin.so) in auto mode

會裝在 /usr/lib/jvm/jdk-6-oracle-x64

然後就是設定 default :
sudo update-java-alternatives -s jdk-6-oracle-x64
然後會 complain 一下 這個 folder 有一些 tool 沒提供。

標籤

網誌存檔