2013年5月31日 星期五

Make出現eval:1:libtool_args+=: not found錯誤



Make時出現下面錯誤
eval:1:libtool_args+=: not found
eval:1:compile_command+=:not found
...

因為Ubuntu使用dash作為預設shell,把shell換成bash就可以了。
cd /bin; rm sh; ln –s bash sh
或是
cd /bin; unlink sh; link bash sh

察看目前預設的shell
ls -l /bin/sh
lrwxrwxrwx 1 root root 4  7月  4 15:24 /bin/sh -> dash

Make mksquash_lzma-3.2出現undefined reference to `inflateReset'錯誤



Make mksquash_lzma-3.2出現底下錯誤




/home/astro/RT288x_SDK/toolchain/mksquash_lzma-3.2/lzma443/C/7zip/Compress/LZMA_C/libunlzma.a(uncomp.o): In function `sqlzma_un':
uncomp.c:(.text+0x58): undefined reference to `inflateReset'
uncomp.c:(.text+0x99): undefined reference to `inflate'
uncomp.c:(.text+0x1a0): undefined reference to `zError'
/home/astro/RT288x_SDK/toolchain/mksquash_lzma-3.2/lzma443/C/7zip/Compress/LZMA_C/libunlzma.a(uncomp.o): In function `sqlzma_init':
uncomp.c:(.text+0x3d3): undefined reference to `inflateInit_'
collect2: ld returned 1 exit status

在mksquash_lzma-3.2/squashfs3.2-r2/squashfs-tools/Makefile
unsquashfs: LDLIBS += -lunlzma後面加上–lz可解決

Make mksquash_lzma-3.2出現undefined log10@@GLIBC_2.0錯誤

Make mksquash_lzma-3.2出現底下的錯誤
undefined reference to symbol 'log10@@GLIBC_2.0'

在mksquash_lzma-3.2/squashfs3.2-r2/squashfs-tools/Makefile
mksquashfs: LDLIBS += -lpthread -lunlzma_r -llzma_r -lstdc++後面加上-lm可解決

更改VirtualBox共用資料夾權限

不用root登錄後,很多權限都沒了,VirtualBox共用資料夾不能開,暈。
重新設定權限後,終於能用了。

System Tools>Users and Groups>Manage Groups
將vboxsf中的Group Members勾選起來


安裝Ubuntu中文

一開始用SCIM,不過找字真的很不習慣,
不太好用。
後來發現有套叫gcin的,用起來跟新注音差不多,習慣多了。
  1. sudo apt-get install gcin
  2. im-switch -s gcin
  3. 登出後再登錄

VirtualBox出現Building the main Guest Additions module ...fail!

sudo apt-get install gcc
sudo apt-get install make

安裝Linux


最近都要開發Embedded Linux及Android,必須安裝Linux系統,因為常需要測試驗證,所以安裝在VirtualBox,可以做快照備份,以防系統損毀。
   
      不過新版的Ubuntu的Unity介面實在是太難用了,找東西都找不到,不習慣,還是習慣像windows的介面。 所以轉至Gnome介面,不過上下都有toolbar,使用VirtualBox無縫模式實在不方便,又轉至KDE(Kubuntu)介面,不過電腦的效能實在太差,轉來換至較不耗效能的LXDE(lubuntu)試試看囉。
  1. lubuntu下載lubuntu-13.04-desktop-i386.iso
  2. 依照VirtualBox的說明,使用iso檔安裝。
  3. 成功了,跟Windows好像 ^^

2013年5月5日 星期日

Cat Codec Registers

shell@android:
/sys/devices/platform/xxx/CPU $ cat codec_reg
shell@android:
/sys/devices/platform/xxx/CPU $ cat dapm_widget

Audio Codec I2S Clock

希望設定Sample Rate為48KHz,
MCLK: 24.576MHz,
選擇MCLK為Main I2S SYSCLK,
設定Main I2S SYSCLK為256Fs = 256*48KHz = 12.288MHz.
由於MCLK是24.576, 所以設定I2S Pre Div為2, 讓Main I2S SYSCLK = 24.576MHz/2 = 12.288MHz.
設定Audio為16bits, BCLK = 32Fs = 32*48KHz = 1.536MHz
MCLK: 24.576MHz
BCLK: 1.536MHz
LRCK: 48KHz
播放1KHz, 0db, wav檔, bit rate = 1536Kbps = 2*16bits*48KHz (Stereo)
RIFF Type Chunk
5249 4646 = 0x52, 0x49, 0x46, 0x46 = RIFF = Chunk ID
24C8 AF00 = 0xAFC824 = 11520036 = 10M = Chunk Data Size = File Size - 8
5741 5645 = 0x57, 0x41, 0x56, 0x45 = WAVE = RIFF Type
WAVE File Chunk
666D 7420 = 0x66, 0x6D, 0x74, 0x20 = fmt = Chunk ID
1000 0000 = 0x10 = Chunk Data Size
0100 = 0x1 = Compression Code = PCM/uncompressed
0200 = 0x2 = Number of Channels = Stereo
80BB 0000 = 0xBB80 = 48K = Sample Rate
00EE 0200 = 0x2EE00 = 192K = Average bytes per second = 1536Kbps

Audio Codec相關設定


選擇MCLK當codec SYS_CLK.
  1.  播放Sample Rate: 32KHz的設定,
    MCLK: 12.288MHz
    BCLK: 2.048MHz
    Stereo ADC/DAC Filter Clock Select = 384Fs= 384*32KHz = 12.288MHz = MCLK
    Voice I2S Master Mode Clock Relative of BCLK and LRCK = 64Fs = 64*32KHz = 2.048MHz = BCLK 
  2. 播放Sample Rate: 44.1KHz的設定,
    MCLK: 11.289MHz (From CPU)
    BCLK: 2.82224MHz (64FS)
    Stereo ADC/DAC Filter Clock Select = 256Fs= 256*44.1KHz = 11.289MHz = MCLK
    Voice I2S Master Mode Clock Relative of BCLK and LRCK = 64Fs = 64*44.1KHz = 2.8224MHz = BCLK
  3. 播放Sample Rate: 48KHz的設定,
    MCLK: 12.288MHz (From CPU)
    BCLK: 3.072MHz (64FS)
    Stereo ADC/DAC Filter Clock Select = 256Fs= 256*48KHz = 12.288MHz = MCLK
    Voice I2S Master Mode Clock Relative of BCLK and LRCK = 64Fs = 64*48KHz = 3.072MHz = BCLK

Android背景撥放音樂



tinyplay /data/test.wav &

Linux出現cannot find -lz錯誤

在compiler Linux時,出現compiler錯誤
  1. 加入module後,出現compiler error。(如: 加入dropbear module)
  2. Error message :
    /opt/buildroot-gcc342/bin/../../../mipsel-linux-uclibc/bin/ld: cannot find -lz
    /media/Workspace/Projects/SDK_3_6_0_0/RT288x_SDK/source/user/dropbear-0.52'
    make[2]: *** [dropbear-0.52] Error 2
    [dropbear-0.52] Error 2 : Compiler dropbear-0.52 module error。
  3. mipsel-linux-uclibc/bin/ld: cannot find –lz : 此message表示無法找到“z” library。
    搜尋相關library,發現”zlib”這library,將其加入kernel,便可成功compiler。
  4. 相關缺少library(???)的情況也相同,會出現
    “mipsel-linux-uclibc/bin/ld: cannot find –l???” error message。

執行Win32應用程式發生錯誤


自己寫了個小程式, 執行時發生錯誤~
這錯誤真的看不出來是在寫啥 >
翻譯也翻的~~~ 只能說很神奇 =.=
錯誤訊息如下,

中文版, "因為應用程式的並列設定不正確-所以無法啟動-如需詳細資訊-請參閱應用程式事件記錄檔-或使用命令列工具-sxstrace-exe"

英文版, "This application has failed to start because the application configuration is incorrect"

怎麼解決???

設定compiler參數 "/MT", 重新compiler即可~