2018/06/27

sudo make CROSS_COMPILE=arm-linux- 時找不到arm-linux-gcc

compile時會自動調用sudo sh的命令,導致無法找到arm-linux-gcc

sudo chmod 660 /etc/sudoers
sudo vim /etc/sudoers
在Defaults        secure_path裡增加cross compile的路徑

2015/10/20

移植madplay到arm linux

zlib
./configure --prefix= /home/madplay/
修改makefile
CC=arm-linux-gcc
AR=arm-linux-ar rc
RANLIB=arm-linux-ranlib
LDSHARED=arm-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map

id3tag:
./configure CC=arm-linux-gcc CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib --prefix=/home/madplay/ --disable-shared --host=arm-linux

libmad
./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/madplay/ --disable-shared

madplay
./configure CC=arm-linux-gcc --host=arm-linux -prefix=/home/madplay/ --disable-shared --enable-static CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib

 Mplayer
 ./configure --enable-cross-compile --cc=arm-linux-gcc --host-cc=gcc --as=arm-linux-as --ar=arm-linux-ar --ranlib=arm-linux-ranlib --target=arm-linux --extra-cflags="-I/home/arthur/media/include"  --extra-ldflags="-L/home/arthur/media/lib" --prefix=/home/arthur/media

修改make install的bug
Makefile的前面加入
         INSTALLSTRIP :=  #    

2011/11/30

ubuntu 使用者目錄下的預設目錄修改

1.目錄改為英文
# mv 下載 download
# mv 公共 publicshare
# mv 桌面 desktop
# mv 圖片 pictures
# mv 模板 templates
# mv 音樂 music
# mv 文件 documents
# mv 影片 videos

2.更改使用者目錄名稱對映
# vi ~/.config/user-dirs.dirs
XDG_DESKTOP_DIR="$HOME/desktop"
XDG_DOWNLOAD_DIR="$HOME/download"
XDG_TEMPLATES_DIR="$HOME/templates"
XDG_PUBLICSHARE_DIR="$HOME/publicshare"
XDG_DOCUMENTS_DIR="$HOME/documents"
XDG_MUSIC_DIR="$HOME/music"
XDG_PICTURES_DIR="$HOME/pictures"
XDG_VIDEOS_DIR="$HOME/videos"

3.update
# xdg-user-dirs-update

2011/09/20

SDL for arm

SDL
#./configure --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon --prefix=$PWD/_install --disable-video-directfb --enable-input-tslib

#make


#make install

2011/03/25

echo 改變顏色

echo $PATH | grep '4.2.2' > /dev/null
if [ $? = 0 ]; then
    echo -e "目前編譯環境為\033[32m[gcc 4.2.2]\033[0m"
fi

echo -e "\033[??m"
??為ANSI 顏色碼,從 man 查來的 → man 5 dir_colors
          0     to restore default color
          1     for brighter colors
          4     for underlined text
          5     for flashing text
         30     for black foreground
         31     for red foreground
         32     for green foreground
         33     for yellow (or brown) foreground
         34     for blue foreground
         35     for purple foreground
         36     for cyan foreground
         37     for white (or gray) foreground
         40     for black background
         41     for red background
         42     for green background
         43     for yellow (or brown) background
         44     for blue background
         45     for purple background
         46     for cyan background
         47     for white (or gray) background
前景背景可以一起使用,用分號隔開 Ex:echo -e "33[41;32m"

2011/03/15

Logo
安裝工具 (pngtopnm,pnmquant,pnmtoplainpnm)
# sudo get-apt install netpbm

a.========================================
# pngtopnm linuxlogo.png > linuxlogo.pnm
# pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
# pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm
b.==========================================
# bmptoppm linuxlogo.bmp > linuxlogo.ppm
# ppmquant 224 linuxlogo.ppm > linuxlogo.ppm 
# pnmnoraw linuxlogo.ppm > linuxlogo224.ppm  //ascii


 如何將開機logo中的游標去除

drivers/video/console/fbcon.c文件
將static void fb_flashcursor(void *private)製成空函數如下
     static void fb_flashcursor(void *private)
     {
     #if 0 //modify by yejj for clear cursor of lcdc
     struct fb_info *info = private;
     struct fbcon_ops *ops = info->fbcon_par;
     struct display *p;
     struct vc_data *vc = NULL;
     int c;
     int mode;
     .
     .
     .
     get_color(vc, info, c, 0));
     release_console_sem();
     #endif
     }
同樣的方法將函數static void fbcon_cursor(struct vc_data *vc, int mode)用空函數替換


另一種禁止光標的方法:
drivers/video/console/Makefile
#obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o
obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o

編譯遇到一個soft_cursor沒有定義的問題問題,註釋代碼:
drivers/video/console/bitblit.c
//ABING
//      if (err)
//              soft_cursor(info, &cursor);

