编码转换工具
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
内核源代码查看工具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-
# 键盘映射方式
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>
终端模拟器配置
#*********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