编码转换工具

 

#*********iconv使用*********#
 
#列出可转换的字符集
$ iconv -l
 
#从一种字符集转换到另一种字符集
$ iconv -f <源文件的字符集> -t <目标字符集> <源文件名> > <新文件名>
 

Posted by jc 2011年4月10日 04:02


S3C6410的iROM启动方式

  看过Samsun的手册后知道,在S3C6410从SD卡启动的时候,Bootloader的代码是由iROM里面的“Device Copy Function"来拷贝到Stepping Stone(8kb)的。

而默认的,此函数会将SD卡的倒数第三个块的8KB数据拷贝。所以,如果一个SD卡的块数为S(扇区大小为512byte),那么这8KB的Bootloader应该放到

(S-16)块处。而SDHC卡则跳过最后的1024个块。

例如:我有一个boot.bin,我的SD卡的设备文件为/dev/sdb,那么

# dd if=/dev/zero of=./temp bs=8k count=1

# cat temp >> boot.bin

# split -b 8k led.bin

# mv xaa led.bin

烧录到SD卡:

# fdisk /dev/sdb

 

Disk /dev/sdb: 2002 MB, 2002780160 bytes
11 heads, 10 sectors/track, 35560 cylinders
Units = cylinders of 110 * 512 = 56320 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               2       35561     1955775+   b  W95 FAT32
 
由以上信息可知:
Blocks = 2002780160 / 512 = 3911680
那么boot.bin烧录的位置为 3911680 - 18 = 391162
 
# dd if=./boot.bin of=/dev/sdb bs=8k seek=391172
 
假如是SDHC卡,那么烧录的位置为 3911680 - (18 + 1024)。

Posted by jc 2011年3月10日 05:19


内核源代码查看工具cscope

#**********cscope配置使用***********#

1. 用find.sh生成文件cscope.files
2. 创建数据库指令:
    cscope -b -q -k
3. 进入数据库指令:
    cscope -d
4. 按ctrl+n向下移动,ctrl+p向上移动,选择查找类型
   按tab在菜单和查找结果列表中切换
5. 在查找结果列表中,移动方式和菜单中一样.
   或者按结果列表前的数字或字母进入.
   或者按+/-上下翻页.
6. 进入查找结果条目会自动打开vi,查看完成退出vi便返回cscope
7. ctrl+d退出cscope.

8. 在vi中工作:
   cscope可以在vi中查询而无须退出,方法就是:

   :cs f c name

# c是指查询的类型,详细解释如下. name就是你需要查询的东西.
c: Find functions calling this function
d: Find functions called by this function
e: Find this egrep pattern
f: Find this file
g: Find this definition
i: Find files #including this file
s: Find this C symbol
t: Find assignments to

# 在vi模式下如何在查找结果中移动
  屏幕/页/行    上翻:    空格/d/j    下翻:    b/u/k
  按q然后输入查找结果条目前的数字即可进入.
# 以上介绍的前提是在打开vi时已经加载数据库,否则无效.
  加载办法为,在.vimrc中加入:
  :cs add ${数据库的路径}/cscope.out ${数据库的路径}/cscope  
  set cscopequickfix=s-,c-,d-,i-,t-,e-

# 键盘映射方式

 

      nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
      nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
      nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR>
      nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR>
      nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR>
      nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
      nmap <C-\>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
      nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>
  
    键盘的敲击方法就是ctrl+ \ + g
 
# cstag + taglist + cscope 
 
    先在目录下:
 
$ cstag -R
 
    然后在.vimrc增加:
 
:set tags=$YOUPATH/tags
 let Tlist_Exit_OnlyWindow=1
 let Tlist_Use_Right_Window=1
 let Tlist_WinWidth=30
 set cscopetag
 set csto=0
 
   在tlist中,  o ---- 新建一个窗口并进入tag
                space ---- 显示tag原型
                 - ---- 折叠
                 + ---- 展开
   Ctrl + ] 查找
   Ctrl + t 返回

 

Posted by jc 2011年2月20日 15:08