2011/02/17

 arm相關工具編譯

busybox
#make menuconfig
#make
#make install

tslib
./autogen.sh
./configure --prefix=$PWD/_install  --host=arm-linux
make
make install


zlib
./configure --prefix=$PWD/_install
修改Makefile 將gcc ar 等改成arm-linux-gcc

libpng
./configure --prefix=$PWD/_install --host=arm-linux LDFLAGS=-L/zlib/lib CFLAGS=-I/zlib/include LIBS=-lz

2010/12/02

crosstool-ng

http://freshmeat.net/projects/crosstool-ng/
http://ymorin.is-a-geek.org/download/crosstool-ng/01-fixes/

$ sudo apt-get install subversion gcj g++
$ patch -p1 < 001-XXXX
$ ./configure --prefix=/opt/crosstool-ng
$ make
$ sudo make install $ echo "PATH=$PATH:/opt/crosstool-ng/bin" >> ~/.bashrc
$ source ~/.bashrc

$ mkdir ct_build
$ mkdir src
$ mkdir x-tools
$ cd ct_build
$ ct-ng arm-unknown-linux-gnueabi
$ ct-ng menuconfig

Target options --->
*** Target optimisations ***
(armv5te) Architecture level
(arm926ej-s) Emit assembly for CPU
(arm926ej-s) Tune for CPU

S3C2410/S3C2440
armv4t
arm920t
S3C2416/AT91SAM9263/AT91SAM9G45
armv5te
arm926ej-s
S3C6410
armv6
arm1176jzf-s

$ ct-ng build.2
=======================
1.cloog error
make: *** No rule to make target `/home/arthur/work/ct-atmel/targets/src/cloog-ppl-0.15.10/m4/libtool.m4', needed by `/home/arthur/work/ct-atmel/targets/src/cloog-ppl-0.15.10/Makefile.in'. Stop.

/opt/crosstool-ng/lib/ct-ng-1.9.0/scripts/build/companion_libs/c;oog.sh
diff -r 4d074e5882e5 -r be83d1a14c3d scripts/build/companion_libs/cloog.sh
--- a/scripts/build/companion_libs/cloog.sh Sun Oct 31 11:45:39 2010 +0200
+++ b/scripts/build/companion_libs/cloog.sh Thu Nov 04 18:23:35 2010 +0200
@@ -29,6 +29,7 @@
esac
CT_Pushd "${CT_SRC_DIR}/cloog-ppl${_t}"
CT_Patch nochdir "cloog-ppl" "${CT_CLOOG_VERSION}"
+ ./autogen.sh
CT_Popd
}

2.
[ALL ] In file included from ../sysdeps/unix/sysv/linux/syslog.c:10:
[ALL ] ../misc/syslog.c: In function '__vsyslog_chk':
[ALL ] ../misc/syslog.c:123: sorry, unimplemented: inlining failed in call to 'syslog': function body not available
[ALL ] ../misc/syslog.c:155: sorry, unimplemented: called from here
[ERROR] make[4]: *** [/home/arthur/work/ct-atmel/targets/arm-atmel-linux-gnueabi/build/build-libc/misc/syslog.o] Error 1

CT_LIBC_GLIBC_EXTRA_CFLAGS="-U_FORTIFY_SOURCE"

3.舊linux版會出現的error
[ERROR] /home/arthur/work/ct-2410/targets/src/linux-2.6.24/scripts/unifdef.c:209: error: conflicting types for 'getline'

root@arthur-VirtualBox:/home/arthur/work/ct-2410# find . -name 'unifdef.c'
./targets/src/linux-2.6.24/scripts/unifdef.c

