Tab 键 补全作用
arm-linux-gcc -static -o hello hello.c 有时需要静态编译才能运行
getconf LONG_BIT 察看系统位数32/64
gcc test_signal.c -o test_signal
sudo chown -R litingting:litingting /home/litingting/下载/android-sdk-linux 设置用户名 用户组
litingting@litingting:~$ sudo chown -R litingting:litingting /opt/adt-bundle-linux-x86-20131030/eclipse 设置用户名 用户组
useradd:添加用户账号。 passwd:更改对应用户账号密码。用户切换(su)
ctrl+空格 换输入法
sudo apt-get update 系统更新
history 10 查找最近10条命令 sudo dpkg -r qq-for-wine
cal 3 2014 万年历
clear 清除命令
sudo shutdown -r now 立即关机
sudo shutdown +100 100分钟后关机
pwd 显示当前位置
touch a.txt 创建一个文档
file /usr/games/gnomine 察看文件属性
rm aa 删除aa文档
Uname –r 显示版本
sudo reboot 重启
sudo cp -a /home/litingting/下载/linuxqq_v1.0.2-beta1_i386.deb /usr/src 复制命令
sudo rm linuxqq_v1.0.2-beta1_i386.deb 删除
sudo tar jxvf xxxx.tar.bz2 解压
sudo tar zxvf xxxx.tar.gz 解压
firefox 显示网页
sudo dpkg -i xxx.deb 安装
ifconfig 察看网络情况
unzip xx.zip 解压
cat /etc/issue 查看Ubuntu版本
lsmod 查看内核加载的模块
cat /proc/cpuinfo 查看CPU信息
ps -A 察看当前有哪些进程
kill x 中止一个进程
sudo apt-get clean 清理所有软件缓存
sudo chmod u=r a.txt 给这个文档只给用户读
sudo chmod a=rwx a.txt 给这个文档所有人可读可写可执行
sudo mkdir -p a1/a2/a3 建立目录 3为2的子目录 2为1的子目录
sudo rmdir -p a1/a2/a3 删除这三个目录
sudo find /usr/sbin -name *cmd find命令将在/usr/sbin 下查到以cmd结尾的文件 并输出显示
sudo zip xxx.zip aa 将文件夹aa压缩打包成xxx.zip
sudo apt-get install lynx-cur 安装网页 lynx 打开 lynx www.baidu.com 打开百度网页
sudo cp -a /home/litingting/aaxx /home/litingting/ 桌面 当出现后最名txt ppt 先去掉再复制
sudo chmod -R 777 aa 将文件追加可执行权限
sudo pppoeconf 宽带联网
more 文件名称 对文档每行每页的显示 less 文件名称
sudo chmod 777 文件名
sudo unzip 包名
sudo rm -rf /opt/adt-bundle-linux-x86-20131030 删除指令
tar zvxf android-sdk_r11-linux_x86.tgz
sudo apt-get install vim 安装vim
litingting@litingting:~$ sudo chmod a+rx /etc/udev/rules.d/51-android.rules
编辑完内容后,按下Esc键,并输入“:wq”,然后回车就可以保存退出
ls -l 察看执行权限
unrar e android2.3usbdriver.rar 解压指令
lsusb lsblk 察看usb和硬盘
cat /proc/devices 察看开发板里的设备号
sudo ufw disable 关闭防火墙
cat /proc/filesystems 查看开发板支持nfs
sudo mount -t nfs -o nolock 125.217.249.121:/home/litingting/nfss /mnt 本地挂载
ping -c 10 125.217.249.12 查看网络是否相通
source /etc/profile 使修改的文件立即生效
la -a 能察看隐藏文件
make disclean 不但能够清除编译过的文件 还能清除之间关系
df 显示挂载信息
arm-linux-gcc hello.c -o hello 交叉编译c文件 可在arm上运行
./hello
ls -l /dev 能查出开发板里面的设备对应的主设备号码 从设备号码
cat /proc/devices 察看系统有哪些主设备和主设备号
echo $PATH 显示出来配置过的环境变量
ls -l /home/litingting 能够察看文件夹的权限 rwx 421
unrar e hf_sourceinsight3.5.rar 解压指令
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
source ./common.sh 执行文件 adb root
litingting@litingting:~$ echo $PATH 察看环境变量
litingting@litingting:~/android-source$ chmod -R 777 * 对文件下所有文件都可执行
cat /proc/interrupts 察看中断信息
cat .config | grep '^CONFIG_HZ=' 察看定时器一秒中断次数
/system # busybox | grep mkfs 查找mkfs相关命令
/ # busybox | grep ls 查找ls相关命令
/system # busybox ls 相当于使用ls命令
/proc/driver # cat rtc 开发板终端执行查找系统时间
sudo mkfs.ext2 /dev/queue_block 格式化命令
man htonl man socket 寻找函数和结构体定义 ping www.baidu.com
sudo fdisk -l fdisk 可以查看硬盘分区情况 使用 fdisk 进行硬盘分区
sudo dd iflag=dsync oflag=dsync if=210.bin of=/dev/sdb seek=1 把程序烧到SD卡中
sudo mkyaffs2image-128M rootfs_android4.0.3 rootfs_android.img 制作android源码
sudo tftp 221.204.110.99 tftp服务器
su - root 用户切换
useradd ltingting passwd litingting 添加用户
ps 和 kill 进程相关指令
sudo fdisk -l 列出文件系统分区情况
grep -n "http" ltt.txt 在ltt.txt文档查找http字符串所在的行
diff 生成补丁 patch 打补丁
ifconfig 查看网络
man XXX 在线查找XXX命令
find -name "mach" 在目录下查找包含mach字样的文件
diff -urNwB linux-2.6.22.6 linux-2.6.22.6 _ok >linux-2.6.22.6 _ok.diff 生产补丁 已经验证正确
cd linux-2.6.22.6 打补丁 (linux-2.6.22.6 和linux-2.6.22.6 _ok.diff在同一目录) 已经验证正确
patch -p1 <../linux-2.6.22.6 _ok.diff
第一 安装手机驱动
(那个手机会失效 51文件的权限问题) 可能还要注销问题
http://www.blogjava.net/brian/articles/316019.html
http://zhidao.baidu.com/link?url=SA_syAttXeHXXOaMo6LISeyT_Ef-kmnwjxjMDky1chmLatw7bsImAL4yNAqsT9OihSRcXUvz127avucRp-Fpn_
首先得确保手机的[设置/开发/调试]是勾选上的。
然后使用lsusb查找到devID,以16进制写入到本地电脑隐藏目录文件[/home/用户名/.android/adb_usb.ini]中
最后打开一个命令行执行./adb devices即可
在ubuntu(9.10)下执行adb devices命令, 返回的结果是:
List of devices attached
???????????? no permissions
这意味着,USB连接的设备是能够被识别的。Google之后,得知adb server需要以root的权限启动,于是有了如下命令:
brian@brian-laptop:~/Dev/Java/Android/android-sdk-linux_86/tools$ ./adb kill-server
brian@brian-laptop:~/Dev/Java/Android/android-sdk-linux_86/tools$ sudo ./adb start-server
* daemon not running. starting it now *
* daemon started successfully *
第一条命令用来杀死当前正在运行的server, 第二条命令则以root的权限启动了新的server. 我们可以再次查看devices:
brian@brian-laptop:~/Dev/Java/Android/android-sdk-linux_86/tools$ ./adb devices
List of devices attached
HT848KV04386 device
下面是安装QQ
sudo apt-get update 安装QQ http://wenku.baidu.com/view/796aeb5c7e21af45b307a867.html?pn=101
sudo apt-get install wine
sudo dpkg -i WineQQ2013-20131120-Longene.deb
第二 命令行方式编译android ndk 程序
litingting@litingting:/usr/android-ndk-r9d/samples/hello-gl2$ sudo chmod 777 /usr/android-ndk-r9d/samples/hello-gl2
litingting@litingting:/usr/android-ndk-r9d/samples/hello-gl2$ ndk-build
第三 要导入已经有的工程需要修改权限:组名
sudo chown -R litingting:litingting /usr/android-ndk-r9d/samples/hello-gl2
第四 安装交叉编译器
sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
sudo gedit /etc/profile
source /etc/profile 重新登录系统(不必重启机器,开始->logout 即可),使以上设置生效
arm-linux-gcc -v
可能先得进入安装目录=/usr/opt/FriendlyARM/toolschain/4.5.1/bin
第五 安装minicom
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No
第六 普通用户与超级用户
Ubuntu 普通用户和超级用户的切换
由于 Ubuntu 是基于 Debian 的 linux 操作系统,在默认的情况下,是没有超级用户(superuser, root)的,但有些系统操作必须有超级用户的权限才能进行,如手动释放内存等。在其他linux 操作系统 (如 fedora) 下,可以使用 su 切换到超级用户。当输入 su 命令后, 系统会要求输入 root 的密码。可是,在Ubuntu 下我们根本不知道 root 的密码是什么。
ubuntu下切换到超级用户方法:
1. sudo -i
sudo 是 su 的加强版,意思是 do something as thesupervisor。回车后会提示输入当前用户的密码,即可使用root权限。但是它也有很多限制,在默认的情况下,只能在 5 分钟之内使用 root 权限。
2. 如果想一直使用 root 权限,利用su和root密码得到,那么用 sudo passwd root 可以设置 root 的密码。之后就可以自由使用 su 命令了。 root用户(超级用户)切换到普通用户:ctrl+d即可
第七 通过串口给开发板来设置网络参数
ifconfig eth0 125.217.249.122 netmask 255.255.255.128 up
route add default gw 125.217.249.126 dev eth0
/system/busybox/sbin/ifconfig
/system/busybox/sbin/route 查看信息
第八 把模块加入内核
注意 要把内核文件夹移动到linux的目录下才可以 然后再make编译 否则出错
make -C /home/litingting/linux-3.0.8 M=/home/litingting/ledled/led
cp /home/litingting/ledled/ledled.ko /media/D085-86E4
cp mini210-tvp5150_linux_deconfig .config 复制配置文件
cp mini210_android_defconfig .config
echo '' > ledled.c
echo 'obj-m :=ledled.o' > Makefile
ls -a /dev
la -l /dev
mknod /dev/ledled c 10 42
第九 安装source insight
先下载安装包hf_sourceinsight3.5.rar 解压 unrar e
sudo apt-get install wine
wine /home/litingting/下载/sourceinsight/Si35Setup.exe
添加工程
之后找到软件
http://www.linuxidc.com/Linux/2012-07/65603.htm 帖子
cd
ls
ls -a
ls
cd drive_c
ls
cd Program\ Files/
ls
cd Source\ Insight\ 3/
ls
wine Insight3.exe
http://www.linuxidc.com/Linux/2012-07/65603.htm
第十 应用程序(led)对底层驱动的测试
/udisk # ./led 0 1 //注释 argc代表输入指令的个数 如前面的指令 argc=3
//注释 **argv 代表字符串指针 如前面 argv[0]="./led"" argv[1]="0" argv[2]="1"
//注释 sscanf(argv[1],"%d",&led_no) !=1 这一句:sscanf不同于scanf的地方是 sscanf从一个字符串中得到输入, 而scanf是你从终端输入。 这句就是,如果argv [1]这个字符串中含数字,那么就把它读入led_on. 并返回1,否则返回0
/udisk # ./led 0 1
/udisk # ./led 1 1
/udisk # ./led 2 1
/udisk # ./led 3 1 依次打开四个灯 1表示开 0关
第十一 远程登陆开发板(不是用串口线)
cd /opt/adt-bundle-linux-x86-20131030/sdk/platform-tools
./adb devices
./adb shell
到此 开发板已经登陆
传输文件传到开发板 ./adb push /home/litingting/桌面/lilili /mnt
adb push /home/litingting/android-source/out/target/product/generic/system/lib/hw/led_hal.default.so /system/lib/hw
远程执行命令 ./adb shell "ls /data/local"
给adb加入环境变量
第十二
下载android源码
mkdir ~/bin
PATH=~/bin:$PATH
sudo gedit /etc/profile
curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo
chmod a+x ~/bin/repo
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
repo sync
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
下载android内核
git clone https://android.googlesource.com/kernel/common.git
git branch -a
git checkout -b android-3.0 remotes/origin/android-3.0
第 十三 测试自旋索 读写自旋索
A
输出 cat /dev/spin_lock
输入 echo trylock > /dev/spin_lock (会自动加\n 相当于trylock\n)
echo 'lining' > /dev/wordcount
cat /dev/wordcount
B 在自己笔记本上测试
gcc test_rw_lock.c -o test_rw_lock
make -C /usr/src/linux-headers-3.11.0-15-generic M=/home/litingting/ledled/led
sudo insmod rw_local.ko
sudo sh test_rw_lock.sh
dmesg 察看日志消息
测试完成量
sudo cat /dev/completion 可在笔记本上直接执行
sudo echo data > /dev/completion 不行 权限不够 通过把他放入脚本文件中可执行 sudo sh test_seq_lock.sh
第十四 信号与异步通知
用perror函数调试 能显示错误
应用程序打开设备时有时会出现这样的 open: Permission denied
解决办法 sudo chmod 777 /dev/signal
执行应用程序 ./test_rw_signal
第十五 busybox的使用
BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、 cat 和 echo等等,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。
下载 http://download.chinaunix.net/download/0002000/1126.shtml http://www.busybox.net/downloads/
busybox的使用很简单,有以下三种方式:
(1) busybox后直接跟命令,如
busybox ls
busybox tftp
(2) 直接将busybox重命名,如
cp busybox tftp
cp busybox tar
然后再执行tftp, tar
(3)创建符号链接(symbolic link), 如
ln -s busybox rm
ln -s busybox mount
然后就可以执行rm,mount等
第十六 安装服务器
局域网内的ubuntu系统的电脑 电脑上都安装tftp服务器 然后就可以实现局域网内电脑互相访问 实现文件共享和传输
局域网内一台ubuntu系统的笔记本 一台windows台式机 笔记本上安装vsftpd 台式机上采用flashfxp.exe 这样台式机利用这个软件来下载
笔记本上的的资料和传给笔记本资料
设置文件系统从网络引导(挂载 NFS 文件系统) 启动NFS服务 说白了就是部把文件系统下载进去 在uboot中设置启动参数 从电脑共享目录启动 挂载跟文件系统
NFS服务器的目的就是共享。。。
NFS服务: 权限问题
sudo /etc/init.d/portmap restart 启动
sudo /etc/init.d/nfs-kernel-server restart 启动
showmount -e localhost (查看当前对外共享目录)
sudo mount 192.168.1.129:/home/litingting/nfs/ /tmp/ (测试)
tftp服务: 权限问题
tftp 服务器的搭建
1. 安装
$ sudo apt-get install tftpd tftp openbsd-inetd
2. 修改/etc/inetd.conf 配置自己的 tftp 目录:
sudo vim /etc/inetd.conf
找到#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
(/srv/tftp 为默认 tftp 目录)修改为自己的 tftp 目录:如
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/nitonggui/tftp
3. 创建目录:mkdir /home/nitonggui/tftp -p ;
修改文件权限为 777 :chmod 777 /home/nitonggui/tftp
4. 重新启动 tftp 服务器
$sudo /etc/init.d/openbsd-inetd restart
5.查看 69 端口是否有打开 :
netstat -an | more | grep udp
udp 0 0 0.0.0.0:69 0.0.0.0:*
6 本地测试
litingting@litingting:~/nfs$ sudo tftp 192.168.1.129
tftp> get 123.txt
Received 557 bytes in 0.1 seconds
tftp>
第十六 制作内核镜像文件、
arm-linux-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
gzip -9 linux.bin
mkimage -A arm -O linux -T kernel -C gzip -a 0x30008000 -e 0x30008000 -n "Linux Kernel Image" -d linux.bin.gz uImage
第十八 编译制作jffs2影像文件
先安装zlib
cd /media/000A7D940009BD97/22/GUI/xwindow/X/deps
tar xzf zlib-1.2.3.tar.gz
cd zlib-1.2.3/
./config --share --prefix=/usr
./configure --share --prefix=/usr
sudo ./configure --share --prefix=/usr
sudo configure --share --prefix=/usr
chmod 777 configure
sudo configure --share --prefix=/usr
sudo ./configure --share --prefix=/usr
然后编译makfs.jffs2
cd /media/000A7D940009BD97/22/tools
tar xjf mtd-utils-05.07.23.tar.bz2
cd mtd-utils-05.07.23/util
make
sudo make install
制作jffs2影像文件
mkfs.jffs2 -n -s 512 -e 16KiB -d qqq -o qqq.jffs2
mkfs.jffs2 -r rootfs -e 0x4000 --pad=0x1e00000 -o rootfs.jffs2 -n -p 自己板子