apt的简单配置和使用

#*************apt-get配置****************#

1. 在/etc/apt/sources.list中添加如下行,注释掉原先的deb cdrom...行.

deb http://mirrors.163.com/debian/ stable main #contrib non-free
deb-src http://mirrors.163.com/debian/ stable main #contrib non-free
deb http://ftp.hk.debian.org/debian stable main
deb-src http://ftp.hk.debian.org/debian stable main
deb http://security.debian.org/ stable/updates main

2. $ apt-get update

 

3. 导入163的源后会在上述步骤后可能出现如下问题:

W: GPG 错误:http://security.debian.org stable/updates Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY AED4B06F473041FA

解决的办法就是下载公钥

# gpg --keyserver subkeys.pgp.net --recv-keys AED4B06F473041FA

# gpg --armor --export 473041FA | apt-key add -

注意add后面有空格!


#tar原代码包编译辅助#

auto-apt run 命令
- 这条命令可以自动安装包含缺失文件的软件包。如果这里的“命令”在运行的时候访问了一个系统中没有的文件,那么
 auto-apt 会用 apt-get 来安装包含缺失文件的的软件包。这项功能需要有 APT 以及 sudo 来工作。比如说你在编译一
个软件,但是弹出一个错误说你缺少某个文件,那么 auto-apt 就会询问你是否要安装包含这个缺少的文件的软件包。同
样它也会暂停相应的编译进程,并且在安装完毕之后恢复它。例如可以这样用:

#auto-apt run ./configure

这样如果缺少文件,auto-apt 就会自动使用 apt-get 来安装它。如果 X 服务器正在运行,也会有相应的图形界面。
 auto-apt 有一个数据库,需要必要的更新以适应不断的变化。更新的命令为 auto-apt updatedb 以及
 auto-apt update-local

#软件包维护#

    * apt-get update - 在你更改了/etc/apt/sources.list 或 /etc/apt/preferences 后,需要运行这个命令以令改
动生效。同时也要定期运行该命令,以确保你的源列表是最新的。该命令等价于新立得软件包管理器中的“刷新”,或者是
 Windows和OS X 下的 Adept 软件包管理器的 “check for updates”。
    * apt-get upgrade - 更新所有已安装的软件包。类似一条命令完成了新立得软件包管理器中的“标记所有软件包以
便升级”并且“应用”。
    * apt-get dist-upgrade - 更新整个系统到最新的发行版。等价于在新立得软件包管理器中“标记所有更新”,并在
首选项里选择“智能升级” -- 这是告诉APT更新到最新包,甚至会删除其他包(注:不建议使用这种方式更新到新的发行
版)。
    * apt-get -f install -- 等同于新立得软件包管理器中的“编辑->修正(依赖关系)损毁的软件包”再点击“应用。
如果提示“unmet dependencies”的时候,可执行这行命令。
    * apt-get autoclean - 如果你的硬盘空间不大的话,可以定期运行这个程序,将已经删除了的软件包的.deb安装文
件从硬盘中删除掉。如果你仍然需要硬盘空间的话,可以试试apt-get clean,这会把你已安装的软件包的安装包也删除
掉,当然多数情况下这些包没什么用了,因此这是个为硬盘腾地方的好办法。
    * apt-get clean 类似上面的命令,但它删除包缓存中的所有包。这是个很好的做法,因为多数情况下这些包没有用
了。但如果你是拨号上网的话,就得重新考虑了。
    * 包缓存的路径为/var/cache/apt/archives,因此,du -sh /var/cache/apt/archives将告诉你包缓存所占用的硬
盘空间。
    * dpkg-reconfigure foo - 重新配置“foo”包。这条命令很有用。当一次配置很多包的时候, 要回答很多问题,但
有的问题事先并不知道。例如,dpkg-reconfigure fontconfig-config,在Ubuntu系统中显示字体配置向导。每次我安装
完一个 Ubuntu 系统,我都会运行这行命令,因为我希望位图字体在我的所有应用程序上都有效。
    * echo "foo hold" | dpkg --set-selections - 设置包“foo”为hold,不更新这个包,保持当前的版本,当前的状