+--- a/scripts/unifdef.c
++++ b/scripts/unifdef.c
+@@ -206,7 +206,7 @@ static void done(void);
+ static void error(const char *);
+ static int findsym(const char *);
+ static void flushline(bool);
+-static Linetype getline(void);
++static Linetype get_line(void);
+ static Linetype ifeval(const char **);
+ static void ignoreoff(void);
+ static void ignoreon(void);
+@@ -512,7 +512,7 @@ process(void)
+
+ for (;;) {
+ linenum++;
+- lineval = getline();
++ lineval = get_line();
+ trans_table[ifstate[depth]][lineval]();
+ debug("process %s -> %s depth %d",
+ linetype_name[lineval],
+@@ -526,7 +526,7 @@ process(void)
+ * help from skipcomment().
+ */
+ static Linetype
+-getline(void)
++get_line(void)
+ {
+ const char *cp;
+ int cursym;
+--


為工具鏈增加鏈接
$ cd arm-unknown-linux-gnueabi/bin
$ ./autoln.sh

autoln.sh是一個腳本,用來自動鏈接arm-unknown-linux-gnueabi的工具...
文件名:autoln.sh 拷到要自動建立鏈接的文件夾使用。
#!/bin/bash
#
# main
#
if [ $# -lt 1 ] ; then
echo "default path: ./"
BIN_PATH=./
else
BIN_PATH=$1
fi
if [ ! -d $1 ] ; then
echo "path error"
exit
fi
cd $BIN_PATH
SRC=`ls | awk '{print $1}'`

for i in $SRC ; do
if [ "$i" != "autoln.sh" ] ; then
#echo $i
TARGET=`echo $i | sed 's/arm-unknown-linux-gnueabi/arm-linux/g' `
echo $TARGET
ln -s $i $TARGET
fi
done

2010/11/30

Windows XP將USB隨身碟格式化為NTFS
1.在“我的電腦”按右鍵選擇"內容","裝置管理員"後再選擇左邊的"磁碟機"
2.找出USB隨身碟按右鍵選內容,在視窗中選擇上面原則頁籤。
3.將裡面的選項改選成【效能最佳化】(預設是:快速移除最佳化),
4.格式化視窗中的檔案系統就可以選擇【NTFS】了。
5.請於格式化完成之後,再將原則改為【快速移除最佳化】即可。

2010/11/25

$ mkdir ~/croosstool-ng
$ cd ~/croosstool-ng
$ tar -jxf crosstool-ng-1.9.0.tar.bz2
$ cd crosstool-ng-1.9.0
$ patch -p1 < 000-libc_eglibc_fix_downloading.patch
$ ./configure --prefix=/opt/crosstool-ng
$ make
$ sudo make install
$ echo "PATH=$PATH:/opt/crosstool-ng/bin" >> ~/.bashrc
$ source ~/.bashrc
=================================
mkdir build_toolchain
mkdir ~/src
ct-ng arm-unknown-linux-gnueabi
ct-ng menuconfig

2010/11/24

embedded linux 開發常用工具及套件
1.編輯器
sudo apt-get install vim

2.GNU C/C++ Fortran編輯器及make工具
sudo apt-get install gcc build-essential fortran77-compiler make

3.GNU AWK語言支援
sudo apt-get install gawk

4.congiure及makefile 腳本自動化工具
sudo apt-get install automake autoconf

5.串列終端工具
sudo apt-get install minicom lrzsz

6.當前kernel 的headers檔案
sudo apt-get install linux-headers-$(uname -r)
*好像有改

7.text user interfaces 相關函式庫
sudo apt-get install ncurses-dev libncursesw5-dev libncurses5-dev

8.其他可能用到的工具函式
sudo apt-get install libtool bison flex texinfo binutils-dev libc6-dev linux-libc-dev

9.圖片格式轉換
sudo apt-get install netpbm libnerpbm10 libnetpbm10-dev

10.IA32-libs
sudo apt-get install ia32-libs-multiarch:i386
sudo apt-get install ia32-libs
(安裝有問題可以試sudo apt-get remove bluez ia32-libs,再重新安裝)

2010/11/22

先記下來

libpng
#./configure --host=arm-linux --prefix=/home/lib/libpng --enable-shared LDFLAGS=-L/home/lib/zlib/lib/ CPPFLAGS=-I/home/lib/include

zlib
#CC=arm-linux-gcc
#./configure –host=arm-linux –prefix=/home/lib/zlib

qt修正
修改qt-everywhere-opensource-src-4.6.0/mkspecs/qws/linux-arm-g++/qmake.conf 文件(添加lts参数):
QMAKE_CC = arm-linux-gcc -lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lt

qt4.7
./configure -prefix /home/qt4.7.0 -release -shared -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -no-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -no-glib -qt-mouse-tslib -I /home/include -L /home/lib

2010/11/18

sudo
/etc/sudoers
要使用sudo,首先是編輯/etc/sudoers

sudoers格式如下:
用戶名稱 主機名稱=(可變換的身份) 可執行的指令

arthur localhost=(hmi) /usr/bin/*
arthur只可在localhost變成hmi,並執行/usr/bin中的指令
arthur ALL=(ALL) ALL
arthur可以用任何指令
%admin ALL=(ALL) ALL
加上%符號代表群組,admin群組中的人都可以使用sudo,並執行任何指令

gksu,gksuexec
在使用圖形介面時使用gksu指令來啟動圖形介面的程式
gksu naulitus

gksuexec,在輸入指令
==================
ubuntu下修改root密碼
$ sudo su- //切換至root (需輸入目前使用者的密碼)
$ passwd //修改root的密碼

2010/06/25

利用cross-tools-來反組譯arm的binary檔
1.先把binary檔轉成ELF檔
$ arm-linux-objcopy -I binary -O elf32-littlearm u-boot.bin u-boot.elf
2.反組譯
$ arm-linux-objdump -marm9 -D u-boot.elf > u-boot.asm

2010/06/19

Terminal 專用字型

1.Return of Monaco
下載 http://www.gringod.com/2006/02/24/return-of-monacottf/

2.Debian Terminal 專用字型
$apt-get install ttf-inconsolata

3.alan 推薦 terminus 字型
$apt-get install xfonts-terminus

字型下載後放至/usr/share/fonts/truetype/
執行 fc-cache -f -v

參考
http://plog.longwin.com.tw/programming/2007/08/14/programmer_best_font_monaco_2007
http://zh.wikipedia.org/zh-tw/Consolas
ubuntu 優化

ubuntu-tweak
網頁
http://ubuntu-tweak.com/

Ubuntu 進階優化和調校(Ubuntu wiki)
http://wiki.ubuntu-tw.org/index.php?title=Ubuntu_%E9%80%B2%E9%9A%8E%E5%84%AA%E5%8C%96%E5%92%8C%E8%AA%BF%E6%A0%A1
Linux 程式編輯器- Geany
安裝
$sudo apt-get install geany xterm

參考
http://plog.longwin.com.tw/news-application/2009/05/04/linux-develop-editor-geany-2009
PDFedit 它可以實現:書寫/創建/編輯PDF文件;
打印、保存PDF文檔;還可以把PDF文件轉化成XML等等
安裝
$sudo apt-get install pdfedit

運行PDFedit,只需輸入:
  $pdfedit /path/to/pdf.file &
  $pdfedit &

另外如只需要對pdf加註記的話,xournal 是一個不錯的選擇

2009/11/19

grub開機管理套件
sudo apt-get install startupmanager
系統 -> 管理 -> Startup- manager

啟動服務管理套件
sudo apt-get install bum
執行位置在 系統 -> 管理 -> BootUp-Manager

軟體 KVM – synergy (先記下來有空在試試看)
http://synergy2.sourceforge.net/index.html
教學
http://edp.idv.tw/blog/read.php/303.htm
一般的KVM是用一個螢幕一個滑鼠一鍵盤是控制2台電腦
這個軟體KVM 螢幕應該是不能共用,只是透過網路送滑鼠和鍵盤的信號

2009/11/03

Droid 字型安裝 deb 包
軟體來源:
deb http://ppa.launchpad.net/fonts/ubuntu

sudo apt-get install ttf-droid
Droid 字型安裝 deb 包
軟體來源:
deb http://ppa.launchpad.net/fonts/ubuntu

sudo apt-get install ttf-droid

2009/05/11


無界瀏覽9.4
無界瀏覽的全透明超級加密代理讓您安全地暢遊網際網絡,您訪問的網站及內容都不會被監測到,並且不會留下任何上網痕跡。保護用戶的安全及隱私是我們的宗旨。
簡單的說就是可以上一些原本被網管擋下來的網站及工具(如msn)。

2008/11/25

XP有時在開啟檔案總管瀏覽時會造成explorer.exe錯誤
然後就檔案總管就當掉了,
這有可能是XP影像(Video)文件的預覽功能所造成的
這時就要把XP的影像(Video)文件的預覽功能給關閉就可以改善了
在 『開始』->『執行』 然後輸入『regsvr32 /u shmedia.dll』就可以關閉,
輸入『regsvr32 shmedia.dll』就可以重新開啟。

2008/11/12

讓firefox支援右鍵選單切換字元編碼
Charset Switcher
- 套件作者:yuoo2k
- 套件首頁:MozillaUpdate
http://forum.moztw.org/viewtopic.php?t=23848
- 相容版本:Firefox 2.0-3.0.*

圖檔合併程式
能將壓縮檔偽裝成圖檔
另外也可以用Dos命令的方式來完成
copy /b pic.jpg+file.zip newfile.jpg
上圖即為圖檔合併程式
資料來源

2008/10/31

改變(更新)字型

# 將字型複製到 /usr/share/fonts/truetype/

# 到終端機輸入 sudo fc-cache -f -v 即可更新
Ubuntu 使用sudo不用輸入密碼
修改 /etc/sudoers

#sudo vim /etc/sudoers

  把/etc/sudoers裡面最後一行
  %admin% ALL=(ALL) ALL
  改成youname ALL=(ALL) NOPASSWD:ALL

  如:arthur ALL=(ALL) NOPASSWD:ALL
Ubuntu 8.04升級至8.10

update-manager -d
Ubuntu 決解 Flash 變成亂碼、空格的問題,
在/etc/fonts/conf.avail
/etc/fonts/conf.d
可以把「49-sansserif.conf」刪除看看。

2006/11/11

 Posted by Picasa