2014年9月11日 星期四

linux 命令與問題解法


sudo passwd 

Password: <--- 输入安装时那个用户的密码 

Enter new UNIX password: <--- 新的Root用户密码 

Retype new UNIX password: <--- 重复新的Root用户密码

==
 開機後, 自動載入
sudo vi /etc/rc.local 加入下面這行
sudo mount -t vboxsf ShareFolder /media/sf_ShareFolder/


==
修改locale

把语言环境变量改为英文
将Ubuntu系统语言环境改为英文的en_US.UTF-8

查看当前系统语言环境

locale
编辑配置文件,将zh_US.UTF-8改为en_US.UTF-8,zh改为en

sudo nano /etc/default/locale
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"


==
當桌機的 Linux 硬碟滿了, 下述可以考慮先做清除的動作.

清空 Trash bin
apt-get clean # 清除 local repository 淘汰得 Package (deb)
apt-get autoclean # 清除舊版本的 暫存 Package (deb)
apt-get autoremove # 刪除系統不再使用的 Package
/var/cache/apt/archives # Package (deb) cache
/var/cache/apt/archives/partial # 沒有下載完成的 Package 放在這邊
~/.mozilla/firefox/*.default/Cache # 若已經指定進 Ram Disk, 就不用管這個.
/var/log/*
/tmp/*


==
Linux出現Read-Only,沒辦法寫檔案時,重新mount root目錄(/)或許可以解決


開機時若出現,以下訊息
=================================
Give root password for maintenance
(or type Control-D to continue):
================================= 

$ mount -o remount,rw /

==
apt-get install vim
apt-get remove vim


==
xxx is not in the sudoers file 解決方法

1
su -
(注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,用"su -"命令将环境变量也一起带过去,就象和root登录一样),然后
?
1
visudo     //切记,此处visudo之间没有空格
1、移动光标,到最后一行
2、按a,进入append模式
3、输入
   your_user_name ALL=(ALL)  ALL
4、按Esc
5、输入“:wq”(保存文件并退出)

http://my.oschina.net/scorpius/blog/60903

==
/usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h: No such file or directory

solution:

sudo apt-get install libc6-dev-i386
 
http://askubuntu.com/questions/368404/make-command-compiling-errors



2014年9月9日 星期二

Linux 無法開啟 libmpfr.so.1 或 libgmp.so.3 的錯誤呢?

export LD_LIBRARY_PATH=/opt/toolchains/toolchain_gnueabi-4.4.0_ARMv5TE/usr/lib

==
網路上也有人遇到相關問題:
souirce :

當編譯 DMA-6410XP、DMA-6410 及 DMA-6410L 平台的 Linux Kernel 時,為什麼會出現無法開啟 libmpfr.so.1 或 libgmp.so.3 的錯誤呢? 
答:錯誤狀況一:
/usr/local/arm/4.3.1-eabi-armv6/usr/bin-ccache/../libexec/gcc/arm-samsung-linux-gnueabi/4.3.1/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
錯誤狀況二:
/usr/local/arm/4.3.1-eabi-armv6/usr/bin-ccache/../libexec/gcc/arm-samsung-linux-gnueabi/4.3.1/cc1: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
Ans: 編譯 DMA-6410XP 等平台的 Linux Kernel 時使用了平台光碟裡的 4.3.1-eabi-armv6 這個編譯器,當我們在 Ubuntu 9.04 及 Ubuntu 10.04 LTS 這兩個版本的 Ubuntu 上直接使用並沒有任何問題。
但,若您使用更新版本的 Ubuntu,或是使用了 64 位元的 Ubuntu,那麼在使用 4.3.1-eabi-armv6 這個編譯器時,就可能會遇到這個錯誤。


解決的方法是設定 LD_LIBRARY_PATH 變數,設定如下:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/4.3.1-eabi-armv6/mpfr/lib \
:/usr/local/arm/4.3.1-eabi-armv6/gmp/lib \
:/usr/local/arm/4.3.1-eabi-armv6/lib
主要是利用修改 LD_LIBRARY_PATH 變數,加入 libmpfr 及 libgmp 的路徑。
DMA-210U (Cortex A8, S5PV210 系列) 


2014年9月1日 星期一

valgrind,arm-linux 交叉编译

[下載 valgrind]
http://valgrind.org/downloads/current.html#current

[錯誤解決]
root@lubuntu64:/home/jeff/workspace/valgrind-3.9.0# ./autogen.sh
running: aclocal
./autogen.sh: 1: eval: aclocal: not found
error: while running 'aclocal'

=>sudo apt-get install automake


1.解開 valgrind
2.cd valfrind
3.設定toolchain路徑
export PATH=/opt/toolchains/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin:$PATH
3. ./autogen.sh
4. vi configure
    => armv7* 改為 armv7* | arm*
6.
CC=/opt/toolchains/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc CPP=/opt/toolchains/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin/arm-unknown-linux-uclibcgnueabi-cpp CXX=/opt/toolchains/toolchain_gnueabi-4.4.0_ARMv5TE/usr/bin/arm-unknown-linux-uclibcgnueabi-g++ ./configure --host=arm-linux --prefix=/usr/local

7. make && make install

8. 拷貝 valgrind 到板子,然後執行 ./valgrind -d
..... launching /usr/local/valgrind/lib/valgrind/memcheck-arm-linux

(1) 將 valgrind 轉拷貝到此目錄下 /usr/local/valgrind/lib/valgrind/
(2) 再額外拷貝memcheck-arm-linux到此目錄下
(3) 該目錄下執行 ./valgrind,即OK

==
其他參考資料:
source1:
http://cplusplus2012.blog.163.com/blog/static/20667626820144179302476/

1. 下载及解压valgrind-3.9.0
2.CC=/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-gcc CPP=/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-cpp CXX=/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-g++ ./configure --host=armv7-a-linux --prefix=/nfsroot/valgrind
记住--prefix这里的路径要与你在板子上放的路径一样。否则会出现valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory”错误。 host=armv7-a-linux 这可以改成arm-linux, 修改configure里面的armv7* 为 armv7*|arm*
3. 放到板子上目录是--prefix的路径。
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory”,这个错误纠结了好久,最后在http://blog.csdn.net/jiazhen/article/details/18966423?reload#reply 大神这里找到解决方法了。

valgrind source : http://valgrind.org/downloads/current.html#current