态,当前的一切。类似新立得软件包管理器中的“软件包->锁定版本”。
    * 注: apt-get dist-upgrade 会覆盖上面的设置,但会事先提示。 另外,你必须使用 sudo。输入命令
echo "foo hold" | sudo dpkg --set-selections而不是sudo echo "foo hold" | dpkg --set-selections
    * echo "foo install -- 删除“hold”“locked package”状态设置。命令行为
echo "foo install" | sudo dpkg --set-selections

#软件包删除#

    * apt-get remove 软件包名称 - 删除已安装的软件包(保留配置文件)
    * apt-get --purge remove 软件包名称 - 删除已安装包(不保留配置文件)
    * 特别技巧:如果你想在删除‘foo’包同时安装‘bar’: apt-get --purge remove foo bar+。
    * apt-get autoremove - 删除为了满足其他软件包的依赖而安装的,但现在不再需要的软件包。

#软件包搜索#

    * apt-cache search foo - 搜索和"foo"匹配的包。
    * apt-cache show foo - 显示"foo"包的相关信息,例如描述、版本、大小、依赖以及冲突。
    * dpkg --print-avail 软件包名称 - 与上面类似。
    * dpkg -l *foo* - 查找包含有"foo"字样的包。与apt-cache show foo类似,但是还会显示每个包是安装了还是没
安装。
    * dpkg -l package-name-pattern - 列出名为package-name-pattern的软件包。除非你知道软件包的正确全称,否
则可以使用“*package-name-pattern*”.
    * dpkg -L foo - 显示名为“foo”的包都安装了哪些文件以及它们的路径,很有用的命令。
    * dlocate foo - 在已安装的包中搜索“foo”的文件。对于回答“这个文件来源于哪个包”这个问题,是非常实用的。
dlocate是一个软件包,必须安装它才能使用本命令。
    * dpkg -S foo - 和上面的命令一样,但相比更慢一些。他只能在Debian或Ubuntu系统下运行。另外,不需要安装
dlocate包。
    * apt-file search foo - 类似dlocate和dpkg -S,但搜索所有有效软件包,不单单只是你系统上的已安装的软件包
。-- 它所回答的问题是“哪些软件包提供这些文件”。你必须安装有apt-file软件包,并且确保apt-file数据库是最新的

    * dpkg -c foo.deb - “foo.deb”包含有哪些文件?注:foo.deb是含路径的文件名。-- 这个是针对你自己下载的
.deb包。
    * apt-cache dumpavail - 显示所有可用软件包,以及它们各自的详细信息(会产生很多输出)。
    * apt-cache pkgnames - 快速列出已安装的软件包名称。
    * apt-file search filename - 查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定
的字符串。apt-file是一个独立的软件包。您必须先使用 apt-get install 来安装它,然后运行 apt-file update。如
果 apt-file search filename 输出的内容太多,您可以尝试使用 apt-file search filename | grep -w filename(只
显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:
apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某
个特定的执行文件的话,这样做是有帮助的)。

#多余的软件包#

deborphan和debfoster工具可以找出已经安装在系统上孤立、无用的软件包。
 

       --此文基于Ubuntu Wiki <apt-get HOWTO>

Posted by jc 2011年2月20日 15:06


终端模拟器配置

#*********minicom/cu配置*********#

1.    minicom
    #apt-get install minicom
    #minicom -s
    ...
    Serial port setup->Serial Device : ttyUSB0                 
                       Lockfile Location : var/lock
                       ...
                       Hardware Flow Control : No
                       Software Flow Control : No
    Save setup as dlf

2.    cu
    #apt-get install cu
    #vi /etc/uucp/port

    # /dev/ttyUSB0
    port        ttyUSB0
    type        direct
    device        /dev/ttyUSB0
    hardflow    false
    speed        115200

    #vi /etc/uucp/sys

    #arm target
    system        arm
    port        ttyUSB0
    time        any

Posted by jc 2011年2月20日 15:05